KEMBAR78
FINEMarine User Guide | PDF | Graphical User Interfaces | Navier–Stokes Equations
100% found this document useful (3 votes)
6K views755 pages

FINEMarine User Guide

Uploaded by

ICMG Consultancy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (3 votes)
6K views755 pages

FINEMarine User Guide

Uploaded by

ICMG Consultancy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 755

USER GUIDE

FINE™/Marine 7.1

www.numeca.com
CONTENTS
CHAPTER 1. GETTING STARTED
1.1 Introduction 13
1.2 How To Use This Manual 15
1.3 First Time Use 17
1.3.1 Basic Installation 17
1.3.2 Advanced Graphics Options 17
A. Graphics Driver 17
B. Background Color 18
1.3.3 How to start the FINE™/Marine Interface 19
1.4 Required Licenses 19

CHAPTER 2. INTERFACE
2.1 Project Selection 24
2.1.1 Create New Project 24
2.1.2 Open Existing Project 25
2.2 Main Menu Bar 26
2.2.1 Project Menu 26
2.2.2 Mesh Menu 31
2.2.3 Solver Menu 33
2.2.4 Plugins 34
A. How to activate them 34
B. Predefined plugins 35
2.3 Icon Bar 39
2.4 Computations Management 40
2.5 Graphical Management 42
2.5.1 Project Parameters 42
2.5.2 View Area 43
2.5.3 Mesh Information 53
2.5.4 Graphics Area 53
2.5.5 Viewing Buttons 54
2.6 File Chooser 59

CHAPTER 3. C-WIZARD
3.1 Resistance application 63
3.1.1 Project management step 63
3.1.2 Body configuration 64
3.1.3 Flow definition 67
3.1.4 Additional inputs 71
3.1.5 Mesh-setup 73
3.1.6 Project setup 78
3.2 Seakeeping application 79
3.2.1 Project management step 79
3.2.2 Body configuration 80

2 FINE™/Marine 7.1 User Guide


3.2.3 Flow definition 82
3.2.4 Additional input 87
3.2.5 Mesh setup 88
3.2.6 Project setup 93
3.3 Open water application 95
3.3.1 Project management step 95
3.3.2 Body configuration 97
3.3.3 Flow definition 99
3.3.4 Mesh setup 101
3.3.5 Project setup 106
3.4 Planing regime application 107
3.4.1 Project management step 107
3.4.2 Body configuration 108
3.4.3 Flow definition 113
3.4.4 Additional inputs 116
3.4.5 Mesh setup 117
3.4.6 Project setup 123
3.4.7 Guidelines for hulls with engines 124
3.5 Refinement dictionary 125
3.6 Launching C-Wizard in batch mode 128
3.7 C-Wizard computation matrix 129
3.8 Example of settings 135
3.9 Extended applications 137
3.10 Grid convergence study 147
3.10.1 Workflow 147

CHAPTER 4. SELF-PROPULSION
4.1 Introduction 152
4.2 Computation procedures 153
4.3 Input 161
4.4 Output 165
4.5 Recommendations 167

CHAPTER 5. GENERAL PARAMETERS


5.1 Unsteady Computation Interface 171
5.2 Best Practice on Time Accurate Computations 171

CHAPTER 6. FLOW MODEL


6.1 Mathematical Model 176
6.1.1 Laminar Navier-Stokes 176
6.1.2 Turbulent Navier-Stokes 176
6.1.3 Best Practice for Turbulence Modeling 177
A. Introduction to Turbulence 177
B. First Step: Choosing a Turbulence Model 177
C. Second Step: Generating an Appropriate Grid 178

3 FINE™/Marine 7.1 User Guide


D. Best practice for DES models 182
E. How about turbulence modeling when the Euler type of equations are to be solved? 184
6.2 Gravity Intensity 184
6.3 Reynolds and Froude Numbers 185

CHAPTER 7. FLUID MODEL


7.1 Mono-Fluid Project 187
7.2 Multi-Fluid Project 188
7.3 Passive scalar 190

CHAPTER 8. BOUNDARY CONDITIONS


8.1 Solid Wall Boundary Condition 195
8.2 External Condition 196
8.2.1 Far Field with Constant Values 197
8.2.2 User Defined Far Field 198
8.2.3 Prescribed Pressure 202
8.2.4 Zero pressure gradient 203
8.2.5 Overset 204
8.2.6 Wave Generator 205
8.2.7 Passive scalar value 213
8.3 Mirror Condition 213
8.4 Non Conformal Interface 214

CHAPTER 9. BODY DEFINITION


9.1 Definition 217
9.2 Identifier 218
9.3 Group 219

CHAPTER 10. BODY MOTION


10.1 Reference Frame 223
10.1.1 Definition 223
10.1.2 Degrees of Freedom 224
10.1.3 Cardan Angles 225
10.2 Fixed Degree of Freedom 227
10.3 Imposed Law of Motion 229
10.3.1 Constant Speed 230
10.3.2 Classical Ramp profile 231
10.3.3 1/4 Sinusoidal Ramp Profile 231
10.3.4 1/2 Sinusoidal Ramp Profile 232
10.3.5 Sinusoidal Motion with 1/2 Sinusoidal Ramp Profile 233
10.3.6 PMM Sway Motion 234
10.3.7 PMM Yaw Motion 235
10.3.8 Z-axis Gyration 237
10.3.9 Modification of the d.o.f. position 238
10.3.10 copied from another body 239

4 FINE™/Marine 7.1 User Guide


10.3.11 Dynamic libraries 240
10.3.12 User-defined 241
10.4 Solved Law of Motion 242
10.4.1 Motion Definition 243
10.4.2 Quasi-Static Approach 244
A. Introduction 244
B. Layout 244
C. Key features of the method 247
D. Best Practice 247
10.4.3 Dynamic Parameters 248
A. Inertial Data 248
B. Coupling Parameters 250
C. External Forces 252
D. Initial Conditions 256
10.5 Basic recommendations 258
10.6 Multibody definition 260
10.7 Virtual body 266

CHAPTER 11. MESH MANAGEMENT


11.1 Multidomain definition 269
11.2 Sliding Patch Motion 270
11.3 Domain Mesh Management 274
11.3.1 Rotating frame method 277
11.3.2 Boundary conditions for grid deformation 279
11.4 Independent domain motion 281

CHAPTER 12. INITIAL SOLUTION


12.1 Uniform Values 285
12.2 Restart from a Previous Computation 287

CHAPTER 13. ACTUATOR DISK


13.1 Definition 290
13.1.1 Global parameters 291
13.2 Properties 296
13.3 Best Practice on Actuator Disk Capabilities 300
13.3.1 How to Set up the Parameters 300
13.3.2 How to Manage Computations with Actuator Disk 301
13.3.3 Computation with Cardan angles 301
13.3.4 Important remarks 302
13.4 Basic Equations 302
13.5 User-defined 304
13.6 Propeller code coupling 306

CHAPTER 14. MOORING


14.1 General Parameters 314

5 FINE™/Marine 7.1 User Guide


14.2 Special Characteristics 314
14.3 Forces Definition 316

CHAPTER 15. TUGGING


15.1 General Parameters 318
15.2 Special Characteristics 318
15.3 Forces Definition 319

CHAPTER 16. CAVITATION


16.1 Parameters 322
16.1.1 Fluid model 322
16.1.2 Flow properties 323
16.1.3 Cavitation parameter 324
16.1.4 Cavitation model 326

CHAPTER 17. UNCERTAINTY QUANTIFICATION


17.1 Parameters 330
17.2 Results 336
17.3 Report file 341
17.4 Recommendations 342

CHAPTER 18. INTERNAL WAVE GENERATOR

CHAPTER 19. WAVE DAMPING

CHAPTER 20. MODAL APPROACH


20.1 Parameters 355
20.2 Structure file 357
20.3 Outputs 359

CHAPTER 21. LAMINAR TRANSITION MODEL


21.1 Introduction 362
21.2 Procedure 362
21.3 Examples 371

CHAPTER 22. NUMERICAL MODELS


22.1 Numerical Schemes 375
22.2 Under-Relaxation Parameters 378

CHAPTER 23. ADAPTIVE GRID REFINEMENT


23.1 Introduction 380
23.2 Refinement Criteria 382

6 FINE™/Marine 7.1 User Guide


23.2.1 Surface capturing criteria 386
23.2.2 Criteria based on second spatial derivatives 389
23.2.3 Combined criteria 393
23.2.4 Gradient criterion 397
23.2.5 Overset continuity only criterion 398
23.3 Grid Quality 400
23.4 Limiting Box 404
23.5 Refinement Control 407
23.6 Best Practice 412
23.6.1 Free surface criterion 412
23.6.2 Hessian criterion 416
23.6.3 Free surface + pressure Hessian criterion 418
23.6.4 Gradient criterion 419
23.6.5 Remarks in case of Restarts 420
23.6.6 Analysis of the refinements 420

CHAPTER 24. OVERSET GRID MANAGEMENT


24.1 General recommendations 424
24.2 Workflow 425
24.3 Parameters 427
24.4 Visualization 430
24.5 Best practices 430
24.6 Examples 433

CHAPTER 25. PROJECTION


25.1 Workflow 439
25.2 Projection Strategy 439
25.3 Examples 440
25.4 General Parameters 440
25.5 Expert Parameters 441

CHAPTER 26. CONTROL VARIABLES


26.1 General Parameters 443
26.2 List of Available Time Laws 448
26.3 Sub-cycling Acceleration 454
26.4 Expert Parameters 457

CHAPTER 27. OUTPUT


27.1 Automatically computed variables 460
27.2 Output 461
27.2.1 Interface 461
27.2.2 Motion and Force Variables 462
27.2.3 Probe Variables 464
A. Surface Probes 465
B. Volume Probes 471

7 FINE™/Marine 7.1 User Guide


C. Specific point probes 473
27.2.4 Optional Output Variables 476
27.2.5 Mean Flow Variables 479
27.3 Backups 481

CHAPTER 28. MONITORING AND LAUNCHING MODE


28.1 Launching Mode 484
28.2 Computation End 485
28.3 Monitoring 487
28.3.1 Residual file 489
28.3.2 Display options and Units 490
28.3.3 Structure of bodies 491
28.3.4 Quantities to display 492

CHAPTER 29. CONVERGENCE CHECKER


29.1 introduction 503
29.2 Criterion and configuration file 503
29.3 Library structure and compilation 505
29.4 Output 506
29.5 Examples 507

CHAPTER 30. TASK MANAGER


30.1 Getting Started 510
30.2 The Task Manager Interface 516
30.2.1 Hosts Definition 516
30.2.2 Tasks Definition 517
30.3 Parallel Computations 522
30.3.1 Management of Inter-block Communication 523
30.3.2 How to Run a Parallel Computation through the Interface 523
A. Direct Submission 523
B. Queuing System 524
30.3.3 Concept to Run a Parallel Computation in Batch Mode 527
30.3.4 Customized choice of MPI version 529
30.3.5 Troubleshooting 532
30.3.6 Limitations 533
30.4 Task Management Using Scripts 533
30.4.1 Launch HEXPRESS™ using Scripts 533
30.4.2 Launch Pre-Processing Step using Scripts 534
30.4.3 Launch FINE™/Marine flow solver in Sequential mode using Scripts 534
30.4.4 Launch FINE™/Marine flow solver in Parallel using Scripts 536
30.4.5 Launch Post-Processing Step using Scripts 542
30.4.6 Launch CFView™ Using Scripts 542

CHAPTER 31. POST-PROCESSING


31.1 No probes have been performed 546

8 FINE™/Marine 7.1 User Guide


31.2 Probes have been performed 546
31.3 Traveling Shot 550
31.4 Results Analysis 552
31.4.1 Application selection 553
31.4.2 Analysis options 560
31.4.3 plot options 561
31.4.4 Report folder structure 563

CHAPTER 32. FILE FORMATS


32.1 Files Produced by HEXPRESS™ 568
32.2 Files Produced by FINE™/Marine 568
32.3 Files Produced by the FINE™/Marine flow solver 573
32.4 External preferences file: .dat 583
32.5 External user input file: stop.now 584
32.6 Triangulated surface file 584
32.7 Wall Surface Data Description 585
32.7.1 Wall Surface Grid 586
32.7.2 Output Data 588
32.7.3 How to extract the data 590
32.8 Resource Files 590

CHAPTER 33. USER-DEFINED PROGRAMS


33.1 Files Used as Initial Data Profile 592
33.2 Dynamic libraries 594
33.2.1 Imposed laws 595
33.2.2 Zig-zag maneuver 596
33.2.3 Computation control 600
33.2.4 Momentum equation source term definition 603
33.3 Procedure 607
33.4 Examples 610

CHAPTER 34. PYTHON & PLUGINS


34.1 Macro Commands 613
34.1.1 BCPatch Class 613
34.1.2 Project Commands 613
34.1.3 Computation Management 614
34.1.4 Job management 617
34.1.5 Domain Management 621
34.1.6 General Parameters 622
34.1.7 Fluid Model 622
34.1.8 Flow Model 623
34.1.9 Boundary Conditions 624
34.1.10 Body Definition 628
34.1.11 Body Motion 630
34.1.12 Mesh Management Boundary Conditions 635

9 FINE™/Marine 7.1 User Guide


34.1.13 Initial Solution 636
34.1.14 Actuator Disks 637
34.1.15 Mooring 639
34.1.16 Tugging 640
34.1.17 Cavitation 640
34.1.18 Uncertainty Quantification 642
34.1.19 Internal wave generator 648
34.1.20 Numerical Model Parameters 649
34.1.21 Adaptive Grid Refinement Parameters 651
34.1.22 Overset grid management 654
34.1.23 Projection 655
34.1.24 Modal approach 655
34.1.25 Transition model 657
34.1.26 Results Analysis 657
34.1.27 Outputs 660
34.1.28 Control Variables 666
34.2 Dialog Box Creation 669
34.2.1 Classes 670
34.2.2 Additional commands for all widgets 674
34.2.3 Additional commands for container widgets 675
34.2.4 Example: Z-constant internal surface 675

CHAPTER 35. LIST OF EXPERT PARAMETERS


35.1 Actuator Disk 679
35.2 Adaptive Grid Refinement 679
35.3 Sliding grids 681
35.4 Computation Control 682
35.5 Roughness 683
35.6 Impose Velocity Ramp at Far Field 683
35.7 Information shown in the Task Manager (written in .std file) 684
35.8 Mesh Deformation Technique 686
35.9 Numerical Corrections 688
35.10 Coupling Parameters 690
35.11 Multi-fluid Smoothing 691
35.12 Output Data Management 692
35.13 Projection 693
35.14 Specific Numerical Parameters 693
35.15 Regular and Irregular waves 697
35.16 Modal approach 698

CHAPTER 36. EXTERNAL TOOLS


36.1 introduction 700
36.1.1 installation 701
36.1.2 Export STL only 702
A. Requirements 703
B. Domain creation 703

10 FINE™/Marine 7.1 User Guide


C. Boolean operation 704
D. Triangulation of the geometry 704
E. Patch naming 705
F. Export and use 706
G. References 707
36.1.3 Export and open HEXPRESS™ 708
36.1.4 Export and launch C-Wizard 708
36.2 Simulation Setup 709
36.2.1 Domhydro 709
A. Assumptions 709
B. Modes Description 711
C. How to use the tool? 713
D. How to launch the tool? 713
E. Examples 717
36.2.2 setup_infos 720
36.2.3 setup_info_hydrostatic 720
36.2.4 draft 721
36.2.5 setup_for_wave_generation 721
36.3 Pre-processing Tools 721
36.4 Boundary Conditions Manipulation 724
36.5 Mesh Manipulations 724
36.6 Conversions 726
36.7 Mesh Partitioning 727
36.8 Post-processing Tools 729
36.8.1 extract_wall_surface_grid 729
36.8.2 forces_by_section 730
36.8.3 isis2cfview 731
36.8.4 isis2cgns 733
36.8.5 isis2ensight 734
36.8.6 isis2fv 735
36.8.7 isis2hexpress 735
36.8.8 isis2hexpress_concat 736
36.8.9 isis2tec 737
36.8.10 isis2tec360 738
36.8.11 isis2vtk 739
36.8.12 post_surface 740
36.8.13 probes2cfview 740
36.8.14 Wake_flow_pp 745
A. Description 745
B. How To Use it? 746
36.8.15 Reconstruction script: FM_UCR_v2.2-3.py 751

11 FINE™/Marine 7.1 User Guide


CHAPTER 1.

GETTING STARTED

Welcome to the FINE™/Marine's Guide, a presentation of NUMECA's F low IN tegrated E nvironment


for computations on unstructured hexahedral meshes dedicated to Marine applications. This chapter
presents the basic concepts of FINE™/Marine and shows how to get started with the program by
describing:
l what FINE™/Marine does and how it operates,
l how to use this guide,
l how to start the FINE™/Marine interface.

In this section
1.1 Introduction 13
1.2 How To Use This Manual 15
1.3 First Time Use 17
1.4 Required Licenses 19

12 FINE™/Marine 7.1 User Guide


1.1 INTRODUCTION

Components

The resolution of Computational Fluid Dynamics (CFD) problems involves three main steps:
l spatial discretization of the flow domain,
l flow computation,
l visualization of the results.
To perform these steps, three software systems have been created. The first software system
(developed by NUMECA), HEXPRESS™, is an automated all-hexahedral unstructured grid
generation system. The second software system (developed by the CNRS and the Ecole Centrale
de Nantes), the flow solver ISIS-CFD, is a 3D unstructured flow solver able to simulate Euler or
Navier-Stokes (laminar or turbulent) flows. The third software system (developed by NUMECA),
CFView™, is a highly interactive Computational Field Visualization system.
These three software systems have been integrated in a unique and friendly Graphical Interface
(GUI), called FINE™/Marine, allowing the solution of complete simulations of 3D internal and
external flows from the grid generation to visualization, without any file manipulation, through the
concept of a project. Moreover, multitasking capabilities are incorporated, allowing the
simultaneous treatment of multiple projects.

Multi-tasking

FINE™/Marine fully integrates the concept of multitasking. This means that a complete project
can be managed in the FINE™/Marine interface; making the grid using HEXPRESS™, running
the computation with ISIS- CFD and visualizing the results with CFView™. Furthermore,
multiple computations can be started, stopped and controlled.

Project Management

To manage complete flow analyses, FINE™/Marine integrates the concept of project. A project
involves grid generation, flow computation and visualization tasks. The results of each of these
tasks are stored in different files that are automatically created, managed and modified within
FINE™/Marine:
l The grid files: The grid generation process in HEXPRESS™ creates files containing the
representation of the geometry, the grid related to the project and the definition of the boundary
conditions types. Four files with extensions ".igg", ".dom", ".bcs" and ".hex" are containing
all relevant information about the mesh. Furthermore, two files with extensions ".rep" and
".dist" are containing the report of the grid generation process and the wall distance,
respectively.

13 FINE™/Marine 7.1 User Guide


The file with extension ".dist" is only available when the distance criteria is used during the
surface adaptation (more details in HEXPRESS™ User Manual).

l The project file: The project file is created by FINE™/Marine with the extension ".iec" and it
contains the input parameters needed for the flow computations.
l The computation files: FINE™/Marine creates a new subdirectory for each computation
where it stores the following files:
l a file with extension ".sim" containing all computation input parameters used by the solver,
l a file containing the distance to the wall for all grid nodes, "feet.cpr",
l "eff_*.dat" files that contain the global fluid forces and moments acting on each body and
are used to restart the solver,
l the ".cpr" files which contain the different quantities (or ".xdr" from projects generated with
old versions),
l a series of ".di.sj" and ".di.vj"files (where i and j stand for the ID number of the domain
and the ID number of the scalar or vectorial quantity, respectively) and the ".cfv" file used
by CFView™ to visualize the quantities,
l a ".res" file used to visualize the residual history (see Monitoring),
l a ".std" file that contains global information about the computation history,
l The CFView™ visualization files: In addition to the ".sim" and ".cfv" files, the flow solver
creates a series of files, which can be read by CFView™. These files have different
extensions. The results will be visualized in CFView™ through the reading of the file with
extension ".d1.s*".

When creating a new project (e.g. "project.iec"), a new directory is made "\project". In this directory
the project file is stored: "\project\project.iec" and a directory is created called "\project\_mesh\". In
the latter sub-directory, the grid files used for the computations should be stored. However, it is also
possible to select a grid that is located in another directory. Only one mesh file should be used for all
computations in a simple project. If computations need to be done on another mesh, it is advised to
duplicate the existing project (see Duplicate Project) or to create a new one (see Main Menu Bar).

14 FINE™/Marine 7.1 User Guide


FIGURE 1.1
Project architecture illustration.

1.2 HOW TO USE THIS MANUAL

Outline

This manual consists in eleven distinct parts:


l Getting Started and Interface,
l Computation definition starting from General Parameters,
l Control Variables and Outputs,
l Monitoring & Launching Mode and Task Manager,
l Post-processing management,
l "Actuator Disk" (p. 289),

15 FINE™/Marine 7.1 User Guide


l File Formats,
l User-Defined Programs,
l Python & Plugins,
l List of Advanced Parameters,
l External Tools.
Before using FINE™/Marine for the first time, it is recommended to read this first chapter
carefully and especially First Time Use to Required Licenses sections. The Interface chapter gives
a general overview of the FINE™/Marine interface and explains how to manage a project. For
every computation, the input parameters can be defined as described from chapter General
Parameters. Control Variables and Outputs chapters describe computation control and outputs of
FINE™/Marine. Monitoring & Launching Mode and Task Manager give an overview of the
Monitor and how to start computations in sequential or parallel mode. Finally, Post-Processing
describes how to post-process the results to open them in CFView™.
A light bulb indicates a section with a description of advanced parameters. In all chapters, the
experienced user can find a section describing advanced options that are available in the
Advanced tabs of the interface menus. Additionally, the List and Description provides a list of all
supported non-interfaced advanced parameters, which are located in the Advanced tab of the
Computation Control/Control Variables page.

The use of non-supported parameters is at the responsibility of the user and will not guarantee correct
and/or physical results.

Conventions

Some conventions are used to ease information access throughout this guide:
l Commands to enter in are in italic.
l Keys to press are in italic and surrounded by <> (e.g.: press <Ctrl>).
l Names of menu, sub-menu items and names of buttons in dialog boxes are in bold.
l Numbered sentences are steps to be followed to complete a task. Sentences that follow a step
and are preceded with a dot (•) are sub steps. They describe in detail how to accomplish the
step.

A text in blue with a blue background indicates an important note.

Keyboard shortcuts are shown in blue italic.

16 FINE™/Marine 7.1 User Guide


1.3 FIRST TIME USE

1.3.1 Basic Installation

When using FINE™/Marine for the first time, it is important to verify that FINE™/Marine is
properly installed according to the installation note. The installation note provided with the
installation software should be read carefully. The following points are important:
l Hardware and operating system requirements should be verified to check whether the chosen
machine is supported.
l Installation of FINE™/Marine, in a directory chosen by the user and referenced in the
installation note as "NUMECA_ INSTALLATION_ DIRECTORY", should respect the
described procedure in the installation note.
l A license should be requested that allows the use of FINE™/Marine and the desired
component and modules (see Required Licenses for all available licenses). The license should
be installed according to the procedure described in the installation note.
l Each user wishing to use FINE™/Marine or any other NUMECA software must perform a
configuration as described in the installation note.
When these points are fulfilled the software can be started as described in the installation note or
How to start the FINE™/Marine Interface of this guide.

1.3.2 Advanced Graphics Options

A. Graphics Driver

The graphics area of FINE™/Marine interface uses the default driver of the machine. It is possible
to explicitly change the driver used by FINE™/Marine in the following way:

On LINUX

("X11" can be replaced by " OPENGL", " OPENGL2".)


in csh, tcsh or bash shell:
setenv NI_DRIVER X11
in korn shell:
NI_DRIVER=X11
export NI_DRIVER

17 FINE™/Marine 7.1 User Guide


The selection will take effect at the next session.

On Windows

The driver can be manually specified through the following commands:


1. Log in as "administrator".
2. Launch regedit from the Start/Run menu.
3. Go to the HKEY_ LOCAL_ MACHINE/SOFTWARE/NUMECA
International/FineMarine71 register.
4. Modify the DRIVER entry to either OPENGL, OPENGL2 or MSW.
The selection will take effect at the next session.

B. Background Color

The background color of the graphics area can be changed by setting the environment variable to
NI_IGG_REVERSEVIDEO on LINUX platforms. Set the variable to "ON" to have a black
background and set it to "OFF" to have a white background. The variable can be manually
specified through the following commands:

On LINUX

in csh, tcsh or bash shell:


setenv NI_IGG_REVERSEVIDEO ON
in korn shell:
NI_IGG_REVERSEVIDEO=ON
export NI_IGG_REVERSEVIDEO
The selection will take effect at the next session.

On Windows

l Log in as Administrator.
l Launch System Properties from the Start/Settings/Control Panel/System menu.
l Go in the Environment Variables.
l Modify or add the IGG_REVERSEVIDEO entry to either ON or OFF.
The selection will take effect at the next session.

18 FINE™/Marine 7.1 User Guide


1.3.3 How to start the FINE™/Marine Interface

To run FINE™/Marine, the following command should be executed:


On LINUX platforms, please type: finemarine# -print <Enter> or fine -niversion marine# -print
where # stands for the release version number (i.e. 41 for instance).
On Windows click on the FINE icon in Start/Programs/NUMECA software/finemarine#.
Alternatively FINE™/Marine can be launched from a dos shell by typing:
<NUMECA_INSTALLATION_DIRECTORY>\FineMarine#\bin\fine_marine.exe <Enter>
where "NUMECA_INSTALLATION_DIRECTORY" is the directory indicated in the Basic
Installation section and where # stands for the release version number (i.e. 41 for instance).

1.4 REQUIRED LICENSES

Standard FINE™/Marine Licenses

The standard licenses for FINE™/Marine allow for the use of all basic features of
FINE™/Marine including:
l HEXPRESS™ (see HEXPRESS™ User Manual),
l CFView™ (see CFView™ User Manual),
l FINE™ GUI (Graphical Interface),
l Sequential and parallel computations with ISIS-CFD on 2 processors
l Monitor (see Monitoring)

Additional Licenses

Within FINE™/Marine the following supported features are available and require an upgrade or a
separate license:
l CATIA v5 importation (see HEXPRESS™ User Manual),
l More cores for parallel computations with ISIS-CFD, with a maximum number of 9999 cores
can be used for a single computation,
l Coupling with Optimization suite (Projection feature),
l Compatibility with dynamic libraries,
l Coupling with BEM propeller code for actuator disk,
l Non Deterministic module for the uncertainty quantification features.

19 FINE™/Marine 7.1 User Guide


In addition to FINE™/Marine, other products are available that require a separate key in the
standard FINE™/Marine license:
l FINE™/Turbo (Flow INtegrated Environment using structured mesh technology, see
FINE™/Turbo, IGG™, AutoGrid5™ User Manuals),
l AutoBlade™ & FINE™/Design3D (structured 3D inverse design technology, see
FINE™/Design 3D, AutoBlade™ User Manuals),
l FINE™/Open (Flow INtegrated Environment using unstructured hexahedral mesh
technology, see FINE™/Open User Manuals).

20 FINE™/Marine 7.1 User Guide


CHAPTER 2.

INTERFACE

When launching FINE™/Marine, as described in Getting Started, the interface appears in its default
layout as shown in the following figure. An overview of the complete layout of the FINE™/Marine
interface is shown in the second figure just below. In the next sections, the items of this interface are
described in more detail.
It is also possible to specify the exact position and size of FINE™/Marine interface on the screen. To
do so the file preferences.dat should be created and stored in /.numeca directory. Details can be
found in "External preferences file: .dat" (p. 583)
Together with the FINE™/Marine interface, a Project Selection window is opened which allows the
creation of a new project or the opening of an existing project. See Project Selection for a description
of this window.
A File Chooser window is available for browsing through the file system and to select a file. More
details on the File Chooser window are given in File Chooser.

21 FINE™/Marine 7.1 User Guide


FIGURE 2.1
FINE™/Marine Interface

22 FINE™/Marine 7.1 User Guide


FIGURE 2.2
Complete overview of the FINE™/Marine interface

In this section
2.1 Project Selection 24
2.2 Main Menu Bar 26
2.3 Icon Bar 39
2.4 Computations Management 40
2.5 Graphical Management 42
2.6 File Chooser 59

23 FINE™/Marine 7.1 User Guide


2.1 PROJECT SELECTION

When the FINE™/Marine interface is started, the Project Selection window appears, as shown
in FIGURE 2.1.
This window allows to create a new project or to open an existing one as described in the next
sections. Project Selection window also suggest the User to start working within the C-Wizard
mode of computation directly from here. More details about the C-Wizard mode can be found in
the Description of the plugins. It is possible to open a project or to create a new one without the
Project Selection window using the Project menu.

FIGURE 2.3
Project and Grid File Selection window

2.1.1 Create New Project

To create a new project when launching the FINE™/Marine interface:


1. There are two possibilities:
l Open an existing grid by clicking on Importing a mesh
l If the required grid is not yet created use Creating a mesh

l Click on Ok to accept

24 FINE™/Marine 7.1 User Guide


2. A File Chooser appears, which allows the selection of a name and location for the new
project (for more detailed information on the File Chooser window, see File Chooser).
l In the Directories text box a name can be entered or the browser below the text box may
be used to browse to an appropriate location
l Once the location is defined, enter a new name in the text box under Files (for example
project.iec but it is not necessary to add the extension .iec as FINE™/Marine will add this
extension).

Use only English letters, Arabic numerals, "." and underscore symbol "_" in the project names,
project paths and computation names.

l Click on Ok (Save on Windows) to accept the selected name and location of the new
project
3. A new directory is automatically created with the chosen name as illustrated in FIGURE 2.4
indicated by point (1). All the files related to the project are stored in this new directory. The
most important of them is the project file with the extension .iec which contains all the project
settings (FIGURE 2.4-(2)). Inside the project directory, FINE™/Marine creates automatically
a sub-directory _mesh (FIGURE 2.4-(3)).
4. Depending on your choice regarding the grid file selection (step 1), there are two possibilities:
l If you have chosen to create a grid file, HEXPRESS™ is launched after defining the new
project. You can then create the mesh and save it in the _mesh directory of the new project.
Click on the Close icon in HEXPRESS™ to return to the FINE™/Marine project. The
new mesh is automatically associated with the project.
l If you have chosen to open a grid file, after defining the new project, a File Chooser,
allows you to browse to the grid file with extension .igg. Select the unstructured grid file
and press OK to accept the selected mesh. The new mesh is automatically associated with
the project and the mesh properties are immediately displayed in the Mesh properties
window. They can also be checked anytime in the Properties... menu (see Properties).

2.1.2 Open Existing Project

To open an existing project, two possibilities are available after clicking on Open an Existing
Project:

25 FINE™/Marine 7.1 User Guide


l Click on Ok and a File Chooser appears which allows the selection of an existing project (for
more detailed information on the File Chooser window, see File Chooser section).
l Select the project to open by double-clicking on it in the list of Recent Projects. The selected
project will then be loaded. If a project no longer exists, it will be removed from the list when
selected. Furthermore, by double-clicking on the More files... line, a File Chooser will appear
that allows to browse to the location of the existing project. The filter in the File Chooser is set
to display the files with extension .iec only, the default extension for a project file.
Once the mesh is opened, the geometry is loaded in the graphics area of the interface. The mesh
itself is not visible, unless it is loaded manually (Mesh/Load Mesh menu).

2.2 MAIN MENU BAR

2.2.1 Project Menu

New Project

The Project/New menu allows to create a new FINE™/Marine project. When clicking on
Project/New, the Project Selection window appears. A new project can be created or an existing
one can be opened, see Project Selection.
During the creation of a new project, a new grid can be created or an existing one can be assigned
to the project through a Grid File Selection box.
A File Chooser window appears, as described in File Chooser, allowing to browse in the
Directory list to the directory in which the new project subdirectory will be created (in the
example of FIGURE 2.4 the directory /home was selected). Give a new project name in the File
list, for example project.iec, and click on OK to create the new project.

26 FINE™/Marine 7.1 User Guide


Use only English letters, Arabic numerals, "." and underscore symbol "_" in the project names, project
paths and computation names.

When starting a new project a new directory is then created with the chosen name (1). All the files
related to the project are stored in this new directory. The most important one is the project file
with the extension .iec (2), which contains all the project settings. Inside the project directory,
FINE™/Marine creates automatically a sub-directory _mesh (4). Since all the computations of the
project must have the same mesh it is advised to store the mesh in this dedicated directory. Finally,
each time computations are created and saved, a subdirectory is added (3). The output files
generated by the flow solver will be written in the subdirectory of the corresponding running
computation.

FIGURE 2.4
Directories managed through FINE™/Marine

Once the new project name is defined, two possibilities are available:
l Create a grid file (Creating a mesh): HEXPRESS™ is launched. Next, you can create the
mesh and save it in the _mesh subdirectory of the new project. Click on the Close icon to
return to the FINE™/Marine project. The new mesh is automatically associated to the project.
The mesh unit is assumed to be meters.
l Open a grid file (Importing a mesh): another File Chooser appears that allows to browse to
the grid file with extension .igg. Select the grid file and press OK to accept the selected mesh.
The geometry is then loaded in the Graphics Area of the interface. The mesh unit is assumed
to be meters.

27 FINE™/Marine 7.1 User Guide


Open Project

There are two ways to open an existing project file:

Using the Project/Open menu item

1. Click on Project/Open.
2. A File Chooser window appears.
3. Browse through the directory structure to find the project file to open. This file normally has
the .iec extension. If this is not the case, the file filter in the input box named List Files of
Type, has to be modified.
4. Select the project file.
5. Click on the file name.
6. Click on OK.
The opened project becomes the active project. All subsequent actions will be applied to this
project.

Selecting the project from the list of files in the Project menu

The Project menu lists the names of the five most recent opened projects. Click on a project name
from this menu to open the corresponding project.
FINE™/Marine will check the write permission of the project directory and of the project files
and will issue a warning if the project and/or directory are in read only mode. In both cases the
project can be modified, but the changes will not be saved.

Only one project can be active. Opening a second project will save and close the first one.

An attempt to open a project that no longer exists will remove its name from the list in the Project
menu.

Save Project

The Project/Save menu stores the project file (with extension .iec) on the disk. The project file is
automatically saved when the flow solver is started, when FINE™/Marine is closed, or when
another project is opened.

28 FINE™/Marine 7.1 User Guide


Duplicate Project

The Project/Duplicate menu is used to store the active project on the disk under a different name.
A File Chooser opens to specify the new directory and name of the project. A confirmation
dialog box appears, which contains a checkbox to enable/disable the copying of the associated
result files. Clicking on Cancel will dismiss the operation.

By selecting Duplicate the results the interface will also duplicate the results of the active
computation

Create Minimal Backup

The Create minimal backup menu is used to save only valuable for the current project files as a
projectname_backup_date_timefolder. That means when this option is selected, .iec project file,
_mesh subfolder with .dom, .bcs and .igg mesh files will be saved inside the project folder. It is
also possible to compress it into the .zip folder for the further storage or transfer, for instance.

Create Solver Files

The Project/Save solver simulation File menu is used to store all the information needed for the
flow solver to run the active computation.

If more than one computation is selected in the Active Computations list, then all parameters
defined in the Project Parameters area, will be assigned to all selected computations (highlighted
in blue). This may be dangerous if the parameters for the currently opened information page are not
the same for all the selected computations. To avoid this, it is recommended to select only one
computation at a time.

When starting a computation, the .sim file is automatically updated (or created if not existing)
through the main menu (Solver/Start or click on ).

29 FINE™/Marine 7.1 User Guide


Script...

This option gives access to different actions linked to scripts.

Edit... opens a dialog box displaying all the commands performed by the user in the current
session.
Save All... saves all actions performed so far in the current session in a python file.
Execute... allows to execute a python script.
Re-execute Last... executes the last python script again.
All details corresponding to scripts are explained in a dedicated chapter ( Python &
Plugins).

Previous Projects

The graphical user interface stores an history of the 3 last closed projects. Clicking on one of these
will open the project if the project is still at the same location.

Quit

Select the Project/Quit menu item to quit the FINE™/Marine integrated environment. If changes
have been made in the active project, these changes can be saved or not.

Note that this action will NOT stop the running calculations. A Task Manager window will remain
open for each running computation. Closing the Task Manager window(s) will kill the running
calculation(s) after confirmation.

30 FINE™/Marine 7.1 User Guide


Project Name Limitations

The use of non- standard characters in the project name (other than English letters, Arabic
numerals, and underscore symbol "_") is not recommended. It may cause problems when opening
the project on another computer on which such characters may not be defined or misunderstood (a
back slash for example may be understood as a directory name separator, etc.).
If the name of an already existing project is specified, this project file will be overwritten. All
other files and sub-directories will remain the same as before.
It is also recommended to not use a project name which contains more than 50 characters.

2.2.2 Mesh Menu

Link a HEXPRESS™ project

When creating a new project, a grid file is automatically assigned. However, the assigned grid file
can be changed by clicking on Mesh/Link a HEXPRESS project menu. A File Chooser
appears, which allows to browse to a grid file with extension '.igg'. Select the grid file and press
OK to accept the selected mesh. Option of Move mesh files to project _mesh folder is checked
by default, thus all files from the folder of selected '.igg' file will be moved to the project /_mesh
folder. Otherwise, uncheck this option.

If the mesh from another project is selected and the check Move mesh files to project _mesh
folder is active, it will move, not only copy all the mesh files from the source project.

Load Mesh

By default, when a grid file is assigned to a project, the associated geometry is shown in the
graphics area of the FINE™/Marine main window, but the mesh is not displayed. The
Mesh/Load Mesh command allows to load (and therefore visualize) the mesh in the graphics

31 FINE™/Marine 7.1 User Guide


area of the FINE™/Marine window.

Note that when large meshes are loaded, motion and zooming tasks in the graphics area may be
slowed down due the large amount of memory used by the mesh.

Unload Mesh

The Mesh/Unload Mesh command unloads the mesh and clears it from the memory of the
computer. However, the geometry of the computational domain remains visible in the graphics
area. By default, only solid surfaces are shown (shading).

Properties

FIGURE 2.5
Mesh Properties window

Clicking on Mesh/Properties... opens a dialog box that displays global information about the
mesh:
l Mesh file: name and location of the mesh file,
l Grid units: the units used in this project. Currently, it is not possible to change them and
Meters is imposed.
l Mesh properties: the configuration (2D or 3D), the total number of cells and vertices per block
(domain) are detected from the mesh.

32 FINE™/Marine 7.1 User Guide


2.2.3 Solver Menu

This menu gives access to the flow solver management. In this section, information is given on
how to start, stop and save the batch script for the launching of the flow solver. All these actions
may be performed by using the pull down menu appearing when the button Solver of the Menu
bar is clicked.

Start Solver

To start the flow solver, select the menu item Solver/Start.

It is not recommended to start the flow solver before setting the physical boundary conditions and the
computational parameters.

When launching a computation, the result files produced by a previous execution of that computation
will be overwritten by the new results. It also implies that the initial solution will be created from the
values set in the Initial Solution page within FINE™/Marine (more details in Initial Solution).

Stop Solver

There are three different ways to stop the flow solver:


l Solver/Suspend interrupts the flow computation after the next time step (in case of unsteady
computation) or non-linear iteration (for steady computation). This means that the flow solver
stops the computation at the end of the next iteration and outputs the current state of the
solution exactly as if the computation was finished. This operation may take some time.
l Solver/Kill allows to immediately stop the computation for the active project. In this case no
output is created when stopping and the only solution available is the last output saved during
the run. This may be a dangerous action if requested during output of the solution. The output
will be corrupted and all the computation time is lost. To avoid this, it is better to use

33 FINE™/Marine 7.1 User Guide


Solver/Suspend or to kill the computation some iterations after the writing operations.
l Edit the file "stop.now" manually

Save Batch File

Save Batch File button under Solver menu saves the .batch file (on LINUX) or .bat file (on
Windows) in which all the steps of the chains for the flow solver will be written (pre-processing,
solver and post-processing) for a basic sequential run. For more possibilities, the same button is
present in the Task Manager to save specific steps (see Task List).

2.2.4 Plugins

The purpose of this menu is to provide a plugin mechanism where users can put their own python
scripts and access them through the interface, via a Plugins menu. NUMECA provides some
python scripts that users can use. A Predefined module is loaded from the installation package of
FINE™/Marine but the user is free to add any folder.

A. How to activate them

The first part of the menu contains two sub-menus: Load Module Directory... and Save As
Default . The Load Module Directory... opens a directory chooser to select a directory
containing users scripts. When the directory is selected:
l a sub menu, under the Plugins menu is added, with the name of the directory,
l the graphical user interface looks for all ".py" files in the specified directory, except files
starting with underscore ('_'),
l for each ".py" file an item is added to the above-mentioned sub-menu. The name of the item is
the name of the python script, without the ".py" extension.

If a directory is not selected, a dialog box appears with the text "You must select a directory".

34 FINE™/Marine 7.1 User Guide


The Save As Default option saves all currently loaded menus in the file "~/.numeca/ fm_gui_
default_plugins". The file is an ASCII file that looks like:
/usr/local/MyPlugins/
When launching FINE™/Marine, it always looks for the file "fm_gui_default_plugins". For each
line, FINE™/Marine interprets it as a directory and loads all the ".py" files it contains, except
those
starting with underscore. If no directory is found FINE™/Marine loads the default scripts from the
installation package. Indeed, FINE™/Marine comes with predefined scripts called a "module". A
module is simply a directory containing a set of python scripts. These modules are centralized
under the directory "_python/_fine/_marine/Predefined/" in the installation folder. For instance,
"Predefined" is the name given to the FINE™/Marine module.
Two arguments can be added when launching FINE™/Marine from a command line:
l if the argument " -batch " is specified when launching FINE™/Marine, FINE™/Marine is
executed in batch mode.
l if the argument " - script <script_ name> " is specified when launching FINE™/Marine,
FINE™/Marine will execute the specified script.
Hence, we can combine the two arguments to execute a script in batch, for instance:
l On Linux: finemarine71 -script test.py -batch -print
l On Windows: fine_marinex86_64.exe -script test.py -batch -print (from the installation folder)
The complete list of macro commands for FINE™/Marine is provided in the Python & Plugins
chapter.
The next section describes the plugins directly proposed through the interface. They can be found
in the folder from the installation under "_python/_fine/_marine/Predefined".

B. Predefined plugins

The Predefined menu suggests the following functionalities to be used as the simplification of the
existing procedures.
The C-Wizard Part I and C-Wizard Part II present the two parts of the Wizard mode that suggests
the easy setup for the three general types of computations: resistance, seakeeping and open water
calculations for the propeller cases.

C-Wizard Part I

Predefined plugins contain the Wizard mode implemented into the FINE™/Marine GUI. General
idea of this mode is to simplify and speed up the computation set up process: automated scripts
recall existing functions and finish set up procedure with the minimal user input required.

35 FINE™/Marine 7.1 User Guide


To complete the project setup C-Wizard Part I plugin provides the following steps to follow:
1. Project management
2. Body configuration
3. Flow definition
4. Additional inputs
5. Mesh setup
Depending on the Application type different setup is provided. More details about parameters and
how to create a project using the C-Wizard can be found in the "C-Wizard" (p. 61) chapter.

C-Wizard Part II

Predefined plugin C- Wizard Part II interface automatically displays an Estimation of


hydrostatic values:
l Displacement
l Coordinates of the Center of Gravity
The 'domhydro' tool is used in the background to calculate these values. Applying this plugin is
possible after the C- Wizard Part I and the computational mesh has been generated in
HEXPRESS™.

Additional values for the seakeeping computation: Estimated inertia matrix data [kg/m²]

After the Estimation of hydrostatic values confirmation the C-Wizard Part II plugin will apply
computation settings automatically. The Computations menu will be updated with the
computation_X.X names, where X.X is the speed value defined with C-Wizard Part I.
Estimation of hydrostatic values is not available when working with the Planing regime
application since the hull was rotated to the final trimmed position; monofluid computations for
the Open water applications do not apply this estimation either.

Clear computation directory

This plugin allows to clear all the files and folder present in the selected computation directory
without deleting the computation settings of the project. For instance, this allows to make a
backup of the project without deleting the folders or the files manually.
A confirmation will be prompted before starting to delete and a confirmation will be printed in the
shell.

36 FINE™/Marine 7.1 User Guide


FIGURE 2.6
Confirmation pop up

Self-propulsion dynamic library

This plugin allows to define the required inputs for the self-propulsion computational cases of the
available Application types:
l Fixed vessel speed, solved RPM,
l Fixed RPM, solved vessel speed,
l Fixed power, solved RPM and vessel speed,
l Fixed power, solved vessel speed with actuator disk.
Details can be found in "Self-propulsion " (p. 151).

Units converter

The unit converter allows to convert or compute several values that are commonly used in
FINE™/Marine. One can perform the following calculations:
l Angle Radians (rad) to Degrees (deg) or vice versa,
l Length Feet (ft) to Meters (m) or vice versa,
l Speed Knots (Kt) to meter per second (m/s) or vice versa,
l Compute the kinematic viscosity (m²/s) based on the density (kg/m³) and the dynamic viscosity
(kg/(m.s)) or compute the dynamic viscosity based on the density and the kinematic viscosity.

37 FINE™/Marine 7.1 User Guide


FIGURE 2.7
Units converter

Wave generation info

The tool computes useful information for wave generation simulations such as frequencies, time
step, wave celerity, etc... It can replace the file setup_for_wave_generation.ods for the simulation
part.

38 FINE™/Marine 7.1 User Guide


FIGURE 2.8
Info for the wave generation

2.3 ICON BAR

The icon bar contains eleven buttons that provide a shortcut for menu items in the main menu bar.

File Buttons

The four buttons on the left of the icon bar are shortcuts for items on the Project menu:

The New Project icon is a shortcut for the menu item Project/New.

The Open Project icon is a shortcut for the menu item Project/Open.

The Save Project icon is a shortcut for the menu item Project/Save.

The Save ISIS Simulation File icon is a shortcut for the menu item Project/Save ISIS
Simulation File.

Solver Buttons

The three central buttons allow to start, suspend, kill the selected computation:

The Start Solver icon is a shortcut for the menu item Solver/Start.

The Suspend Solver icon is a shortcut for the menu item Solver/Suspend.

The Kill Solver icon is a shortcut for the menu item Solver/Kill.

Module Buttons

The four buttons on the right of the icon bar allow to start the pre- or post-processors, to open the
task manager and to monitor the active computation:

The Start TASK MANAGER icon is used to open the task manager menu.

The Start HEXPRESS icon is used to open HEXPRESS™.

39 FINE™/Marine 7.1 User Guide


The Start CFView icon is used to open the post-processing management window and
CFView™.

The Start Monitor icon is used to open the Monitor™.

The Start Results Analysis icon is used to open the "Results Analysis" (p. 552) module.

2.4 COMPUTATIONS MANAGEMENT

When clicking on the Computations button at the top left of the interface a list of all the
computations of the project is appearing. The active computation is highlighted in blue and the
corresponding parameters are presented in the Project Parameters area (more details in
Graphical Management ). All the project parameters of the computation can be controlled
separately by selecting (from this list) the computation on which all the modifications are applied.

FIGURE 2.9
Computations menu

At the bottom of the Computations menu the following buttons are available:
New creates a new computation as a duplication of the active computation. Newly created
computation has the same name as the original one with the prefix new_.
Reset will clean all the files withing the selected computation_name folder inside the Project and
save the computation again to be ready to run the simulation.
To prevent the nonessential actions, the following warning is shown: This will delete active
computation directory and save computation again.
For the "Uncertainty Quantification" (p. 642) studies the set of dependent computations can be
reset as well by activating: Reset non-deterministic runs too.

40 FINE™/Marine 7.1 User Guide


FIGURE 2.10
Warning message for the computation involving the Non-deterministic data

Rename allows to rename the active computation, you can click on, double-click on the selected
computation line. Then, type the new name and press <Enter> to validate your choice or <Esc>
to cancel the new name.
Delete will delete the selected computation(s).
Comment provides the access to the editorial window and allows to write comments to the
current selected computation. These comments are then stored in the simulation file .sim.

FIGURE 2.11
Comments editor

41 FINE™/Marine 7.1 User Guide


Arrows can be used to move selected computations up and down by one position.

When right-clicking on an active computation, a pop-up menu is appearing that is giving access to
these commands. See above.

2.5 GRAPHICAL MANAGEMENT

2.5.1 Project Parameters

The Project Parameters is the second button on the left of the interface, below the Computations
button. When clicking on this button a directory structure appears allowing to go through the
available pages of the project definition. The Parameters window (FIGURE 2.2) shows the
parameters corresponding to the selected page in the Project Parameters list. To see the pages
available in a directory, double-click on the name or click on the sign in front of the name.
.

FIGURE 2.12
Project Parameters area

42 FINE™/Marine 7.1 User Guide


The graphics area always remains visible, and pages of the Project Parameters list are accessed
through pop-up windows. Two pages cannot be accessed at the same time.

2.5.2 View Area

The View subpanel (FIGURE 2.13) controls viewing operations on the geometry and the grid.

FIGURE 2.13
View subpanel

This last subpanel is divided into two rows of buttons:


l The three first buttons on the first row allow to set the selection. The two last buttons on the
first row allow to modify the way of displaying surfaces in the graphics area.
l The second row allows to use some tools, as the distance tool or the coordinates tool (see
descriptions below).

Selection Mode

The button allows the face mode viewing. All the viewing modifications are applied on the
selected face.

To open a dialog box Face Viewer listing all the available faces, right-click on the button .
The faces can now be selected interactively by left-clicking in the graphics area or by selecting

them from the list. The Face Viewer can also be opened by pressing the dedicated icon .The
content is the same as in HEXPRESS™.

43 FINE™/Marine 7.1 User Guide


FIGURE 2.14
Face Viewer

The button allows the block mode viewing. All the viewing modification are applied on the
currently selected block (domain). The block may be selected interactively by left-clicking on the
block in the graphics area.

The button allows to apply the viewing modifications to all blocks.

Viewing Mode

The second buttons row allows to modify the way of displaying surfaces in the graphics area:

displays the topological vertices and edges numbers as text in the graphical area

l displays the topological vertices as markers

l displays the topological edges of the geometry.

l displays the triangulation from the geometry surfaces or the mesh faces.

44 FINE™/Marine 7.1 User Guide


l displays the faces as opaque surfaces (shaded).

l The button refers to face rendering. This menu is divided in three tabs : one for
controlling the face rendering (Material), one for controlling the mesh appearance (Mesh) and
one for the Background colors. The settings in first two tabs work according to the active
scope: Face, Block or Grid. When the Face mode is active the settings are applied on the
selected faces in the Face Viewer dialog box.

FIGURE 2.15
Rendering Editor

A Save as Default button is dedicated to save the current settings as preferences. This includes the
material and mesh properties as well as the background colors.
The Reset button cancels all performed rendering operations since the Rendering editor dialog
box is open.

Material

The surface material properties are defined by four parameters:

45 FINE™/Marine 7.1 User Guide


l Diffuse: refers to the fundamental color of the surface.

l Specular: affects the light reflections on the surface. The shape, the strength and the color of
the highlight depends of the material. For instance, a material like cotton tissue will not have
any specular highlight, in comparison to a reflective surface like a mirror that will have a very
bright specular highlight.
l Color: is the color of the specular highlight.

l Amount: is the strength of the highlight. It is a value ranging from 0 to 1. A value of 0


means that the surface has no specular highlight; a value of 1 means that the surface
presents a strong specular highlight.

46 FINE™/Marine 7.1 User Guide


l Gloss: defines the extent of the highlight. It is a value ranging from 1 to 4. A value of 1
means that the specular highlight is widespread. It will be the case for rough material. A
value of 4 means that the highlight is very narrow. It will be the case for very smooth
surfaces, like glass.

l Opacity: controls the transmission of light through the surface. An opacity of 1.0 means a
completely opaque surface. An opacity of 0 means a completely transparent surface.

47 FINE™/Marine 7.1 User Guide


Transparency availability depends only on the driver/machine/graphic card combination. If not
available the value is discarded. Regarding transparency and diffuse color, some graphics
hardware only take the intensity of the color into account.

l Reflection: is the property of a surface to reflect the surrounding environment. Reflection is the
property of a surface to reflect the surrounding environment. A "spherical environment
mapping" technique is applied on the selected surface (s) when the option use reflection
mapping is set active:
l An image, also called "map", is provided for each surface. This map represents a given
material.
l The color of each surface point is found by using the local normal at the surface point to
address the map.
l Amount: changes the reflectivity property of the surface.

A reflectivity amount of 0 means that the surface has no reflectivity: the final color is the diffuse
color of the surface. A reflectivity amount of 1 means that the surface is purely reflective: the
final color is equal to the reflection color. All value in-between result in a mix of reflectivity and
surface color.

48 FINE™/Marine 7.1 User Guide


Mesh

This tab, used for controlling the mesh lines appearance, allows to control:
l the color of the mesh
l the line pattern
l the thickness of the mesh lines
l whether lighting should be applied on the mesh lines or not
Each operation in this tab takes immediately effect, as for the Material tab, according to the active
Scope (Face, Block or Grid).

Background

The third tab allows to define the background color. of the graphics area.
The edition button Ed. allows the user to specify his own background color independently of the
proposed colors. The look of the menu varies according the operating system.

49 FINE™/Marine 7.1 User Guide


FIGURE 2.16
Color selection

During the initial and adaptation steps, the user can only control the color and mesh attributes for the
whole mesh and not face by face. This is explained by the fact that during these steps, the cartesian
mesh is not attached to any face.

No lighting is applied on the mesh solid surface representation during the initial and adaptation steps.

Lighting of edges does not apply when the color is black.

Camera Position

Clicking on the icon ( ) opens the Camera Position dialog box as shown in FIGURE 2.17

50 FINE™/Marine 7.1 User Guide


FIGURE 2.17
Camera Position

l Save button: Saves the current camera position. A new entry, Camera # will be added in the
list each time the Save button is hit.
l Delete button: Deletes the selected camera position.
l Close button: Closes the dialog box.

Distance Tool

The distance tool is useful to measure the distance between two points or between a point and
a line. The following dialog box will appear, showing the distances computed along principal
directions between the two points:

FIGURE 2.18
Distance tool wondow

The following prompt appears, asking to enter the first point:


Enter first point (toggle selection: a = points, c = curves, s = surfaces, l =distance to line)
Once the first point (or line) is entered, a second prompt appears, asking to enter the second point:
Enter second point (toggle selection: a = points, c = curves, s = surfaces, l =distance to line)

51 FINE™/Marine 7.1 User Guide


To measure the distance between two points, simply select the points with the mouse or enter the
coordinates with the keyboard. For example, to measure the distance between (0,0,0) and (1,1,1),
enter the sequence '0 0 0' in the graphics area, followed by <Enter>. Then enter '1 1 1' followed
by <Enter>. The distance is indicated in the graphics area and in the information area.
To select an existing point, attraction features are available, allowing attraction to points, curves
and surfaces. To activate the attraction to points, press <a> in the graphics area, then move the
cursor to the desired point. Similarly, to activate the attraction to curves or surfaces, press <c> or
<s> respectively, then move the cursor to the desired curve or surface. The attraction works on:
l end points of the curves,
l visible Cartesian points,
l visible curves,
l visible surfaces,
l block vertices and fixed points.
In this last case, the attraction cannot be deactivated. When there is attraction, the corresponding
point is highlighted. Simply press the left mouse button to select it.
To measure the distance between a point and a line, press <l> in the graphics area. Then enter a
line origin (by using the mouse or the keyboard) and direction (this one must be entered by using
the keyboard). The attraction features are also available for the line origin.
Enter line origin (toggle selection: a = points, c = curves, s = surfaces)
Enter line direction (keyboard only)
>> 1 1 1
This option can be activated before or after having entered the first point. The distance is
measured perpendicular to the line.
Once a distance is calculated, another distance can be measured by selecting other points.
To quit this tool, press <q> or the right mouse button, or close the Distance tool window

Coordinates Tool

The coordinates tool is useful to get the coordinates of a point. The following dialog box will
appear, showing the coordinates computed along principal directions, according the mouse
position:

52 FINE™/Marine 7.1 User Guide


FIGURE 2.19
Coordinate tool window

2.5.3 Mesh Information

When a mesh is assigned to the project, the mesh information area is shown at the bottom on the
left of the interface. It contains the following information:

FIGURE 2.20
Mesh information area

l Number of cells
l Number of vertices

2.5.4 Graphics Area

The graphics area shows the geometry of the mesh assigned to the active project. When the mesh
is loaded, the mesh on the solid surfaces is shown. The graphics area remains always visible. The
grid icons can be used to change the visualization of the mesh. These are described in View Area.

53 FINE™/Marine 7.1 User Guide


FIGURE 2.21
Resizing of Graphics Area

Pressing <Alt Gr> + P will automatically shrink the quick access pad.

2.5.5 Viewing Buttons

The viewing buttons are used to perform viewing manipulations on the active view, such as
scrolling, zooming, and rotating. The manipulations use the left, middle, and right buttons of the
mouse in different ways. For each viewing button, the sub-sections below describe the functions
associated with each mouse button.

For systems that only accept a mouse with two buttons, the middle mouse button can be emulated for
viewing options by holding the <Ctrl> key with the left mouse button.

54 FINE™/Marine 7.1 User Guide


X, Y, and Z Projection Buttons

These buttons allow to view the graphics objects on a X, Y, or Z projection plane. Press the left
mouse button to project the view on an X, Y, or Z constant plane. If the same button is pressed
more than once, the horizontal axis changes sense at each additional press.

Coordinate Axes

The coordinate axes button acts as a toggle to display different types of coordinate axes on the
active view using the following mouse buttons:
l Left: press to turn on/off the display of a symbolic coordinate axis at the lower right corner of
the view.
l Middle: press to turn on/off the display of a scaled coordinate axis for the active view. The axis
surrounds all objects in the view and may not be visible when the view is zoomed in.

Scrolling

This button is used to translate the contents of the active view within the plane of the graphics
window in the specified direction. Following functions can be performed with the mouse buttons:
l Left: press and drag the left mouse button to indicate the translation direction. The translation is
proportional to the mouse displacement. Release the button when finished. The translation
magnitude is calculated by measuring the distance between the initial clicked point and the
current position of the cursor.
l Middle: press and drag the middle mouse button to indicate the translation direction. The
translation is continuous in the indicated direction. Release the button when finished. The
translation speed is calculated by measuring the distance between the initially clicked point and
the current position of the cursor.

3D Viewing Button

This button allows to perform viewing operations directly in the graphics area. Available
operations are 3D rotation, scrolling, and zooming.

55 FINE™/Marine 7.1 User Guide


After having selected the option, move the mouse to the active view, then:
l Press and drag the left mouse button to perform a 3D rotation,
l Press and drag the middle mouse button to perform a translation,
l Press and drag the middle mouse button, while holding the <Shift> key, to perform a zoom,
l Roll the middle mouse button to perform a zoom where the mouse is pointing,
l To select the center of rotation, hold the <Shift> key and press the left mouse button on a
geometry curve, a vertex, or a surface (even if visualized with a wireframe model). The center
of rotation is always located in the center of the screen, thus when changed, the model is
moved accordingly to this new rotation center.
This 3D viewing tool is also accessible with the <F1> key.

Rotate About X, Y, or Z Axis

The rotation buttons are used to rotate graphical objects on the active view about the X, Y, or Z
axis. The rotations are always performed about the centre of the active view. Following functions
can be performed with the mouse buttons:
l Left : press and drag the left mouse button to the left or to the right. A clockwise or
counterclockwise rotation will be performed, proportional to the mouse displacement. Release
the button when finished.
l Middle: press and drag the middle mouse button to the left or to the right. A continuous
rotation will be performed, clockwise or counterclockwise. Release the button when finished.

Zoom In/Out

This button is used for zooming operations on the active view. Zooming is always performed
about the centre of the view. Following functions can be performed with the mouse buttons:
l Left: press and drag the left mouse button to the left or to the right. A zoom in/out will be
performed, proportional to the mouse displacement. Release the button when finished.
l Middle: press and drag the middle mouse button to the left or to the right. A continuous zoom
in/out will be performed. Release the button when finished.

Region Zoom

56 FINE™/Marine 7.1 User Guide


This button allows to specify a rectangular area of the active view that will be fitted to the view
dimensions. After having selected the button:
1. Move the mouse to the active view.
2. Press and drag the left mouse button to select the rectangular region.
3. Release the button to perform the zoom operation.
These operations can be repeated several times to increase the zooming.
Press <q> or the right mouse button to quit the option.
This tool is also accessible with the <F2> key.

Fit Button

The fit button is used to fit the content of the view to the view limits without changing the current
orientation of the camera (which can be interpreted as the 's eyes).
This tool is also accessible with the <F3> key.

Original Button

The original button is used to fit the content of the view and to give a default orientation to the
camera.
This tool is also accessible with the <F4> key.

Cutting Plane

This option displays a movable plane that cuts the geometry and the mesh. The surface mesh is
displayed. The plane is symbolically represented by four boundaries and its normal, and is by
default semi-transparent.

the mesh should be loaded (see the Load Mesh paragraph to know how to load the mesh) to see a cut
of the mesh. Otherwise, the cutting plane will be only visible on the geometry.

After a click on the button,

57 FINE™/Marine 7.1 User Guide


l Press and drag the left mouse button to rotate the plane,
l Press and drag the middle mouse button to translate the plane,
l Press <x>, <y>, or <z> to align the plane normal along the X, Y, or Z axis,
l Press <n> to reverse the plane normal,
l Press <o> to open the Cutting plane options dialog box:

FIGURE 2.22
Cutting plane options dialog box

Hide cut-away: hide the geometry on the other side of the plane.
Activate transparency: deactivate to make the cutting plane fully transparent.

It is advised to deactivate plane transparency when using the X11 driver to increase the execution
speed.

Show mesh: deactivate to hide the mesh and view geometry only.
Intersecting cutting plane only: active to display only cells intersecting the cutting plane. The
cells are displayed through each side of the cutting plane.
Shading: active to display cells in solid mode. Deactivate for wireframe mode.
Shrink factor: from 0 to 1, the shrink factor reduces the cell size in the X, Y, and Z direction.

58 FINE™/Marine 7.1 User Guide


FIGURE 2.23
Shrink factor from 0.2 to 0.7

2.6 FILE CHOOSER

For file management (opening and saving of files), FINE™/Marine uses the standard File
Chooser window. The layout of the File Chooser depends on the used operating system, but a
typical layout is shown in FIGURE 2.24. The Directories list allows to browse through the
available directory structure to the project directory.
The Files list can then be used to select the filename. In the case where a file needs to be opened,
an existing file should be selected in the list of available files. When creating a new file, a new
filename can be specified with the appropriate extension.
In the List Files of Type bar the default file type is set to list only the files of the required type. For
a description of all available file types in FINE™/Marine, see Project Management.

59 FINE™/Marine 7.1 User Guide


FIGURE 2.24
Typical layout of a File Chooser window

60 FINE™/Marine 7.1 User Guide


CHAPTER 3.

C-WIZARD

The C-Wizard mode implemented into the FINE™/Marine interface provides a complete workflow to
create and define parameters of a project depending on its Application. Available types of applications
are:
General applications:
l Resistance
l Seakeeping
l Open water
l Planing regime
Extended applications:
l Hydrofoil resistance
l Sailing yacht resistance
Start of the C-Wizard can be directly done from the Welcome box. Although, it is also available in
the Plugins menu of the FINE™/Marine GUI with the "C-Wizard Part I" (p. 35) and "C-Wizard
Part II" (p. 36) plugins.
Information concerning the progress of the C-wizard is also printed in the message area of the interface
(ex: Importing geometry, Viscous layers insertion…).

The C-Wizard is available under license. To upgrade your license, please contact your local software provider
or the NUMECA support office.

The geometry imported in C-Wizard must be defined in the International System of Units. C-Wizard assumes
that the geometry is in meters, and thus it does not scale it depending on the units chosen for the project.

Advanced Tutorial 3 offers step by step instructions for the resistance case with the use of the C-Wizard
mode.

61 FINE™/Marine 7.1 User Guide


It is strongly recommended to check the shell/bash window (Unix OS/Windows OS) for the processing
info, since all the entered and automatically imposed parameters will be reflected in there.

Current limitations:
l The wizard cannot handle multiple bodies, domains, meshes and/or 2D configurations.
l Thin surfaces in the geometry definition cannot be managed by the wizard. These
limitations should be considered for the automatic setup procedure. However, all settings
remain available for manual modifications through the FINE™/Marine classic interface.
l Open Water applications: zero rotational speed is not possible.
l Planing regime applications:
l Importing an existing mesh is not available.
l Resistance curve automated setup is not available due to the hydrodynamic equilibrium
position recalculation for each speed since mesh generation for each computation is
needed.
l The "C- Wizard computation matrix" (p. 129) is not available in a fully automated
manner.
l C- Wizard cannot be started from a geometry in a configuration representing a
hydrodynamic equilibrium since in domhydro the dynamic parameters are computed
from a hydrostatic configuration.

In this section
3.1 Resistance application 63
3.2 Seakeeping application 79
3.3 Open water application 95
3.4 Planing regime application 107
3.5 Refinement dictionary 125
3.6 Launching C-Wizard in batch mode 128
3.7 C-Wizard computation matrix 129
3.8 Example of settings 135
3.9 Extended applications 137
3.10 Grid convergence study 147

62 FINE™/Marine 7.1 User Guide


3.1 RESISTANCE APPLICATION

3.1.1 Project management step

The first page of the C-Wizard provides the general Project management menu: here the
project directory can be specified. Selecting the Application type Resistance will provide access
to the specific parameters in accordance to this application.

FIGURE 3.1
First page of the C-Wizard mode: Selection of computation type.

It is also possible to define the Wizard units that will be used during the wizard process.

63 FINE™/Marine 7.1 User Guide


The Application type Resistance includes multi-fluid and mono-fluid computation. The mono-fluid
computation does not take into account the air part above the free surface.

3.1.2 Body configuration

The Body configuration menu has the following input data and settings available:

64 FINE™/Marine 7.1 User Guide


FIGURE 3.2
C-Wizard Part I: Body configuration menu.

l Input geometry: Parasolid/CATPart, STL/Domain or Existing mesh

The input geometry should always be defined in meters, regardless of the length unit chosen.

l If an Existing mesh is chosen, the mesh can have been built with HEXPRESS™ or
HEXPRESS™/Hybrid. In the mesh directory at least the following files should be present:
l HEXPRESS™: *.igg, *.dom and *.bcs
l HEXPRESS™/Hybrid: *.bcs, *.dom, *.igg, *.hex and *.fnmb.

Names of the external box patches should match with the CWizard standards: xmin, xmax, ymin,
ymin_SYM, ymax, zmin, zmax and cylinder_side. If they don't the user will need to correct the
external boundary conditions at the end of the C-Wizard setup.

Boundary conditions must be of the following types: EXT, SOL or MIRROR

In case of mono-fluid computation, the imported STL/Domain or Existing mesh must have been
configured for mono-fluid computation, in other words, the part above the free surface position
should have been removed.

If the imported mesh is an HEXPRESS™ mesh and it was not generated, the C-Wizard will
re-generate it at the end of the Part I. HEXPRESS™/Hybrid meshes need to be generated
before they are imported since the C-Wizard cannot re-generate them.
Half of the geometry or an entire body geometry can be used as an input here.
If the geometry name contains blank spaces, a copy of the initial geometry file will be done
into the /_mesh directory and renamed with '_' instead of a blank space.

It is possible to create the half geometry domain from the entire body geometry unless an
STL/Domain or Existing mesh was imported.

l The loaded file contains: Half body / Entire Body

65 FINE™/Marine 7.1 User Guide


Half of the geometry or an entire body geometry can be used as an input here. If the answer is
Entire Body and the Input geometry was neither an STL/Domain nor an Existing mesh, the user
is requested to decide whether the body is cut into two halves through its symmetry plane or to
maintain the entire body geometry in the next menu.
If Cut body in two (with mirror plane) is selected the mirror plane will always be placed at
Y=0.0. On the other hand if Keep entire body (no mirror plane) is selected the domain will be
centered in Y direction on the body center.
l Body configuration: Cut body in two (with mirror plane) / Keep entire body (no mirror
plane)
l Body orientationin the X and Y directions
l Is the body aligned with the Cartesian axis?: Yes / No
If the initial position of the body is not aligned with the Cartesian axis of the primary reference
frame, then the answer is No and a section called Anglesis displayed . Here any initial angle,
for instance a yaw or a pitch angle, can be defined. For more details please check the Cardan
Angles section.
l Body reference length[m, ft]: Automatic (= LOA) or User defined
l Body reference length[m, ft]: Automatic (= LOA) or User defined
It allows to specify the way the domain and the mesh setup will be defined based on the length of
the ship automatically computed by the C-Wizard, or imposed by the user and specified in the
units of the project. This choice will influence the size of the domain created and initial mesh cell
sizes.
l Initial free surface position[m, ft]: Automatic (based on body mass) or User defined Z-
coordinate
l Body mass[kg]: Automatic (based on initial free surface) or User defined
In case of mono-fluid computation, the Initial free surface position and Body mass settings
appear only for Input geometry: Parasolid/CATPart . The user is only asked to input Body
reference length and the Center of gravity: User defined.

66 FINE™/Marine 7.1 User Guide


FIGURE 3.3
C-Wizard Part I: Body configuration menu for mono-fluid computation.

In case of mono-fluid computation, if the bulbous part of the ship is very closed to the free surface
and its surface is tangent to the latter, bad quality cells might appear in that area.

l Center of gravity[m, ft]: Automatic (based on initial free surface) or User defined
l Body motion(s) to solve:
Trim/ Sinkage/ Surge: activate/deactivate
Activating motions to be solved here is equal to apply the Solved type of motion for the trim
(Ry0), sink (Tz0) and surge (Tx0) degrees of freedom in the Body motion menu. Some
explanations can also be found in the Solved Law of Motion section.
Trim (Ry0) and sink (Tz0) can not be solved for mono-fluid computation.

3.1.3 Flow definition

Clicking the Next button will switch to the page of the Flow definition menu.

67 FINE™/Marine 7.1 User Guide


FIGURE 3.4
C-Wizard Part I: Flow definition menu.

l Speed definition (positive value(s)): [m/s, kt]


Single speed and Resistance curve.

If the surge (Tx0) is solved, the user is only requested to provide an Estimated speed in Speed
definition (positive value(s)).

68 FINE™/Marine 7.1 User Guide


FIGURE 3.5
Resistance curve parameters.

Resistance curve settings can be done by activating the Resistance curve. Imposing the minimum
speed Vmin [m/s, kt] and the maximum speed Vmax [m/s, kt] will set up the range of speeds,
while the Speed Increment will define the number of computations. List of speeds is
automatically generated by pressing Enter after the Speed Increment definition. By defining the
computation profile as Successive restarts or Independent computations it is possible to restart
from the previous computation (Initial solution menu of FINE™/Marine interface) or to have
independent computations starting from the same initial value each time.

69 FINE™/Marine 7.1 User Guide


l Scale input data (Froude number similarity):
Scaling option supports the speed values and position of the free surface automated update to
ensure the Froude's similarity for the model and the full scale ship forces.

Scaling factor applied together with the Speed increment (speed definition for the Resistance
curve ) is not working in case the speed increment is not constant between speeds.

l Fluid model: Water and Air properties database


If default values are kept, the C-Wizard will use the data for the fresh water at 15 degrees.
l Shallow water (positive value): It activates the specific treatment for the mesh and flow
settings when the proximity of the bottom should be taken into account. To begin, one can
verify if the configuration is indeed a shallow water problem. According to ITTC formula,
shallow water is defined by:

with H the height of the water surface compared to the bottom, and D the draught.

FIGURE 3.6
Shallow water activation.

In case the configuration can be considered as a shallow water case, the Depth [m, ft] value
should be defined as the distance between the free surface level and the bottom location.
Any shallow water computation is strongly dependent on the turbulence modeling due to the
physics of the flow between the hull and the bottom floor, thus it should be taken into account
that the choice of turbulence model can be crucial regarding the results. It is always available
to change the default Turbulence model choice in the Flow Model Parameters menu of the
user interface. In addition, the Richardson extrapolation is not guaranteed here since the
domain size is customized by the Z-minimum value: shallow water depth.

70 FINE™/Marine 7.1 User Guide


3.1.4 Additional inputs

Clicking the Next button will switch to the page of the Additional inputs menu. These options
are not mandatory.

FIGURE 3.7
C-Wizard Part I: Additional inputs menu.

l Actuator Disk parameters:


Thrust [N], Center coordinates [m, ft] and Shaft direction (pointed to the wake)
Thickness: [m, ft]
Inner/ Outer radius: [m, ft]
Activate tangential force: Torque [N.m]

The tangential force should not be activated for a half-body computation of a single-screw ship.

Activate body self update: Frequency [Time Steps]


When Activate body self update is checked, the user can access:
l Body drag: The thrust will be updated to match the ship resistance at every body self
update frequency.

71 FINE™/Marine 7.1 User Guide


If the surge (Tx0) is solved, the Body drag option is disabled.

l Open water data: the actuator disk will use open water data to compute the actual thrust and
torque (if the tangential force is activated) during the computation, more information can be
found in "Actuator Disk" (p. 289) menu. The user is requested to input the *.dat file of the
open water values and the revolution rate.

It is possible to make a self-propulsion computation using the Open water data. The surge (Tx0)
should be solved and the rotation rate should be Imposed.

The number of actuator disks in one project is limited to 1, although it can be manually modified.

When an Actuator disk is activated the mesh is refined around it in the following way:
l A refinement sector starting 2 disk radius upstream of the disk and ending 6 disk radius
downstream is created. Its radius is 1.1 times the disk radius. Its refinement level is a
function of the disk radius and mesh density.
l A second smaller refinement sector covering exactly the disk volume is created only if
necessary to make sure there are at least 20 cells in the disk thickness.
l Drag based external force (sail, propeller, wind, etc.): Direction and Application point
coordinates [m, ft]

If the surge (Tx0) is solved, the Drag-based wrench option is disabled.

l Adaptive grid refinement on free surface (during the simulation)


This is the FINE™/Marine flow solver based option. The C-Wizard mode applies the Free
surface (directional) criterion with automatically defined parameters. Criterion description
and more details can be found in the Criterion section.

72 FINE™/Marine 7.1 User Guide


3.1.5 Mesh-setup

The C-Wizard Mesh-Setup menu provides settings to configure the domain and the mesh unless
the user has imported an existing mesh in which case this section is not accessible.
HEXPRESS™ will create them automatically respecting the geometry and input parameters
(body configuration, orientation, free surface position etc.). All the settings are driven by the type
of simulation and input provided earlier.

FIGURE 3.8
Domain Constructor and Mesh Setup menu of the C-Wizard.

73 FINE™/Marine 7.1 User Guide


l Mesh density: Coarse/Medium/Fine
Selected option creates meshes respecting the chosen density level. The refinement close to the
free surface will be increased such as the refinements on the patches of the geometry.
Available refinement decisions are summarized in the "Refinement dictionary" (p. 125).
l Extra refinement of the wave field: Yes/No
If Yes is selected an additional refinement sector will be defined in order to accurately capture
the wave system generated by the ship (in their respective Kelvin angle). Based on the
Froude's number (and wave length), the purpose of this extra refinement sector is to accurately
capture the bow wave and the wave pattern behind the ship. This option adds a significant
number of cells and should be used with caution. For resistance and motions prediction, this
option is not essential. It will however ensure a very good description of the wave field.
l Merge faces with the same name: Yes/No
It merges faces which have the same name. It supposes that the faces are correctly named with
a Computation Aided-Design software (such as Cadfix). Therefore, names should be defined
carefully in the CAD software to avoid that too many faces are merged.
l Merge tangential faces: Yes/No
It groups all faces which are contiguous and more or less tangential. A minimum angle should
be chosen. If two contiguous faces have a maximum angle between 0 and , then the faces are
grouped. This method is especially helpful when the geometry imported is a Parasolid file with
many faces. A low angle will merge more faces whereas an angle close to 180 degrees will
merge fewer faces. Each time two faces are merged, the new face gets an ID (the ID is
increment ed one by one). After that, the plugin will assign specific values according to the
name of the face: hull, deck, bow, aft, etc.

For C-Wizard projects the Merge faces with the same name option is the preferred one. It is up
to the user to define how many parts will be present in the computation by defining patch names
inside a CAD software (such as CADfix for eg.). The user will ensure that groups of patches with the
same name will be correctly defined depending on the computation specifics. Once the names are
defined, the C-Wizard will perform merging and will apply mesh parameters automatically.

l Simplify sharp angle: by defining a threshold where every lower angle will be considered as
sharp, geometry will be simplified where the sharp angle is detected. By default the Threshold
value is fixed to 10. Sharp angles in the geometry can lead to poor quality cells in the
HEXPRESS™ mesh, for instance in the area of keels, spray rails, skeg tangent to hull and etc.
This function can help, in an automated way, to preserve better mesh quality by locally
splitting and merging patches to remove the sharp angle.

74 FINE™/Marine 7.1 User Guide


FIGURE 3.9
Example of geometry before (left top), mesh (right top) and geometry after (left bottom), mesh
(right bottom) the Simplify sharp angles procedure

The free surface is refined to reach a target cell size of LOA/1000 in Z direction. The aspect ratio
of the cells is 128 and a diffusion of 4 is applied. If the mesh density is Coarse the diffusion is
reduced to 3.
l Domain size: For the Automatic it is assumed that the domain size can be defined for this
application according the Froude number (Fn) and the length overall (LOA) of the ship. Hence
default numbers are specified as:
LOABefore = 1.0
LOABehind = 3 (Fn≤1), 4 (1<Fn<1.5) or 5 (Fn≥1.5)
LOABelow = 1.5
LOAAbove = 0.5
LOASide = 2.0

In case of mono-fluid computation, if the imported STL/Domain or Existing mesh correspond to a


half-body configuration, the bounding box can not be re-scaled and the initial domain size will be
kept.

Although it is also possible to define differently with the following options:

75 FINE™/Marine 7.1 User Guide


l Define as a function of LOA : It is available here to change the C- Wizard predefined
parameters by imposing user-defined values by means of LOA.

The C-Wizard will not necessarily and precisely respect this number of user-defined LOA: the new
domain size is adjusted to exactly have LOA/1000 for the free surface refinements. Indeed, to get this
exact cell size for the free surface, the initial cell size and the domain size must be adjusted as well.

In case the Input geometry is an STL or the Domain the following option is available:
l Keep initial size: The domain size will be kept as an Input geometry and the mesh will be
recalculated considering the C-Wizard settings.

Please note that if the domain size is too small compared to the recommendations, the quality of the
solution can be affected. It is advised to use this option only for resistance and planing regime.

l Triangulation density: Coarse/Medium/Fine


Here the triangulation level for the domain can be defined. For an accurate result, the Fine
level is recommended, whereas the Medium level is usually sufficient for standard cases.
l Y+ value: Automatic / User defined

Automatic Y+ value is based on the assumption that the wall function will be used during the
computation.

Viscous layers are defined and computed for solid faces only and if the face is not called
"DECK" or "Deck" since there is usually no need to insert viscous layers on the deck of a ship
(viscous effects from the air part are negligible). The script assumes an isotropic mesh is used on
the solid walls. Hence, the height of the first Euler cell on the solid walls can be computed by the
script according to the number of refinement: , where H Euler - size of the
Euler mesh cell; H init - size of the initial mesh cell; N - the number of refinement on the face. The
number of viscous layers needed to completely fill the Euler cell is computed with an inflation
technique and a stretching ratio of 1.2.

76 FINE™/Marine 7.1 User Guide


The number of viscous layers is computed based on a theoretical formula and does not take into
account the influence from patches nearby. It is advised to let the inflation method active or to check
the number of viscous layers to insert after the optimization step.

l Refinement dictionary file (*.csv): Default/User defined


In order to specify user defined mesh parameters the User defined option must be chosen and
at this moment the user can load its own "Refinement dictionary" (p. 125) that will be used by
the C-Wizard mode.

Buffer insertion of Type II is activated by default for the edges on the Mirror plane during the
snapping step. However, HEXPRESS™ will try to respect this input but it is not guaranteed that
it will be the case after snapping. After specification of the inputs, if domain creation and
boundary conditions automatic definition are successful, it will be suggested to follow the mesh
generation or to manually check first the mesh settings.

FIGURE 3.10
C-Wizard Part I report window: Switch to the automated mesh generation.

The domain creation will not work in case the symmetry plane is not perfectly aligned with the Y
plane.

The Parasolid or CATPart geometry should not have a bounding box already included since the script
will create it automatically. However, when a STL is imported it must already have the bounding box.

For the general mesh settings, in case of Shallow water activation, mesh generation settings will
be updated accordingly to respect the water Depth and the ship wave region.
To finalize the mesh generation step, when the Manually check the mesh first has been selected,
the Start button of HEXPRESS™ will initialize the mesh generation. After the mesh is
successfully created, selecting the Go back to the project set up will proceed to the next step of
the wizard.

77 FINE™/Marine 7.1 User Guide


3.1.6 Project setup

When meshing procedures have been finalized, the project will be automatically created
respecting the previously defined parameters. It is also available in the Plugins > Predefined
menu as C-Wizard Part II.
Estimation of the hydrostatic parameters will be automatically done by 'domhydro' tool. If the
Initial free surface position was set to User defined, the following hydrostatic properties of the
body will be displayed:
l Displacement: [kg]
l Coordinates of the Center of Gravity: [m, ft]

FIGURE 3.11
C-Wizard Part II: Interface input parameters for an user defined free surface location.

However, if the Initial free surface position was set to Automatic (based on body mass), only
the estimation of the Z-coordinate of the free surface location [m, ft] will be displayed as
follows.

FIGURE 3.12
C-Wizard Part II: Interface input parameters for an automatic estimation of the free surface
location.

After confirming the Estimation of hydrostatic values, the settings of the computations will be
automatically defined. The Computations menu will be updated with the computation_ X.X
names, where X.X is the speed value.

78 FINE™/Marine 7.1 User Guide


3.2 SEAKEEPING APPLICATION

3.2.1 Project management step

The first page of the C-Wizard opens the general Project management menu.
The project name and directory must be specified first. Selecting the Application type
Seakeeping will provide access to the specific parameters in accordance to this application.
It is also possible to define the Wizard units that will be used during the wizard process.

FIGURE 3.13
First page of the C-Wizard mode: Selection of computation type.

79 FINE™/Marine 7.1 User Guide


3.2.2 Body configuration

The Body configuration menu has the following input data and settings available:

FIGURE 3.14
C-Wizard Part I: Body configuration menu.

80 FINE™/Marine 7.1 User Guide


l Input geometry: Parasolid/CATPart, STL/Domain or Existing mesh.

If the geometry name contains blank spaces, a copy of the initial geometry file will be done into
the /_mesh directory and renamed with '_' instead of a blank space.

The input geometry should always be defined in meters, regardless of the length unit chosen.

It is only possible to create an half geometry domain from an entire body geometry with Parasolid
and CATPart files but not for STL, Domain or an Existing mesh. With the last three options, it
should come already with the half of the geometry or mesh.

If an Existing mesh is chosen, the mesh should be generated beforehand with HEXPRESS™,
Autogrid5™ or HEXPRESS™/Hybrid. If the imported mesh is an HEXPRESS™ mesh and it was
not generated, the C-Wizard will re-generate it at the end of the Part I. In that cases, the following
restrictions must be followed with care:
l Names of the external box patches should match with the CWizard standards: xmin, xmax,
ymin, ymin_SYM, ymax, zmin, zmax and cylinder_side.
l Boundary conditions must be of the following types: EXT, SOL or MIRROR.

l Once the input file is loaded, the following question appears: The loaded file contains: Half
body or Entire body.
Half of the geometry or an entire body geometry can be used as an input. If the answer is
No and the Input geometry was neither an STL/Domain nor an Existing mesh, the user is
requested to decide whether the body is cut into two halves through its symmetry plane or to
maintain the entire body geometry in the next menu (Body configuration). If Cut body in
two (with mirror plane) is selected the mirror plane will always be placed at Y=0.0. On the
other hand if Keep entire body (no mirror plane) is selected the domain will be centered in
Y-direction on the body center.
l Body orientation the direction of the ship is requested here. If the ship goes to the X-
direction, the option Positive X-axis should be selected, otherwise, Negative X-axis is the
option to select. In case, the half body is selected, the option to select the side of the ship to
keep is requested. Positive Y-axis or Negative Y-axis must be chosen.
l Is the body aligned with the Cartesian axis?Yes / No

81 FINE™/Marine 7.1 User Guide


If the initial position of the body is not aligned with the Cartesian axis of the primary reference
frame, then the answer is No and a section called Anglesis displayed. Here any initial angle,
for instance a yaw or a pitch angle, can be defined. For more details please check the Cardan
Angles section.
l Body reference length[m, ft]: Automatic (= LOA) or User defined
It allows to specify the way the domain and the mesh setup will be defined based on the length
of the ship automatically computed by the C-Wizard, or imposed by the user and specified in
the units of the project. This choice will influence the size of the domain created and initial
mesh cell sizes.
l Initial free surface position[m, ft]: Automatic (based on body mass) or User defined Z-
coordinate
l Body mass[kg]: Automatic (based on initial free surface) or User defined
l Center of gravity[m, ft]: Automatic (based on initial free surface) or User defined where
the X, Y and Z coordinates are requested.
l Body motion(s) to solve: Trim / Sinkage / Surge
Activating motions to be solved here is equal to applying the Solved type of motion for the trim
(Ry0), sinkage (Tz0) and/or surge (Tx) degrees of freedom in the Body motion menu. Some
explanations can also be found in the Solved Law of Motion section.

3.2.3 Flow definition

Clicking the Next button will switch to the page of the Flow definition menu.

82 FINE™/Marine 7.1 User Guide


FIGURE 3.15
Flow definition menu for a seakeeping application.

83 FINE™/Marine 7.1 User Guide


l Speed definition (positive value(s)): [m/s, kt]
Single speed and Resistance curve.

FIGURE 3.16
Resistance curve parameters.

Resistance curve settings can be done by activating the Resistance curve . Imposing the
minimum speed Vmin [m/ s, kt] and the maximum speed Vmax [m/s, kt] will set up the range
of speeds, while the Speed Increment will define the number of computations. List of speeds
is automatically generated by pressing Enter after the Speed Increment definition. By
defining the computation profile as Successive restarts or Independent computations it is
possible to restart from the previous computation (Initial solution menu of FINE™/Marine
interface) or to have independent computations starting from the same initial value each time.
l Scale input data (Froude number similarity):
Scaling option supports the speed values and position of the free surface automated update to
ensure the Froude's similarity for the model and the full scale ship forces.

Scaling factor applied together with the Speed increment (speed definition for the Resistance
curve) is not working in case the speed increment is not constant between speeds.

l Fluid model: Water and Air properties database


If default values are kept, the C-Wizard will use the data for the fresh water at 15 degrees.
l Wave generator:
The wave period and the wave height are requested as well as the wave encounter angle. This
angle corresponds to the wave angle compared the ship direction (being X-positive). The
illustration is provided as a reference and it is coming from ITTC procedures.

84 FINE™/Marine 7.1 User Guide


FIGURE 3.17
Resistance curve parameters.

Number of Lref resolved behind the body: defines the length of the domain in X direction
and takes Lref =max(LOA, wave length).
Number of wave periods to encounter: defines the duration of the calculation. The C-
Wizard will automatically computes the number of time steps to perform so that the ship will
meet this prescribed number of waves. 15 waves are requested by default to ensure that 10
fully developed waves are encountered (following ITTC recommendations). The following
output is printed in the terminal while the C-Wizard is building the mesh and project setup:
> Automatic computation of the number of time steps:
> Encounter period: 9.382
------------------------------------------------------------------
> Physical time before encountering the first wave: 29.305 sec
> Physical time needed to encounter 15 waves: 170.031 sec
------------------------------------------------------------------
> Time step: 0.00343494715192 sec
> Total number of time steps needed: 49501

85 FINE™/Marine 7.1 User Guide


In order to simulate the ship motion in oblique waves, the wave direction is transformed into an
equivalent ship yaw angle. Therefore, the ship has advancing speed in both Tx and Ty and the
wave system is aligned with the Cartesian axis of the primary reference frame.

The "Wave generation info" (p. 38) plugin is also available here.

Zero speed case

If the body has zero advancing speed (Single speed = 0.0) a special setup is prepared to minimize
the impact of waves reflection from the body reaching back the wave generator. In such case, an
internal wave generator is used instead of the boundary condition wave generator. The domain
size is defined according to the guidelines described in the FAQ Wave generation and damping
guidelines. Two damping areas are created, one upstream of the internal wave generator and one
near the outlet.
The reference speed used in the solver setup is the wave celerity.

Speed = 0.0 is only possible with single speed, not in a Resistance curve.

Shallow water (positive value): it activates the specific treatment for the mesh and flow settings
when the proximity of the bottom should be taken into account. To begin, one can verify if the
configuration is indeed a shallow water problem. According to ITTC formula, shallow water is
defined by:

with H the height of the water surface compared to the bottom, and D the draught.

FIGURE 3.18
Shallow water activation.

In case the configuration can be considered as a shallow water case, the Depth [m, ft] value
should be defined as the distance between the free surface level and the bottom location.

86 FINE™/Marine 7.1 User Guide


Any shallow water computation is strongly dependent on the turbulence modeling due to the
physics of the flow between the hull and the bottom floor, thus it should be taken into account that
the choice of turbulence model can be crucial regarding the results. It is always available to
change the default Turbulence model choice in the Flow Model Parameters menu of the user
interface. In addition, the Richardson extrapolation is not guaranteed here since the domain size is
customized by the Z-minimum value: shallow water depth.

3.2.4 Additional input

Clicking the Next button will switch to the page of the Additional inputs menu. These options
are not mandatory.

FIGURE 3.19
C-Wizard Part I: Additional inputs menu

l Actuator Disk parameters: 


Thrust [N], Center coordinates [m, ft] and Shaft direction (pointed to the wake)
Thickness: [m, ft]
Inner/Outer radius: [m, ft]
Activate tangential forces: Torque [N.m]
Activate body self update: Frequency [Time Steps]

87 FINE™/Marine 7.1 User Guide


The number of actuator disks in one project is limited to 1, although it can be manually modified
manually.

When an Actuator disk is activated the mesh is refined around it in the following way:
l A refinement sector starting 2 disk radius upstream of the disk and ending 6 disk radius
downstream is created. Its radius is 1.1 times the disk radius. Its refinement level is a
function of the disk radius and mesh density.
l A second smaller refinement sector covering exactly the disk volume is created only if
necessary to make sure there are at least 20 cells in the disk thickness.
l Drag based external force (sail, propeller, wind, etc.): Direction and Application point
coordinates [m, ft]
l Adaptive Grid Refinement on free surface (during the simulation)
This is the FINE™/Marine flow solver based option. The C-Wizard mode applies the Free
surface (directional) criterion with automatically defined parameters. Criterion description
and more details can be found in the Criterion section.

3.2.5 Mesh setup

The C-Wizard Mesh Setup menu provides settings to configure the domain and the mesh unless
the user has imported an existing mesh in which case this section is not accessible.
HEXPRESS™ will create them automatically respecting the geometry and input parameters
(body configuration, orientation, free surface position etc.). All the settings are driven by the type
of simulation and input provided earlier.

88 FINE™/Marine 7.1 User Guide


FIGURE 3.20
Domain Constructor and Mesh Setup menu of the C-Wizard.

l Mesh density: Coarse/Medium/Fine


Selected option creates meshes respecting the chosen density level. The refinement close to the
free surface will be increased such as the refinements on the patches of the geometry.
Available refinement decisions are summarized in the "Refinement dictionary" (p. 125).
l Merge faces with the same name: Yes/No
It merges faces which have the same name. It supposes that the faces are correctly named with
Computation Aided-Design software (such as Cadfix). Therefore, names should be defined
carefully in the CAD software to avoid that too many faces are merged.

89 FINE™/Marine 7.1 User Guide


l Merge tangential faces: Yes/No
It groups all faces which are contiguous and more or less tangential. A minimum angle should
be chosen. If two contiguous faces have a maximum angle between 0 and α, then the faces are
grouped. This method is especially helpful when the geometry imported is a Parasolid file with
many faces. A low angle will merge more faces whereas an angle close to 180 degrees will
merge fewer faces. Each time two faces are merged, the new face gets an ID (the ID is
increment ed one by one). After that, the plugin will assign specific values according to the
name of the face: hull, deck, bow, aft, etc.

For C-Wizard projects the Merge faces with the same name option is the preferred one. It is up
to the user to define how many parts will be present in the computation by defining patch names
inside a CAD software (such as CADfix for eg.). The user will ensure that the groups of patches with
the same name will be correctly defined depending on the computation specifics. Once the names are
defined, the C-Wizard will perform merging and will apply mesh parameters automatically.

Several advanced parameters are available and described here below:


l Simplify sharp angle: by defining a threshold where every lower angle will be considered as
sharp, geometry will be simplified where the sharp angle is detected. By default the Treshold
value is fixed to 10. Sharp angles in the geometry can lead to poor quality cells in the
HEXPRESS™ mesh, for instance in the area of keels, spray rails, skeg tangent to hull and etc.
This function can help, in an automated way, to preserve better mesh quality by locally
splitting and merging patches to remove the sharp angle.

90 FINE™/Marine 7.1 User Guide


FIGURE 3.21
Example of geometry before (left top), mesh (right top) and geometry after (left bottom), mesh
(right bottom) the Simplify sharp angles procedure

Domain size: For the Automatic option, the domain size and meshing strategy for the waves is
defined according the guidelines in Wave generation and damping guidelines , Boundary
condition wave generator section. These guidelines consider not only the length overall (LOA) of
the ship but also the wave characteristics.
Although it is also possible to define differently with the following options:
l Define as a function of LOA : It is available here to change the C- Wizard predefined
parameters by imposing user-defined values by means of LOA.

The C- Wizard will not necessarily and precisely respect this number of user- defined LOA: the
new domain size is adjusted to exactly have LOA/1000 for the free surface refinements. Indeed, to
get this exact cell size for the free surface, the initial cell size and the domain size must be
adjusted as well.

In case the Input geometry is an STL or the Domain the following option is available:
l Keep initial size: The domain size will be kept as an Input geometry and the mesh will be
recalculated considering the C-Wizard settings.

Please note that if the domain size is too small, compared to the ex recommendations, the quality
of the solution can be affected, so that the Internal wave generator will be placed not respecting
the existing recommendations.

l Triangulation density: Coarse/Medium/Fine


Here the triangulation level for the domain can be defined. For an accurate result, the Fine
level is recommended, whereas the Medium level is usually sufficient enough for standard
cases.
l Y+ value: Automatic / User defined
l Y+ value: Automatic / User defined

91 FINE™/Marine 7.1 User Guide


Automatic Y+ value is based on the assumption that the wall function will be used during the
computation.

Viscous layers are defined and computed for solid faces only and if the face is not called
"DECK" or "Deck" since there is usually no need to insert viscous layers on the deck of a ship
(viscous effects from the air part are negligible). The script assumes an isotropic mesh is used on
the solid walls. Hence, the height of the first Euler cell on the solid walls can be computed by the
script according to the number of refinements:

where:
l HEuler: size of the Euler mesh cell;
l Hinit: size of the initial mesh cell;
l N: the number of refinement on the face. The number of viscous layers needed to completely
fill the Euler cell is computed with an inflation technique and a stretching ratio of 1.2.

The number of viscous layers is computed based on a theoretical formula and does not take into
account the influence from patches nearby. It is advised to let the inflation method active or to check
the number of viscous layers to insert after the optimization step.

l Refinement dictionary file (*.csv): Default/User defined


In order to specify user defined mesh parameters the User defined option must be chosen and at
this moment the user can load its own "Refinement dictionary" (p. 125) that will be used by the
C-Wizard mode.

Buffer insertion of Type II is activated by default for the edges on the Mirror plane during the
snapping step. However, HEXPRESS™ will try to respect this input but it is not guaranteed that
it will be the case after snapping. After specification of the inputs, if domain creation and
automatic boundary conditions definition are successful, it will be suggested to follow the mesh
generation or to manually check first the mesh settings.

92 FINE™/Marine 7.1 User Guide


FIGURE 3.22
C-Wizard Part I report window: Switch to the automated mesh generation.

The domain creation will not work in case the symmetry plane is not perfectly aligned with the Y
plane.

The Parasolid or CATPart geometry should not have a bounding box already included since the script
will create it automatically. However, when a STL is imported it must already have the bounding box.

For the general mesh settings, in case of Shallow water activation, mesh generation settings will
be updated accordingly to respect the water Depth and the ship wave region.
To finalize the mesh generation step, when the Manually check the mesh first has been selected,
the Start button of HEXPRESS™ will initialize the mesh generation. After the mesh is
successfully created, selecting the Go back to the project set up will proceed to the next step of
the wizard.

3.2.6 Project setup

When meshing procedures has been finalized, the project will be automatically created respecting
the previously defined parameters. It is also available in the Plugins > Predefined menu as C-
Wizard Part II.
Estimation of the hydrostatic parameters will be automatically done by the domhydro tool. If the
Initial free surface position was set to User defined, the following hydrostatic properties of the
body will be displayed:
l Displacement: [kg]
l Coordinates of the Center of Gravity: [m, ft]
And the estimated inertia matrix as well, but the user can still edit the values since they have to be
as accurate as possible for a good added resistance calculation.
l Estimated inertia matrix: [kg/m²]

93 FINE™/Marine 7.1 User Guide


FIGURE 3.23
C-Wizard Part II: Interface input parameters for an user defined free surface location.

However, if the Initial free surface position was set to Automatic (based on body mass), only
the estimation of the Z-coordinate of the free surface location[m, ft] and the Estimated inertia
matrix[kg/m²] will be displayed as follows.

FIGURE 3.24
C-Wizard Part II: Interface input parameters for an automatic estimation of the free surface
location.

Components of the inertia matrix (moments and products) are defined at the center of gravity of
the body in the reference frame.
After confirming the Estimation of hydrostatic values, the settings of the computations will be
automatically defined. The Computations menu will be updated with the computation_ X.X
names, where X.X is the speed value.

94 FINE™/Marine 7.1 User Guide


3.3 OPEN WATER APPLICATION

3.3.1 Project management step

The first page of the C-Wizard provides the general Project management menu. First, the
project must be created using the Create project button and by defining the working directory.
l Application: type Open water will provide access to the specific parameters in accordance to
this application.
l Fluid model: only Mono-fluid model is available as only the propeller is modeled during an
open water simulation.

95 FINE™/Marine 7.1 User Guide


FIGURE 3.25
Project management menu

l Wizard units: unit definition of the wizard process.

The input geometry should always be defined in meters, regardless of the length unit chosen.

96 FINE™/Marine 7.1 User Guide


3.3.2 Body configuration

The Body configuration menu has the following input data and available settings:

FIGURE 3.26
Body configuration menu

l Input geometry: Parasolid/CATPart, STL/Domain or Existing mesh

The mesh can be generated using HEXPRESS™ or HEXPRESS™/Hybrid and imported in the C-
wizard with the Existing mesh option. The following recommendations have to be followed:

97 FINE™/Marine 7.1 User Guide


l At least the following files should be present in the mesh directory:
o HEXPRESS™: *.igg, *.dom and *.bcs
o HEXPRESS™/Hybrid: *.bcs, *.dom, *.igg, *.hex and *.fnmb.
l Names of the external box patches should match with the C-Wizard standards: xmin, xmax, ymin,
ymin_SYM, ymax, zmin, zmax and cylinder_side.
l Boundary conditions must be of the following types: EXT, SOL or MIR.

If the imported mesh is an HEXPRESS™ mesh and it was not generated, the C-Wizard will re-
generate it at the end of the Part I. HEXPRESS™/Hybrid and AutoGrid5™ meshes need to be
generated before they are imported since the C-Wizard cannot re-generate them.
If the geometry name contains blank spaces, a copy of the initial geometry file will be done into
the /_mesh directory and renamed with '_' instead of a blank space.

For an open water computation the shaft must be included into the geometry unless a STL/Domain or
an Existing mesh is imported.

l Fluid orientation (inlet to propeller): Positive/Negative X-axis


It defines the direction of the flow when looking at the propeller from the astern direction.
l Sense of rotation of the propeller: Counter clockwise or clockwise direction of rotation
The propeller rotation can be defined from Y-axis to Z-axis and reversed direction.

When viewing a propeller from astern, the leading edges of the blades will always be farther away
from the viewer than the trailing edges. For instance, the propeller rotates clockwise, and is right-
handed, if the leading edges are on the right.

l Center of the propeller (propeller frame): Automatic/User-defined


If the propeller center is not known by the user, its coordinates will be automatically computed
within the C-Wizard process.

98 FINE™/Marine 7.1 User Guide


l Is the body aligned with the X-axis: Yes/ No.

If the propeller is not aligned with the X-axis, two other angles have to be defined:

l Reference length definition: Automatic (= Radius)/User defined


It allows to define the reference length of the propeller, either automatically computed by the C-
Wizard as the propeller radius or imposed by the user in [m, ft]. This choice will influence the size
of the domain and initial cell sizes.

3.3.3 Flow definition

Clicking the Next button will switch to the page of the Flow definition menu.

99 FINE™/Marine 7.1 User Guide


FIGURE 3.27
Flow definition menu

l Rotational speed definition [rpm, rad/s]:

FIGURE 3.28
Performance curve parameters

100 FINE™/Marine 7.1 User Guide


Multiple computations can be defined by activating the Performance curve option. Imposing the
minimum rotational speed Vmin [rad/s; rpm] and the maximum rotational speed Vmax [rad/s;
rpm] will set up the range of speeds, while the Speed Increment will define the number of
computations created. A list of speeds is automatically generated by pressing <Enter> after
defining the Speed Increment.
l Flow speed definition (positive value, from the inlet)[m/s, kt]:
General flow initialization value
l Scale input data (Reynolds number similarity):
Scaling option supports the speed values to ensure the Reynolds's number similarity between the
model and the full scale propeller.
l Fluid model: Water properties database
Open water computation implies the mono- fluid flow model thus only Water database is
available here.
Clicking the Next button will switch to the page of the Additional inputs menu:

FIGURE 3.29
Additional inputs menu

Here no extra data should be provided, thus to define the mesh parameters, press the Next button.

3.3.4 Mesh setup

The C-Wizard Mesh Set-up menu provides settings to configure the domain and mesh unless the
user has imported an existing mesh in which case this section is not accessible. HEXPRESS™
will create them automatically respecting the geometry and input parameters (body configuration,
orientation etc.). All the settings are driven by the type of simulation and inputs provided earlier.

101 FINE™/Marine 7.1 User Guide


FIGURE 3.30
Mesh Set-up menu

l Mesh density: Coarse/ Medium/ Fine


Selected option creates meshes respecting the chosen density level. Available refinement
decisions are summarized in the "Refinement dictionary" (p. 125).
l Extra refinement of the wake field: Yes/ No
If Yes is selected, an additional refinement area capturing the zone of the wake flow field behind
the propeller will be defined. Based on the propeller diameter and a maximum refinement level of
8 for all of the Mesh density levels, it supports better hydrodynamic performance predictions with
higher accuracy. Although this option adds a significant number of cells and should be used with
caution.

102 FINE™/Marine 7.1 User Guide


l Merge faces with the same name: Yes/ No
It merges faces which have the same name. It supposes that the faces are correctly named with a
Computation Aided- Design software (such as Cadfix). Therefore, names should be defined
carefully in the CAD software to avoid that too many faces are merged.
l Merge tangential faces: Yes/No
It groups all faces which are contiguous and more or less tangential. A minimum angle should be
chosen. If two contiguous faces have a maximum angle between 0 and α, then the faces are
grouped. This method is especially helpful when the geometry imported is a Parasolid file with
many faces. A low angle will merge more faces whereas an angle close to 180 degrees will merge
fewer faces. Each time two faces are merged, the new face gets an ID (the ID is incremented one
by one). After that, the plugin will assign specific values according to the name of the face: hull,
deck, bow, aft, etc.

For C-Wizard projects the Merge faces with the same name option is the preferred one. It is up to
the user to define how many parts will be present in the computation by defining patch names inside
a CAD software (such as CADfix for example). The user will ensure that the groups of patches with
the same name will be correctly defined depending on the computation specifics. Once the names are
defined, the C-Wizard will perform merging and will apply mesh parameters automatically.

l Simplify sharp angle: by defining a threshold where every lower angle will be considered as
sharp, geometry will be simplified where the sharp angle is detected. By default the Treshold
value is fixed to 10. Sharp angles in the geometry can lead to poor quality cells in the
HEXPRESS™ mesh, for instance in the area thin surfaces. This function can help, in an
automated way, to preserve better mesh quality by locally splitting and merging patches to
remove the sharp angle.

103 FINE™/Marine 7.1 User Guide


FIGURE 3.31
Example of geometry before (left top), mesh (right top) and geometry after (left bottom), mesh
(right bottom) the Simplify sharp angles procedure

l Domain size:
o Automatic : the domain size is defined according to the propeller radius R (R is
automatically computed by the C-Wizard). Hence the automatic domain dimensions are
specified as:
n Lupstream = 4R: number of propeller radius applied upstream the flow direction (in front
of the propeller).
n L downstream = 12R: number of propeller radius applied downstream the flow direction
(behind the propeller).
n L side = 6R: number of propeller radius on the sides of the propeller across the flow to
create the cylindrical domain.

If Vinlet = 0 ("Bollard pull" condition), Lupstream = Ldownstream =16R; Lside = 12R.

o Define as a function of propeller radius: it is available here to change the C-Wizard


predefined parameters by imposing user-defined values by means of R.

104 FINE™/Marine 7.1 User Guide


o Keep initial size(in case of STL/Domain input geometry): the domain size will be kept as
an Input geometry and the mesh will be recalculated considering the C-Wizard settings.

Please note that if the domain size is too small, compared to the previous recommendations,
the quality of the solution can be affected.

l Triangulation density: Coarse/Medium/Fine


Here the triangulation level for the domain can be defined. For an accurate result, the Fine level is
recommended, whereas the Medium level is usually sufficient for standard cases.
l Y+ value: Automatic / User defined

Automatic Y+ value is based on the assumption that wall function will be used during the
computation.

Viscous layers are defined and computed for solid faces only. The script assumes an isotropic
mesh is used on the solid walls. Hence, the height of the first Euler cell on the solid walls can be
computed by the script according to the number of refinement: , where
H Euler - size of the Euler mesh cell; H init - size of the initial mesh cell; N - the number of
refinement on the face. The number of viscous layers needed to completely fill the Euler cell is
computed with an inflation technique and a stretching ratio of 1.2.

The number of viscous layers is computed based on a theoretical formula and does not take into
account the influence from patches nearby. It is advised to let the inflation method active or to check
the number of viscous layers to insert after the optimization step.

l Refinement dictionary file (*.csv): Default/User defined


In order to specify user defined mesh parameters the User defined option must be chosen and at
this moment the user can load its own "Refinement dictionary" (p. 125) that will be used by the
C-Wizard mode.

105 FINE™/Marine 7.1 User Guide


Buffer insertion of Type II is activated by default for the edges on the mirror plane during the
snapping step. However, HEXPRESS™ will try to respect this input but it is not guaranteed that
it will be the case after snapping. After specification of the inputs, if domain creation and
automatic boundary conditions definition are successful, it will be suggested to follow the mesh
generation or to manually check first the mesh settings.

FIGURE 3.32
C-Wizard Part I report window: Switch to the automated mesh generation.

The Parasolid or CATPart geometry should not have a bounding cylinder already included since the
script will create it automatically . However, when a STL is imported it must already have the
bounding cylinder.

To finalize the mesh generation step, when the Manually check the mesh first has been selected,
the Start button of HEXPRESS™ will initialize the mesh generation. After the mesh is
successfully created, selecting the Go back to the project set upwill proceed to the next step of
the wizard.

3.3.5 Project setup

When meshing procedures have been finalized, the project will be automatically created
respecting the previously defined parameters. The Computations menu will be updated with the
computation_X.X names, where X.X is the rotational speed value.
The flow reference velocity used to define the Time step value parameter is computed considering
not only the Flow speed but also the Rotational speed of the propeller. This reference value is
also used to compute the first layer thickness for a given Y+ during the viscous layer insertion in
HEXPRESS™ and the Reynolds number in the Flow model menu of FINE™/Marine.
In case of computing the Performance curve of the propeller, the first layer thickness is
estimated considering only the maximum Rotational speed of the propeller. However, the
reference velocity to define the Reynolds number in the Flow model menu for each computation
will consider its corresponding Rotational speed.

106 FINE™/Marine 7.1 User Guide


A body Propeller will be created with all solid patches. If patches containing duct in their name a
second body Duct will be created. The body Propeller will have an imposed rotation, while Duct
will remain fixed. Note that all elements in the geometry should have rotational symmetry.
The body propeller will have sub-bodies Shaft (containing patches with shaft, hub or cap in their
names) and Blades (containing patches with blade, pressure_side, suction_side, leading_edge,
trailing_edge, tip or anti_singing_edge in their names).
Details can be also found in:
Dominic A. Hudson Anthony F. Molland, Stephen R. Turnock. Ship resistance and propulsion.
Practical estimation of ship propulsive power. Cambridge University Press, 2011.

3.4 PLANING REGIME APPLICATION

3.4.1 Project management step

The first page of the C-Wizard provides the general Project management menu: here the
project directory can be specified. Selecting the Application type Planning regime will provide
access to the specific parameters in accordance to this application, which will allow to estimate the
final position of the hull using the Savitsky prediction method or by prescribing a User-defined
estimated position, in addition to a classic Resistance application.

107 FINE™/Marine 7.1 User Guide


FIGURE 3.33
First page of the C-Wizard mode: Selection of computation type

It is also possible to define the Wizard units that will be used during the wizard process.

The input geometry should always be defined in meters, regardless of the length unit chosen.

3.4.2 Body configuration

Body configuration menu has the following input data and settings available:

108 FINE™/Marine 7.1 User Guide


FIGURE 3.34
Body configuration menu

l Input geometry: Parasolid/CATPart or STL/Domain

Import an Existing mesh is not available for this application.

109 FINE™/Marine 7.1 User Guide


This application should be used with symmetric geometries (half or entire body) as the Savitsky
empirical formula has been developed using symmetric hulls. The geometry must also be aligned with
the Cartesian axis.

Half or entire body geometry can be used here as an input.


If the geometry name contains blank spaces, a copy of the initial geometry file will be done into
the /_mesh directory and renamed with '_' instead of a blank space.

It is possible to create the half geometry domain from the entire body geometry unless an
STL/Domain was imported.

l The loaded file contains: Half body / Entire body


If the answer is Entire body the user is requested to decide whether the body has to be cut into
two halves through its symmetry plane or to maintain the entire body geometry in the next menu:

FIGURE 3.35
Cut body menu

If Cut body in two (with mirror plane) is selected the mirror plane will always be placed at
Y=0.0. On the other hand if Keep entire body (no mirror plane) is selected the domain will be
centered in Y direction on the body center.
l Body configuration: Cut body in two (with mirror plane) / Keep entire body (no mirror plane)
l Body orientation: Positive or negative along the X and Y-directions
l Is the body aligned with the Cartesian axis?: Only the option Yesis available
l Body reference length[m, ft]: Automatic (= LOA) or User defined
It allows to specify the way the domain and the mesh setup will be defined based on the length of
the ship automatically computed by the C-Wizard, or imposed by the user and specified in the
units of the project. This choice will influence the size of the domain created and initial mesh cell
sizes.
l Initial free surface position[m, ft]: Only the option User defined is available
l Body mass[kg]: Only the option User defined is available
l Center of gravity[m, ft]: Only the option User defined is available
l Body motion(s) to solve: Trim/Sinkagecan be activated or deactivated

110 FINE™/Marine 7.1 User Guide


Activating motions to be solved here is equal to applying the Solved type of motion for the trim
(Ry0) and sink (Tz0) degrees of freedom in the Body motion menu. Some explanations can also
be found in the Solved Law of Motion section.

Final position estimation

Savitsky prediction method

The Savitsky method is known as a resistance prediction method for prismatic planing hulls.
Generally speaking and based on the input information provided, the C-Wizard mode with the use
of the Savitsky prediction method will estimate the planing hull final position for the given speed.
If the Savitsky prediction method requirements are not respected by the computation conditions,
information will be provided at the end of the setup. With the suggestion given, conditions could
be modified to meet the requirements.

Please, note that the Savitsky prediction method has been created for prismatic hull shapes. According
to this, the accuracy of the prediction cannot be guaranteed for other hull shapes. Here, the classic
approach suggested in "High Froude number ship motion (solved trim and sink study)" (p. 259)is
recommended to be used.

FIGURE 3.36
Input parameters for the Savitsky prediction method

These values should be entered for the ship in the initial hydrostatic position.
l Hull characteristics:
l b[m, ft]: beam of the hull;
l beta[deg, rad]: deadrise angle of the hull.
l Engine characteristics:
l f[m, ft]: distance of thrust line to the CoG;
l epsilon[deg, rad]: an angle between the bottom line and the thrust line.

111 FINE™/Marine 7.1 User Guide


l Advanced:
l Predicted Pitch Correction[%]: modifies the prediction
Savitsky prediction method is known to give an over estimation of trim values, hence in the C-
Wizard mode the Predicted Pitch Correction option allows to correct the estimation.

By clicking the Illustration button, a picture illustrating the described parameters will become
available:

FIGURE 3.37
Savitsky parameter illustration

More details can be also found in:


D. Savitsky, "Hydrodynamic Design of Planing Hulls", 1964

112 FINE™/Marine 7.1 User Guide


Please note, that the initial position of CoG and Cardan angles will be updated in the .input file with
respect to Savitsky predictions.

User-defined position

If an estimation of the final position of the boat is known, the C-Wizard will directly move the
planing hull in this position.

FIGURE 3.38
Input parameters for the user-defined position method

These values should be entered relatively to the ship in its initial hydrostatic position:
l Sinkage: the value should be positive if the boat goes down and negative if the boat goes up.
l Trim: the trim value is the rotation around the CoG along the Y-axis

The rotation center used to apply the trim is the Center of Gravity defined in hydrostatic position
(before applying the sinkage).

3.4.3 Flow definition

Clicking the Next button will switch to the page of the Flow definition menu.

113 FINE™/Marine 7.1 User Guide


FIGURE 3.39
Flow definition menu

l Speed definition (positive value(s)) [m/s, kt]:


If Resistance curve is chosen the Savitsky prediction will be run for each speed giving one
predicted trim angle and sinkage per speed. The hull will be placed in the median trim and
sinkage among the results. Body motion initial conditions will be used to put the hull in the initial
position for each speed. In this case the free surface will not be meshed in HEXPRESS™, but
Adaptive grid refinement will be used to refine it during the computation. This allows to change
the position of the hull without deforming the free surface refinement.
The savitsky.output file created in the project folder will contain the Savitsky prediction results for
each speed.

If the user is working in batch mode it is possible to choose if the different speeds of the resistance

114 FINE™/Marine 7.1 User Guide


curve are set up in a single project (single mesh) or in separate projects.
*
*** SPEED DEFINITION
* List of speeds
7.0
* Single mesh for all speeds 1= YES/0 = NO
0
*

 When working from the graphical interface single mesh is used by default to have one single
project.
l Scale input data: Activate - Scaling factor
Scaling option supports the speed values and position of the free surface automated update to
ensure the Froude's similarity for the model and the full scale ship forces.
l Fluid properties: Water and Air properties database
If nothing has been changed, C-Wizard will use the data for the fresh water at 15 degrees.
l Shallow water: It activates the specific treatment for the mesh and flow settings when the
proximity of the bottom should be taken into account. To begin, one can verify if the
configuration is indeed a shallow water problem. According to ITTC formula, shallow water is
defined by:

with H the height of the water surface compared to the bottom, and D the draught.

FIGURE 3.40
Shallow water activation

In case the configuration can be considered as a shallow water case, the Depth [m, ft] value
should be defined as the distance between the free surface level and the bottom location.

115 FINE™/Marine 7.1 User Guide


Any shallow water computation is strongly dependent on the turbulence modeling due to the
physics of the flow between the hull and the bottom floor, thus it should be taken into account that
the choice of turbulence model can be crucial regarding the results. It is always available to
change the default Turbulence model choice in the Flow Model Parameters menu of the user
interface. In addition, the Richardson extrapolation is not guaranteed here since the domain size is
customized by the Z-minimum value: shallow water depth.

3.4.4 Additional inputs

Clicking the Next button will switch to the page of the Additional inputs menu. These options
are not mandatory.

FIGURE 3.41
Additional inputs menu

l Actuator Disk parameters:


Thrust [N], Center coordinates [m, ft] and Shaft direction (pointed to the wake)
Thickness: [m, ft]
Inner/Outer radius: [m, ft]
Activate tangential forces: Torque [N.m]
Activate body self update: Frequency [Time Steps]

116 FINE™/Marine 7.1 User Guide


The number of actuator disks in one project is limited to 1, although it can be manually modified.

When an Actuator disk is activated the mesh is refined around it in the following way:
l A refinement sector starting 2 disk radius upstream of the disk and ending 6 disk radius
downstream is created. Its radius is 1.1 times the disk radius. Its refinement level is a
function of the disk radius and mesh density.
l A second smaller refinement sector covering exactly the disk volume is created only if
necessary to make sure there are at least 20 cells in the disk thickness.
l Drag based external force (sail, propeller, wind, etc.): Direction and Application point
coordinates [m, ft]
l Adaptive grid refinement on free surface
This is the FINE™/Marine flow solver based option. The C-Wizard mode applies the Free
surface (directional) criterion with automatically defined parameters. Criterion description and
more details can be found in the Criterion section.

3.4.5 Mesh setup

The C- Wizard Mesh Setup menu provides settings to configure the domain and mesh.
HEXPRESS™ will create them automatically respecting the geometry and input parameters
(body configuration, orientation, free surface position and etc.). All the settings are driven by the
type of simulation and input provided earlier.

117 FINE™/Marine 7.1 User Guide


FIGURE 3.42
Mesh Setup menu

l Mesh density: Coarse/Medium/Fine


Selected option creates meshes respecting the chosen density level. The refinement close to the
free surface will be increased such as the refinements on the patches of the geometry. Available
refinement decisions are summarized in the "Refinement dictionary" (p. 125). All the levels
support the mesh dependency studies based on the Richardson extrapolation method.
l Extra refinement of the wave field: Yes/No

118 FINE™/Marine 7.1 User Guide


If Yes is selected an additional refinement sector will be defined in order to accurately capture the
wave system generated by the ship (in their respective Kelvin angle). Based on the Froude's
number (and wave length), the purpose of this extra refinement sector is to accurately capture the
bow wave and the wave pattern behind the ship. This option adds a significant number of cells
and should be used with caution. For resistance and motions prediction, this option is not
essential. It will however ensure a very good description of the wave field.
l Merge faces with the same name: Yes/No
It merges faces which have the same name. It supposes that the faces are correctly named with a
Computation Aided- Design software (such as Cadfix). Therefore, names should be defined
carefully in the CAD software to avoid that too many faces are merged.
l Merge tangential faces: Yes/No
Groups all faces which are contiguous and more or less tangential. A minimum angle should be
chosen. If two contiguous faces have a maximum angle between 0 and α, then the faces are
grouped. This method is especially helpful when the geometry imported is a Parasolid file with
many faces. A low angle will merge more faces whereas an angle close to 180 degrees will merge
fewer faces. Each time two faces are merged, the new face gets an ID (the ID is increment ed one
by one). After that, the plugin will assign specific values according to the name of the face: hull,
deck, bow, aft, etc.

For C-Wizard projects the Merge faces with the same name option is the preferred one. It is up to
the user to define how many parts will be present in the computation by defining patch names inside
a CAD software (such as CADfix for eg.). The user will ensure that the groups of patches with the
same name will be correctly defined depending on the computation specifics. Once the names are
defined, the C-Wizard will perform merging and will apply mesh parameters automatically.

l Simplify sharp angle: by defining a threshold where every lower angle will be considered as
sharp, geometry will be simplified where the sharp angle is detected. By default the Treshold
value is fixed to 10. Sharp angles in the geometry can lead to poor quality cells in the
HEXPRESS™ mesh, for instance in the area of keels, spray rails, skeg tangent to hull and etc.
This function can help, in an automated way, to preserve better mesh quality by locally
splitting and merging patches to remove the sharp angle.

119 FINE™/Marine 7.1 User Guide


FIGURE 3.43
Example of geometry before (left top), mesh (right top) and geometry after (left bottom), mesh
(right bottom) the Simplify sharp angles procedure

The free surface is refined to reach a target cell size of LOA/1000 in Z direction. The aspect ratio
of the cells is 128 and a diffusion of 4 is applied. If the mesh density is Coarse the diffusion is
reduced to 3.
When moving at high speed, the ship generates a deep wake, so a box refinement will be always
added at this location with the following settings:
l Length: starts LOA/10 before transom, ends 0.5 LOA behind the ship
l Width: 1.2 times the width of the ship, centered on y = 0
l Height: between the bottom of the ship and the free surface level
l Refinements: same as for the global free surface
l Diffusion: 3
Domain size:
l Automatic: it is assumed that the domain size can be defined according to the Froude number
(Fn) and based on the length overall (LOA) of the ship. Hence default numbers are specified
as:
o LOABefore = 1.5
o LOABehind = 3 (Fn≤1), 4 (1<Fn<1.5) or 5 (Fn≥1.5)
o LOABelow = 1.5
o LOAAbove = 1.0

120 FINE™/Marine 7.1 User Guide


o LOASide = 1.5
Although it is also possible to define differently with the following options:
l Define as a function of LOA : It is available here to change the C- Wizard predefined
parameters by imposing user-defined values by means of LOA.

The C-Wizard will not necessarily and precisely respect this number of user-defined LOA: the new
domain size is adjusted to exactly have LOA/1000 for the free surface refinements. Indeed, to get this
exact cell size for the free surface, the initial cell size and the domain size must be adjusted as well.

In case the Input geometry is an STL or the Domain the following option is available:
l Keep initial size: The domain size will be kept as an Input geometry and the mesh will be
recalculated considering the C-Wizard settings.

Please note that if the domain size is too small, compared to the ex recommendations, the quality of
the solution can be affected, so that body motion might bring it too close to the External boundaries.

l Triangulation density: Coarse/Medium/Fine


Here the triangulation level for the domain can be defined. For the accurate result, the Fine level
is recommended, while the Medium will be sufficiently enough for the practicing reasons
l Y+ value: Automatic / User defined
If Automatic is selected, the Y+ value is estimated as described below.

Automatic Y+ value is based on the assumption that the wall function will be used during the
computation.

121 FINE™/Marine 7.1 User Guide


Viscous layers are defined and computed for solid faces only and if the face is not called
"DECK" or "Deck" since there is usually no need to insert viscous layers on the deck of a ship
(viscous effects from the air part are negligible). The script assumes an isotropic mesh is used on
the solid walls. Hence, the height of the first Euler cell on the solid walls can be computed by the
script according to the number of refinement: , where H Euler - size of the
Euler mesh cell; H init - size of the initial mesh cell; N - the number of refinement on the face. The
number of viscous layers needed to completely fill the Euler cell is computed with inflation
technique activated and a stretching ratio of 1.2.

The number of viscous layers is computed based on a theoretical formula and does not take into
account the influence from patches nearby. It is advised to let the inflation method active or to check
the number of viscous layers to insert after the optimization step.

l Refinement dictionary file (*.csv): Default/User defined


In order to specify user defined mesh parameters the User defined option must be chosen and at
this moment the user can load its own "Refinement dictionary" (p. 125) that will be used by the
C-Wizard mode.

The buffer insertion of Type II is activated by default for the edges on the Mirror plane during the
snapping step. However, HEXPRESS™ will try to respect this input but it is not guaranteed that
it will be the case after snapping. After specification of the inputs, domain is constructed,
boundary conditions are also defined automatically, different refinement boxes have been
successfully created and it will be suggested to follow the mesh generation or to check the mesh
settings manually first.

FIGURE 3.44
C-Wizard report window: Switch to the automated mesh generation

The domain creation will not work in case the symmetry plane is not perfectly aligned on the Y
plane.

122 FINE™/Marine 7.1 User Guide


The geometry should be aligned with X-axis initially. Rotation can be done with CAD manipulation
before if necessary. Z-axis should be the gravity axis.

The Parasolid or CATPart geometry should not have a bounding box already included since the script
will create it automatically. However, when a STL is imported it must already have the bounding box.

For the general mesh settings, in case of Shallow water activation, mesh generation settings will
be updated accordingly to respect the water Depth and the ship wave region.
To finalize the mesh generation step, when the Manually check the mesh first has been selected,
the Start button of HEXPRESS™ will initialize the mesh generation. After the mesh is
successfully created, selecting the Go back to the project set up will proceed to the next step of
the wizard. A summary of hydrostatic parameters computed using Domhydro will also be
displayed:

FIGURE 3.45
Summary of hydrostatic parameters

3.4.6 Project setup

When meshing procedures have been finalized, the project will be automatically created
respecting the previously defined parameters. The hull is already rotated to the predicted final
trimmed position. The Computations menu will be updated with the computation_X.X name,
where X.X is the speed value.

123 FINE™/Marine 7.1 User Guide


The streaking correction expert parameters CIStreakCorrection_ and
CIAggressiveStreakCorrection_ are activated for the Planing regime. More details can be found in
"Numerical Corrections" (p. 688) and The mass fraction is not physical. How can I fix this?

3.4.7 Guidelines for hulls with engines

If the hull is equipped with engines that extend its dimensions, an extra step may be needed.
Indeed, to place the boat according to the Savitsky prediction, the C-Wizard needs to know where
is the bottom aft of the hull. If the geometry imported doesn't contain the names of the patches, the
bottom aft of the engine will wrongly be taken instead, and the positioning will not be correct. To
handle this kind of situation, one can proceed in two steps by launching the C-Wizard twice:
1. Create a domain using the Resistance mode of the C-Wizard, name the patches and find the Z-
coordinate of the free surface if needed;
2. Create the final project using the Planing regime mode of the C-Wizard with the domain
previously created.

Step 1

l Open FINE™/Marine and Create a new project using C-Wizard;


l Name the project: ProjectName_init;
l Select Resistance mode;
l Import your geometry in the desired format;
l Enter all the inputs (Note that you can use the Automatic mode for Free Surface location if you
enter the Mass and the CoG coordinates);
l There is no need to enter the Actuator Disk characteristics as only the domain is needed in this
step;
l Generate the Mesh set-up;
l Select Manually check the mesh first;
l Name the surfaces of the boat accordingly with the "Refinement dictionary" (p. 125). For the
second step, it is mandatory to name at least Hull and Transom. Keep the _b1 suffix on the
boat's patch names;
l Save your project.

124 FINE™/Marine 7.1 User Guide


If you need to retrieve the position of the free surface computed by the C-Wizard, click on Go back
to project setup. The value can be found in the Initial solution menu.

Step 2

l Create a new FINE™/Marine C-Wizard project called: ProjectName;


l Select Planing regime mode;
l Import a domain file (.dom) and import ProjectName_init.dom from the previous project;
l Enter all the inputs (this time including the Actuator Disk if wanted);
l Generate the Mesh set-up;
l Continue the C-Wizard process.

3.5 REFINEMENT DICTIONARY

The C-Wizard always reads the refinement dictionary provided in the file 'cwizard_refinement_
dictionary.csv' present by default in /_python/_fine/_marine/. This file provides information about
the refinements that will be applied for different patches according to their name. This file can be
customized by the user, directly into the installation folder (all users of the version will be
impacted) or through a local copy of the file at a different location.

125 FINE™/Marine 7.1 User Guide


FIGURE 3.46
Example of vocabulary and refinement settings.

If names in the CAD software have been defined in accordance with this vocabulary, the C-
Wizard will be able to recognize them and to define mesh settings accordingly.
A 'Coarse' mesh corresponds to the 1st level of mesh density, 'Medium' to the 2nd level and 'Fine'
to the 3rd level. Hence, if the selected mesh density in the interface is 'Medium', the 2nd number
of the refinement level will be selected. The same idea applies for the diffusion.
The refinement dictionary file should have the following structure:
l Patch name: name specified for surfaces/patches within the geometry file. If several names are
specified, they must be separated by the ';' symbol.

If the face name is not in this table, the script will assign he target cell size criteria (0,0,0) together
with a maximum number of refinements equal to 6 and global diffusion.

Patch names can be written in different ways: capital letters or not, with a suffix or prefix, etc.
For instance, "surf1_ domship_ Deck_ 2" will be considered as "Deck" for the refinement
parameters, as long as it is the only keyword found in the dictionary.

If there are several patches containing the same name (for example "Hull1", "Hull2" and "Hull3")
they will be grouped together in HEXPRESS TM . If a patch name contains two dictionary names
from the dictionary ("Hull_small"), the patch will go to the group with the highest number of
refinements (in this case "Small") and get the highest number of refinements applied.

l Application: type of application can be specified as 'all', or dedicated to one several modes
from C- Wizard: 'resistance' , 'seakeeping' , 'openWater' , 'planingRegime' . If several are
specified, they must be separated by ';' without spaces.
l Criterion: type of Adaptation criterion can be defined as 'Distance', 'Curvature' and/or
'Target' for Target cell sizes. If several are specified, they must be separated by ';' without
spaces;
l Max number of refinements (coarse;medium;fine): maximum level of Refinements for each
mesh level, using an integer such as 2;4;6 for instance;
l Target (coarse(X;Y;Z);medium(X;Y;Z);fine(X;Y;Z)): Target cell size on the specified patch
defined by the size in X,Y,Z directions, such as (0;0;0);(0;0;0);(0;0;0). The decimal numbers
have to be written here: with a '.' and not a ',';

126 FINE™/Marine 7.1 User Guide


l Diffusion (coarse;medium;fine): Refinement diffusion level can be specified as 'global' or
with the integers, 2;4;2 for instance.
Max number of refinements, Target, Diffusion parameters correspond to the Surface refinement
page of the Adapt To Geometry menu in HEXPRESS™.

Adaptation groups are created if several faces have the same name (or names contained in the same
row of the '.csv' file). The name of the group is the first name of the row.

Example for refinement of a patch named "Deck" using the default values from
the dictionary

If the geometry contains a patch named "Deck", a Target cell size criterion will be applied with a
maximum number of refinement of 4 and target sizes of (0,0,0). The diffusion will be set to global
(2 by default).

Example of adaptation group creation

The patch names in a row are "Blade", "Suction_side", "Ss", "Pressure_side" and "Ps", and that
3 patches of the domain are called "Suction_ side" and 3 others "Pressure_ side", will all be
grouped under the name "Blade".

Combination of refinements with an efficient merging process

On one hand, the C-Wizard checks if the keyword of the '.csv' is contained in the patch name,
regardless of capital or small letters. For instance, "Foil_1" and "Foil_2" would both be refined as
"foil". On the other hand, the method Merge by name will perform the merging only if the
patches have the exact same name. Hence, "Foil_1" and "Foil_2" will not be merged together.
This is an important concept to understand: if two patches should receive the same refinements
but they should not being merged together, they should have the same keyword inside their name
but they should have a different prefix or suffix.

How to edit the dictionary

This file can be edited in simple text editors (Notepad++ or Kate, for instance), but also in
Microsoft Excel and LibreOffice. To import the file properly in Microsoft Excel (2007):
1. Open Microsoft Excel > Data > From text;
2. On the first import page choose the option 'Delimited';
3. On the second check ',' as delimiters (and only ',');
4. Keep the default options for the last page.

127 FINE™/Marine 7.1 User Guide


FIGURE 3.47
Example of the Refinement dictionary file imported into Microsoft Excel.

Particular mesh settings for edges based on patch names

Common edges between two patches with the same keyword inside their name can lead to a
particular refinement. To avoid it, common edges should be merged or not present in the initial
geometry. This is the typically the case for:
l the following keywords: "blade", "suction_side", "ss", "pressure_side" or "ps". Edges will be
refined according to the level of refinement: 7 for coarse, 8 for medium and 9 for fine. This
feature is particular interesting for propeller refinements.
l the keyword "foil". Refinement levels for the common edges will be: 12 for coarse, 13 for
medium and 14 for fine.
l when a common edge is found between the keywords "hull" and "transom", edge refinement
will be applied: 8 for coarse, 9 for medium and 9 for fine.

3.6 LAUNCHING C-WIZARD IN BATCH MODE

It is possible to run the C-Wizard full procedure in batch mode and the way to launch it depends
on the operating system.
For Linux the command line is:
finemarine# -print -batch -cwizard -input /input_file_directory/application_type.input
For Windows OS it is necessary to create a Windows Batch File (.bat) with the following content
and to do double left-click on it:
C:\...\finemarine#\bin64\fine_marinex86_64.exe -print -batch -cwizard -input C:\input_file_
directory\application_type.input
pause

128 FINE™/Marine 7.1 User Guide


Where the # is the version number, for instance 71 and application_type.input is the name of the
input file containing the settings for the simulation.

It is recommended to store the .input file and to launch the C-Wizard in batch mode from the project
directory.

Templates of the .input files for the resistance, seakeeping, open water, sailing yacht resistance
and hydrofoil resistance applications are available under the following directory for Linux and
Windows OS:
/NUMECA_SOFTWARE/finemarine#/_python/_fine/_marine/
These template files are:
l resistance: cwizard_resistance.input,
l seakeeping: cwizard_seakeeping.input,
l open water: cwizard_open_water.input,
l planing regime: cwizard_planing.input
l sailing yacht resistance: cwizard_sailingYachtVPP.input.
l hydrofoil resistance: cwizard_foilVPP.input.
Expert template files contain all the information required for the computation launch. Input files
are also created during the C-Wizard setup through the interface as described in the paragraphs:
"Open water application" (p. 95), "Resistance application" (p. 63), "Seakeeping application" (p.
79), "Planing regime application" (p. 107) and then can be modified in accordance to the user
preferences. It is also possible to create a multiple calculation setup thanks to the matrix
implementation approach. Details can be found in the paragraph "C-Wizard computation matrix"
(p. 129).

3.7 C-WIZARD COMPUTATION MATRIX

To create multiple simulations the project Matrix approach can be applied for the C-Wizard
computations. It can be done using a variety of geometries, speeds, imposed angles and draughts
values.
This page describes the matrix setup for Resistance, Seakeeping, Open water, Foil and Sailing
yacht. For trim optimization see the dedicated page in Extended applications..

129 FINE™/Marine 7.1 User Guide


FIGURE 3.48
Matrix project structure.

With matrix setup computations the description of a ship or ships can be specified in several
positions. To modify the ship initial position automatically in accordance with the Matrix
parameters, the initial geometry has to be provided in the upright position.
To use the Matrix mode, the template file .input provided within the /NUMECA_
SOFTWARE/finemarine#/_ python/_ fine/_ marine/ should be modified. This mode is only
available in batch mode. Here are the necessary inputs to specify the computation Matrix.

Project management section

l Matrix project: 1=YES


l Project directory: .../my_project
l Units (optional):kt or m/s; deg or rad; m or ft

Matrix parameters

Firstly, there are two options to define a matrix to calculate. A full matrix or a sparse matrix.

Full matrix through the Matrix parameters section

This will result in a full matrix: all combinations of yaw, pitch, roll and draught will be used as

130 FINE™/Marine 7.1 User Guide


shown in "Matrix project structure." (p. 130).
l Yaw, pitch and roll angles.
l Draught values.
*** MATRIX PARAMETERS (IMPOSED ANGLES, DRAUGHT)
* Yaw (CAUTION: If the configuration is half body, yaw angles are not allowed)
0
* Pitch (CAUTION: if not 0, trimming motions won't be solved)
0
* Roll (CAUTION: If the configuration is half body, roll angles are not allowed)
0
* Draught (CAUTION: if not 0, sinking motions won't be solved)
0
*

Sparse matrix through an input file

This approach allows to set up a sparse matrix, where only some combinations of angles and
draughts are used.
To use it the MATRIX INPUT FILE field is available in the input file:
*** MATRIX INPUT FILE
* 1 = YES /0 = NO ; *.csv path & name (If YES, leave all MATRIX PARAMETERS and List
of speeds to 0.0)
0 /path_to_matrix_definition/sparse_matrix.csv
*
An example of matrix input file can be found in /NUMECA_SOFTWARE/finemarine#/_python/_
fine/_marine/matrix.csv.

l Comments can be included in this file by starting the line with "#".
l The first non-commented line needs to be a header with the list of matrix parameters. The
order of this header will be user to read the rest of the file.
l The "speed" column is compulsory, the rest are optional.
l If a column is not present its value will be assumed to be zero.
l Units are as defined in the input file.
#Example of matrix.csv file

131 FINE™/Marine 7.1 User Guide


yaw,roll,speed
0.0,0.0,10.0
0.0,0.0,15.0
2.0,15.0,10.0
2.0,15.0,15.0
2.0,25.0,15.0

FIGURE 3.49
Computation list in a project created with the matrix.csv above and single mesh approach.
"Y" stands for yaw, "R" for roll and "V" for velocity.

Depending on the selected mode of matrix calculation, the body motion setup will be adapted.
l Domhydro workflow:
l For each different draught the mass, CG and inertia matrix will be computed.
l If there are angles (yaw, pitch or roll) the mass, CG and inertia of the draught will be kept.
The sinkage (Tz) neded to keep static iso- displacement will be computed. This extra
sinkage will only be applied if the sinkage degree of freedom is solved during the
computation.
l Rotations are applied around the CG computed by Domhydro.
l The output files from Domhydro are stored under the _mesh folder and renamed with the
computation name.
l If all draughts in the matrix are the same: user-defined mass and CG are allowed. If there are
different draughts the mass and CG need to be automatic as it is not possible to give a list of
masses and CGs as input.

132 FINE™/Marine 7.1 User Guide


l When a non-zero angle is specified in the matrix its corresponding degree of freedom will be
automatically set to "Fixed". For example if a list of pitch angles (Ry) is given the pitch will
automatically be set to "Fixed". The reason behind this setting is that CG position is not
recomputed for each rotation. If pitch was solved all computations would converge to the same
solution. Check the trim optimization mode if you need to run cases with different static CG
positions.

Several other parameters should be selected as well.

Single mesh approach

*** SINGLE MESH


* One project for all matrix points 1= YES/0 = NO
0
*
If single mesh is active one project and mesh will be used for all the matrix points. Each matrix
point will be one computation in the project. Initial conditions and mesh deformation wil be used
to apply rotations and draughts. The free surface will not be refined in HEXPRESS and Adaptive
grid refinement will be used to refine it during the computation.
How rotations and translations are applied in single mesh mode:
l Yaw (Rz) is imposed through Tx and Ty: Vx = V*cos(yaw); Vy = V*sin(yaw)
l Pitch (Ry) and roll (Rx): Dynamic parameters > Initial conditions or Angular position
modification at t=0 if all DOF are fixed.
l Draught (Tz): Dynamic parameters > Initial conditions or Linear position modification at
t=0 if all DOF are fixed.

This approach allows to save meshing time and disk space. However it is only suitable for
small rotation angles and draughts. For large position changes mesh deformation can lead to a
low quality mesh.

Single mesh is not compatible with a matrix of geometries.

If single mesh is not active one project is created per matrix point as shown in "Matrix project
structure." (p. 130). If more than one speed is given, each speed will have a separate computation.

133 FINE™/Marine 7.1 User Guide


Body configuration

l Path of the geometry file: .../geometries/


A directory containing several geometries can be an input. Note that all the geometries must have
the same configuration: half body or entire body and contain only the geometry files, nothing else.
A directory of geometries is not compatible with the single mesh approach.
l The Cardan angles should be kept as 0.0 0.0 0.0.

Yaw and Roll angles are incompatible with the half body configuration.

Actuator disk and external force

If an actuator disk or external force is active it will be applied in all the matrix points. The
coordinates and directions should be defined in the coordinate system of the geometry as it was
imported in upright position.
The C-Wizard will make the necessary transformations for each matrix position.

Adaptive grid refinement (AGR)

If single mesh is not active the user can choose if AGR is used or not.
If single mesh is active AGR will be automatically activated. The main AGR settings used will be
the following:
l Criterion: Free surface tensor
l Target grid spacing normal to free surface: 1.3*LOA/1000

Launch parameters

l Number of cores
Number of meshes to be performed at the same time. This option depends on the license profile,
thus please contact your local support team in case of questions. This option is not relevant for
single mesh approach where a single project is created.
To track the progress of each computation launched under the global project the "cwizard.status"
file is created within the project directory each time. Details can be found in "The C-Wizard
Status File: .status" (p. 570).

134 FINE™/Marine 7.1 User Guide


Current limitations:
l The Matrix mode is only available in batch mode.
l For an open water application, the Matrix mode only works with a variety of
geometries.
l Not available when an existing mesh is imported.
l Actuator disc automated refinements only transformed with pitch, but not yaw and roll.

3.8 EXAMPLE OF SETTINGS

Example of a Resistance and Seakeeping half-body computation set up can be found in the
following table. User input here stands for parameters entered through the C-Wizard interface and
imposed automatically in the Parameters menu of FINE™/Marine interface.

Resistance settings Seakeeping settings


Time configuration: Steady Time configuration: Unsteady
Fluid model: User input Fluid model: User input
Flow model: User input Flow model: User input
Turbulence model: k-omega (SST-Menter) Turbulence model: k-omega (SST-Menter)
Boundary conditions: Boundary conditions:
SOLID SOLID
Wall Function Wall Function
Deck: Slip Deck: Slip
EXTERNAL EXTERNAL
Zmax, Zmin: Prescribed pressure Zmax, Zmin: Prescribed pressure
Updated hydrostatic pressure Updated hydrostatic pressure
Xmin, Xmax, Ymax: Far Field Xmin, Ymax: Far Field
MIRROR Xmax: Wave generator with User Input
Ymin MIRROR
Ymin, Ymax

135 FINE™/Marine 7.1 User Guide


Resistance settings Seakeeping settings
Body definition: Body definition:
all the solid patches are grouped together and all the solid patches are grouped together and
called "Vessel" for the body called "Vessel" for the body
Body motion: Body motion:
Motion definition: Motion definition:
Tz0, Ry0: Solved Tz0, Ry0: Solved
Tx0 is Imposed as ½ sinusoidal ramp profile: Tx0 is Imposed as ½ sinusoidal ramp profile:
acceleration speed from 0 to the target value acceleration speed from 0 to the target value
Cardan Angles: User input Cardan Angles: User input
Quasi-Static (QS) approach: activated Mesh management:Tx0 Rigid motion
Mesh management: Default Tz0, Ry0:Weighted deformation
Initial solution: Default Initial solution: Default
Interface position: User input Interface position:User input
Additional models: User input Additional models: User input
Numerical parameters: Adaptive grid refinement Numerical parameters: Adaptive grid refinement
If activated If activated
Refinement criterion type: Refinement criterion type:
Free surface (directional) Free surface (directional)
Target grid spacing normal to free surface: Target grid spacing normal to free surface:
(30%+1)*LOA/1000 (30%+1)*LOA/1000
Criterion diffusion: Criterion diffusion:
2 layers copying full criterion value 2 layers copying full criterion value
Boundary layer protection Boundary layer protection
Longitudinal direction only
Restrict all refinements to a box:
respecting the ship hull dimensions

136 FINE™/Marine 7.1 User Guide


Resistance settings Seakeeping settings
Longitudinal direction only Control
Restrict all refinements to a box: 200 steps before first call of the refinement
respecting the ship hull dimensions procedures

Control 25 steps between calls of the refinements


procedure
200 steps before first call of the refinement
Base free surface criterion on smoothed mass
procedures
fraction
25 steps between calls of the refinements
control variables
procedure
Base free surface criterion on smoothed mass Number of time steps
fraction Depending from the number of waves to
control variables encounter

Number of time steps Time step value:

1500 100 time-steps per period if λ < Loa/2

Time step value: 200 time-steps per period if λ> Loa/2.

t = 0.005*(Loa/Vref) 16 non-linear iterations

Loa - maximum length of the ship [m/s]


Vref- ship velocity [m]
5 non-linear iterations

3.9 EXTENDED APPLICATIONS

The main concept of the C-Wizard is to provide default settings for the mesh generation and
computations. A first division is done by general categories such as "Resistance application" (p.
63), "Seakeeping application" (p. 79), "Open water application" (p. 95), and "Planing regime
application" (p. 107). These categories are sufficient to filter the questions to ask to the user and
determine the most important settings automatically. However, even if they are based on best
practices gathered from the user, they should remain conservative enough to be applicable on a
large variety of utilization. For such reason, NUMECA also provides extended applications. They
contain optimized default settings dedicated to particular applications, such as hydrofoil or sailing
yacht resistance, also based on recent investigations and users feedback.
In this chapter the user will find the following applications:
l Hydrofoil resistance
l Sailing yacht resistance
l Trim optimization

137 FINE™/Marine 7.1 User Guide


Current limitations are the same as for the global C-Wizard framework and available in "C-
Wizard" (p. 61) main page.

Hydrofoil resistance

This extended application is based on the "Resistance application" (p. 63) and on the "C-Wizard
computation matrix" (p. 129). We invite the users to first read these two chapters as well as
"Launching C-Wizard in batch mode" (p. 128) before continuing.
This extension for hydrofoil has been developed in the frame of the America's cup studies. The
main goal is to provide a Velocity Prediction Program (VPP) with the matrix of efforts from the
hydrofoil. The VPP code classically used in the Cup solves the performance of a sailing yacht in
various wind conditions by balancing hull, rudder, hydrofoil and sail forces. As a result, this
extended application is only available in matrix mode and therefore only in batch mode.
A new template, called "cwizard_foilVPP.input" is provided in the installation package under:
/NUMECA_SOFTWARE/finemarine#/_python/_fine/_marine/
As in the rest of matrix applications the different geometry positions and speeds can be given
directly in the input file to obtain a full matrix or through a MATRIX INPUT FILE to obtain a
sparse matrix.
The user can also choose between two approaches with regard to the meshing strategy applied to
the combinations of yaw, pitch, roll, draught and speed per geometry under study, defined under
*** SINGLE MESH in the input file:
l No single mesh: each combination of the matrix has its own mesh, which leads to one project
per combination in the matrix. Therefore, per geometry there will be as many projects as
number of combinations in the matrix and each project will have as many computations as
number of speeds.
l Single mesh: all the combinations in the matrix are computed with a single mesh, which leads
to one project per matrix. Therefore, per geometry there will be only one project with as many
computations as number of combinations in the matrix.
The list here below provides all the differences with the template for the Resistance application.
These defaults can still be changed by the user, but the C-Wizard will not guarantee an optimal
setup anymore.
l The C-Wizard Matrix mode is active.
l The Body configuration is set for an entire body.
l No Body motions to solve.
l The Actuator disk feature is not available.
l All the patches are merged according to their names.
l The y+ is defined and equal to 80.

138 FINE™/Marine 7.1 User Guide


l The Body name is defined as "Foil".
l The maximum number of non linear iterations is set to 2 and sub-cyling is not activated.
l The number of time steps is limited to 500 and the restart to 350 time steps to accelerate
between two different speeds.
Two inputs are specific to this application and require particular attention: the hull reference
length (LOA) and the foil reference length (the chord). The first one is used to calculate the
domain dimensions whereas the second one is used to insert proper viscous layers.
Particular mesh settings are automatically defined if specific patch names are used (not case
sensitive). It is strongly advised to use these keywords for foil patches to get an optimal mesh
setup.
l Shared edges between two faces with the name "foil" will receive extra refinements: 13 for a
coarse mesh, 14 for a medium mesh, 15 for a fine mesh.
l If a patch called "top" is found, no viscous layers insertion will be performed on it and the
boundary condition will be defined as "Slip".
l If patches called "foil", "end", "tip" or "te" are found, viscous layers based on the foil
reference length will be used.
l The number of viscous layers is fixed and not floating.

The center of gravity input will be used as the reference point to apply the pitch and roll angles in
single mesh mode and also to calculate the efforts in both approaches.

Also, some particular expert parameters are automatically added to the setup in "Expert
Parameters" (p. 457) menu:
l The streaking correction is activated ( CIStreakCorrection_ and
CIAgressiveStreakCorrection_).
l The wetted surface is computed automatically and recoded into a file called "body_
wettedsf.dat" (MultifluidsWettedSurf_).
l The velocity clipping is activated to avoid any local and temporary divergence (VelocityClip_
and VelocityClipFactor_).

Sailing yacht resistance

This extended application is based on the "Resistance application" (p. 63) and on the "C-Wizard
computation matrix" (p. 129). We invite the users to first read these two chapters as well as
"Launching C-Wizard in batch mode" (p. 128) before continuing.

139 FINE™/Marine 7.1 User Guide


This extension for sailing yacht has been developed in the frame of the America's cup. The main
goal is to provide a Velocity Prediction Program (VPP) with the matrix of efforts from the hull.
The VPP code classically used in the Cup solves the performance of a sailing yacht in various
wind conditions by balancing hull, rudder, hydrofoil and sail forces. As a result, this extended
application is only available in matrix mode and therefore only in batch mode.
A new template, called "cwizard_sailingYachtVPP.input" is provided in the installation package
under:
/NUMECA_SOFTWARE/finemarine#/_python/_fine/_marine/
As in the rest of matrix applications the different geometry positions and speeds can be given
directly in the input file to obtain a full matrix or through a MATRIX INPUT FILE to obtain a
sparse matrix. See the main C-Wizard computation matrix page for more details.
The user can also choose between two approaches with regard to the meshing strategy applied to
the combinations of yaw, pitch, roll, draught and speed per geometry under study, defined under
*** SINGLE MESH in the input file:
l No single mesh: each combination of the matrix has its own mesh, which leads to one project
per combination in the matrix. Therefore, per geometry there will be as many projects as
number of combinations in the matrix and each project will have as many computations as
number of speeds.
l Single mesh: all the combinations in the matrix are computed with a single mesh, which leads
to one project per matrix. Therefore, per geometry there will be only one project with as many
computations as number of combinations in the matrix.
The list here below provides all the differences with the template for resistance. These defaults
can still be changed by the user but the C-Wizard does not guarantee an optimal setup anymore.
l The C-Wizard Matrix mode is active.
l The Body configuration is set for an entire body.
l The Actuator disk feature is not available.
l The Adaptive grid refinement feature is active.
l The y+ is defined and equal to 80.
l The Body name is defined as "Yacht".
l The maximum number of non linear iterations is set to 2 and sub-cyling is not activated.
l The number of time steps is limited to 1000 and the restart to 750 time steps to accelerate
between two different speeds.
One input is specific to this application and require particular attention: the foil reference length
(the chord) which is used to insert proper viscous layers on the foil if any.
Particular mesh settings are automatically defined if specific patch names are used (not case
sensitive). It is strongly advised to use these keywords for foil patches to get an optimal mesh
setup.

140 FINE™/Marine 7.1 User Guide


l Shared edges between two faces with the name "foil" will receive extra refinements: 13 for a
coarse mesh, 14 for a medium mesh, 15 for a fine mesh.
l If a patch called "top" is found, no viscous layers insertion will be performed on it and the
boundary condition will be defined as "Slip".
l If patches called "foil", "end", "tip" or "te" are found, viscous layers based on the foil
reference length will be used.
l The number of viscous layers is fixed and not floating.

The center of gravity input will be used as the reference point to apply the pitch and roll angles in
single mesh mode and also to calculate the efforts in both approaches.

Also, some particular expert parameters are automatically added to the setup in "Expert
Parameters" (p. 457) menu:
l The streaking correction is activated ( CIStreakCorrection_ and
CIAgressiveStreakCorrection_).
l The wetted surface is computed automatically and recoded into a file called "body_
wettedsf.dat" (MultifluidsWettedSurf_).
l The velocity clipping is activated to avoid any local and temporary divergence (VelocityClip_
and VelocityClipFactor_).

The user defined "Refinement dictionary" (p. 125) allows to apply particular settings for sailing
yacht resistance only if necessary prescribing the keyword "sailingYacht" in the application list.

Trim optimization

This extended application is based on the "Resistance application" (p. 63) and on the "C-Wizard
computation matrix" (p. 129). We invite the users to first read these two chapters as well as
"Launching C-Wizard in batch mode" (p. 128) before continuing.
The objective of the Trim optimization is to find the optimum initial static trim leading to minimal
drag for a given displacement and operational speed. This will allow the operator to distribute the
loads and ballasts on the ship in an optimal way to minimize fuel consumption.
A new template, called "cwizard_resistanceTrimOpt.input" is provided in the installation package
under:
/NUMECA_SOFTWARE/finemarine#/_python/_fine/_marine/

141 FINE™/Marine 7.1 User Guide


Workflow

The inputs given by the user are:


l Ship geometry at zero static trim
l List of draughts at midship (d1, d2,...dn)
l List of trims (t1, t2,...tm)
l List of speeds (v1, v2,...vp)
C-Wizard matrix mode will create one project per pair of (draught, trim) and one computation per
speed in all projects. Therefore n*m projects with p computations each will be created.
Iso-displacement conditions are considered for each draught: the same displacement is defined for
all trim values. The z-coordinate of the free surface remains at the same location for all projects
and the ship is translated in the z direction to ensure iso-displacement conditions.
The center of rotation used to apply trim angle is the CoG computed by Domhydro.
Trim and sink motions are always solved.
If the propulsion is activated with either an actuator disk or a drag based propeller wrench both
the center or point of application and the shaft vector have to be defined at 0 trim and for the first
draught of the list (d1). The propulsion system is then adapted automatically for each project's trim
angle using Cardan angles.
The main computed outputs will be:
l Displacement for each draught
For each (draught, trim, velocity) combination:
l Dynamic trim and sinkage
l Forces and moments in the global frame

Inputs definition

The lists of draught and trim can be given in two ways:

Full matrix: Matrix parameters section of the input file

Draught and trim and trim units are given in the MATRIX PARAMETERS section of the input
file. In this case all combinations of draught and trim will be used.
**************** MATRIX PARAMETERS ******************
*
*** MATRIX PARAMETERS
* Draught (defined at midship)
d1 d2 … dn

142 FINE™/Marine 7.1 User Guide


* Trim (0=angle/1=length; list of values)
0 t1 t2 … tm
*

Sparse matrix: give a matrix input file with a list of cases

This approach allows to set up a sparse matrix, where only some combinations of draught and
trim are used.
To use it the MATRIX INPUT FILE field is available in the input file:
*** MATRIX INPUT FILE
* 1 = YES /0 = NO ; *.csv path & name (If YES, define only trim unit in MATRIX
PARAMETERS and leave List of speeds to 0.0)
0 /path_to_matrix_definition/sparse_matrix.csv
*
An example of trim optimization matrix input file can be found in /NUMECA_
SOFTWARE/finemarine#/_python/_fine/_marine/matrix_TrimOpt.csv
l Comments can be included in this file by starting the line with "#".
l The first non-commented line needs to be a header with the list of matrix parameters. The
order of this header will be user to read the rest of the file. The three columns (draught, trim
and speed) are compulsory.
l Draught is distance between ship baseline and free surface at midship. The first draught should
correspond to the draught in the imported geometry.
l Units as defined in the input file.

The trim unit (angle or length) still needs to be defined in the input file.

#Example of trim optimization matrix input file


draught,trim,speed
10.0,0.0,13.0
10.0,-1.6,13.0
10.0,1.6,13.0

Draught

The list of draughts is the distance between ship baseline and waterline defined at midship (Lpp/2)
for zero trim. If di > d1 the ship will be sunk.

143 FINE™/Marine 7.1 User Guide


The first draught should correspond to the draught in the imported geometry.
The free surface location is the Z-coordinate of the waterline in the reference frame of the
geometry of the ship. This value corresponds to the variable *** INITIAL FREE SURFACE in
the input file and must be user-defined. The free surface location will be the same for all the
projects.

Trim

The trim can be defined as an angle or as a length. In both cases positive bow down trim is
defined as positive, independently of the ship's advance direction.
l As an angle it is defined as the rotation around Y axis in the units of choice of the user
(degrees or radians).
l If length units are chosen the reference length between perpendiculars (Lpp) needs to be user-
defined. In that case the trim definition is the following:

where T F is the draft at the forward perpendicular and T A the draft at the aft perpendicular, both
measured from the baseline. The trim angle t is then recovered as:

Choose if the project should use single mesh approach

*** SINGLE MESH


* One project for all matrix points 1= YES/0 = NO
0
*
If single mesh is active one project and mesh will be used for all the matrix points. Each matrix
point will be one computation in the project. Initial conditions and mesh deformation will be used
to apply rotations and draughts. The free surface will not be refined in HEXPRESS and Adaptive
grid refinement will be used to refine it during the computation.

This approach allows to save meshing time and disk space. However it is only suitable for
small rotation angles and draughts. For large position changes mesh deformation can lead to a
low quality mesh.

Single mesh is not compatible with a matrix of geometries.

144 FINE™/Marine 7.1 User Guide


If single mesh is not active one project is created per matrix point. If more than one speed is given,
each speed will have a separate computation.

Additional inputs

Actuator disk and external force

If an actuator disk or external force is active it will be applied in all the matrix points. The
coordinates and directions should be defined in the coordinate system of the geometry as it was
imported in upright position.
The C-Wizard will make the necessary transformations for each matrix position.

Adaptive grid refinement (AGR)

If single mesh is not active the user can choose if AGR is used or not.
If single mesh is active AGR will be automatically activated. The main AGR settings used will be
the following:
l Criterion: Free surface tensor
l Target grid spacing normal to free surface: 1.3*LOA/1000

Mesh

The general mesh setup is the same as in a standard resistance case.


A refinement sector is added if a drag based wrench is active below water level. The objective of
this sector is to have a good definition of the flow in the area where the propeller would be
located. The user can control this refinement with the following line in the input file:
*** EXTRA REFINEMENT OF THE WAKE
* 0=No/1=Yes; Diameter 0=User-defined/1=Automatic; Value
1 0 7.5
*
The diameter should correspond approximately to the diameter of the propeller that will be used in
the ship. If the user chooses the Automatic option, the diameter (d) is estimated as a function of
ship draught (D) and wrench application point draught (Dapp):
l Single screw propeller: d = 0.75D
l Twin screws propellers:
l If Dapp < D: d = 0.75D
l If Dapp ≥ D: d = D

145 FINE™/Marine 7.1 User Guide


Two refinement sectors centered at the application point of the drag based propeller wrench are
defined:

FIGURE 3.50
Refinement sectors for drag based wrench

Sector 1 is horizontal and Sector 2 is aligned with the shaft direction. If a trim is applied to the
ship both sectors follow the rotation.

Solver settings

l Trim and sink motions are always solved,


l The user can choose to use the Quasi-Static method for solving the motions or not.

Use of an existing mesh as input is not possible. The input needs to be a single geometry in
Parasolid, CATPart, STL or domain format.

Automatic initial free surface not allowed.

Trim given as a length is not compatible with automatic body reference length.

Ship geometry must be aligned with the X Cartesian axis.

146 FINE™/Marine 7.1 User Guide


3.10 GRID CONVERGENCE STUDY

The way the grid dependence study is aimed here is by refining systematically the initial
HEXPRESS™ generated mesh while keeping the same Surface refinements in all meshes using
the C-Wizard facilities. This ensures the whole volume being refined systematically and not only
the area around the Solid patches.
C-Wizard's initial meshes contain a number of cells N in each direction (X, Y, Z) with the
following relationships starting from Medium:
l Ncoarse = 3/4*Nmedium
l Nfine = 5/4*Nmedium
Considering this the following workflow can be followed for the grid dependence study
performed using C-Wizard.

3.10.1 Workflow

1. Create a user defined file with mesh parameters for the Solid patches. To do so use the
approach employing the "Refinement dictionary" (p. 125) that will be automatically interpreted by
the C-Wizard. Template file cwizard_refinement_dictionary.csv can be found in /_python/_fine/_
marine/.
This dictionary should keep the same Number of refinement on the Solid patches for all
mesh levels (from Coarse to Fine) while changing the Diffusion level as:
l 1 for Coarse,
l 2 for Medium,
l 3 for Fine mesh level.
This will ensure that the distance covered by the refinement is the same among all meshes
since the Diffusion is a measure of how far from the Solid patches the refinement propagates
in number of initial cells. More details can be found in HEXPRESS™ User Guide.

147 FINE™/Marine 7.1 User Guide


FIGURE 3.51
Example of generated meshes: Coarse to Fine.

Here the Initial cell sizes have a relationship of 2/4, 3/4, 4/4, 5/4 which are the largest cells on
each mesh. Diffusion is D= 1,2,3 and 4: one initial cell next to the Solid patch is refined by
default (Number of refinement is 1) and then diffusion fills D initial cells.
2. During the C-Wizard Mesh setup procedure in the Refinement dictionary file (*.csv) attach
the generated cwizard_refinement_dictionary.csv when selecting the User defined option.

148 FINE™/Marine 7.1 User Guide


FIGURE 3.52
Mesh setup menu: User defined Refinement dictionary file​

To prepare extra meshes beyond the Fine level continue the same pattern in the Initial mesh:
l Mesh 4 will have an initial mesh in each direction corresponding to 6/4*Nmedium,
l Mesh 5 will have 7/5*Nmedium, etc.
The Diffusion also needs to increase to 4 and 5.

In practice, to generate Mesh 4:

149 FINE™/Marine 7.1 User Guide


1. Run the C- Wizard normally and choose at the Mesh setup page the Mesh density as
Medium.
2. Set the Refinement dictionary file (*.csv ) as User defined and select created cwizard_
refinement_dictionary_mesh4.csv: this dictionary should apply the Diffusion of 4.
3. Start mesh set-up and choose Manually check mesh first.
4. In HEXPRESS™ open the Initial mesh menu and multiply each value by 6/4=1.5.
5. Complete the mesh generation by running all the steps of the Mesh wizard and return to the
FINE™/Marine interface by clicking the Go back to the project in the top toolbar of
HEXPRESS™.

150 FINE™/Marine 7.1 User Guide


CHAPTER 4.

SELF-PROPULSION

While investigating ship power requirements, free- running model experiments or self- propulsion
simulations can be very useful. Regarding the fact that measurements of the actual ship propeller thrust
are not usually available, numerical self- propulsion simulation can support better mapping from
desired to actual thrust within a shorter time frame and reduced costs.
In CFD, a general approach is adopted respecting the available numerical algorithms what normally
leads to several computations to be performed before reaching the self- propulsion point. For the
described challenges, FINE™/Marine suggests a particular dynamic library which eases and speeds the
self-propulsion studies up.

In this section
4.1 Introduction 152
4.2 Computation procedures 153
4.3 Input 161
4.4 Output 165
4.5 Recommendations 167

151 FINE™/Marine 7.1 User Guide


4.1 INTRODUCTION

Four types of computations are available depending on the known/ unknown variables and how
the propulsion system is modeled:
l Type I: fixed ship speed [m/s] and computed propeller rotational velocity [rad/s];
l Type II: fixed propeller rotational velocity [rad/s] and computed ship advancing speed [m/s];
l Type III: fixed delivered horsepower (DHP) [W] and computed both propeller rotational
velocity [rad/s] and ship advancing speed [m/s];
l Type IV: fixed thrust horsepower (THP) [W] and computed ship advancing speed [m/s].
Type I, Type II and Type III are intended for computations where the real propeller is considered
in the computation through the usage of the sliding grid technique. Nevertheless, Type IV is only
for computations in which the propeller is modeled with an actuator disk.
The most typical propulsion tests, as described by the International Towing Tank Conference
(ITTC), are performed with a model captive to the carriage of a towing tank. For a given target
speed, runs at different propeller rotational speeds (RPS, or revolutions per seconds) are
performed and the net towing force is measured. Objectives here are to find the propeller RPS that
will lead to a given towing force indicating that the self-propulsion point has been reached by
balancing the propeller thrust and the total resistance.
These above- mentioned results can be obtained with the computation Type I of the self-
propulsion dynamic library. In a single run the library will compute the correct RPS of the
propeller for each imposed ship velocity ensuring that the propeller thrust will compensate the
ship drag forces (including the residual force that can be non zero). Residual force here can be the
towing force of the carriage or additional forces due to the specific case conditions.

Current limitations:
l Only computations with the ship advancing in the X-direction;
l Only computations with a steady-state converged solution, i.e. not valid for seakeeping
simulations;
l Only one propulsion unit per hull in the simulation;
l For computations of Type I, Type II and Type III only right handed propellers are allowed
(with respect to an axis going from the stern to the bow of the ship);
l For computations of Type IV with activated tangential force, the initial ratio torque/ thrust
will be kept constant during the simulation.

152 FINE™/Marine 7.1 User Guide


4.2 COMPUTATION PROCEDURES

Before launching the self-propulsion plugin, the user must have completed the setup of the
computation parameters (an example for computation Types I, II and III can be found in the
Advanced tutorial 2 on the self-propulsion of the KCS). When the real propeller is present in the
computation, thus computation of Type I, Type II or Type III, in the Body motion parameters
menu the user must select the Dynamic library as an Imposed type of motion for the propeller.
However, when the propeller is considered into the computation through an actuator disk model,
thus computation of Type IV, in the Actuator disk parameters menu the user must select
PROPELLER CODE as a force distribution.
When executing the self-propulsion plugin for a given computation, it invites the user to fill in the
values for the different parameters involved in the self-propulsion study. Once this input step is
done, the plugin performs two actions within the folder of the computation:
1. It generates an input file called SPinputs.dat;
2. It copies into this folder the compiled library file isis_dynamic_library.so for Linux OS and the
isis-dynamic_library.dll for Windows OS.

FINE™/Marine searches for the files with names isis_dynamic_lib.so (.dll) and SPinputs.dat ,
therefore they must not be renamed.

In case the user would like to manually perform the actions done by the plugin, the above-
mentioned files can be found at the following locations:
1. Type I, Type II and Type III: In .../_ data/isis/dynamic_ lib/SP_ sliding_ grids/linux64/ for
Linux OS and ...\_data\isis\dynamic_lib\SP_sliding_grids\win64\ for Windows OS.
2. Type IV: In .../_ data/isis/dynamic_ lib/SP_ actuator_ disk/linux64/ for Linux OS and ...\_
data\isis\dynamic_lib\SP_actuator_disk\win64\ for Windows OS.
In these last folders, the file SPinputs.dat is provided as a template file, in which the numerical
and physical parameters have to be particularized for the computation under study. This file is also
described in the The Self-propulsion Dynamic Library file: SPinputs.dat section.
Results of the computation applying the dynamic library are stored in the output file SPResults_
XXX.dat for each processor, where XXX is the number of the processor. Detailed description of
outputted data for each type: "The SPResults_XXX.dat file" (p. 580).

Types I, II and III

1. Launch the self-propulsion plugin and fill in the requested parameters or manually complete

153 FINE™/Marine 7.1 User Guide


the SPinputs.dat file with the computation parameters as it is described next.
General input:
l Name of the vessel: (string)
l Name of the propeller: (string)

Propeller and vessel names should be defined in the same way as in the Body definition menu
through the FINE™/Marine GUI. Otherwise, the computation may crash.

l Diameter of the propeller [m]: (real)


l Water density [kg/m**3]: (real)
l Thrust is positive when omega is positive: 1=true; -1=false. (integer)

It controls the clockwise/ counterclockwise rotation of the propeller. If not changed, by default it
will be taken as 1 by the solver.

Specific inputs:
l Type I: Vessel speed [m/s]
l Type II: Propeller rotational velocity [rad/s]
l Type III:
l Propeller rotational velocity [rad/s] (estimation)
l Power of the propeller (DHP) [W]

Optional input:
l Additional constant wrench applied along the x axis [N]: (real)
It can be used when there is a carriage towing force or tugging conditions to be taken into
account for the simulation.

The value of 30.3 Newtons used in the SPinputs.dat template is for the KCS hull computation
case. It should be changed according to the user case conditions.

Advancing velocity of the vessel becomes mandatory as well when the residual force is non
zero (namely, Additional constant wrench applied along the X- axis), otherwise the residual
force will be changed to zero and therefore not taken into account.

154 FINE™/Marine 7.1 User Guide


With 4 or 6 parameters provided, the Dynamic library normally will reach the operating point
conditions without additional modifications required. However, the default parameters are
defined to provide the stability and robustness of the algorithm, while it might be reasonable to
tune the computation with Expert parameters in order to increase the convergence speed of the
computation.
Expert parameters:
Common to Type I, II and III
l Estimated thrust coefficient of the propeller at operating point Kt=Thrust/
(rho*Omega**2*D**4) [-] Thrust in [N] and Omega in [rps]: (real)
The convergence speed of the computation is related to the value of the thrust coefficient (Kt).
The closer the estimated thrust coefficient (Ktest) gets to the real value at operating point, the
faster will be the convergence speed together with the stability ensured. However, this may
lead to stability issues during the computation in case of inappropriate choice of parameter
value.
To cope with potential stability issues and to avoid possible computation divergence, a limiter
is introduced. It can be activated and controlled by the following parameters after a given
number of time steps.
l Number of time steps before the limiter is activated: (real)
The limiter consists in bounding the value of the ship advancing speed or rotational speed of
the propeller at the time step (n+1) when knowing its value at the time step n.

The limiter should not be activated from the first time step when the ship advancing speed or the
rotational speed of the propeller is either small or zero.

l Number of time steps before the controller is activated: (real)


This parameter will control activation of the dynamic library after the given number of time
steps.
Type I
l Maximum variation of Omega between two consecutive time steps n and n+1 when limiter
is activated. Expressed in percentage of the value of omega at time step n: (real)
Controls the limiter behavior. Otherwise, Omega(n+1) value will be defined by the controller
of the library.
Type II
l Maximum variation of vessel speed between two consecutive time steps n and n+1 when
limiter is activated. Expressed in percentage of the value of omega at time step n: (real)
Controls the limiter behavior. Otherwise, V(n+1) value will be defined by the controller of the
library.

155 FINE™/Marine 7.1 User Guide


l Estimated advance coefficient at operating point J=Vship/(Omega*D) [-] Vship in [m/s]
and Omega in [rps]: (real). Optional for this kind of computation.
Type III
l Maximum variation of Omega between two consecutive time steps n and n+1 when limiter
is activated. Expressed in percentage of the value of omega at time step n: (real)
l Maximum variation of vessel speed between two consecutive time steps n and n+1 when
limiter is activated. Expressed in percentage of the value of omega at time step n: (real)
l Estimated advance coefficient at operating point J=Vship/(Omega*D) [-] Vship in [m/s]
and Omega in [rps]: (real). Optional for this kind of computation.
2. If the SPinputs.dat was manually completed, paste it together with the compiled library file in
the computation folder where the .sim file is stored.
3. Launch the computation.
4. When the self-propulsion computation is a Restart from the previous computation (Initial
solution set up) and applied with a zero velocity of the vessel, attention should be paid to the
time step (TS) evolution. It is recommended to change the time step law in the Control
variables menu to the Hyperbolic tangent so that after the acceleration phase, the TS
continuously will reduce from the large step value (based on the vessel during the acceleration
phase) to a small value (based on the propeller once the trim and sink of the vessel are
stabilized).
5. For computation accuracy reasons it is important to have the hull forces, trim and sinkage
stabilized first. To ensure this, switch on the controller from the very beginning of the
computation is recommended. Transition between the Ti and Tf should be sufficiently enough
to have the computational stability: 8 to 10 propeller rotation periods can be enough for the
smooth transition here. Starting from the Tf time - solver will use the TS value based on the
propeller parameters: respecting the Courant number < 2 based on the local velocity value and
cell size on the domain boundary (FNMB), more accurate force prediction will be ensured.
6. Output
l At the first time step, the dynamic library will write into the .std file defined in the
SPinputs.dat variables and its values.
================================================================
========================
+++ SELF-PROPULSION DYNAMIC LIBRARY +++

-- Mandatory input parameters in SPinputs.dat


Computation type =
Name of the vessel =
Name of the propeller =

156 FINE™/Marine 7.1 User Guide


Diameter of the propeller [m] =
Water density [kg/m3] =
Thrust is positive when omega is positive =
Additional constant wrench applied along the x axis [N] =
Vessel speed [m/s] = (only for Type I)
Propeller rotational speed [rad/s] = (only for Type II and Type III)
Power of the propeller [W] = (only for Type III)

-- Expert input parameters in SPinputs.dat


Estimated thrust coefficient of the propeller =
Estimated advance coefficient of the propeller = (only for Type II and Type III)
Number of time steps before the controller is activated =
Number of time steps before the limiter is activated =
Max. variation of Omega between two consecutive time steps in % = (only for Type I and
Type III)
Max. variation of vessel speed between two consecutive time steps in % = (only for Type II
and Type III)

=============================================================
===========================
l Each time step, the dynamic library also writes a file SPResults_ XXX.dat for each
processor, where XXX is the number of the processor. Each of this file contains the
following data distributed among the following columns:
itt : current time step
tc : current value of the time step
F_ship(tp) : vessel drag at the previous time step tp
F_propeller(tp) : thrust of the propeller at the previous time step tp
(F_ ship+F_ propeller+F_ wrench)(tp) : sum of thrust, drag and residual force at the
previous time step tp
Delta n(tp) :variation of the rotational speed of the propeller from the previous time step tp
(only for Type I and Type III)
n(tc) : value of the rotational speed of the propeller to be applied at the current time step tc
(only for Type I and Type III)

157 FINE™/Marine 7.1 User Guide


Delta V(tp): variation of the ship advancing speed from the previous time step tp (only for
Type II and Type III)
V(tc): value of the ship advancing speed at the current time step tc (only for Type II and
Type III)
(DHP_ target- DHP) (tp): difference between the imposed DHP and the DHP at the
previous time step tp (only for Type III)
DHP(tp): value of DHP at the previous time step tp (only for Type III)
Flag limiter :
l If the limiter does not bound either n(tc) or V(tc), the flag is set to 0;
l If the limiter bounds n(tc), the flag is set to 1;
l If the limiter bounds V(tc), the flag is set to 2;
l If the limiter bounds both n(tc) and V(tc), the flag is set to 3.
Next the input parameters required for the computations with the real propeller are described.

Type IV

A current limitation concerns the frequency update of the actuator disk (see "Definition" (p.
290) of the Actuator disk): it is mandatory to use an update every time step (Frequency = 1).

1. Launch the self-propulsion plugin and fill in the requested parameters or manually complete
the SPinputs.dat file with the computation parameters as it is described next:
General inputs:
l Name of the vessel: (string)

Vessel name should be defined in the same way as in the Body definition menu through the
FINE™/Marine GUI. Otherwise, the computation may crash.

l Outer diameter of the actuator disk [m]: (real)


l Water density [kg/m**3]: (real)
l Estimated propeller rotational velocity [rad/s]: (real)
l Power of the propeller (THP) [W]: (real)
Optional input:
l Additional constant wrench applied along the x axis [N]: (real)

158 FINE™/Marine 7.1 User Guide


Can be used when there is a carriage towing force or tugging conditions to be taken into
account for the simulation.

The value of 30.3 Newtons used in the 'SPinputs.dat ' template is for the KCS hull computation
case. It should be change according to the user case conditions.

Advancing velocity of the vessel becomes mandatory as well when the residual force is non
zero (namely, Additional constant wrench applied along the X- axis), otherwise the residual
force will be changed to zero and therefore not taken into account.
With 4 or 5 parameters provided, the Dynamic library normally will reach the operating point
conditions without additional modifications required. However, the default parameters are
defined to provide the stability and robustness of the algorithm, while it might be reasonable to
tune the computation with Expert parameters in order to increase the convergence speed of the
computation.
Expert parameters:
l Estimated thrust coefficient of the propeller at operating point Kt=Thrust/
(rho*Omega**2*D**4) [-] Thrust in [N] and Omega in [rps]: (real)
The convergence speed of the computation is related to the value of the thrust coefficient (Kt).
The closer the estimated thrust coefficient (Ktest) gets to the real value at operating point, the
faster will be the convergence speed together with the stability ensured. However, this may
lead to stability issues during the computation in case of inappropriate choice of parameter
value.
l Estimated advance coefficient at operating point J=Vship/(Omega*D) [-] Vship in [m/s]
and Omega in [rps]: (real).
To cope with potential stability issues and to avoid possible computation divergence, a limiter
is introduced. It can be activated and controlled by the following parameters after a given
number of time steps.
l Number of time steps before the limiter is activated: (real)
The limiter consists in bounding the value of the rotational speed of the propeller at the time
step (n+1) when knowing its value at the time step n.

The limiter should not be activated from the first time step when the rotational speed of the
propeller is either small or zero.

l Maximum variation of vessel speed between two consecutive time steps n and n+1 when
limiter is activated. Expressed in percentage of the value of omega at time step n: (real)
l Number of time steps before the controller is activated: (real)

159 FINE™/Marine 7.1 User Guide


This parameter will control activation of the dynamic library after the given number of time
steps.
2. If the SPinputs.datwas manually completed, paste it together with the compiled library file in
the computation folder where the .sim file is stored.
3. Launch the computation.
4. When the self-propulsion computation is a restart from the previous computation (Initial
solution set up) and applied with a zero velocity of the vessel, attention should be paid to the
time step (TS) evolution.
5. For computation accuracy reasons it is important to have the hull forces, trim and sinkage
stabilized first. To ensure this, it is recommended to switch on the controller from the very
beginning of the computation.
6. Output
l At the first time step, the dynamic library will write into the .std file defined in the
SPinputs.dat variables and its values.
================================================================
========================
+++ SELF-PROPULSION DYNAMIC LIBRARY +++

-- Mandatory input parameters in SPinputs.dat


Computation type =
Name of the vessel =
Diameter of the propeller [m] =
Water density [kg/m3] =
Additional constant wrench applied along the x axis [N] =
Estimated propeller rotational speed [rad/s] =
Power of the propeller [W] =

-- Expert input parameters in SPinputs.dat

Estimated thrust coefficient of the propeller =


Estimated advance coefficient of the propeller =
Number of time steps before the controller is activated =
Number of time steps before the limiter is activated =
Max. variation of vessel speed between two consecutive time steps in % =

160 FINE™/Marine 7.1 User Guide


================================================================
========================
l For each time step, the dynamic library also writes a file SPResults_XXX.dat for each
processor, where XXX is the number of the processor. Each of these files contains the
following data distributed among the following columns:
itt : current time step
tc : current value of the time step
F_ship(tp) : vessel drag at the previous time step tp
Thrust_ad(tp) : thrust of the actuator disk at the previous time step tp
Delta V(tp) :variation of the ship advancing speed from the previous time step tp
V(tc) : value of the ship advancing speed to be applied at the current time step tc
(THP_ target- THP) (tp): difference between the imposed THP and the THP at the
previous time step tp
THP(tp): value of THP at the previous time step tp
Flag limiter : if the limiter bounds V(tc), then the flag is set to 2 instead of 0.

4.3 INPUT

To run a simulation employing the Self- propulsion Dynamic Library, an input file called
SPinputs.dat should be completed with the parameters of the case study. An input data is
organized depending on the simulation types described in the previous paragraphs.

Types I, II and III

*** Type of self propulsion computation: integer


Set the computation type [must be defined].
Options: 1=solved RPM; 2=solved ship velocity; 3=fixed power.
*** Name of the vessel: string
Name of the vessel as created in the FINE™/Marine project [must be defined].
*** Name of the propeller: string
Name of the vessel as created in the FINE™/Marine project [must be defined]

161 FINE™/Marine 7.1 User Guide


Defined through the FINE™/Marine GUI Name of the vessel and propeller through the Body
Definition menu will be stored in the .sim file, thus the name used in and in the .sim and
SPinputs.dat should strictly match.

*** Diameter of the propeller in [m]: decimal number


Specify the propeller diameter [must be defined].
*** Water density [kg/m**3]: decimal number
Density of the fluid in which the propeller rotates and should match imposed in FINE™/Marine
GUI if modified manually in SPinputs.dat [must be defined].
*** Thrust is positive when omega is positive: integer
Considering the orientation of the axis, if the rotation of the propeller is positive and if the
resulting thrust in open water is positive, then this parameter should be equal to 1 [must be
defined].
0ptions: 1 = true, -1=false
*** Additional constant wrench force along X-axis [N]: decimal number
For instance, this parameter can be applied to simulate: [optional]
l vessel behavior as a tugboat, by specifying resulting force on the vessel;
l towing tank test conditions, by imposing the residual force on the carriage pulling.

This parameter is also available in FINE™/Marine GUI through the Body motion menu in the
Dynamic parameters . For instance, to model the towing tank constant tugging speed, it could be
necessary to activate the Non follower force option.

Advancing velocity of the vessel becomes mandatory when the residual force is non zero
(namely, Additional constant wrench applied along the X- axis), otherwise the residual force will
be changed to zero and therefore not taken into account.
*** Propeller rotational velocity, [rad/s]: decimal number
The rotational velocity of the propeller at operating point must be imposed by the user in case of
the solved vessel speed, and will be estimated in case of fixed power.
*** Power of the propeller [W]: decimal number
The power of the propeller at operating point. Must be defined only for the fixed power
simulation (Type III).
Expert input parameters [optional input]:

162 FINE™/Marine 7.1 User Guide


Each parameter here has a suggestion about if this parameter will be important for the certain type
of the computation (1, 2 or 3):
Requirements by type of computation: 1-Optional, 2-Not required, 3-Optional
*** Estimated advance coefficient at operating point: decimal number
Dimensionless advance coefficient of the propeller defined by J=Vship/(n*D) at the operating
point where:
Vship - advancing velocity of the ship, [m/s];
n - the rotational speed of the propeller, [rps].
The convergence speed of the computation is related to the value of the thrust coefficient (Kt).
The closer the estimated thrust coefficient (Ktest) gets to the real value at operating point, the
faster will be the convergence speed together with the stability ensured. However, this may lead
to stability issues during the computation in case of inappropriate choice of parameter value.
*** Estimated thrust coefficient of the propeller at operating point: decimal number
Dimensionless thrust coefficient of the propeller defined as Kt=Thrust/ (rhow*n**2*D**4) ,
where at the operating point:
Thrust, [N];
n - the rotational speed of the propeller, [rps].
*** Number of time steps before the controller is activated: integer
The controller will be activated after preforming the specified number of time steps. Before this, at
each time step, the rotational speed imposed on the propeller will be the same as the one has been
obtained at the previous time step.
*** Number of time steps before the limiter is activated: integer
The limiter will be activated after preforming the specified number of time steps. Before that, there
is no limitation on the variation of the propeller rotational speed between two consecutive time
steps n and n+1. After that, this variation is limited by the parameter "Maximum variation of
Omega between two consecutive time steps". This parameter can be applied to cope with the
potential stability issues and to avoid possible computation divergence.
*** Maximum variation of Omega between two consecutive time steps : decimal number
Maximum variation of the rotational speed of the propeller between two consecutive time steps n
and n+1 when the limiter is activated. Expressed in percentage of the propeller rotational speed
value at the time step n
*** Maximum variation of vessel speed between two consecutive time steps : decimal number
Maximum variation of the vessel speed between two consecutive time steps n and n+1 when the
limiter is activated. Expressed in percentage of the vessel speed value at the time step n.

163 FINE™/Marine 7.1 User Guide


Type IV

*** Type of self propulsion computation: integer


Specify 4 [must be defined]
*** Name of the vessel : string
Name of the vessel as created in the FINE™/Marine project. [must be defined]
*** Outer diameter of the actuator disk [m] : decimal number
Outer diameter of the actuator disk as defined in the FINE™/Marine project. [must be defined]
*** Water density [kg/m**3] : decimal number
Density of the fluid in which the actuator disk is located. It should match the imposed value in
FINE™/Marine GUI if modified manually in SPinputs.dat. [must be defined]
*** Additional constant wrench applied along the x axis [N] : decimal number
For instance, this parameter can be applied to simulate: [optional]
l vessel behavior as a tugboat, by specifying resulting force on the vessel;
l towing tank test conditions, by imposing the residual force on the carriage pulling.

This parameter is also available in FINE™/Marine GUI through the Body motion menu in the
Dynamic parameters . For instance, to model the towing tank constant tugging speed, it could be
necessary to activate the Non follower force option.

*** Estimated propeller rotational velocity [rad/s] : decimal number


Estimated rotational speed of the propeller being modeled with an actuator disk. [must be defined]
*** Power of the propeller (THP) [W] : decimal number
Thrust horsepower. [must be defined]
*** Estimated thrust coefficient of the propeller at operating point Kt=Thrust/
(rhow*Omega**2*D**4) [-] Thrust in [N] and Omega in [rps] : decimal number
Dimensionless advance coefficient of the propeller defined by J=Vship/(n*D)
*** Estimated advance coefficient at operating point J=Vship/(Omega*D) [-] Vship in [m/s]
and Omega in [rps] : decimal number
Dimensionless thrust coefficient of the propeller defined as Kt=Thrust/(rhow*n**2*D**4)
*** Number of time steps before the controller is activated : integer

164 FINE™/Marine 7.1 User Guide


The controller will be activated after preforming the specified number of time steps. Before this, at
each time step, the ship advancing speed will be the same as the one has been obtained at the
previous time step.
*** Number of time steps before the limiter is activated : integer
The limiter will be activated after preforming the specified number of time steps. Before that, there
is no limitation on the variation of the vessel speed between two consecutive time steps n and
n+1. After that, this variation is limited by the parameter Maximum variation of vessel speed
between two consecutive time steps. This parameter can be applied to cope with the potential
stability issues and to avoid possible computation divergence.
*** Maximum variation of vessel speed between two consecutive time steps n and n+1 when
limiter is activated. Expressed in percentage of the value of omega at time step n : decimal
number
Maximum variation of the vessel speed between two consecutive time steps n and n+1 when the
limiter is activated. Expressed in percentage of the vessel speed value at the time step n.

4.4 OUTPUT

The SPResults_XXX.dat output file is created when the dynamic library for self-propulsion is
used. At every time step, the dynamic library writes for each processor a file where XXX is the
number of the processor.
Each of the SPResults_XXX.dat files contains the following data, depending on the type of the
computation carried out:

Type I: Fixed ship speed [m/s] and computed propeller rotational


velocity [rad/s]

l itt: current time step,


l tc: current value of the time step,
l F_ship(tp): vessel drag at the previous time step tp,
l F_propeller(tp): thrust of the propeller at the previous time step tp,
l (F_ship+F_propeller+F_wrench)(tp): sum of thrust, drag and residual force at the previous
time step tp,
l Delta n(tp): variation of the rotational speed of the propeller from the previous time step tp,
l n(tc): value of the rotational speed of the propeller to be applied at the current time step tc,
l Flag limiter: if the limiter bounds n(tc), then the flag is set to 1 instead of 0.

165 FINE™/Marine 7.1 User Guide


Type II: Fixed propeller rotational velocity [rad/s] and computed ship
advancing speed [m/s]

l itt: current time step,


l tc: the current value of the time step,
l F_ship(tp): vessel drag at the previous time step tp,
l F_propeller(tp): thrust of the propeller at the previous time step tp,
l (F_ship-F_propeller+F_wrench)(tp): sum of thrust, drag and residual force at the previous
time step tp ,
l Delta V(tp): variation of the ship speed from the previoustime step tp,
l V(tc): value of the ship speed to be applied at the current time step tc,
l Flag limiter: if the limiter bounds V(tc), then the flag is set to 2 instead of 0.

Type III: Fixed delivered horsepower (DHP) [W] and computed both
propeller rotational velocity [rad/s] and ship advancing speed [m/s].

l itt: current time step,


l tc: the current value of the time step,
l F_ship(tp): vessel drag at the previous time step tp,
l F_propeller(tp): thrust of the propeller at the previous time step tp,
l (F_ship-F_propeller+F_wrench)(tp): sum of thrust, drag and residual force at the previous
time step tp,
l Delta n(tp): variation of the rotational speed of the propeller from the previous time step tp,
l n(tc): value of the rotational speed of the propeller to be applied at the current time step tc,
l Delta V(tp): variation of the ship speed from the previous time step tp,
l V(tc): value of the ship speed to be applied at the current time step tc,
l (DHP_target-DHP)(tp): difference between the imposed power and the computed power at
the previous time step tp,
l DHP(tp): value of the ship power at the previous time step tp,
l Flag limiter:
l If the limiter does not bound either n(tc) or V(tc), the flag is set to 0;
l If the limiter bounds n(tc), the flag is set to 1;
l If the limiter bounds V(tc), the flag is set to 2;
l If the limiter bounds both n(tc) and V(tc), the flag is set to 3.

166 FINE™/Marine 7.1 User Guide


Type IV: Fixed thrust horsepower (THP) [W] and computed ship
advancing speed [m/s]

l itt: current time step,


l tc: current value of the time step,
l F_ship(tp): vessel drag at the previous time step tp,
l Thrust_ad(tp): thrust of the actuator disk at the previous time step tp,
l Delta Vn(tp): variation of the ship advancing speed from the previous time step tp,
l Vn(tc): value of the ship advancing speed to be applied at the current time step tc,
l (THP_target-THP)(tp): difference between the imposed THP and the THP at the previous
time step tp,
l THP(tp): value of THP at the previous time step tp,
l Flag limiter: if the limiter bounds Vn(tc), then the flag is set to 2 instead of 0.

4.5 RECOMMENDATIONS

1. As for the standard resistance computation, the large time step can be used until the trim and
sinkage of the vessel are stabilized. Few time steps can be sufficient to run after the
acceleration ramp on the imposed velocity has reached its target velocity value.
2. Overestimating the propeller thrust coefficient (Kt) is better for robustness, however
underestimating can increase the convergence speed. Difference between the estimated thrust
coefficient (Ktest) and the real thrust coefficient (Kt) at operating point above 50% can be
acceptable.
3. It is advised to activate the limiter at about ¾ of the velocity ramp (namely 150 time steps if
200 time steps are used for the velocity ramp).
4. Perform 4 rotations of the propeller at least with the small time step to make sure convergence
is reached. In practice, several dozen propeller rotations can be needed.
5. If the dynamic library is used during the restart, activate the dynamic library after 3 time steps
at least to avoid the influence of potential peaks that could occur during the restart.
6. The closer to the operating point it comes, the lower the estimated thrust coefficient can be
applied to accelerate the convergence. Computation restarts could be a good solution in order
to reach the operating point faster.

167 FINE™/Marine 7.1 User Guide


7. Check the 'SPResults_XXX.dat' file to ensure that the flag limiter is not equal to 1 at the end.
Otherwise, the computation will not converge. If many values are equal to 1 during the
computation, either the Ktest is too low and should be increased either the limiter is activated
too early. It is also possible that the gain for the Maximum variation of Omega between two
consecutive time steps is too low.
8. For an unsteady mode computations at least 8 non linear iterations are recommended. The
smaller time step size should be chosen according to the mesh cell sizes, so that between 2
consecutive time steps, a cell at the FNMB does not travel more than 2 cells in distance. This
can be checked a posteriori once the computation is finished and the rotational speed of the
propeller is known.
9. The value of the propeller diameter should be given accurately with less than a few percents of
the uncertainty.

168 FINE™/Marine 7.1 User Guide


CHAPTER 5.

GENERAL PARAMETERS

The General Parameters page, as shown in FIGURE 5.1 , can be used to specify the time
configuration and dependence of the equations to solve.

FIGURE 5.1
General parameters page

169 FINE™/Marine 7.1 User Guide


The Steady time configuration can be chosen in two cases:
l If the project deals with a mono-fluid and steady physical configuration, a full steady approach will
be used. The interface is adapted and the computation is fully time independent
l To reach a steady state with a multi-fluid configuration, a Time Marching Method will be used. This
method gives an access to time parameters, the same as for the Unsteady mode.
The Unsteady time configuration can be chosen in case of a fully unsteady project, which gives access
to additional parameters for unsteady flow simulation. All parameters in the FINE™/Marine interface
related to unsteady computations are described in the following section.

In this section
5.1 Unsteady Computation Interface 171
5.2 Best Practice on Time Accurate Computations 171

170 FINE™/Marine 7.1 User Guide


5.1 UNSTEADY COMPUTATION INTERFACE

When selecting the Unsteady time configuration in the General Parameters page (or Steady and
Multi-fluid in the Fluid model page), the following additional parameters become accessible in the
FINE™/Marine interface:

Control variables

On the Computation Control/Control Variables page, the following parameters appear when
selecting an unsteady time configuration:
l Maximum number of non-linear iterations: to define the number of non-linear iterations for
each time step
l Number of time steps: to define the number of time steps to perform
l Time step law : to define the evolution of the time step as a function of time (see Control
Variables chapter)

By default only one set of output files is created. It is possible, however, to save some quantities at
specified time steps into separate files. This action can be done using the Probe capability, see Probe
Variables.

First and second order time-accurate scheme

FINE™/Marine can perform first and second order accurate simulations in time. When requesting
a second order restart of an unsteady computation, the flow solver will automatically look for files
containing the solution at previous time steps. If the files exist, a second order restart is performed.
If the files are not found, a first order scheme is used for the first time step.

5.2 BEST PRACTICE ON TIME ACCURATE


COMPUTATIONS

General advice on how to perform time accurate computations is provided in this section.

171 FINE™/Marine 7.1 User Guide


General Project Set-up for Time Accurate Computations

1. Create a new project,


2. Select Unsteady in General parameters page (or Steady and Multi-fluid in the Fluid model
page),
3. Edit the fluid(s) to use in the Fluid Model page,
4. Set the boundary conditions. Notice that, at this moment only steady boundary conditions are
available.
5. There are three possibilities for the initial solution:
l to start from a steady solution,
l to start from an unsteady solution,
l to use constant values.
For more detail on these, see the Initialisation Procedure below.
1. All available outputs in steady mode are also available in unsteady mode (see the Outputs
chapter).
2. On the Computation Control / Control Variables page set:
l the maximum number of non-linear iterations,
l the number of time steps,
l the time step law.

Initialisation Procedure

Start from a steady solution

In some cases it is necessary to perform a preliminary steady state computation. The objective
might be to ensure that the problem naturally depicts the unsteady behavior and/or to get an
adequate guess solution before going towards time-accurate calculations with periodic behavior.
The steady state initialization may be done in a separate computation, performed in steady mode.
The time accurate calculation is then started using this solution as an initial solution. In step 5,
select Initial solution from file and select the solution of the steady computation.

Start from a time accurate solution

It is possible to start from a previous time accurate solution. For general information about starting
from an initial solution, see Restart from a Previous Computation.

172 FINE™/Marine 7.1 User Guide


In order to do a second order accurate restart, it is necessary to keep, in the initial solution
directory, all the files which are generated by the flow solver during the unsteady computations
used to initialize the present computation. When requesting a restart of an unsteady computation,
the flow solver will automatically use this second solution file.
This method is appropriate when dealing with weighted deformations:
1. Perform a first computation blocking all the degrees of freedom, see Fixed Degree of Freedom,
2. When a steady state is reached, create a new computation and initialize it from the previous
computation,
3. Free the degrees of freedom by setting them to the correct setting and restart the computation
from the last time step.

It is also possible to start a new project without blocking the deformations, but it is recommended to
free up to two degrees of freedom

Start from a constant solution

For the first time step, a first order time-accurate scheme is used. A second order time-accurate
scheme is then used for the second time step.

Time Step Law

The time step law should be defined on the Control Variables page. Choice of the correct time
step law and values depend on the expected frequency of the flow phenomena to be captured. In
general, it is recommended to compute 100 time steps per period.

173 FINE™/Marine 7.1 User Guide


CHAPTER 6.

FLOW MODEL

The Flow Model page, as shown in FIGURE 6.1, can be used to specify several characteristics of the
flow:
l the mathematical model to:
l choose between laminar and turbulent flow,
l edit the gravity intensity,
l reference parameters defining the Reynolds number linked to Fluid-1, defined in the Fluid Model
page and the Froude number of the computation.

174 FINE™/Marine 7.1 User Guide


FIGURE 6.1
Flow Model page

In this section
6.1 Mathematical Model 176
6.2 Gravity Intensity 184
6.3 Reynolds and Froude Numbers 185

175 FINE™/Marine 7.1 User Guide


6.1 MATHEMATICAL MODEL

6.1.1 Laminar Navier-Stokes

When working with Laminar flows, turbulent component should not be taken into consideration
during the simulation.
In FINE™/Marine, available non-turbulent models are:
l Laminar: dynamic viscosity will be the laminar kinematic viscosity;
l Euler: dynamic viscosity will be set to 0 and all Solid Boundaries will be set to the Slip Wall
condition.
Information about Boundary condition types can be found "Solid Wall Boundary Condition" (p.
195)

6.1.2 Turbulent Navier-Stokes

When selecting turbulence Navier-Stokes models, turbulence is taken into account through the
chosen turbulence model. In FINE™/Marine, several turbulence models are available:
l Spalart-Allmaras,
l k-epsilon (Launder-Sharma),
l k-omega (Wilcox),
l k-omega (BSL-Menter),
l k-omega (SST-Menter),
l EASM (Explicit Algebraic Stress Model),
l DES-SST,
l DES-SST-F1,
l DES-SST-F2.
For all turbulence models, additional equations are solved, and consequently suitable initial and
boundary conditions are required. This is automatically done by the interface, see the Uniform
Values section.

176 FINE™/Marine 7.1 User Guide


For EASM turbulence model, the expert parameter turbModelRotCorrection_ will be switched on
by default.

Spalart-Allmaras is not compatible with wall-function for the solid walls boundary condition.

See: "Best Practice for Turbulence Modeling" (p. 177)

6.1.3 Best Practice for Turbulence Modeling

A. Introduction to Turbulence

Turbulence can be defined as the appearance of non-deterministic fluctuations of all variables


(velocity u', pressure p', etc...) around mean values. Turbulence is generated above a critical
Reynolds number that may range in values from 400 to 2000, depending on the specific case. In
95% of industrial applications, the flow Reynolds number lies above that range. That is why it is,
in general, necessary to predict adequately the turbulence effects on the flow-field behavior.
To model turbulent flow in a satisfactory way, four steps should be performed:
l choosing a turbulence model,
l generating an appropriate grid,
l defining initial and boundary conditions.

B. First Step: Choosing a Turbulence Model

The complete list of the different turbulence models is repeated below:


l Spalart-Allamaras (cannot be used with wall functions),
l k-ε (Launder-Sharma),
l k-ω (Wilcox),
l k-ω (BSL-Menter),
l k-ω (SST-Menter),
l EASM,
l DES-SST,
l DES-SST-F1,

177 FINE™/Marine 7.1 User Guide


l DES-SST-F2.
Two main kinds of turbulence models are present:
l one-equation models (Spalart-Allmaras)
l two-equations models (k-ε, k-ω models, EASM, DES)

k- ω (SST- Menter) is the default and represents the recommended turbulence model for all basic
hydrodynamic computations. However, the EASM turbulence model demonstrates slightly better
results for a reasonable extra CPU cost especially in the wake of the ship or the propeller for instance.
To get more accurate results, one best practice would be to start from the k- ω (SST- Menter) and
make a restart using EASM model for few extra time steps.

See Section 2 of the theoretical manual for more details about all turbulence models.

C. Second Step: Generating an Appropriate Grid

Cell size

When calculating turbulence quantities, it is important to place the first grid within a certain range
(y wall ) to the wall. When doing computations including viscosity (Navier-Stokes equations) the
boundary layer near a solid wall contains high gradients. To properly capture these high gradients
in a numerical simulation, it is important to have a sufficient number of grid points inside the
boundary layer. When Euler computations are performed, no boundary layer exists and therefore
the cell size near solid walls is of less importance.
To estimate an appropriate cell size ywall for Navier-Stokes simulations including turbulence, the
local Reynolds number based on the wall variable y+is computed.
The value of y+ associated with the first node near the wall will be referred to as y1+:

where uτ is the friction velocity:

Note that the value of ywall depends on the value of y1+.

178 FINE™/Marine 7.1 User Guide


FIGURE 6.2 shows the evolution of u + against y + from the measurements of Lindgren(1965)
with:

u+= /

Low-Reynolds models resolve the viscous sublayer and are well suited for y 1 + values below 1
whereas high-Re models apply analytical functions to the log-layer and are appropriate to y 1 +
values ranging from 30 to 300 (it depends on the extension of the buffer layer for the considered
flow). For y 1 + higher than 30, Wall-function boundary condition can be used whereas No-slid
(wall resolved turbulence model) should be preferred for y1+below 1.

FIGURE 6.2
Boundary layer profiles
Picture from White, F.M., Viscous Fluid Flow, McGraw Hill, 1991.

Note: The variable v* displayed in the figure is uτ.

Moreover, one can notice that the logarithmic function does not apply for separated flow. When it
is expected that get a significant amount of separation, a low-Reynolds number turbulence model
is more appropriate. In that case, wall-function should not be used.
One way to estimate ywall as a function of a desired y1+ value is to use a truncated series solution
of the Blasius equation:

When using wall functions the following formula can be used to choose an adequate value of y+:

179 FINE™/Marine 7.1 User Guide


Suggested y+ values depend on the Reynolds number. Bigger the Reynolds number is, bigger the y+
value can be. Hence for model scale (equivalent to low Reynolds numbers), y+ will be in the range of
30/50 and from 50 until 200/300 for full scale (for high Reynolds numbers).

Thanks to a special treatment in the flow solver, any value of y + from 1 to the upper limit stated
above can be set with a wall function. However, the range of maximum turbulence production [10,20]
should be avoided for y + of first cell since this leads to errors of 3% to 4% on the estimation of
viscous stresses.

The y+ value for the Menter k-ω turbulence model should actually be closer to 0.2 than to 1 when
not using wall-function.

Note that the reference velocity, V ref, can be taken from the body velocity. The reference length,
L ref, should be based on the body length since an estimation of the boundary layer thickness is
implied in this calculation. For instance, in the case of a marine simulation, one could use the boat
length, or the so-called length between perpendiculars, as reference length. It refers to the length
of a vessel along the waterline from the forward surface of the stem, or main bow perpendicular
member, to the after surface of the sternpost, or main stern perpendicular member. This is
approximate, of course, as the thickness of the boundary layer will vary widely within the
computational domain. Fortunately, it is only necessary to place y 1 + within a range and not at a
specific value.

A y+ estimation tool is available in HEXPRESS™ in the viscous layer insertion menu. The same tool
is also used in the C-Wizard during the mesh setup.

Another method of estimating y wall is to apply the 1/7th velocity profile. In this case, the skin
friction coefficient Cf is related to the Reynolds number:

180 FINE™/Marine 7.1 User Guide


where Rex should be based on average stream wise values of V ref and L ref as discussed above.
Since uτ is based on C f it may be calculated based on the friction velocity, and ywall may then be
calculated from y1 + . Note that either method is not exact but they will yield results that are quite
close to each other. In fact, it can be instructive to calculate ywall using both methods as a check.
Since only one wall distance is being calculated, the particular flow being studied should be kept
in mind. For instance, if it is a diffusing flow C f, and hence y1 + , can be expected to drop. Since a
certain range is desired (e.g., 20< y +<50 for high-Re Standard k-ε) the user may choose to base
the calculation of wall distance on an average of that range (e.g., 40).
It is important to know, that the flow solver does not update the wall distance during the
simulation. Hence, this can cause a problem for propeller computations with the sliding grid, since
the close cells outside the rotating domain will have a different distance to the wall during the
simulation.

Things to look out for

These instructions should provide reasonable estimates but it is always wise to plot y + once a
solution has been obtained. Spot checks should be made to ensure that most y1+ values fall within
the desired range. For instance, it is useful to plot y+ contours over the first layer of nodes from a
given wall. There are some special cases where such checks do not strictly apply. For instance,
skin friction approaches zero at points of separation, so it is expected that y1 + will be low in such
regions.

General advice

Which grid resolution is adequate?

The resolution method employed in the flow solver requires approximately 9 nodes across a free
shear-layer, and approximately 15 across a boundary layer to provide grid independent results for
turbulent flows. If wall functions are used, the boundary layer only requires approximately 9
nodes.
Of course the flow field under consideration will consist of shear layers of which the width varies
substantially throughout the flow field. The user must therefore decide what is important to
capture. The number of nodes in stream wise direction should be determined by what resolution
adequately represents the studied geometry. Regions of local high gradients, such as keel leading
or trailing edges or any geometrical corners, should contain a relatively high number of nodes.

181 FINE™/Marine 7.1 User Guide


What determines the grid quality?

After the various grids creation, the level of skewness must be analyzed. Providing clustering in a
curved geometry can often lead to internal angles of grid cells smaller than 10°. It is important to
minimize the number of cells containing such low angles as the calculation of fluxes can become
significantly erroneous under such conditions. More information concerning how to check the
quality of a grid can be found in the HEXPRESS™ User Guide. The expansion ratio, or the ratio
of adjacent cell sizes, should also be checked. It is particularly important to keep this value within
an absolute range of about 0-1.6 in regions of high gradients, such as boundary layers, free shear-
layers and shocks. If it is obvious that adjacent cells are different in size by factors significantly
greater than two, the clustering in this region should be reduced or the number of nodes should be
increased.

Verification of y+

By following these instructions, it should be possible to generate a grid of reasonable quality for
turbulent flows. It is recommended, however, to check values of y 1 + with CFView™ after
approximately one hundred iterations on the fine grid to ensure the proper range has been
specified. At the same time, it can be useful to plot contours of residuals and turbulence over
selective planes within CFView™. If the level of skewness is too high, this will be indicated by
local peaks in residuals that are orders of magnitude greater than the rest of the flow field.

D. Best practice for DES models

These models can be classified in Detached Eddy Simulation (DES). A DES approach is based
on an implicit splitting of the computational domain into two zones. In the first region near solid
walls, the conventional RANS equations have to be solved. Within the second region, the
governing equations are the filtered Navier-Stokes equations of the LES approach.
1. When to use it
DES should be used if the expected flow solution is dominated for strong unsteadiness.
However, this model will be far more expensive because of the LES component and the lack
of spatial symmetry in the instantaneous flow solution. DES model is then not recommended
for marine applications (k-ω (SST-Menter) is most of the time more accurate and far less
expensive) but can be used for aerodynamic or mono-fluid applications.
2. How to use it
l (optional) run a first steady computation with k-ω (SST-Menter) model,
l restart with an unsteady simulation using DES model until stability of the signal,
l restart the computation activating the mean variables from the output menu (see "Mean
Flow Variables" (p. 479)).

182 FINE™/Marine 7.1 User Guide


3. Mesh guidelines
l The mesh should not be done with a symmetric boundary condition for Y-direction even if
the ship is symmetric. The reason is that the flow can be asymmetric. It is then
recommended to mesh the half ship and use the mirror and copy option in HEXPRESS to
get the full ship in Y-direction.
l For an external aerodynamic simulation of an object, it is not recommended to make a pure
2D simulation. It is better to take a 3rd direction into consideration by putting mirror planes
and around 80 cells into this direction.
l In case of mono-fluid simulation for a ship, there is no problem to define the top Z-constant
plane as mirror boundary condition.
l A box of refinement should be defined to ensure an isotropic refinement all around the ship.
Box dimensions:
o X-direction: 1/10th of LOA before the bow, 1/4th of LOA behind in case we want to
capture the wake a little bit,
o Y-direction: slightly bigger than the ship,
o Z-direction: 1/5th of the height of the ship below the ship and it can stop at the free
surface position.
l The cell size is based on the Taylor scale (Ts) and equal to with

As an example: Cell size is about 14 mm for JBC ship from the Tokyo Workshop 2015
(model scale).
l Y+ must be below 1. Hence a target of 0.2 or 0.3 should ensure to be below 1 while
inserting the viscous layers.
4. Simulation settings for the restart (as soon as DES is activated)
l Unsteady mode
l Recommended turbulence model DES version: DES-SST (the versions F1 and F2 do not
generally bring more flow information).
l Numerical schemes for Turbulence and Momentum: BLENDED with UPWIND of 0.05
(5%).
l The time step is the most difficult to estimate since it depends on the flow structures to be
captured. A first rule of thumb says that we can have (classic is 10

times higher) so that the ship sees 1000 times the same particle.
l 20 non linear iterations with 2 order of gain.

183 FINE™/Marine 7.1 User Guide


FINE/Marine cannot make a restart between a steady mono fluid and an unsteady mono fluid
computation using a accumulation of the results. Hence, the user should not activate the option
“Import convergence history” in that particular case.

E. How about turbulence modeling when the Euler type of


equations are to be solved?

Due to the fact, that turbulence is not solved for the Euler type of equations the following advices
could be followed:
1. Flow Model should be set as Laminar
2. Boundary Conditions for the Solid walls set as SLIP (zero shear stress). Else, the Wall-
function condition can be applied to the Solid boundaries in case the convergence is slow and
hard to reach.
3. Dynamic viscosity is not possible to set as zero now, so it should be reduced to a small value
tending to zero.
It is important to notice, that the convergence of such simulation is less stable, same time the
number of non-linear iterations is recommended to be increased in general.

6.2 GRAVITY INTENSITY

When gravity is taken into account, the Gravity Intensity (FIGURE 6.3) should be edited. One
input is required which corresponds to the gravity intensity along Z-axis for 3D projects and Y-
axis for 2D projects.

FIGURE 6.3
Gravity Intensity

When a mono-fluid computation is performed, the gravity intensity is set automatically to 0 by the
solver. It is thus not present in the interface.

When the gravity is taken into account in the Navier-Stokes equations, the source term:

184 FINE™/Marine 7.1 User Guide


is introduced in the momentum equations where ρ is the density and the gravity vector. Because
the fluid is assumed incompressible, the density of each fluid is uniform.

6.3 REYNOLDS AND FROUDE NUMBERS

Characteristic values can be specified to compute the Reynolds and the Froude numbers:
l Reference length
l Reference velocity
These values are used to give useful information to choose the suitable turbulence model (Best
Practice for Turbulence Modeling) and the flow configuration.

The Reynolds number is computed for Fluid-1 only.

185 FINE™/Marine 7.1 User Guide


CHAPTER 7.

FLUID MODEL

Every FINE™/Marine project contains at least one fluid with corresponding properties. In
FINE™/Marine, the fluid can be defined by:
1. using the default fluid(s) properties. They correspond to salt water and atmospheric air in case of
multi-fluid flow,
2. creating a new fluid by editing the name and properties.
When an existing project is opened, the fluid is defined by the properties as given in the project file.
Presently, only Newtonian liquids with uniform density can be simulated.
This menu also allows to a model passive scalar field. This field is not interacting with the other fluids.
Its objective is to use the information from the other fluids to be passively convected.

In this section
7.1 Mono-Fluid Project 187
7.2 Multi-Fluid Project 188
7.3 Passive scalar 190

186 FINE™/Marine 7.1 User Guide


7.1 MONO-FLUID PROJECT

In the Fluid model menu, the fluid properties can be defined: the Name of the fluid, the Dynamic
viscosity and the Density. All modifications are applied to the current project only.

FIGURE 7.1
Fluid Model Page for Mono-Fluid project

Usually, Fluid-1 corresponds to the liquid water. Hence, the interface provides the complete
database of water properties: clicking on the "drop" button in the Fluid model menu will access
the table of fresh and salt water. The user can select a line from the table, presenting the following
parameters: temperature, density, dynamic viscosity and kinematic viscosity. Clicking Ok button
will confirm the choice and set this parameter to Fluid-1. Presented values refer to the ITTC
standards.

187 FINE™/Marine 7.1 User Guide


FIGURE 7.2
Water properties table

7.2 MULTI-FLUID PROJECT

When activating the Multi- fluid feature, the free surface capabilities become available. This
section describes the parameters which need to be defined.
The Fluid model menu proposes to set up the properties of the first and the second fluids (Fluid-1
and Fluid-2 respectively). It is important to note that Fluid-1 is always defined below Fluid-2,
along the gravity direction.

188 FINE™/Marine 7.1 User Guide


FIGURE 7.3
Multi-Fluid Model Page

The water properties table is available in both Mono- and Multi-fluid projects.

Initial Solution Page

In the page Initial Solution, the free surface location can be changed. The default value is set to 0
[m] along the Z-axis, see Uniform Values for more details about the Initial solution page.

FIGURE 7.4
Interface position

189 FINE™/Marine 7.1 User Guide


Numerical Model

In the Numerical Schemes page, the mass fraction discretization scheme can be changed. The
default model is BRICS, see Multi-Fluid Equations.

FIGURE 7.5
Discretization Scheme for Multi-Fluid Computation

In the Under- relaxation parameters page, the mass fraction is also available, see Under-
Relaxation Parameters.

7.3 PASSIVE SCALAR

A passive scalar is a diffusive contaminant in a fluid flow that is present in such low concentration
that it has no dynamical effect (such as buoyancy) on the fluid motion itself (therefore passive). It
can also be considered as a tracer.
The passive scalar does not influence the fluid properties, but there is still a transport equation
solved for it. It is represented as a scalar quantity within an incompressible fluid flow. This is a
valid assumption for example for the transport of air within the water. For the smoke going out of
the chimney of a ship for instance, the literature mentions that this feature can be used as a first
approach but might not be sufficient for a full detailed analysis, also since temperature cannot be
taken into account for the moment.
This feature is compatible with both mono- and multi-fluids simulations.

It is important to note that, scalar transport does not assume any physical dimensions for passive
quantities. Therefore, this feature allows to study the transport of mass concentration or any other
field in the same way.

This passive scalar can be activated in the menu by clicking on the check box button. Once this is
done, the name of the scalar can be freely defined. The default name is 'SCALAR'.

190 FINE™/Marine 7.1 User Guide


FIGURE 7.6
Passive scalar activation for a scalar called 'Smoke'.

When the passive scalar is active, the scalar value can be defined per patch on SOLID and
EXTERNAL boundary conditions types (see "Boundary Conditions " (p. 192)).
The type of numerical scheme to solve the transport equation is selectable in the "Numerical
Models" (p. 373) menu.
Passive scalar choice is also available for volume, surface and point probes (see "Probe
Variables" (p. 464)) to see the evolution in time of the scalar field. It is also present as a mean
output variable (see "Mean Flow Variables" (p. 479)).

191 FINE™/Marine 7.1 User Guide


CHAPTER 8.

BOUNDARY CONDITIONS

During the HEXPRESS™ grid generation process, the type of boundary conditions must be defined in
the Boundary Conditions page:
l Solid,
l External,
l Mirror,
l Full non-matching.
This chapter gives a description of the available boundary conditions in the Boundary Conditions
page in the FINE™/Marine project set-up.
See also:  Turbulence models in the Theory Guide.

When selecting the Boundary Conditions page, the parameters window appears as shown in
FIGURE 8.1.

192 FINE™/Marine 7.1 User Guide


FIGURE 8.1
Boundary Conditions page

A characteristic of the Boundary Conditions pages is their subdivision into two areas. The left
area always contains a list of the different patches, and the right area represents the selected
boundary condition type. A patch can be identified by the name of the block face to which it
belongs, or by the name given in HEXPRESS™. For the selected patch(es), the right area is
where the boundary condition parameters are set.
One or several patches may be selected in the left area by simply clicking on them. Clicking on a
patch deselects the currently selected patch(es). It is possible to select several patches located one
after another in the list by clicking on the first one and dragging the mouse over the next ones or
holding the <Shift> key between the first patch and the last one. To select a group of patches that
are not located one after another in the list, the user should click on each of them while
simultaneously holding down the <Ctrl> key.
It is also possible to select all the similar patch(es) by pressing the right-click button of the mouse
on the selected patch(es).
When a patch is selected, it is also highlighted in the graphics area, where the mesh topology of
the project is displayed.

If the Inlet or Outlet boundary conditions type was selected in HEXPRESS™, a warning message
will appear as soon as the user enters the FINE™/Marine GUI: they are not available for
FINE™/Marine projects since only External , Solid and Mirror boundary condition are possible.
These conditions should be replaced directly in HEXPRESS™ as soon as the following warning
message appears:

FIGURE 8.2
Warning message due to presence of INLET or OUTLET boundary condition(s)

If the same names are set for different patches in HEXPRESS™, the interface will automatically add

193 FINE™/Marine 7.1 User Guide


extra information to distinguish them:
l B# (Block or domain number),
l F# (Face number),
l P# (Patch number).
The information will not be kept for the post-processing step.

8.1 Solid Wall Boundary Condition 195


8.2 External Condition 196
8.3 Mirror Condition 213
8.4 Non Conformal Interface 214

194 FINE™/Marine 7.1 User Guide


8.1 SOLID WALL BOUNDARY CONDITION

The Solid wall boundary condition page is customized according to the type of calculation
(inviscid or viscous). Several possibilities are available depending on the type of flow. These
boundaries can be set as laminar or turbulent.

FIGURE 8.3
Solid Wall page

Slip Wall

This type of boundary condition corresponds to a zero shear stress at the wall: the tangential
component of the velocity is different from 0 and the turbulent production due to shear is
neglected.

When dealing with multifluid simulations, the part of the body which is always surrounded in the
fluid with a very low density, can be set to Slip wall. The Reynolds number is much less important
and the turbulence effects can be neglected.

No Slip Wall

The No Slip (wall resolved turbulence model) condition imposes a zero velocity on to the
boundary.

This condition can be used for a laminar flow or a turbulent flow using Low-Reynolds turbulence
models.

Wall with Wall-Function

The Wall-function condition is applied on solid patches.

195 FINE™/Marine 7.1 User Guide


The Wall-function is not available for a laminar flow.

The Wall-function is currently limited to k-ε, k-ω and EASM models and does not exist for Spalart-
Allmaras.

In both cases, a warning will pop up incompatible features are combined.

FIGURE 8.4
Warning message for the flow model page

Passive scalar value

Once activated in the menu (see "Fluid Model" (p. 622)), the passive scalar can be activated on a
given patch and its value defined individually.

FIGURE 8.5
Passive scalar value

8.2 EXTERNAL CONDITION

The external boundary condition is provided to treat velocity and pressure conditions. But it is
also possible to impose a wave generator or an Overset type for the specific calculations
involving the "Overset grid management" (p. 423).

196 FINE™/Marine 7.1 User Guide


8.2.1 Far Field with Constant Values

Thanks to this boundary condition type, it is possible to initialize the velocity, the mass fraction
and the turbulence by using default values or entering constant values.

FIGURE 8.6
Constant Velocity Far Field: 0 m/s.

The imposed variables at this boundary type depend on the local flow direction with respect to the
boundary patch: the flow is locally entering or leaving the domain. As a consequence, a Dirichlet or a
Neuman condition will be applied. The code will automatically adapt the condition to the correct
situation and control the mass flow rate.

197 FINE™/Marine 7.1 User Guide


A velocity ramp can be imposed to reach the desired constant velocity starting from 0 m/s. Please
read the description of the expert parameter DurationToTargetVelocity_ in the Impose Velocity
Ramp at Far Field section to know more about this possibility.

8.2.2 User Defined Far Field

It is also possible to enter a user defined profile for Vx, Vy, Vz velocity components separately
but also for Turbulent quantities. This is done by selecting fct(space) instead of Constant Value:

FIGURE 8.7
User Defined Far Field

When fct(space) is selected, the user has to specify the Profile type. When a profile is selected,
the user has to define it in the Profile manager accessible by clicking on the button next to
profile data.

198 FINE™/Marine 7.1 User Guide


Profile manager

FIGURE 8.8
Profile manager window

The Profile Manager allows to define profiles used to interpolate the corresponding physical
variables at the boundary. The user can either manually enter the values into the columns of the
Profile Manager or import an external file.
This external file must be created with the extension .p and be imported using the Import button.
The values of the physical variables stored in this file can come from any source: experiments,
previous computations, etc. It is also possible to import CGNS data.

In case of a 2D profile, the quantity is not represented in the graphics area of the profile manager.

The theta angle is defined as . It should be defined in radians and goes from
. It follows the convention: angle = 0 at 3 o'clock. Counterclockwise is positive.

199 FINE™/Marine 7.1 User Guide


When using a 2D interpolation along r and θ, the profile has to be circular and defined from
the origin (0,0,0) and normal to the Z-axis.

Profiles should cover the patch full length or area. Indeed, the flow solver can interpolate the values
from the profile on the mesh but it is not possible to extrapolate.

The profile is graphically represented on the right part of the window. When putting the mouse
over a green cross, the interface indicates which point it corresponds to.
In the Profile Manager it is also possible to Export the profile for backup or later usage but also
to Clear the profile.

In the column title of the Profile manager : u means Vx, v means Vy, w means Vz.

.p file format

Here is a description of the format to create the external profile (.p file):
Line 1: a string defining the name of the quantity. It can be Vx, Vy, Vz, Turbulent kinetic energy
or Turbulent dissipation.
Line 2: interpolation type (see the available "Interpolation types" (p. 201)) and the number of
points of the profile curve.
The next lines can consist in different types of information:
l For 1D interpolation profiles, the 1st column is the coordinate, the 2nd one is the physical
value and the 3rd one is always 0.
l For 2D interpolation profiles (except x, y and z and r, θ and z), the 1st two columns are the
coordinates and the 3rd one the physical value.
l For 2D interpolation profiles for x, y and z and r, θ and z, the 1st three columns contains the
coordinates. For the velocity, the next three columns contain each velocity component whereas
for the turbulent quantity, 1 column containing the physical value is enough. This information
can be provided by a CGNS file (*.cgns) or a .p profile.

200 FINE™/Marine 7.1 User Guide


Interpolation types

Interpolation type
1 1D interpolation along x
2 1D interpolation along y
3 1D interpolation along z
4 1D interpolation along r
5 1D interpolation along θ
51 2D interpolation along x and y
52 2D interpolation along x and z
53 2D interpolation along y and z
54 2D interpolation along r and θ
55 2D interpolation along r and z
56 2D interpolation along θ and z
61 2D interpolation along x, y and z
62 2D interpolation along r, θ and z
TABLE 8.1 Interpolation types

Example

The following lines give an example of the data profile format for the quantity Vz (from 0.1 to
0.5m/s) with an X-profile (from 0 to 1m) defined with 5 points:
Vz
15
0 0.1 0
0.3 0.2 0
0.6 0.3 0
0.8 0.4 0
1 0.5 0

CGNS format

It is also possible to import a CGNS file. The flow solver can only read triangulated CGNS files.

201 FINE™/Marine 7.1 User Guide


To use a result from another simulation, one can export the cutting plane with the triangulated
format from CFView™ or directly from the flow solver using "Surface Probes" (p. 465). A
boundary condition cannot be directly exported from CFView™ since it is not triangulated.

It is not possible to probe the Velocity, Turbulent Kinetic Energy and Turbulent Dissipation in one
FINE™/Marine simulation and directly impose the resulting CGNS file. It should come from
CFView™.

Mass fraction

For the Mass fraction, the user can chose between the default value and a user defined value. For
the user defined value, the choice between Fluid-1 and Fluid-2, corresponding to the fluids from
the Fluid model menu.

For the turbulence it is also possible to activate the option From turbulence level initialization .
This is similar to what is already present for the Initial Conditions menu.

8.2.3 Prescribed Pressure

For this type of boundary condition (Dirichlet), the pressure is imposed during the initialization of
the computation. It gives access to two different types of conditions described below.

FIGURE 8.9
Prescribed pressure condition

202 FINE™/Marine 7.1 User Guide


Updated hydrostatic pressure

If the Z-axis is oriented along the gravity vector, the pressure value is set to -ρfluid g(z(t)-z0). This
value will evolved during the computation if the mesh is moving vertically or according to the free
surface position. The fluid is free to enter or exit this boundary.
This condition is recommended for the top and the bottom patches of the domain in case of a 3D
project with multi-fluid flow for boat simulation.

This boundary condition cannot be used together with a user-defined pressure (thanks to a Fortran
program, see Files Used as Initial Data Profile since the flow solver will overwrite this user-defined
pressure.

It is possible to update the mass fraction on this boundary thanks to the expert parameter
CIFarField_ (by default, it is not active).

Frozen pressure

This boundary condition keeps the pressure constant and equal to 0 during the computation.
It should be preferred for hydraulic projects, for mono-fluid computation or for the exit of a multi-
fluid computation where this boundary is not affected by the gravity (for instance, the top of a
domain).

This boundary condition can be used together with a user- defined pressure (thanks to a Fortran
program, see Files Used as Initial Data Profile.

8.2.4 Zero pressure gradient

This type of boundary condition (Neumann) imposes the pressure gradient to zero. The pressure,
as for any other dependent variable, is located at the center of the control volumes (cell-centered
location).
This boundary condition is recommended for hydraulic and multi-fluid projects, especially for a
boundary where two fluids exit the domain.

203 FINE™/Marine 7.1 User Guide


Illustration

the following figure illustrates a cell at the vicinity of a boundary (dashed): F means "Fluid" and
B means "Boundary". If a zero pressure gradient is applied on B, the gradient at B is equal to its
value in F and the pressure is extrapolated from F to B according to the hydrostatic equilibrium if
the gravity vector is not the zero vector. The pressure on the boundary is then computed by the
following formula

In any case (prescribed or zero pressure gradient), at B, velocity fluxes and velocity component
are solved according to the mass conservation constraint in cell F.

8.2.5 Overset

This boundary condition is implemented for the "Overset grid management" (p. 423) support. It
can intersect with other physical and solid boundaries existing in all the domains of the simulation.
It has no impact on the physics of the flow but allows to transfer the information between the
different grids of the simulation.

204 FINE™/Marine 7.1 User Guide


If at least one EXTERNAL boundary is specified as an overset boundary condition Overset Grid
will be activated automatically if it is not yet active. On the other hand, if Overset Grid will be
deactivated, all overset boundaries will be switched to the Far Field EXTERNAL boundary
condition.

8.2.6 Wave Generator

Regular waves

Wave generation is based on the Stokes wave theory.


The wave depth is a positive value (displayed by a blue arrow in the graphics area). It measures
the distance between free surface at rest and the bottom of the domain. It is required such that
V x =0 at the bottom of the domain since shallow water configuration changes the behavior of the
wave. Indeed, deep water, shallow water or intermediate state situation cannot be automatically
distinguished. The solved dispersion relation is the generic dispersion relation (Stokes wave): it
gives the wave length L from the knowledge of the wave period T and from the water depth D.
FIGURE 8.11 illustrates the Stokes wave parameters.
The dispersion relation is:

where

(k

is the wave number and

Different situations are:


1. D > L/2: deep water,
2. L/20 < D < L/2: intermediate,
3. D < L/20: shallow water.

205 FINE™/Marine 7.1 User Guide


FIGURE 8.10
Wave Generator Menu

The Direction of propagation (displayed by a yellow arrow in the graphics area) is prescribed
with the data of the corresponding cosine director values along X and Y axis.

It is recommended to generate waves that only propagates along X or Y axis. For incident waves, the
best practice is to modify the orientation of the ship to keep the wave generator in a X or Y plane.

It is also recommended to precisely define the reference point (displayed in yellow in the
graphics area) on the patch. Hence, the computation starts with a wave kinematic without normal
fluxes: velocity vector is parallel to the plane of the wave generator. Otherwise, the reference
point can be used to apply phase shifts: if the point is in X = 0, Y = 0 and the EXT patch crossing
(0,0), the oscillator will start moving from Y = 0 in X = 0. Now, the oscillator is not in X = 0, the
only effect will be a phase shift.

206 FINE™/Marine 7.1 User Guide


FIGURE 8.11
Wave Scheme

For this Boundary condition, a first, second, or third order Stokes wave can be used. Choosing
order 2 and then order 3, depends on the physics of the project and the Stokes wave theory. It will
increase the precision of the wave shape close to the external wall but not far from it: the
difference will be negligible after 2 periods.
When clicking the button Estimate, the wave order is computed according to Le Méhauté (1976)
An introduction to hydrodynamics and water waves using the values of the Depth (h), the wave
Period (τ), the wave Height (H) and the absolute value of gravity intensity g taken from the
"Flow Model" (p. 174) menu. The scheme below illustrates the range of applicability of each
wave order and how to determine it based on the values of the abscissa h/(gτ2 ) and the ordinate
H/(gτ2):

207 FINE™/Marine 7.1 User Guide


FIGURE 8.12
Estimation of the wave order

The red line represents the limit of validity of the Stoke's theory, whereas the green line is the
border between first and second order and the purple line the border between second and third or
higher order waves. Only the propagation of intermediate depth and deep water waves can be
simulated and it is recalled that the maximum wave steepness ( H /L) for a periodic and
propagating deep-water wave is 0.14.
The default wave order and in case its estimated value gets into the undefined area above the red
line on the picture, is defined as 1.
Generally speaking, a linear wave has a sinusoidal surface profile with small amplitude and
steepness, while a nonlinear wave has larger amplitude (finite-amplitude), sharper crests and
flatter troughs than the linear wave. Thus defining the Wave order correctly can provide better
accuracy for the wave simulation.
More details can also be found here.

The Wave generator settings are defined as global parameters. The corresponding patches cannot be
edited separately.

208 FINE™/Marine 7.1 User Guide


The location of the wave generator is fixed respectively to the body. This means, that in the case
of a constant speed of the solid body (no acceleration), the frequency f by which the waves hit it
is constant.
In the Galilean Reference Frame, if the kinematic wave generator is moving towards the reference
point, the perceived frequency of the waves will be increased. The relative frequency can be then
written:

where f' is the stokes wave frequency in the body reference frame, U b the velocity vector of the
wave source (same as of the boat), L the wave length, and f' the frequency in the Galilean
reference frame. In case the source is moving away from the reference point, the above formula
becomes:

This behavior can be seen as a Doppler effect.

Best practice for computations with wave generator

1. Under the Plugins/Predefined menu, the Wave generation info tool is dedicated to the setup
of a wave generation project. The tool computes useful information for wave generation
simulations such as frequencies, time step, wave celerity, etc...
2. Time configuration should be set to Unsteady (see General Parameters).
3. At least 2 orders of gain for non-linear iterations are necessary to reach a correct accuracy. For
this purpose, set the Maximum number of non-linear iterations to 20 and the Convergence
criteria to 2 (see Control Variables)
4. Restart computation while activating the Wave generator is not recommended.

Irregular waves

Main assumptions

l Ocean waves are irregular and random in shape, height, length and speed of propagation. A
real sea state is best described by a random wave model
l Each sea state, in given meteorological conditions, has a precise power spectrum

209 FINE™/Marine 7.1 User Guide


l Spectral analysis assumes a sea state can be modeled as a superposition of a large number of
regular sinusoidal wave components

Implementation

The Irregular wave set-up is available in the Boundary Condition menu for the External
boundary condition Wave Generator. When the Irregular condition is activated, several spectra
and the User-defined spectrum becomes available.

Only the 1st order of irregular waves is implemented for the moment.

FIGURE 8.13
Irregular waves Boundary condition

Available spectra

l ITTC
l modified Pierson-Moskowitz spectrum according to the ITTC conference of 1978
l JONSWAP

210 FINE™/Marine 7.1 User Guide


l proposed after analysing data collected during the Joint North Sea Wave Observation Project.
Takes into account that sea state continues to develop through non- linear, wave- wave
interactions even for very long times and distances. This spectrum extends Pierson-Moskowitz
to include developing sea states
l JONSWAP 3 parameters
l additionally to the JONSWAP spectrum parameters, allows to control the significant wave
height

For γ=1 the JONSWAP spectrum reduces to the Pierson-Moskowitz spectrum.

l Pierson-Moskowitz
After the spectrum was selected, the following parameters will become available:

TABLE 8.2 Input parameters

The table parameters have the following meaning:


l Peak period (Tp) is the wave period corresponding to the frequency with highest wave energy
in the spectrum
l Significant wave height (Hs) is the mean wave height (trough to crest) similar to the highest
third of the waves (H1/3) parameter.
Modern definition: 4 times the standard deviation of the surface elevation
l Peak Enhancement factor (γ) is the non-dimensional peak shape parameter. It varies from 1 to
5.
l User-defined
The spectrum parameters for the User- defined spectrum should be specified through the
spectrum.dat file, for instance, and consist of the number of wave frequencies and spectral density
values together with its distribution parameters per each frequency.

211 FINE™/Marine 7.1 User Guide


It is strongly recommended to store the spectrum input file inside the Project folder.

Example of the input file data

991
0.552300000000000 1.425134561970092E-008 0.200072553915353
0.556822222222222 2.105653169018277E-008 -3.10241674047480
0.561344444444444 3.059213503130416E-008 -1.11056951161608
0.565866666666667 4.373966352698112E-008 -1.79666237050452
0.570388888888889 6.159070885437247E-008 1.44797659527557
0.574911111111111 8.547564616889585E-008 0.835759044159744
0.579433333333333 1.169912378314590E-007 -3.13185364267893
0.583955555555556 1.580259532187931E-007 -2.53878755253289
...
983 lines here are omitted.
The first line has the number of waves frequencies (n). Following lines contain: the frequency (fi,
[s-1]), spectral density (Si, [m²s]), initial phase of the wave component
( ,[rad]) that should be between [-π;π]. The initial phase is defined at the Reference Point.

Direction of propagation and Reference point have a similar definition as for the regular waves.

The Depth, Direction of propagation and the Reference point should be specified together
with the spectrum data file.

General recommendations

l The duration of the simulation is a key to achieve the target wave energy spectrum. For
seakeeping experimental tests, at least 100÷200 waves has traditionally been used (typically
0.5÷1 hour), which is often defined as satisfactory if linear effects only are considered.
Respecting this, the number of waves to encounter can be set to 100 during the numerical
simulation
l The mesh defines what frequencies will be captured. The user needs to decide what are the
higher frequencies to be kept and define the mesh with the respect to this condition
l Ensure that the refined mesh region can capture the highest waves (in Z-direction)

212 FINE™/Marine 7.1 User Guide


l Adaptive Grid Refinement can generally help to start from a coarser initial mesh size and
capture the wider range of wave frequencies
l Depending on the aim of the simulation (structural damage, seakeeping,…) the high frequency
waves will be important or not
l JONSWAP 3 parameters is the most applied spectrum in the Towing Tank experiments
l To check the results a "Wave probe" (free surface elevation in a point) can be created and
converted into the frequency domain results
l Restart computation while activating the Wave generator is not recommended.

8.2.7 Passive scalar value

Once activated in the menu (see "Fluid Model" (p. 622)), the passive scalar can be activated on a
given patch and its value defined individually.

Wave generator and Overset types are not compatible with passive scalar feature.

FIGURE 8.14
Passive scalar value

8.3 MIRROR CONDITION

The mirror condition assumes the geometry and the flow to be symmetric (the velocity field is
supposed tangential to the mirror plane). In this situation, the computation can be restricted to one
half of the complete domain saving an important amount of computing resources. The post-
processing will be done on one part, but can be repeated and displayed as a complete domain, see
CFView™ manual for more details about the repetition capabilities.

213 FINE™/Marine 7.1 User Guide


CFView™ allows to duplicate the geometry and the results according to one mirror patch. The tool
"isis2cfview" makes its choice following these considerations: for 3D projects, the check is first done
on mirror planes with normals along Y- axis, then Z- axis and finally X- axis. For 2D projects, the
order is the following: X and then Y-axis (not possible along Z-axis).

Mirror is not compatible with large deformations. Hence incompatibilities between rigid mesh
displacement and mirror planes can exist. This list is given below (please check Domain Mesh
Management to know what is a rigid mesh displacement):
l roll angle with Y/Z-mirror plane,
l pitch angle with X/Z-mirror plane,
l yaw angle with X/Y-mirror plane.
To work around this situation, a slip wall can be used instead of mirror planes.

8.4 NON CONFORMAL INTERFACE

Non conformal interfaces are present as soon as FNMB (Full Non Matching Boundary)
conditions are defined and computed in HEXPRESS™ (see HEXPRESS™ User Manual for
more information). These interfaces will transfer the information of the flow between several
domains. There is no user input required in this menu. These patches will be present in the
Sliding patch motion tab of the Mesh management menu as well (Mesh Management chapter).
By default the resolution of the sliding grids is explicit. For specific cases where the sliding grid
domain does not advance and sees an incoming flow, some discontinuities may appear in the
sliding grid interfaces. In that case, switching to implicit resolution may help avoiding these
discontinuities. To do so, set the expert parameter _SLI_implicit_dom_coupling to YES in the
Expert parameters tab of the Control variables menu (More details can be found in the
"Sliding grids" (p. 681)).

When using implicit resolution of the sliding grids with BoomerAMG linear pressure solver, a special
attention should be taken with the initial conditions. If the initial solution is not compatible with Div
(U)=0 (for instance U=1m/s at the Inlet but U=0m/s inside the domain) then the solution might be
wrong.

214 FINE™/Marine 7.1 User Guide


CHAPTER 9.

BODY DEFINITION

The Body definition menu allows to manage the definition of one or several bodies, sub-bodies.

215 FINE™/Marine 7.1 User Guide


FIGURE 9.1
Body definition menu

Since sometimes patch names are not relevant enough to know where the patches are located, information on
the concerned domain is provided in the last column.

It is possible to sort patches by Domain and by Bodies - patches . Initial ordering is done by the
domain name in A-Z order, also patches of the same domain go in the A-Z order. To switch between
the sorting criterion ( Domain or Bodies-patches) the user can click on a column title - an arrow will
appear next to the title. Arrow up means A-Z sorting, arrow down is for Z-A.

In this section
9.1 Definition 217
9.2 Identifier 218
9.3 Group 219

216 FINE™/Marine 7.1 User Guide


9.1 DEFINITION

In FINE™/Marine, a body is defined as a set of faces which share the same kinematics. As a
result, all the entities moving with the same kinematics must be defined by only one body.
Global fluid forces acting on each body are calculated and recorded in the "eff*.dat" files. In
some occasions, one would like to know forces on some parts of a body. For this purpose, the
notion of sub-bodies has been then introduced.
A sub-body is a part of a body on which fluid forces are calculated separately. Fluid forces on
sub-bodies are recorded just after the global body forces in the "eff*.dat" files. They are defined
by the following label: "BodyName SubBodyIndex".
It is important to remember that sub-bodies are not necessarily closed bodies and this can have an
impact on the meaning of the output forces. In case of a keel from a mono-hull sailing yacht for
instance, the keel can be defined as a sub-body. However, the keel could be a non closed body
since the top patch could belong to the hull. As a consequence, the pressure integration to
compute the forces is not complete on this sub-body. The meaning of the lift force should not be
taken as an absolute value but rather as a relative value while comparing designs or speeds. It
should be however correct for the drag force for instance since the missing top patch does not
contribute too much to the drag.

If no body is defined, the "eff*.dat" files will not be created.

A maximum of 99 bodies and 99 sub-bodies can be created.

A maximum of 100 and 200 total bodies/sub-bodies can be created for the moment for respectively
multfluid and monofluid computation.

217 FINE™/Marine 7.1 User Guide


9.2 IDENTIFIER

Each face has its own identifier defined in the face connectivity file. It is composed of six digits:
the first three are used to define the boundary condition, whereas the last three are used to define
index bodies (one digit) and possibly sub-bodies (the two last digits). Among the boundary
conditions flag, the first digit defines the mesh deformation condition.

FIGURE 9.2
Identifier

The list of available boundary condition flags is as follows:


l Wall with no-slip condition: 001,
l Wall with slip condition: 002,
l Wall-Function: 003,
l Imposed velocity: 010,
l Updated hydrostatic pressure: 027,
l Zero-pressure gradient: 028,
l Frozen pressure: 029,
l Stokes wave: 045,
l Non-conformal interface: 098,
l Mirror: 020
l Overset: 089

See Boundary Conditions for a description of each boundary condition type.

Only solid patches and non-conformal interfaces are shown in this menu.

218 FINE™/Marine 7.1 User Guide


It is important to notice, that up to FINE™/Marine v2.3, the boundary conditions of the grid
deformation and the fluid boundary conditions are linked together. Although, later versions uses
the first digit to define the way the weighting coefficients will be computed for the deformed
mesh. If no mesh deformation is present, the first digit will stay 0.
The list of available mesh deformation flags is as follows:
l Neumann condition: 5,
l Dirichlet condition: 4,
l Shallow water condition: 6.
Boundary conditions for the mesh deformation are also explained in the Boundary conditions for
grid deformation section.
Each body has its own body index in the flags of the faces, sub-bodies are defined by the subset
of faces of the body which shares the same sub-body index (the two last digits of the face flags).
These sub-bodies do not need further information in the input data file. Hence, any data about
sub-bodies is prescribed in the input data file. These sub-body flags have no influence on the
computation of the flow.

For a non-body face flag (index of body = 0), the index of the sub-body is also used to distinguish
the different parts of external boundaries (one can, for instance, change the boundary condition using
the tool "change face flag", after generating the mesh, see Boundary Conditions Manipulation).

9.3 GROUP

One patch can be selected in the left area by simply left-clicking on it. Clicking on a patch
deselects the currently selected patch(es).
It is possible to select several patches located in the list by clicking on the first one and holding the
left mouse button while selecting the next one. Another way is to select the first patch of the list,
then hold down the <Shift> key and left-click on the last patch of the list.
To select a group of patches that are not located one after another in the list, click on each of them
while holding down the <Ctrl> key.
Several patches can be grouped by clicking on the Merge button once they are selected. A name
entry box will appear asking for a group name. The name of the group will appear in red in the
list. It is possible to add a patch to an existing body by selecting them and clicking on the Merge
button.
The Delete body button removes the group and its patches are displayed individually in the list.

219 FINE™/Marine 7.1 User Guide


The Delete body button is active when at least one group is selected.

Clicking with the left-mouse button on the plus sign left of a group name in the list will
display the patches included in this group.

When a patch is selected, it is also highlighted in the Graphics Area window where the mesh
topology of the project is displayed.

FIGURE 9.3
One body creation

It is also possible to create a sub-body. For this purpose, display the patches included in a group.
Select one or several patches using the left-mouse button and the <Ctrl> or <Shift> key. Click on
Create sub-body to finish the action. The sub-body group is now available inside a body.

FIGURE 9.4
Creation of the sub-body

220 FINE™/Marine 7.1 User Guide


The Rename button allows to rename the selected group.

221 FINE™/Marine 7.1 User Guide


CHAPTER 10.

BODY MOTION

This chapter describes the available laws of motion in the FINE™/Marine interface for each body and
its respective six degrees of freedom. A fixed, imposed, or solved body motion can be set up for each
body and performed by the flow solver for two different parametric systems. Special connections
between bodies can also be defined.

In this section
10.1 Reference Frame 223
10.2 Fixed Degree of Freedom 227
10.3 Imposed Law of Motion 229
10.4 Solved Law of Motion 242
10.5 Basic recommendations 258
10.6 Multibody definition 260
10.7 Virtual body 266

222 FINE™/Marine 7.1 User Guide


10.1 REFERENCE FRAME

10.1.1 Definition

FINE™/Marine uses the Galilean frame as a reference frame to define the body motions. It is
recommended to keep the usual hydrodynamic axis system during the definition of the project:
l X-axis represents the body marching
l Y-axis is left handed (port side)
l Z-axis corresponds to the opposite of the gravity
The mesh follows the body during the computation according to the imposed body motion and
regridding strategy. For instance, the body (and so the mesh) has a velocity vector noted:

Ub = (Ub,x , Ub,y , Ub,z)

and the fluid has as velocity vector written:

Uf = (Uf,x , Uf,y , Uf,z)

Hence, the velocity vector of the fluid with respect to the body is defined by:

Uf' = (Uf,x - Ub,x , Uf,y - Ub,y , Uf,z - Ub,z)

In CFView™, the velocity vector U f' = U f - U b should be computed to obtain the flow field relative
to the body.

223 FINE™/Marine 7.1 User Guide


FIGURE 10.1
Reference Frame

10.1.2 Degrees of Freedom

The degrees of freedom (d.o.f.) represent the possible translations and rotations of the body. In
FINE™/Marine, they are noted (Tx, Ty, Tz) for the translation and (Rx, Ry, Rz) for the rotation
along X, Y, and Z-axis respectively. Rotations are applied around the Reference point if no
degree of freedom is solved or around the Center of gravity if at least one degree of freedom is
solved.

The degrees of freedom Tz, Rx and Ry are frozen in the whole interface when the mesh configuration
is 2D.

A number is added to each d.o.f. depending on the frame configuration. A "0" will indicate that
the degree of freedom is computed according to the physical reference frame, noted 0 = (0,β0 ),
where β represents the axis base. A "1" or "2" will indicate that a d.o.f. is computed according to
the previous frame rotation. This configuration is possible using Cardan Angles. The frame linked
to the body "B" is noted B= (G,βB), with G the gravity centre.

224 FINE™/Marine 7.1 User Guide


10.1.3 Cardan Angles

To study the behavior of a boat under sails efforts for instance, a new parametric system was
required to define the orientation of the bodies. This allows to fix, impose or solve each d.o.f.. In
FINE™/Marine, it is then possible to define the rotation angles by the Cardan angles. They
consist in the decomposition of three successive rotations represented on FIGURE 10.2:

FIGURE 10.2
Orientation with Cardan Angles

FIGURE 10.3
Cardan Angles represented on the DTMB geometry

The reference configuration of the body is defined as the mesh reference: Bi = (G i ,β Bi ) is the
frame linked to this configuration.
The primary configuration (noted with subscript p) is defined by the virtual configuration of the
body rotated by the rotation from βBi to β0 . In that case, the frame attached to the boat coincides
with β0 and (ψp,θp,ϕp) = (0,0,0).

225 FINE™/Marine 7.1 User Guide


FIGURE 10.4
Configurations

The inputs required by the interface in the Motion definition thumbnail are the three Cardan angles
(ψ0i,θ0i,ϕ0i) to rotate from the primary configuration to the reference configuration.

It is recommended to mesh the geometry with an orientation close to the equilibrium position to keep
an optimal mesh quality during the whole computation.

D.o.f. for translations are not affected by the Cardan angles specification. They always refer to the
primary configuration.

The Show/Hide button will display the new reference frame defined with Cardan angles as soon as
they are different from 0.

When Cardan Angles are not activated, the degrees of freedom linked to the rotation possibilities, are
limited to the following triplets:

226 FINE™/Marine 7.1 User Guide


A warning message will appear in case these triplets are not respected.

10.2 FIXED DEGREE OF FREEDOM

In case of a fixed d.o.f. only the Reference point needs to be specified.


Reference point: corresponds to the three coordinates (X,Y,Z) of the reference point in the
reference configuration. This point is used to compute the resultant moment of the fluid forces on
the body if no other degree of freedom is solved.

227 FINE™/Marine 7.1 User Guide


FIGURE 10.5
Fixed d.o.f.

The Dynamic Parameters thumbnail is not available in case of a fixed body (i.e. all d.o.f. are set to
Fixed).

The Motion Variables thumbnail in the Outputs menu is also not available in case of a fixed body,
see Motion and Force Variables.

228 FINE™/Marine 7.1 User Guide


10.3 IMPOSED LAW OF MOTION

The Imposed law of motion can be chosen independently for one or all degree(s) of freedom.
Some parameters are required to define the motion law.
l Motion Law: defines the motion law applied on the corresponding degree of freedom. For
each imposed law, parameters are required (click on the Edit button to open the corresponding
page)

FIGURE 10.6
Imposed Motion

The kinematic variables outputs are recorded in a file called Mvt_bodyname.dat.

l Reference point: corresponds to the three coordinates (X,Y,Z) of the reference point in the
reference configuration. If no degree of freedom is solved this point is used as rotation center
(if imposed motion includes rotation) and to compute the resultant moment. If there is one or
more solved degrees of freedom the Center of gravity will be used instead.

229 FINE™/Marine 7.1 User Guide


Modification of reference point in case of restart: output and variables are updated to keep the same
physical position, orientation and velocity for the body. It affects the modification of body outputs to
keep the simulation consistent (and the moments of the fluid loads are also changed since the
computation point is not the same as the first simulation). This change is only possible if the first
computation has a (0,0,0) reference orientation and if the motion does not have any rotation motion
during the first computation. In the other cases, the following message error message is displayed in
the .std file: "Problem concerning the reference orientation. Modification of orientation impossible
for a first computation with non-zero orientation".

The Show/ Hide button will display the reference point in the graphics area.

If a project contains several bodies, the laws have to be defined for each body. By clicking on the
body name, the interface will display the settings to be defined for each body. One can also select
multiple bodies together using the <Ctrl> key and apply the settings at once.
Each d.o.f. has its own laws of motion. There are all described in the next sections. Each law will
get its own default values according to the parameters defined in the previous menus.
Imposed or solved motion offers the possibility to define mesh deformation techniques (see the
description of this menu in Domain Mesh Management tab.

10.3.1 Constant Speed

In this case, only one value is necessary to define the law of motion: the speed of the body. It will
remain constant during the computation.

FIGURE 10.7
Constant speed

230 FINE™/Marine 7.1 User Guide


10.3.2 Classical Ramp profile

For the classical ramp profile, the initial velocity V 0 will be applied to the body from the
beginning of the computation until time T 0 , where a linear velocity ramp will start. The ramp will
reach a target velocity V1 at time T1.

FIGURE 10.8
Classical Ramp Profile

10.3.3 1/4 Sinusoidal Ramp Profile

For the 1/4 sinusoidal ramp profile, the initial velocity V 0 will be applied to the body from the
beginning of the computation until time T 0 , where a quarter of a sinusoidal ramp will start. The
ramp will reach target velocity V1 at time T1.

231 FINE™/Marine 7.1 User Guide


FIGURE 10.9
1/4 Sinusoidal Ramp Profile

10.3.4 1/2 Sinusoidal Ramp Profile

For the 1/2 sinusoidal ramp profile, the initial velocity V 0 will be applied to the body from the
beginning of the computation until time T 0 , where half of a sinusoidal ramp will start. The ramp
will reach a target velocity V1 at time T1.

232 FINE™/Marine 7.1 User Guide


FIGURE 10.10
1/4 Sinusoidal Ramp Profile

10.3.5 Sinusoidal Motion with 1/2 Sinusoidal Ramp Profile

This motion law is defined by the formula:

where:
l α0 corresponds to the amplitude
l ω is the pulsation, defined by ω = 2π/T (the period should be entered, noted T)
l ϕ is the dephasing
The 1/2 sinusoidal ramp profile will start at the time T0 and stop at the time T1.

FIGURE 10.11
Sinusoidal Motion with 1/2 Sinusoidal Ramp Profile

233 FINE™/Marine 7.1 User Guide


10.3.6 PMM Sway Motion

The Planar Motion Mechanics (PMM) sway motion has been introduced to define a sinusoidal
motion along Y-axis (d.o.f.: Ty).
The motion can be described by the sway amplitude η0 , and the number of PMM rotations per
minute N. The transitory phase is modeled by a sinusoidal ramp profile which will start at the time
T0 and stop at the time T1. The motion is then described by:
l Transverse translation: Ty = ηPMM = -η0 sin(2πN(t-T0)/60)
l Transverse velocity: Vy = νPMM = -η0(2πN/60)cos(2πN(t-T0)/60)
l Transverse acceleration: Ay = d(νPMM)/dt = η0(2πN/60)²sin(2πN(t-T0)/60)

FIGURE 10.12
PMM Sway Motion

234 FINE™/Marine 7.1 User Guide


FIGURE 10.13
PMM Sway Motion Law Menu

10.3.7 PMM Yaw Motion

The Planar Motion Mechanics (PMM) yaw motion has been introduced to define a sinusoidal
motion along Z-axis (d.o.f.: Rz).
The motion can be described by the yaw motion amplitude ψ0 , the number of PMM rotations per
minute N, and the drift angle β. After the transitory phase between T 0 and T 1 , the motion can be
described by:
l Yaw angle: ψ = -ψ0 cos(2πN(t-T0)/60) + β
l Yaw rate: rPMM = ψ0(2πN/60)sin(2πN(t-T0)/60)
l Yaw acceleration: d(rPMM)/dt = ψ0(2πN/60)²cos(2πN(t-T0)/60)

FIGURE 10.14
PMM Yaw Motion

Without coupling this motion with the PMM sway law, one will not probably get a symmetric path. It
will be harmonic, but most probably not symmetric.

235 FINE™/Marine 7.1 User Guide


FIGURE 10.15
PMM Yaw Motion Law Menu

The Pure PMM Yaw motion can be defined through the interface knowing the relationships
between all the DOFs.Concidering the PMM motions as the forced model trajectories comprised
of three basic motions:
l a straight advancing motion in the longitudinal direction with the speed

l a sinusoidal motion in lateral direction with the sway amplitude ymax and the frequency

l a combination of a sinusoidal yaw motion:

Where ϵ is the maximum tangent of the ship trajectory defined as:

236 FINE™/Marine 7.1 User Guide


Significant model consideration should be taken into account: that can be helpful
in backward recalculation to the settings to be impose through the interface. Still, for the theoretical
solutions the better approach would be to keep different from x, which is not done for
the moment.

10.3.8 Z-axis Gyration

This law is dedicated to the Z-axis rotation (d.o.f. Rz). The center of gyration Cgyr is required for
the 1/4 sinusoidal ramp profile: the initial rotating velocity ω o will be applied to the body from the
beginning of the computation until time T o , where a quarter of a sinusoidal ramp will start. The
ramp will reach a target rotating velocity ω1 at time T1.

FIGURE 10.16
1/4 Sinusoidal Ramp Profile for Z-axis Gyration

237 FINE™/Marine 7.1 User Guide


FIGURE 10.17
Z-axis Gyration

l Tx and Ty should be set as fixed: the motion is fully defined by choosing Z-axis gyration.
l Rx, Ry , Rz and Tz can be solved.
l It is possible to activate the Rotating Frame Method to speed up the computation. This
method is compatible with the solved motions mentioned in the previous point. If Rotating
Frame Method is active the results (forces and moments) will be given in the body frame.
l To post-process the results the degrees of freedom Tx, Ty, Tz and Rz need to be active in the
Travelling Shot.

10.3.9 Modification of the d.o.f. position

This law consists in the modification (linear or angular, depending if the chosen d.o.f. deals with
translation or rotation respectively) of the position of a degree of freedom using a smooth
evolution. The modification can be done with a relative or absolute manner.
The modification will start at the time T 0 and stop at the time T 1 and will move the body
(translation or rotation) according the difference of position ΔP = P1 - P0 (relative modification) or
by directly imposing the final position P1 (absolute modification).

238 FINE™/Marine 7.1 User Guide


FIGURE 10.18
Relative or absolute modification of the DOF position

In relative, a position change (P1-P0) equal to 0 is not possible.

10.3.10 copied from another body

This law copies the motion of one degree of freedom from another body during the computation.

FIGURE 10.19
Relative or absolute modification of the DOF position

Like all other motion laws it can be used for physical bodies in Body motion or for a domain
with independent motion in Mesh management. For Tx, Ty, Tz, Rx, Ry and Rz all unlinked
bodies will be available for copy. For Rn all bodies linked to another one with a rigid or pin
connection will be available.

239 FINE™/Marine 7.1 User Guide


It is not possible to copy the motion from the same body, or to have a loop where bodies copy a
DOF from each other. In these cases an error message will be shown.
Example of usage: a zig- zag simulation with overset feature, containing an independent
background domain and a ship in an overlapping domain. The background needs to follow
the X and Y translations of the ship but not its rotations. The DOF Tx and Ty of the
background domain can be set to "copied from another body" and the ship selected in the
body drop-down list.

10.3.11 Dynamic libraries

To be able to drive dynamically the motion of bodies (especially relative rotation of a body linked
to a pin joint) a specific dynamic library is integrated as a function of different inline variables
(forces, position of bodies,...).
To achieve such a functionality, an imposed motion type dynamic library as motion law should
be chosen. In this case, nothing else has to be added.

240 FINE™/Marine 7.1 User Guide


FIGURE 10.20
Dynamic libraries

Though there is no possibility to edit the motion through the interface, the button will be grayed
out.
The d.o.f. imposed by this motion law can be controlled through the position, velocity or
acceleration.
The imposed value for the current time (tc) can depend on forces acting on bodies and sub-
bodies, and/ or kinematics of bodies at the previous time step (tp).

10.3.12 User-defined

A user-defined law allows the user to define his own imposed motion law defining a chart. This
chart is available for each d.o.f. as a function of the time. It can be set up manually or directly
imported into the interface. The solver will interpolate the data using cubic splines, except near the
boundaries for initial and final times.

241 FINE™/Marine 7.1 User Guide


FIGURE 10.21
User-defined profile manager

The left part of the window consists in entering (t, DOF(t)) values, in the two corresponding
columns, "t" referring to the time and "DOF (t)" referring to the position/ angle of the
corresponding d.o.f.. For instance, "DTx" in the figure above is the variation of the position of the
center of gravity (or the reference point in case there is no solved motion) along X-direction.
By pressing <Enter> after each input value, the profile is updated in the graphics part. It is also
possible to Import/ Export profiles from/ to file. The format of the file is defined with two
columns: one for the time and the second for the evolution of the d.o.f.. The Clear Profile button
clears the current profile.
The profile must have at least two defined pairs (t,DOF(t)) of values. Besides, the first pair has to
start with t=0. Another constraint is that the time values should increase. If all these conditions are
not respected, a warning will appear, saying that the profile is not allowed.
A file will be automatically created in the computation folder corresponding to every user-defined
d.o.f. of the computation. This file can be found under the name: projectname_
computationname_body_component.p.
The file consist 2 columns: one for the time and the second for the relative displacement (resp.
orientation change) of the DOF for the concerned body with respect to the reference
configuration.

The first time value must be strictly set to 0

DOF of rotation has to be defined in radian as the other laws. If non-null initial Cardan angles for
motion reference axis are defined, the second column of the file then gives the modification of
Cardan angles with respect to these initial Cardan angles, since the reference configuration is the
starting point. Value for the relative motion can be non-null at a time t=0.

10.4 SOLVED LAW OF MOTION

As soon as one d.o.f. is switched to Solved in the Motion Definition page, the solver will solve the
Newton's law to compute the new position of the body, based on its inertial properties. Hence,
new parameters have to be defined, located in the Dynamic Parameters tab. Their definition is
detailed in the following sections.
Solved motion also offers the possibility to define the mesh deformation technique (see Domain
Mesh Management for more information) and to activate the Quasi-Static (QS) approach (see
Quasi-Static Approach for more information).

242 FINE™/Marine 7.1 User Guide


As soon as one d.o.f. is solved with the Newton's law, it is advised to divide the time step value by
two. That's why the interface can ask the user to reset the default time step values for the Control
Variables menu (see Control Variables) through a warning.

For 2D cases, an entire body will be considered so that the influence of the fluid will be taken into
consideration in a proper way.

10.4.1 Motion Definition

The degrees of freedom for which their motion is unknown and should be computed during the
computation, should be defined as Solved. the following figure is an example of a free trim (Ry1)
and sink(Tz) simulation with an imposed forward motion. It is possible to solve one, several or all
d.o.f. at the same time. As a consequence, the combination of Fixed, Imposed and Solved degrees
of freedom is allowed. For solved rotations the rotation point is the Center of gravity.

FIGURE 10.22
Motion definition with solved motion

243 FINE™/Marine 7.1 User Guide


10.4.2 Quasi-Static Approach

A. Introduction

When dealing with simulation to reach an equilibrium position (steady-state solution), the first
method is to use a fully unsteady approach, i.e. to couple at each time step the flow motion and
the Newton's law. To be stable, the required time step should be small enough.
To relax this condition and decrease the CPU time, the quasi-static (QS) method has been
developped. It is based on a succession of predicted body attitudes. These attitudes are evaluated
using an ad-hoc quasi-static approach.
This procedure remains stable even for larger time steps, enabling the use of the sub-cycling
acceleration method for the fraction volume equation.

B. Layout

By default, the quasi-static approach is not activated. This approach is only available for 3D
configurations and the conditions to activate this approach are:
l Cardan angles activated,
l Multi-fluid activated,
l Time configuration is steady.

Desactivation of Cardan angles automatically deactivates quasi-static approach.

This method does not require the values for the Inertia matrix, the added mass and damping
coefficients. Defaults can be conserved.

244 FINE™/Marine 7.1 User Guide


FIGURE 10.23
Quasi-Static approach activation

Only Tz0, Rx2 and Ry1 are concerned by the QS approach. In this case, a "Solved" motion type
means "Solved motion with the QS approach".
The menu on the right part shows the status of the QS approach related to each concerned d.o.f.:
l not available means that the conditions to activate the QS method are not all respected,
l not active means that the QS approach is available but the motion type of the d.o.f. is not
defined as Solved,
l Linear or Smoothlaw shows the selected law for the QS approach.
The Edit button allows to modify the parameters. When clicking on it, a separate window
appears.

245 FINE™/Marine 7.1 User Guide


FIGURE 10.24
Quasi-Static approach parameters

The law is the same for the three d.o.f.. The choice can be made between Linear and Smooth

For the smooth law, a 1/2 sinusoidal ramp is used.

The time parameters define respectively:


l Release time (T1): initial time to start to release the d.o.f. (before this time, the corresponding
d.o.f. Tz0, Rx2 and Ry1 are frozen),
l Position update (dT2): the interval of time to reach the new relaxed predicted position,
l Evolution interval (dT3): the interval of time between two successive predictions.
The parameters dT2 and dT3 are the same for each d.o.f.. On the contrary, T1 and the Under-
relaxation parameters are specific for each d.o.f..
Hence, at time T1, the method predicts a new position that will be effective at time T1+dT2. More
generally, at each time Tp equal to T1+ndT3 (n is the number of predictions), the method predicts
a new position that will be effective at time Tp+dT2.

246 FINE™/Marine 7.1 User Guide


C. Key features of the method

l Since the motion is imposed rather than solved at each time step, the motion solving is much
more stable, especially during the transient.
l If correctly used, the method leads to monotonic solutions.
l At low Froude numbers, the motion solution does not oscillate, removing the need for long
simulation periods to come to a stable result.
l The quasi-static leads to the same results as the 'classical' approach (Newton's laws).
l The method can conceptually be used at all Froude numbers (settings changed accordingly)
but the method is not recommended for high Froude numbers when dynamic forces are
dominant. Indeed, the predictions can be too important forcing the user to drastically reduce
the under relaxation parameters which will increase the convergence time.

D. Best Practice

It is more convenient to use dT3 > dT2 to let the time to the flow to be well converged between
two successive equilibrium predictions, using a smooth evolution law.
Under- relaxation parameters should be small enough if the user would like to predict the
equilibrium position quite often. More generally, higher the number of time steps between
evaluations is, higher the under-relaxation parameters should be.
For typical ship resistance simulations at Froude around 0.2, it is recommended to:
l Release the ship motions from the beginning
l Define dT2 = 18Δt and dT3 = 22Δt
l Relaxation parameters (for all DOF's):
l 0.2 for Froude < 0.3
l 0.15 for 0.3 < Froude < 0.5
l 0.10 for Froude > 0.5
For more guidelines based on several applications, please read "Basic recommendations" (p. 258)
chapter.

247 FINE™/Marine 7.1 User Guide


10.4.3 Dynamic Parameters

A. Inertial Data

A solved body motion requires inertial parameters, such as mass, position of center of gravity, and
inertia components.

FIGURE 10.25
Inertial Data

First of all, the geometry configuration must be specified. If the case is modeled with a symmetry
plane, the flow solver has to know if the computation is performed on half of a body. If Half
body is selected, the output forces will be given on half body. However, since the following
parameters must be given for the entire body, the code will adapt them automatically according to
the choice for the geometry configuration.
The first parameters are the coordinates (X,Y,Z) of the body gravity center in the initial reference
frame and the second parameter is the body mass.

248 FINE™/Marine 7.1 User Guide


The Z-coordinate is frozen in case of a 2D project.

The Show/Hide button will show the gravity center in the graphics area.

Finally, when the rotations of the body have to be solved, the inertia matrix needs to be defined,
and its components have to be evaluated at the body center of gravity in the reference frame. The
first three components are related to the inertia momentum (A 0 =Ixx , B 0 =Iyy , C 0 = Izz ), and the
last three to the inertia products.

For simulations in which only one rotation is solved, only the inertia momentum and the two inertia
products related to the axis of rotation are required. For instance, if only the pitch motion Ry1 (y-axis
rotation) is solved, B0, D0 and F 0 should be set to the correct values . The other inertia product E0 can
be set to 0 but the other inertia momentum A 0 and C0 must be positive and different from 0, i.e. 1.
Finally, the determinant of the inertia matrix cannot be equal to 0.

The FINE™/Marine package proposes an external executable called domhydro which computes the
inertia matrix, as well as the numerical mass of the body and plenty of other values. More details are
provided in the Domhydro section.

For a 2D case, only the momentum inertia C0 is useful (the interface freezes the other components of
the matrix). In order to keep the invertible matrix, it is mandatory to put non-zero values for A 0 and
B0 (the interface enters the value 1 for these components).

249 FINE™/Marine 7.1 User Guide


B. Coupling Parameters

When solving the motions of the body, instabilities can appear coming from the dependence of
fluid forces on body acceleration. To ensure stability, a virtual added mass term can be added on
each side of the Newton' law (the right-hand side being treated explicitly). These additional terms
have the same function as an under relaxation coefficient.

Coupling parameters are not available for bodies with an Imposed motion type.

FIGURE 10.26
Coupling Parameters

The following options are available for estimation of the Added mass coefficient:
l approximate,
l accurate,
l user defined.
The first two Estimation modes are created to calculate the added mass coefficients within the
solver procedures through the Laplacian operator resolution. This evaluation can be done with the
defined Estimation frequency: by specifying a 0 value the estimation will be performed only
once at the beginning of the simulation; any other value will define a number of non-linear
iterations for the estimation periodicity.

250 FINE™/Marine 7.1 User Guide


Defining the Estimation frequency close to 1 or equal to 1 will improve the accuracy of the added
mass all along the simulation.

The Accurate Estimation mode can allow to determine the matrix of added mass coefficients as
the potential code does, although it can also increase the total simulation time. The Accurate
method includes the operator resolution inside each non linear iteration whereas for the
Approximate method it is not.
It is important to mention, that an Accurate estimation is not needed if only the stabilization of the
flow/motion coupling is required. Then an Approximate estimation value can be chosen just high
enough to ensure stability. A classical value for the added mass coefficient is equal to 1.0.
For sea keeping simulations, the default User defined is already good. The accuracy of the
simulation is usually more dependent from the mesh settings, time step, etc., more than the
estimation of the added mass. In case the added mass is still important, the Approximate should
be enough since it does not have a huge impact during the simulation.

When setting these parameters to a very high value (for instance, Tx=1000), the D.O.F. is frozen, as
for a fixed motion in case of a new computation, or it can be frozen preserving its previous
characteristics in case of a restart.

For the multiple bodies calculations, when one or several bodies are linked to the selected body
with the certain connection type (Motion definition menu), an option to Take linked bodies into
account for the added mass estimation becomes available within the Coupling parameters
menu. The Estimation mode for at least one D.O.F. shouldn't be User defined.

251 FINE™/Marine 7.1 User Guide


FIGURE 10.27
Activation of a linked body added mass estimation for the multiple body calculations

When the aim of the computation is to reach an equilibrium position of a ship, transient states are
out of interest. To obtain this state more rapidly and avoid high amplitudes oscillations due to
transient states, a Damping coefficient can be added to the Newton's law for the trim and sinkage
degrees of freedom, for instance.
These terms do not affect the equilibrium position, since the damping term is a function of the
velocity of the concerned D.O.F. The evaluation of this damping term is based on the analogy of
a 1-D damping spring-mass system, where the hydrostatic force plays the role of the feedback
force. The damping term, which is proportional to the water plane area, is calibrated to be on the
critical state when the damping coefficient is imposed equal to one. In fact, the water plane area is
multiplied by this damping coefficient to generate the applied damping term.

If the damping coefficient is defined with a value higher than 1.0, the damping term will have a
stronger and reverse impact.

A 0 value is imposed in case of an unsteady computation.

This damping coefficient should not be used to perform real unsteady simulations.

C. External Forces

FINE™/Marine gives possibilities to impose various additional external forces acting on bodies:
l Constant wrench (thanks to force, torque and calculus point) linked to the body,
l Drag based wrench to take into account the global force (for the propeller, for instance, the
force but not the torque).
l Spring wrench
l Damping wrench

252 FINE™/Marine 7.1 User Guide


The Drag based wrench can be used simultaneously with an actuator-disk, especially if its body
force update is not active. In the case body force update is active, the drag being already balanced
by the Drag based wrench, the actuator disk will have no influence.

In case of rigid motion, the user can choose to activate the Drag based wrench to initialize the
computation for a future computation with the Actuator disk. See also: "Actuator Disks" (p. 637).

The boat must move in the X- direction in the primary frame, since the update is based on force
balancing in that direction.

The Show/ Hide button will display the external forces in the graphics area as soon as an input is
different from 0. These values and their representation take the Cardan angles into account.

253 FINE™/Marine 7.1 User Guide


FIGURE 10.28
External Forces

Constant Wrench

With these inputs, it is possible to specify respectively: the Cartesian components of the imposed
force, the Cartesian components of the torque and the Cartesian coordinates of the calculus point
of this wrench. All this data has to be given in the initial reference frame.

254 FINE™/Marine 7.1 User Guide


If this constant wrench is imposed on half or on the entire body (according to the geometry
configuration defined in the Inertia data page), no multiplication factor is applied for these inputs.

For 2D projects, F_x, M_x, M_y and Z_a are frozen.

Drag based wrench

This wrench can typically be used to simulate a propeller force or a towing force. Hence, one has
to specify the Cartesian components of the propeller shaft orientation (respecting the Cartesian
components of the towing force orientation). The last are the Cartesian coordinates of the point
where the propeller (respecting the towing force) acts on the body.
To block the direction of the external force the Non follower force can be activated. An
explanation about the difference in calculation follower and non follower force can be found in
the External Tools chapter. This functionality can be activated in case the application point of the
force can vary, while the direction of force action should stay constant. The force is then not
dependent of the body motion. For instance, this can be useful to simulate the wind force action
on a sail or a towing tank carriage motion.

The forward speed of the ship has to be parallel to the X-axis (positive or negative). However, a body
motion with an high angle compared to 0 along X-direction is not allowed since we assume the boat
is moving in the X-direction. This can cause a problem with gyration motion or the boat moving in
the Y-direction. However, for Y-direction motion, one can define a Cardan angle of 90deg.

The sign of the orientation vector has no influence here since the imposed force is always in the
opposite direction of the drag.

The magnitude of the force is determined such that its projection on X-direction is equal to the Fx
component. The direction and the application point move with the boat just like a propeller. Drag
wrench force is updated only at the beginning of each time step using the drag of the previous time
step.

255 FINE™/Marine 7.1 User Guide


The drag based wrench can be simultaneously used with an actuator- disk to take into account the
effect of the towing force. The X- axis component of the actuator disk acting on the ship will be
logically subtracted from the opposite of the drag to evaluate the towing force.

The parameters Dir_z and Z are frozen in case of a 2D project.

Spring wrench

Force and moment components calculated during the simulation will receive the stiffness values
of the spring load at the application point in the primary frame of the body and will be applied to
the specified D.O.F.'s.
For example, for the rotation stiffness, moment components along axes will be defined by the
product of the rotational stiffness by the angular deviation of the given Cardan angles (roll, pitch
and yaw).

Even for half- body computations, the stiffness of the spring to be defined is the total stiffness
corresponding to the one of the entire body computation.

Damping wrench

Similarly to the Spring wrench conditions, this will add coefficients (C d >0) to the force and
moment components with respect to the specified application point.
All loads are computed with respect to the primary configuration considered as non-loaded
configuration. Rotational damping is defined related to the axis of the Cardan angles respectively
(Rx2,Ry1,Rz0).

D. Initial Conditions

For a body with solved motion, initial kinematics have to be specified. For instance, an initial
displacement can be imposed deduced from the position in the reference mesh. It can be
composed of a translation and a simple rotation along X- axis, Y- axis or Z- axis only. The
corresponding data for imposing an initial displacement are:

256 FINE™/Marine 7.1 User Guide


l Initial velocity
l Initial instantaneous rotating vector
l Initial translation
l Initial rotation

FIGURE 10.29
Initial Displacement

All angle values have to be expressed in radians [rad].

The parameters W_GC, dRx0, dRy0, T_z0, deltaRx0 and deltaRy0 are frozen for 2D projects.

For instance, if the body is at rest at the beginning of the simulation, a null velocity is imposed. When
a restart computation is run, these values are not taken into account since the configuration of the last
computed time step is automatically saved and read from the file body_param.dat.

The Show/ Hide button will display the initial conditions (for translation and rotation only) in the
graphics area as soon as an input is different from 0. These values and their representation take into
account the Cardan angles.

257 FINE™/Marine 7.1 User Guide


The initial kinematics capabilities can be used to perform a rolling motion simulation for instance.
When the user defines an initial rotation of 0.8 radians around X-axis, the body will rotate initially
with a rolling angle of 0.8 radians. If the D.O.F. Rx is set as Solved, the code will then perform a
computation in order to stabilize the boat from its initial position.

10.5 BASIC RECOMMENDATIONS

Depending on the physical conditions of the case study following advises can be used for the
computation setup:

Ship resistance (solved trim and sink study)

Motion parameters

l D.O.F. motion definition:


l Tx0 set to Imposed : ½ sinusoidal ramp with the acceleration Final time equal to 200 Time
steps
l Tz0 and Ry1 set to Solved
l Apply Activate Quasi-Static (QS) approach with the following settings:
l Release time: 0s
l Under-relaxation parameters: 0.2
l dT2 = 18*Time step
l dT3 = 22*Time step

Control variables

l Time law : Uniform


l Time step value can be calculated as T = 0.005(L oa /V ref)(the same value will automatically
suggested by the GUI for solved motions), where L oa , is the ship length and V ref is the final
maximum ship speed.
l Use 5 as Maximum number of non-linear iterations

258 FINE™/Marine 7.1 User Guide


Seakeeping (solved trim and sink, head waves study)

Motion parameters

l D.O.F. motion definition:


l Tx0 set to Imposed : ½ sinusoidal ramp with the acceleration Final time equal to 200 Time
steps
l Tz0 and Ry1 set to Solved
l Do not use the Quasi-Static (QS) approach

Control variables

See the FAQ Wave generation and damping guidelines for time step selection recommendations.
Use 12-22 as Maximum number of non-linear iterations, considering that 16 will be the best
compromise between the accuracy and CPU time.

High Froude number ship motion (solved trim and sink study)

It is strongly recommended to perform high Froude number study in 2 steps. The first step
consists in estimating the final hydrodynamic equilibrium position. Three options are proposed:
l use experimental data or your own estimation methods
l use the Savitsky method provided by the C-Wizard in planing regime mode
l perform a first CFD simulation and check the converged dynamic position (see the Resistance
advices)
The second step consists in performing the final calculation using the estimated position and
starting from the cruise speed. The boat is then meshed in its estimated position.

Meshing advices for 2 step calculation approach can be found in FAQ.

Motion parameters (2nd step)

l D.O.F. motion definition:


l Tx0 set to Imposed : constant with the final maximum velocity of the boat
l Tz0 and Ry1 set to Solved
l Do not use the Quasi-Static (QS) approach

259 FINE™/Marine 7.1 User Guide


Control variables

l Time law : Uniform


l Time step value can be calculated as T = 0.005(Loa/V ref)(the same value will be automatically
suggested by the GUI for solved motions)
l Use 5 as Maximum number of non-linear iterations

Propeller open water (monofluid)

Motion parameters

l D.O.F. motion definition:


l Rx2 set to Imposed: ½ sinusoidal ramp with the acceleration Final time equal to 100 Time
steps
l Apply Rotating frame method

Control variables

l Time law : Uniform


l Time step value can be calculated such as having 20 Time steps per 1 rotation of propeller
l Use 2 as Maximum number of non-linear iterations

10.6 MULTIBODY DEFINITION

When multiple bodies have been created in the Body definition menu, in the Bodies menu, the
list of bodies will be displayed without the reference to domains. An option becomes accessible: a
special link can be defined between the bodies. First of all, one should pick the body the selected
body from the tree will be attached to.

260 FINE™/Marine 7.1 User Guide


Connection type

FIGURE 10.30
Link between bodies

RIGID connection

For a RIGID connection, no input is required. It allows to fix a body with another one, to follow
its motion.

PIN connection

For a PIN connection, the axis and the center of the connection should be defined through the
Edit button. This connection is typically used to link a propeller or a rudder to a ship.

261 FINE™/Marine 7.1 User Guide


FIGURE 10.31
Edition of the PIN connection

It gives access to an imposed degree of freedom for rotation, named "Rn". The "n" refers to the
axis defined with Edit button of the link. Please refer to Imposed Law of Motion for the definition
of each motion law.

FIGURE 10.32
Rn degree of freedom

262 FINE™/Marine 7.1 User Guide


FIGURE 10.33
PIN connection display

The vectors represented in the graphics area are originated at the PIN connection point and
directed in the normal direction. The rotation direction is defined thanks to the speed sign of the
imposed rotation law. In case the rotation starts off negative and ends up positive or vice versa,
two arrows are added.

If a connection is chosen, the Cardan angles are grayed out and the selected body receives the Cardan
angles from the body it is attached to.

Dynamic parameters

"Dynamic Parameters" (p. 248) can be specified for linked bodies with RIGID and PIN
connection type, even if the motion is Imposed or Solved. In this case, the inertial effects are
transmitted to the parent body through additional external forces.

Linked body with imposed rotation (Rn) D.O.F.

When specifying the Motion type for rotation D.O.F. (Rn) as Imposed, the Inertial effects
menu with the checkbox Consider inertial parameters of this body becomes available:

263 FINE™/Marine 7.1 User Guide


FIGURE 10.34
Motion definition frame for an Imposed Motion type of a linked body

By activating this option the Dynamic parameters menu with Inertial parameters becomes
available for modifications. For example, the influence of a linked body can be taken into
consideration respecting the imposed law of motions.

Linked body with solved rotation (Rn) D.O.F.

By defining the Motion type of a linked body as Solved, the Dynamic parameters menu is
activated and all parameters are available for modifications.

FIGURE 10.35
Motion definition frame for a Solved Motion type of a linked body

264 FINE™/Marine 7.1 User Guide


The quasi static method is not compatible with a solved PIN connection. The method will be
then disabled.

In addition to the Inertial data, Coupling parameters, Initial conditions menus having the
same options comparing to the non- linked body case, the External forces menu provides
additional settings for the Wrench from parent body.

FIGURE 10.36
Wrench from parent body definitions for the Solved motion of the linked body

For the sliding boundaries computation case, it can be advised to create a specific link Rotation cut
also described into the "Sliding Patch Motion" (p. 270) In this case, the motion of the sliding
boundary inherits the motion of the parent body except if one or all D.O.F. are rotation type.

The inertial effects are not integrated directly into the inertial parameters of the parent body. As a
consequence, it will converge only if the inertia parameters of the linked bodies are relatively small
compared to the inertial parameters of the parent body, since they are treated explicitly.

265 FINE™/Marine 7.1 User Guide


10.7 VIRTUAL BODY

As it is explained in the Mesh Management chapter, created from the sliding patch(es) virtual
body can be treated somehow as the rigid body regarding it's motion definitions. After the body
has been created within the Mesh management page, it will be automatically added into the
Bodies list of the Body Motion menu with the name Virtual_body_#.

FIGURE 10.37
Body motion menu: virtual bodies motion parameters

Motion types available:


l Fixed
l Imposed
Defining selected Virtual_body_# as attached to a rigid body will keep the access in D.O.F.
motion definition with the Rotation (Rn) d.o.f. available.

266 FINE™/Marine 7.1 User Guide


CHAPTER 11.

MESH MANAGEMENT

This menu allows to define the mesh deformation strategy linked to each domain according to bodies
motions present or not in the domain.

In the list Domains, different domains are shown without displaying bodies and sliding patches.
This menu is divided in three parts: "Sliding patch motion", "Domain mesh management" and
"Independent domain motion".

267 FINE™/Marine 7.1 User Guide


FIGURE 11.1
Domain management

In this section
11.1 Multidomain definition 269
11.2 Sliding Patch Motion 270
11.3 Domain Mesh Management 274
11.4 Independent domain motion 281

268 FINE™/Marine 7.1 User Guide


11.1 MULTIDOMAIN DEFINITION

FINE™/Marine can handle multidomain projects. This means that domains can be manipulated
separately to allow completely different motions between them. However, information about the
flow should be transferred as soon as there is a "sliding" against each other. These connections
can be done using non- conformal interfaces (named as "Full Non- Matching Boundary"
connections in HEXPRESS™) and listed in the Boundary conditions menu of FINE™/Marine
interface as Non-conformal interfaces. These non-conformal interfaces can be grouped together to
create sliding patches. These groups can be used to define special links between the domains.

One body can belong to different domains.

269 FINE™/Marine 7.1 User Guide


FIGURE 11.2
Example of a multidomain representation

11.2 SLIDING PATCH MOTION

The first tab of Mesh Management menu contains the list of Domains of the project. Second tab
Sliding patches motion suggests the choice of non- conformal patches with the details as:
boundary condition type, identifier and name of domain to which this patch belongs.

Sliding patches motion page is only available for the multidomain projects with Full non matching
boundary (FNMB) condition created. Patches flagged as " SOL* " are the boundary condition type
corresponding to the FNMB in HEXPRESS™.

Displayed list presents non-conformal patches for the selected domain with no relation to the rigid
bodies existing in the project. All settings for bodies should be done through the Body Definition
and Body Motion menus.

270 FINE™/Marine 7.1 User Guide


FIGURE 11.3
Sliding patches definition

To work with the existing sliding patches, the user can perform the following operations:
l choosing the Create link (with possibly a single patch selected), the definition of a link type
becomes available. Through the Attach patches to and with connection drop down list boxes
the choice of the pilot body (between all existing in all domains) and the type of connection
can be done.

271 FINE™/Marine 7.1 User Guide


FIGURE 11.4
Creating a link

Available connection types are:


l Rigid: there is no degree of freedom between the sliding patches and the pilot body: they
follow every motion of the pilot body;
l Roll cut: the sliding patches follow every motion of the pilot body and a relative roll motion is
allowed between the inner and outer sliding patches around the connection point. The rotation
around the X-axis is defined in the body reference frame;
l Pitch cut: the sliding patches follow every motion of the pilot body and a relative pitch motion
is allowed between the inner and outer sliding patches around the connection point. The
rotation around the Y-axis is defined in the body reference frame;
l Yaw cut: the sliding patches follow every motion of the pilot body and a relative yaw motion is
allowed between the inner and outer sliding patches around the connection point. The rotation
around the Z-axis is defined in the body reference frame;
l Rotation cut: the sliding patches follow every motion of the pilot body and any relative
rotation is allowed around the connection point.

The connection point will be the centre of the rotation. If the rotating body has only imposed or fixed
motions, this point must be the reference point (defined in body motion). If the rotating body has any
solved motion, it must be the centre of gravity.

The pilot body can also be a sliding patch or virtual body.

For all connection types except Rigid, clicking on Edit button will allow to define the connection
point coordinates.
Several patches can be added to the sliding patch link by clicking Merge button. This function
becomes available when there are links created, all other selected items are ungrouped patches.

272 FINE™/Marine 7.1 User Guide


l Delete link button deletes the sliding patches links or removes selected patches from their links.
l Link all button creates a single sliding patch link from all the sliding patches existing.
The GUI defines the selected patches as a body with imposed motion with a specific name
sliding_patches_# as soon as a link is created. Otherwise, nothing needs to be done.

If non-conformal boundaries are not present in the current domain, the Sliding patch motion is not
available.

Starting from FINE™/Marine v4.1 creating the virtual body based on Sliding patches is available.

Attention should be payed to the FINE™/Marine v3.1 projects: Body Definition, Body motion and
Mesh Management setting will be defined as Defaultswithout virtual bodies definitions.

To create a virtual body from the sliding patch(es) select from the Sliding patch motion Patches
menu the future virtual body patch(es) and click Create virtual body.

FIGURE 11.5
Virtual body from sliding patches creation

From now created Virtual_body_# will be added into the Bodies list of the Body Motion menu.
Concerning the Domain mesh management, mesh deformation strategy will follow the motion
from the Virtual_body_#.
Initially, a virtual body creation benefit is to make it possible to impose a motion of the domain as
a rigid body, link it to another virtual or rigid body and etc., to treat the sliding patches somehow
as a rigid body. With respect to this, the Body Motion menu receives the list of Bodies including
the Virtual_body_# . Description of available options for the virtual body management can be
found in the Virtual body section. It is also possible to create links to a virtual body within the
Mooring, Tugging and Actuator disc additional models.
It is also possible to control some results for the virtual bodies computations. Details can be found
in the Body/Sub-body Management.

273 FINE™/Marine 7.1 User Guide


11.3 DOMAIN MESH MANAGEMENT

FIGURE 11.6
Domain Mesh Management

When clicking on the domain in the tree on the left side of the menu, the Domain Mesh
Management tab is opened. The list of the Source of domain rigid motion will contain all the
bodies and sliding patches of the current domain.

274 FINE™/Marine 7.1 User Guide


If no body and no sliding patches are defined in the domain, the menu Domain mesh management is
not available, but the last menu Independent domain motion is available. In other cases Domain
mesh management is available but the Independent domain motion" will be deactivated.

The pilot body should be selected. By default, the first body from the list is selected. This option is
useful as soon as multiple bodies are present. Indeed, the pilot body will drive the domain mesh
displacement whereas the other ones will not have an influence of the domain displacement.
For the Mesh displacement definition , the following data should be specified to associate a
regridding strategy to each d.o.f.:
l Rigid motion means that the mesh will follow exactly the body without being deformed, giving
the possibility to perform motions of arbitrary amplitudes

If the mesh deformation definition for the domains only contains "rigid mesh deformation", then
there is no need for the sliding patches to be linked.

l Weighted deformation means that a body-fitted mesh will be generated, using an analytical
weighted deformation technique for the body motion related to this d.o.f..

If one domains has a "weighted deformation" for any degree of freedom in its mesh definition
then the user has to group the sliding patches corresponding to the domain manually and link it to
its parent body of the domain with a "rigid" connection.

275 FINE™/Marine 7.1 User Guide


FIGURE 11.7
Mesh displacement definition

For only one moving body in an unbounded domain, the domain can follow exactly the body
without being deformed. If only Rigid is specified for each degree of freedom, the motion will be
applied to the whole domain. The motion of arbitrary amplitudes in any direction and orientation
is possible since the domain follows exactly the body motion.
In the case of free surface simulations, it is better for accuracy to keep the free surface position
with respect to the external boundaries. As a consequence, if it is requested to impose or solve a
body with a trim, a sinkage or a roll motion, it is better that these degrees of freedom do not affect
the external boundaries: they have to be treated by a deformation mesh technique (imposing
limited amplitudes of motion for these degrees of freedom). This can be done by putting Weighted
Deformation instead of Rigid for the concerned degrees of freedom.

276 FINE™/Marine 7.1 User Guide


For instance, a half-body (Y-axis symmetry) with a forward X-axis imposed motion with free or
imposed trim and sinkage, the Tx0, Tz0, Ry0 should be activated.

Tx, Ty and Rz are the only degrees of freedom which do not affect the position of the free surface
relatively to the external boundaries. Hence, Tz and Ry should be set up as Weighted deformation (as
done by default).

For sliding patches linked to the rigid or virtual body, it is possible to disconnect/connect mesh
kinematics from/to the body kinematics.

FIGURE 11.8
Specific mesh management control for sliding patches

This option can be useful when the outer sliding patch is connected to the body, but the mesh of
the domain should rotate. There, it is necessary to disconnect the mesh kinematics from the body
kinematics, which would not be the case if the "Body itself" option has been selected. For
instance, it can be the case of boat motion with the ducted propeller: here the mesh of the
propeller domain should rotate, while the outer sliding patch as a duct is connected to the boat
motion.
Choosing Body itself or Domain rigid motion source will have no effect, if the sliding patch is
linked to the same body as the mesh rigid motion is copied from.

11.3.1 Rotating frame method

Rotating frame method is implemented and available in the interface. To apply this functionality
see the Rotating frame part of the Domain Mesh Management menu where it is possible to
activate/ deactivate Rotating frame method by selecting/ deselecting it into the check box.

277 FINE™/Marine 7.1 User Guide


FIGURE 11.9
Rotating frame method activation menu

This method is a steady-state approximation. The flow in each rotating cell is solved using the
rotating reference frame equations. The approach does not account for the relative motion of the
adjacent domains of simulation (which may be moving or stationary), the mesh remains fixed for
the computation. This is equivalent as freezing the motion of this rotating domain in a specific
position and observing the instantaneous flow field around a solid body in a particular position (a
propeller for instance) . Hence, the method is often referred to as "frozen rotor approach" in the
literature.

In the motion history the rotation variable ( Rz0) will be reflected as zero, but the angular velocity
variable ( dRz0) will contain the correct rotation speed.

Even if this approach is an approximation, it can provide information of the flow for many
applications. For instance, the method can be used for propeller applications in which the hull/
pod and propeller interaction is relatively weak, and the flow is relatively uncomplicated at the
interface between the moving and stationary domains. Another potential use of the method is to
compute a flow field that can be used as an initial condition for a transient sliding grid calculation,
such as a self-propulsion simulation for instance: during the first phase of the simulation, the
method can be activated in the domain of the propeller until the ship equilibrium is found. The
method should be then deactivated in a restart simulation to apply the standard guidelines for ship-
propeller interaction with sliding grids.

When using the Rotating frame method in mono- fluid configuration (such as an open water
simulation), an unsteady computation is required to be able to apply the motion parameters to the
body. Nonetheless, no time accuracy requirement is present here. A large time step value together
with a reduced number of non-linear iterations comparing to the standard approach are recommended.

Thanks to this method a propeller open water computation with a single domain configuration,
can be run in a significantly reduced computational time without a loss in accuracy. Performed
studies for the open water propeller case showed the following results: the number of non-linear
iterations can be reduced to 4 (could be also acceptable with only 2 but the user is invited to check
the difference), the time step value should be calculated such as the propeller will perform a
complete rotation in 20 time steps.

278 FINE™/Marine 7.1 User Guide


This method is not aimed for the propeller-hull interaction tasks, counter-rotating and contra-rotating
propellers.

A ducted propeller can be performed using this method as well. The mesh contains one domain
and two bodies (the propeller and the duct). The rotational speed is imposed on the propeller and
the ducted is fixed (v=0). The entire mesh rotates but the solver corrects the velocity on the duct.

When RFM is active the resulting forces and moments will be given in the body frame, regardless of
the option chosen in Outputs > Force decomposition.

11.3.2 Boundary conditions for grid deformation

To control the behavior of the grid deformation independently from the fluid boundary conditions,
Expert parameters for the Boundary conditions for grid deformation are presented. In simple
words, applying available conditions for grid deformation will control the way the boundary
nodes are going to move when the mesh deformation is used, independently of the rigid motion.
With weighting deformation technique, it only have an effect on the boundary condition which is
applied when computing the weighting coefficient.

Up to FINE™/Marine v2.3, the boundary conditions of the grid deformation are equal to the
boundary conditions related to the computation of the weighting coefficients and the fluid boundary
conditions are linked together.

Keeping the default settings (Dirichlet condition) without the specific treatment works for the
most of the cases. But, for specific needs, for example in a case of a foil fixed to a bottom wall
(without using sliding grids), the foil cannot be rotated using the weighting deformation technique
and the default allocations of the regridding boundary condition (slip or no slip), is considered as a
Dirichlet condition for the computation of the weighting coefficient. The weighting coefficient is
then set up by a value equal to 0 for all faces belonging to the bottom. Hence, no modification of
the position of the nodes is applied when the body rotates, what will lead to problems.
To apply the suitable boundary condition for the weighting coefficient, a symmetry condition (or
a Neumann condition which are equivalent for this case) has to be set on the bottom patch. The
goal is then to be able to change the boundary conditions for the computation of the weighting
coefficient when it is needed.

279 FINE™/Marine 7.1 User Guide


To modify the allocation, the Expert Parameters are provided. By clicking on this button, a pop-
up menu presenting all the patches belonging to the domain with their current grid boundary
conditions will appear.

FIGURE 11.10
Boundary conditions for grid deformation

The boundary condition Free corresponds to Neumann conditions; No- slip for Dirichlet
conditions; Bottom (shallow water) for shallow water condition; Mirror condition supports
mirroring of the mesh deformation.
Bottom (shallow water) distributes the mesh deformation between ship bottom and domain
bottom uniformly, allowing more mesh deformation to be absorbed than with standard setup. It
can only be used on the domain bottom patch, and in a project where the vertical direction is the Z
axis.
For users working in batch mode, in the .bcs file, the first boundary condition flag can have 3
digits: grid deformation boundary condition uses the first digit, the last two are used for the Fluid
boundary condition. For example, a Far Field condition (10 with the old format for the boundary
condition in the .bcs) will now receive the flag 410.

280 FINE™/Marine 7.1 User Guide


With this new functionality, all the patches (including SOL, EXT and FNMB) need to have a non zero
digit for the regridding boundary condition.

To track the position of the interface (air/ water) usually a Dirichlet boundary condition for the
mesh deformation PDE's is used. In terms of interfaced parameters here the No-slip condition
should be reasonable to be applied to the External boundaries, but not on Solid walls.
Fixed boundary conditions (No-slip) include vertices on the mesh that the user wishes to hold still
during the whole session while free boundary condition (Free) includes vertices that the user
wishes to be modified through the simulation. The rest are free vertices whose positions and local
frames are indirectly controlled by both types of boundary conditions. Vertices in fixed boundary
conditions should have the identity matrix as their local transform.

11.4 INDEPENDENT DOMAIN MOTION

This menu is available for each selected domain in case no body and no links of sliding patches
are defined. Cardan angles for motion reference axis and DOF motion definition options are
presented here, with the motion types available: FIXED and IMPOSED.

281 FINE™/Marine 7.1 User Guide


FIGURE 11.11
Independent domain motion

When the d.o.f. is selected as Imposed, the box "Reference Point" will appear in the Body motion
menu.

When the user has defined at least one d.o.f. as Imposed, the FINE™/Marine GUI will generate a
new "Virtual body" by assigning a new index of body for all EXT patches of the domain.

If no EXT patches are presented in the domain, a warning "Impossible to associate a motion to the
domain since no EXT patch is present" will appear.

The General option Activate Cardan angle is presented to manage the motion of bodies (real or
"Virtual") and to control the motion of domains.

282 FINE™/Marine 7.1 User Guide


The Imposed motion of the domain is going to be deactivated when there is the imposed motion
of one domain defined and after a body or a group of sliding patches linked to another body in
this domain were created. To make the functionality available, the Virtual body composed of
EXT patches has to be deleted.
This independent domain motion can be useful for crossing ships simulations for instance where
there is a need to define 4 domains, 2 containing the ships and 2 going along with the first 2
domains so that the flow is always computed into a domain. Attention here should be put on that
if one domains has a "weighted deformation" for any degree of freedom in its mesh definition
then to group the sliding patches corresponding to the domain and link it to its parent body of the
domain with a "rigid" connection will not work for the crossing ship study.

283 FINE™/Marine 7.1 User Guide


CHAPTER 12.

INITIAL SOLUTION

A FINE™/Marine computation is starting from an initial solution. The following initial solution types
are available:
l uniform values,
l from file.
Each of these types is described in the next sections. The initial solution is set for the complete
computational domain. It is not possible to define different initial solution types for different parts of
the domain.

In this section
12.1 Uniform Values 285
12.2 Restart from a Previous Computation 287

284 FINE™/Marine 7.1 User Guide


12.1 UNIFORM VALUES

When selecting Uniform values on the Initial Solution page, the physical values used for the initial
solution can be modified as shown in the following figure.

FIGURE 12.1
Constant initial solution

The physical values are uniformly used as initial solution over all the domain, except on the
boundaries. The variables for which initial values need to be specified are the Initial velocity
components.

The Z-component is grayed out in case of 2D projects.

The turbulent data are automatically computed by the interface and then by the solver. They
depend on the fluid(s) parameters and the flow model characteristics. It is also possible to define
the initial turbulence level by activating the Turbulence level button. The list of initial turbulent
quantities is the following one:
κ = Turbulent kinetic energy (K-ω and K-ε models only),

285 FINE™/Marine 7.1 User Guide


ω = Turbulent frequency (K-ω model only),
νt = Turbulent viscosity (K-ω and K-ε models only),
ε = Turbulent dissipation (K-ε model only).

The turbulence level, noted a, is used to define the turbulence velocity scale noted Vs with the
formula:

with Vref the reference velocity defined in the Flow model menu.

Increasing the turbulence level is recommended for internal flows but not for external ones. In this
last case, the turbulence level initialization should be kept inactivate.

The turbulence length, noted Ls, corresponds to a reference length for the turbulence initialization.
It can be different from the reference length defined in the Flow model menu.

TABLE 12.1 Turbulent data initialization


Turbulent data Default formula Formula from turbulence level initialization
κ

νt

286 FINE™/Marine 7.1 User Guide


For a multifluid computation, the interface position must also be defined and will be displayed in
the graphics area.

The initial free surface is imposed along Z-axis for 3D simulations and Y-axis for 2D simulations.

Only a Z constant line can be defined through the interface. To create an user defined free surface
location, it is possible to edit the FORTRAN program provided in the FINE™/Marine package.

12.2 RESTART FROM A PREVIOUS


COMPUTATION

To continue using the results from a previous computation, the button Restart from previous
computation must be selected in the Initial Solution Parameters page. The possible computations
to restart from is available in the drop down list.

FIGURE 12.2
Restarting from file

To restart from a previous solution, it is required that some solution files are already present, as the
simulation definition file with extension .sim. See "Backups" (p. 481) for the complete list of
mandatory files.
The "eff_*.dat", "MvtBodyName.dat" and "body_param.dat" files contain respectively the global
fluid forces, the body movement and the data related to the body. They have also to be present in
the computation folder to make a restart.

287 FINE™/Marine 7.1 User Guide


The check button Import computation history can be selected. When selecting this button the
convergence history file, which contains all the residuals from the previous computation, will be
used as the initial conditions of the new computation. The new residuals will be calculated with
respect to the last iteration of the previous computation and will be appended to the convergence
history file.

For instance, it is possible to increase smoothly the imposed velocity after a first run at a lower speed,
see Imposed Law of Motion to know how to change the velocity.

When performing a restart, the simulation should be done in the same conditions for a good post-
processing analysis. For instance, new residuals in the ".res" file or new motion outputs in the "Mvt_
body.dat" file can be accumulated without any problem but the Monitor (see Monitoring) will not be
able to read these new outputs. To overcome this limitation, one should not import the convergence
history.

288 FINE™/Marine 7.1 User Guide


CHAPTER 13.

ACTUATOR DISK

An actuator disk approach is implemented in FINE™/Marine to take into account the effect of a
propeller. The first sections will describe the necessary inputs to perform a computation with one or
several actuator disk(s). The next ones propose some descriptions of the different features in details.

Not available for 2D projects.

In this section
13.1 Definition 290
13.2 Properties 296
13.3 Best Practice on Actuator Disk Capabilities 300
13.4 Basic Equations 302
13.5 User-defined 304
13.6 Propeller code coupling 306

289 FINE™/Marine 7.1 User Guide


13.1 DEFINITION

First of all, it is necessary to activate the Actuator disk feature by clicking on the Activate
Actuator Disk menu.

FIGURE 13.1
Actuator disk activation menu

As soon as the model is active, the computation will contain at least one Actuator Disk.

FIGURE 13.2
Actuator Disk default parameters

290 FINE™/Marine 7.1 User Guide


13.1.1 Global parameters

Body force update

FINE™/Marine allows to define how the body forces will be acting on the Actuator disk. When
Body force update is active, the following options are available:

FIGURE 13.3
Body force update selection menu

Body drag

The Thrust of the Actuator Disk is automatically updated during the computation such that it
ensures the equilibrium of the forces in X-direction at a prescribed interval in a manner of Thrust
= (Σ External forces - Drag). External forces can be the constant wrench, the mooring and
tugging lines or dynamic libraries for the external forces. If Body force update is set not active,
the value of the Thrust during the computation will equal the one specified in the interface.

If no external force is imposed on the body, the update will simply impose Thrust=Drag in absolute
value.

If Body force update is active and:


l Drag based wrench is used as an external force
l the drag was already balanced by the Drag based wrench
the actuator disk will have no influence.

The prescribed interval for the force update corresponds to the parameter named Frequency
which can be employed as the number of Time steps for an unsteady computations or the number
of Iterations for a steady computation.

291 FINE™/Marine 7.1 User Guide


A ramp can be set and correspond to the parameter named Ramp duration, which can be applied
as the number of Time steps for an unsteady computations (including steady computation with
free surface) or the number of Iterations for a steady computation. The default value 0 means
there is no ramp.

The ramp is only applied when T, n or Power is imposed. Body drag does not take into account this
parameter.

For the BODY DRAG type of force update it is possible to define the Force distribution with
the following options:
l DEFAULT: If the center of the mesh control volume is located inside the actuator disk, then,
the actuator disk body force assigned to this control volume will be equal to the force density
at the center of the control volume times the volume of the control volume. This model is not
adequately applicable for the simulation of ducted propellers.

Results can be slightly different from the previous versions but nothing is changed for user.

Body forces are uniform in angular direction but changes in radial direction for the DEFAULT
law.

l UNIFORM: uniform force distribution inside the actuator disk.

Uniform law could be preferred for water jets.

l USER-DEFINED : the user can provide his own body force distribution by using user
defined dynamic library (a complete description of the dynamic library is given in the "User-
defined" (p. 304) section).

Open water data

It allows to read external open water data to balance the force between the actuator disk and the
linked body. The user has to provide .dat file containing the Thrust, Torque coefficient and the
efficiency with regard to the Advance ratio. Below is an example of the required format for the

292 FINE™/Marine 7.1 User Guide


open water data file.

FIGURE 13.4
Example of an Open water data file format

293 FINE™/Marine 7.1 User Guide


With this approach, we can still perform a half ship simulation (in case the flow is symmetric) even if
the propeller is located at the center plane. In that case, the torque will be just calculated from the
open water data file but not taken into account in the computation. This is a valid setup if the
objective is to calculate global trends without a rudder behind for instance. If a rudder is present, the
flow should be not treated as symmetric anymore and a full ship simulation should be performed.

If the Thrust and Torque are out of the range of values given inside the open water performance data,
the solver will use the extreme values so that no extrapolation is performed, only interpolation within
the provided range of values. Hence, for the particular case of the bollard pull, values for J=0 (or
close to J=0) should be given as well.

When OPEN WATER DATA is selected, new entry appears in the Actuator disk properties
menu and allows to specify the path to the .dat file in the Open water data menu

FIGURE 13.5
Open water data file specification

294 FINE™/Marine 7.1 User Guide


By default the file chooser is filtered to .dat file format. As the forces are updated, the Thrust and
the Torque are disabled.
Another option is available for the OPEN WATER DATA - Revolution rate with the
following options:

FIGURE 13.6
Revolution rate selection menu

When the User imposed is selected, the entry to enter the value in [RPS] appears below the box.

FIGURE 13.7
User impose value for Revolution rate

When Revolution rate is set to 0 it means that it will be solved, whereas if it has a non-zero value
- it is considered as prescribed. The User imposed option can be used to solve the body velocity.

Propeller code

Here the body forces will be determined by an external propeller code (usually a potential code)
provided by the user through a dynamic library. A RANSE potential code coupling approach
contains following steps:
1. RANSE code computes the flow around the hull and provides the inflow condition to the
potential code.
2. Every N iterations or time steps, the propeller performs a simulation for a rotating propeller.
Effect of the propeller is represented by body forces.
3. Those body forces are added into the right hand side of the Navier-Stokes equation. They are
also taken into account when solving the motion equation for the boat.

295 FINE™/Marine 7.1 User Guide


This development is under a dedicated license key (no extra cost).

More information can be found in the "Propeller code coupling" (p. 306) section.

When Body force update option is used, the vessel must advance in the X-direction in the primary
frame, since the update is based on force balancing in that direction.

Activate tangential force controls whether the tangential force is activated or not in the
computation. It is not necessary to activate the tangential force to obtain a good prediction of the
resistance.

Half boat simulation with an Actuator Disk in the middle of the symmetry plane are possible as long
as the Activate tangential force option is not active.

The Show/Hide button will display the Actuator Disk definition in the graphics area. These values
and their representation take the Cardan angles into account.

13.2 PROPERTIES

For each Actuator Disk, it is mandatory to define the following parameters:


l Thrust, Torque: thrust and torque of the propeller. Facing the hull from the stern side and
assuming the ship is advancing in the X-direction, a propeller with a positive torque rotates in
counter clockwise direction in the Y-Z plane. The full force is required, even if the half body is
meshed with a symmetric plane. The direction of the thrust and torque is fixed in the body
frame of reference. Hence they move with the body.

296 FINE™/Marine 7.1 User Guide


If the Activate tangential force button is activated, the Torque value becomes available (except
for OPEN WATER DATA mode where the Thrust and Torque are read from the open water data
file).

l Impose power: in case of body force update option is active using the open water data, if the
propeller revolution rate is not defined and the power value is higher than 0.001. Then the
actuator disk will operate with this prescribed power. It corresponds to , n being the
revolution rate and Q the torque. It is the power delivered at the shaft after the gear box.
l Impose maximum power : in case of body drag or open water data, with prescribed
revolution rate, the revolution rate might be reduced if the engine power is higher than the
maximum power.

Imposing (maximum) power has an interest only for self-propulsion simulations.

l Thickness of the propeller: virtual thickness of the propeller along the shaft direction.

The thickness value has to be strictly positive.

The best practice is to impose the thickness of the real propeller, usually a tenth of the outer
diameter.

l Inner Radius, Outer Radius: respectively the inner and the outer radius of the propeller.

When the shaft or hub is present in the simulation, the value of inner radius must ensure that the
actuator disk does not intersect any solid patch.

l Inflow plane distance: distance between the inflow plane and the center of the propeller.

297 FINE™/Marine 7.1 User Guide


This plane should not be located inside a rotating domain. The best practice is to define the inflow
plane at some distance from the region where the body forces are added (so at some distance from
the actuator disk), so that it doesn't induce errors. One can usually consider the distance equal to a
fifth of the actuator disk outer diameter as a good choice if it is not already in the boat.

l Revolution rate: defines the rate to reach the required Thrust. This parameter is not used by
the flow solver as such but is transferred to the external dynamic library. See also the details
provided in Actuator disk "Global parameters" (p. 291).
l Center coordinates (X, Y, Z): Cartesian coordinates of the propeller's center. It is the real
center of the disk (center +/- half of the thickness to define the disk in axial direction).
l Shaft direction (pointed to the wake): direction of the propeller force. Normalization is not
required.

in case the Body force update option is not used the shaft direction is not strictly defined.
Otherwise, the direction is aligned with the imposed forward direction of the body (typically the
X-direction is applied).

l Linked to body: name of the body which the propeller is attached to, see "Body Definition"
(p. 215) to know how to create a body. The actuator disk does not necessarily touch the body.

298 FINE™/Marine 7.1 User Guide


FIGURE 13.8
Representation of the actuator disk parameters

Besides, FINE™/Marine allows to perform computations with several actuator disks. They can be
created through the interface. For this purpose, clicking on Add will create a new disk in the list,
as a copy of the selected one. Clicking on Remove will delete the active disk and its properties.

FIGURE 13.9
Disks list

299 FINE™/Marine 7.1 User Guide


13.3 BEST PRACTICE ON ACTUATOR DISK
CAPABILITIES

13.3.1 How to Set up the Parameters

The actuator disk approach consists in adding a source term of forces field in the Navier Stokes
equations in order to take into account the propeller effects. Nevertheless, this method is
approximate and all the propeller effects will not be computed with precise details.
The most precise results can be obtained by using the Thrust and Torque capabilities. These
values should be specified through the page Actuator Disk, see Special Characteristics
In reality, the thrust is unknown because it is depending on the flow behavior. However, once a
steady velocity is reached, the thrust is equal to the drag. That is the reason why it is possible to
activate the option Self Update. With this option, the code will automatically update the intensity
of the thrust at the given frequency by the intensity of the drag.
For instance, let's define the following variables:
l Thrust: T
l Initial thrust: T0
l Torque: Q
l Initial torque: Q0
Initial input values should be imposed for the torque and the thrust. The thrust T will be equal to
the drag every updates during the computation, and the torque Q is determined by the equation:

For instance, if T 0 = 1N and Q 0 = 0.3Nm or T 0 = 100N and Q 0 = 30Nm as initial input values,
the results will be the same. Only the ratio is important as demonstrated by the above equation.

If the propeller torque Q 0 is not known, it is however possible to estimate its magnitude from open
water test of the propeller.

300 FINE™/Marine 7.1 User Guide


In case of multiple actuator disks (let's say 2 for instance), the self-update option works as follows: if
the initial prescribed thrusts are 1N for disk 1 and 2N for disk 2, the computed drag is 15N, then the
updated thrust will be 5N for disk 1 and 10N for disk 2.

13.3.2 How to Manage Computations with Actuator Disk

The following advices are written to avoid additional numerical difficulties and to control the
computations.

Rigid motion

In case of rigid motion, it is recommended to activate the actuator disk in a restart computation
from a previous converged solution without the actuator disk.

Solved body motion

Two methods are recommended:


l Activate the actuator disk from the beginning and change the Self-update Frequency to 1,
l Activate the actuator disk in a restart computation from a previous converged solution without
actuator disk or with drag based propeller only. In the restart computation, the initial disk
position must be specified, the solver will automatically adapt it to its dynamic position.
Self propulsion is also possible in FINE™/Marine, which means that there is no imposed motion
for the body advance. But this configuration is not advised since the computation time will be too
long. In that case, it is recommended to perform a first computation with an imposed motion to
reach the speed target and then to restart with a solved motion activating the actuator disk.

13.3.3 Computation with Cardan angles

When using Cardan angles, all parameters should be given in primary frame (see Cardan Angles).
If one needs to perform a computation with different Cardan angles, the only thing to do is to
regenerate a mesh and change the Cardan angles. Parameters for actuator disk remain unchanged.

301 FINE™/Marine 7.1 User Guide


Body motion with an high angle compared to 0 along X- direction are not allowed as soon as the
"body self update" option is used, since we assume the boat is moving in the X-direction. This can
cause problem with gyration motion or boat going to Y-direction. However, for Y-direction motion,
one can define a Cardan angle of 90deg.

13.3.4 Important remarks

l It is recommended to generate a mesh with a fine enough grid density inside and near the
actuator disk. A few hundreds is a good compromise. In practice, 20 cells in the thickness of
the disk are recommended and the number in the radius can be chosen to create isotropic cells.
In other words, based on the cell size in the thickness, the same cell size should be used in the
radius direction.
l The initialization of the actuator disk can be quite long if a disk is badly located (inside the
solid body for instance). Since the GUI represents the inputs in the graphics area to help the
user to verify the settings, it is good to take the time to define the actuator disk zone precisely.
l Defining the inner radius of the actuator disk inside the solid wall can happen with conical hub
for instance. However, for the "Wake_flow_pp" (p. 745) tool, the inner radius should be
adjusted to be inside the flow. Otherwise, interpolation errors will occur and decrease the
quality of the solution of this tool.
l If a half domain computation is performed with a propeller located at the mirror plane, then,
this mirror plane needs to be located at y=0. Tangential force must not be activated in this case.
l If a user launches a computation in batch directly with v7.1, with a .sim file < v2.3 including
actuator disk active and Cardan angles different from 0, computation will stop with a warning
saying that the implementation has changed: "Cardan angles are now taken into account with
the actuator disk model. Please create the .sim file with the graphical user interface."
l To simulate Ducted Propellers it is advised to use at least the UNIFORM force distribution,
and if possible USER DEFINED based on real force distribution. The use of DEFAULT
force distribution will lead to under-estimation of the propeller thrust.

13.4 BASIC EQUATIONS

302 FINE™/Marine 7.1 User Guide


They represent body forces per unit volume normalized by ρU²/L where U is the reference
velocity, L is a reference length, and ρ is the fluid density. Coefficients are expressed as:

and where K T and K Q are the thrust and torque coefficients, J is the advance coefficient, n is the
number of rotations per second (rps), Ω is the rotation speed (rad/s), RP is the propeller radius, RH
is the hub radius, Δ is the mean chord length projected into the x-z plane (or actuator disc
thickness), and Y PC and Z PC define the propeller centre coordinates. As derived, these forces are
defined over an "actuator cylinder" with volume defined by RP, RH, and Δ.
CT is also a thrust coefficient linked to KT by the relation:

Integration of the body forces over this analytical volume exactly recovers the prescribed thrust T
and torque Q:

303 FINE™/Marine 7.1 User Guide


13.5 USER-DEFINED

The user can provide his own body force distribution by using user defined dynamic library. The
axial force distribution fa and the tangential force distribution ft is assumed to be function of radial
and angular position only. They are constant in the axial direction. Integration of force distribution
f a and f t on the actuator disk volume should be equal to propeller thrust T and torque Q
respectively, namely:

Here, Dx, Rin and Rout are the thickness, the inner radius and the outer radius of the actuator disk
volume respectively. An example of user defined body force distribution program is given bellow:
Subroutine ad_forces(idisk, Rin, Rout, Dx, Q_imp, &
T_imp, Ri , Angle,Fni,Fti)
implicit none
integer, intent(in) :: idisk
double precision, intent(in) :: Rin,Rout,Dx,Q_imp,T_imp,Ri,Angle
double precision, intent(out) :: Fni,Fti
!---------------------------------------------------------------------!
! idisk : actuator disk index
! Rin : inner radius of the actuator disk
! Rout : outer radius of the actuator disk
! Dx : thickness of the actuator disk
! T_imp : imposed thrust of the actuator disk
! Q_imp : imposed torque of the actuator disk
! Ri : radius of the current position where body force is to
! be defined
! Angle : Angular position of current point
! Fni : output axial force density
! Fti : output tangential force density
!---------------------------------------------------------------------!
double precision:: rhp,Ca,Cb,rp,rs,pi
pi=3.1415926535897d0

304 FINE™/Marine 7.1 User Guide


rhp=Rin/Rout
Ca=8.0d0*pi/105.0d0*Rout**2*Dx*((4.0d0+3.0d0*rhp)*(1.d0-rhp))
Cb=Q_imp/(Ca*Rout)
Ca=T_imp/Ca
rp=ri/Rout
rs=(rp-rhp)/(1.0d0-rhp)
Fni=Ca*rs*sqrt(1.0d0-rs)
Fti=Cb*rs*sqrt(1.0d0-rs)/(rs*(1.0d0-rhp)+rhp)
!
End Subroutine ad_forces
This example gives the default force distribution law described in the first section of this chapter
(in this section, it is normalized). Setting the quantities used for the normalization (velocity U,
length L and density Rho) to 1, will obtain the formula employed in the above program. Here are
the explanation for the arguments:
idisk:(Input) index of the actuator disk (integer).
Rin: (Input) inner radius of the actuator disk
Rout: (Input) outer radius of the actuator disk
Dx: (Input) thickness of the actuator disk
Q_imp: (Input) torque of the propeller
T_imp: (Input) thrust of the propeller
Ri: (Input) radius position of the current point where body force is to be defined
Angle: (Input) angular position of the current point
Fni: (Output) axial force density
Fti: (Output) tangential force density
In the provided example, force distribution depends only on radius position. All arguments except
idisk are double precision floating variables.
User can modify the template ad_forces.f90 from the folder _data/isis/dynamic_lib/ that is stored
in the installation folder. Replacing the imp_eff_dyn.f90 inside the folder by the ad_forces.f90
will complete the change. The procedure for using the dynamic library is detailed in Procedure.

305 FINE™/Marine 7.1 User Guide


13.6 PROPELLER CODE COUPLING

The flow solver can handle any number of boats (limited to 99) with any prescribed and/or solved
motion. An arbitrary number of propellers can be attached to each boat. Paralleled computation
with adaptive mesh refinement and automatic load balancing is fully supported. Each block
interpolates the velocity at the inflow plane located at a prescribed position in front of the
propeller for all points at the inflow plane found inside the block. The interpolated results are
collected and distributed to all blocks so that each block contains required inflow conditions for all
propellers. Those inflow conditions as well as all other information such as the kinematic for all
boats can be transferred to the potential code using a user-defined dynamic subroutine. The
potential code can be either integrated directly into this dynamic subroutine, or launched from it
using a system call. Data exchange with disk files will be necessary in the last case. The user-
defined subroutine can manage freely the computation for all propellers at each block. It is not
necessary that all blocks perform all computations for all propellers. The first bloc performs the
BEM computation for the first propeller, the second bloc performs the computation for the second
propeller, etc. If you have 3 propellers and use only 2 blocs, then, it is the first bloc that performs
the BEM computation for propeller 1 and 3 propeller.
Data exchange between FINE™/Marine and the potential code is performed with a local
cylindrical coordinate system linked to each propeller. This local coordinate system does not
move with the boat, nor rotating with the propeller. The origin of this local coordinate system is
defined at the center of the propeller. The axial direction of this coordinate system is aligned with
the axial direction of the propeller pointing from the boat to the wake. Facing the boat, counter
clockwise direction is the positive angular direction. Radial direction is pointed outward. Angle
change from 0 at y=0 to 2π.
A uniform grid in this cylindrical coordinate system is generated at a prescribed distance in front
of the propeller to provide the inflow condition to the potential code (see figure below). The axial,
tangential and radial velocity components are provided to the potential code with a three-
dimensional array Va(i,j,k), Vt(i,j,k) and Vr(i,j,k). The first index i ranges from 1 to Nr (variation
in the radial direction). i=1 is located at Ri, the radius of the propeller shaft. i=Nr is located at Ro,
the outer radius of the propeller blade. The second index j ranges from 1 to Nt. It is the variation
in the circumferential direction (tangential). At j=1, the angle is zero, while at j=Nt, the angle is
2π. Nr and Nt are controlled by the expert parameter ActuatorDiskInternMeshDim_. The last
index k ranging from 1 to Ndisk is the index of the propeller. The reference is at 0 angle which is
at 3 o'clock as illustrated on the figure by the red line in the disk.

306 FINE™/Marine 7.1 User Guide


FIGURE 13.10
Inflow plane to the propeller

An identical grid, but located at the centre of the propeller is employed to represent the body force
computed by the potential code. Axial body force distribution f a and tangential body force
distribution f t defined at each node of this grid need to be provided by the potential code to
FINE™/Marine. The force distribution should be defined such that integration of the forces on the
actuator disk plane represented by this grid provides the propeller thrust T and torque Q, namely

Here, Rin and Rout are the inner radius and the outer radius of the disk respectively.
The body force is the force acting on the fluid. Hence, the axial force should be positive. Radial
body force is not taken into account in FINE™/Marine. Those body forces are distributed inside a
cylindrical volume with a prescribed thickness.
The grid representing the inflow plane is moved in the computational domain according to the real
position of the propeller. The position of the propeller in the computational domain is defined by
the position of its centre and the normal vector (nx,ny,nz) pointing from the boat to the wake. The
virtual propeller with its inflow plane is first translated to its real position at the computational
domain. Then, a first Cardan rotation around the Z1 axis with an angle of rotation equal to atan2
(ny,nx) is performed, (X1,Y1,Z1) being the Cartesian coordinate system on which the
computational grid is defined. After this rotation (see figure below), the new axis X2 is aligned
with the normal vector (nx,ny,nz) projected into the X2-Y2 plane. A second Cardan angle
rotation around the Y2 axis with an angle of rotation equal to:

307 FINE™/Marine 7.1 User Guide


will place the propeller together with its inflow plane in their final position.

FIGURE 13.11
Cardan angle rotation

The interface for the user defined dynamic library for the external propeller code is given below.
The above example gives the default force distribution law described in the third section of this
chapter. It is provided for illustration purpose only, since the resulting body forces do not depend
on the inflow velocity as it should be for a true propeller code.
Subroutine ad_propeller_code &
(mybloc,nbody,ID_Body,tc, &
CGref_R0,CGtc_R0,Theta1tc, &
Drag_Total, &
Xdisk,Ydisk,Zdisk,ADnx,ADny,ADnz, &
ADnx_c,ADny_c,ADnz_c,Rin,Rout, &
Xdisk_wake,Ydisk_wake,Zdisk_wake, &
x_wake,y_wake,z_wake, &
u_wake,v_wake,w_wake, &
ua_wake,ut_wake,ur_wake, &
Fa_Pcode,Ft_Pcode,Fr_Pcode, &
T_imp,Q_imp,An_imp, &
ndisk,nr,nt,AD_Body_number, &
Xdisk_c,Ydisk_c,Zdisk_c, &

308 FINE™/Marine 7.1 User Guide


VXdisk_c,VYdisk_c,VZdisk_c, &
OmegaXdisk_c,OmegaYdisk_c,OmegaZdisk_c, &
Half_Disk, RefU, Rho_water)
implicit none
integer,intent(in) ::ndisk,nr,nt
integer,dimension(*),intent(in) ::AD_Body_number
integer, intent(in) :: mybloc
integer, intent(in) :: nbody
integer, dimension(*), intent(in) :: ID_Body
double precision, intent(in) :: tc ! current time
double precision,dimension(3,*), intent(in) :: CGref_R0
double precision,dimension(3,0:2,*), intent(in) :: CGtc_R0
double precision,dimension(3,0:2,*), intent(in) :: Theta1tc
double precision,dimension(nr,nt,ndisk),intent(in) :: &
x_wake,y_wake,z_wake, &
u_wake,v_wake,w_wake, &
ua_wake,ut_wake,ur_wake
double precision,dimension(*),intent(in) :: &
Drag_Total, &
Xdisk,Ydisk,Zdisk,ADnx,ADny,ADnz, &
ADnx_c,ADny_c,ADnz_c,Rin,Rout, &
Xdisk_wake,Ydisk_wake,Zdisk_wake
double precision,dimension(nr,nt,ndisk),intent(out) :: &
Fa_Pcode,Ft_Pcode,Fr_Pcode
double precision,dimension(*),intent(inout) ::T_imp,Q_imp,An_imp
integer::idisk,k,j
double precision:: rhp,Ca,Cb,rp,rs,pi,ri
pi=3.1415926535897d0
do idisk=1,ndisk
do k=1,nt
do j=1,nr
ri=Rin(Idisk)+(Rout(IDISK)-Rin(Idisk))/float(nr-1)*(j-1)
rhp=Rin(Idisk)/Rout(IDISK)

309 FINE™/Marine 7.1 User Guide


Ca=8.0d0*pi/105.0d0*Rout(IDISK)**2*((4.0d0+3.0d0*rhp)&
*(1.d0-rhp))
Cb=Q_imp(Idisk)/(Ca*Rout(IDISK))
Ca=T_imp(Idisk)/Ca
rp=ri/Rout(IDISK)
rs=(rp-rhp)/(1.0d0-rhp)
Fa_Pcode(j,k,idisk)=Ca*rs*sqrt(1.0d0-rs)
Ft_Pcode(j,k,idisk)=Cb*rs*sqrt(1.0d0-rs)/&
(rs*(1.0d0-rhp)+rhp)
end do
end do
end do
Fr_Pcode=0
End Subroutine ad_propeller_code
Here is the description of the arguments:
ndisk: number of propellers
nr: number of points in radial direction for the inflow plane
nt: number of points in tangential direction for the inflow plane
AD_Body_number: body index to which the propeller is attached
ua_ wake,ut_ wake,ur_ wake (nr,nt,ndisk) double precision array. Axial, tangential and radial
velocity components at the inflow plane for each propeller.
x_wake,y_wake,z_wake: (nr,nt,ndisk) double precision array. Location of the inflow planes in the
reference frame fixed to the boat.
u_wake,v_wake,w_wake: (nr,nt,ndisk) double precision array. Cartesian velocity component of
the velocity vector with respect to the reference frame fixed to the boat.
Xdisk,Ydisk,Zdisk : centre of propeller in the reference frame
ADnx,ADny,ADnz: shaft direction in the reference frame
Xdisk_wake,Ydisk_wake,Zdisk_wake : location of the centre of inflow plane in the reference
frame
ADnx_c,ADny_c,ADnz_c: shaft direction at current position
Rin,Rout: inner and outer radius of the inflow plane
Drag_total : total forces in ship advancing direction to be balanced with propeller thrust. See
explanation below.

310 FINE™/Marine 7.1 User Guide


Fa_Pcode,Ft_Pcode,Fr_Pcode (nr,nt,ndisk) double precision array. output body forces (axial,
tangential and radial components)
T_imp,Q_imp,An_imp: output propeller thrust, torque and rate of revolution
mybloc, nbody, ID_Body, tc, CGref_R0, CGtc_R0 and Theta1tc are the same arguments as found
in the imp_ eff_ dyn.f90 user defined dynamic library allowing user to determine the current
position as well as the motion of the boat (see User-Defined Programs).
The objective of the propeller code is to provide the axial Fa_Pcode and tangential Ft_Pcode
body forces, based on the provided inflow velocity given in a cylindrical coordinate system with
axial velocity ua_wake, tangential velocity ut_wake and radial velocity ur_wake at the inflow
plane defined at a user prescribed distance in front of the propeller.

The radial body force Fr_Pcode is not taken into account in the current implementation.

The propeller code must provide the propeller thrust T_imp and torque Q_imp, as well as the
propeller rate of revolution An_ imp if the propeller code adjusts the revolution rate of the
propeller. Values specified by the user for T_imp, Q_imp and An_imp are also provided as input
data through the actuator disk menu, to the propeller code. It is the propeller code which should
decide how to use them. Hence, we can distinguish two different scenarios:
1. In a computation with prescribed propeller rate of revolution for example, An_imp will be
considered as the prescribed propeller rate of revolution and the propeller code will not change
this value. User is free to choose its unit (RPS for instance). The input values for T_imp and
Q_imp will not be used by the propeller code. However, they must contain the output results
obtained by the propeller code.
2. In a computation with a self updated propeller rate of revolution, T_imp can be considered as
the expected propeller thrust, An_ imp can be considered as the estimated initial rate of
revolution. The propeller code must adjust the propeller rate of revolution to obtain the
expected thrust T_imp and provides the resulting torque Q_imp and rate of revolution An_imp.
A uniform grid with polar coordinates system is employed to define the inflow velocity. The same
grid (but located at the centre of propeller) is used for the definition of body forces. The radial and
angular coordinates at each point of this grid is uniquely defined with the number of grid points in
the radial direction nr and in the tangential direction nt, as well as the inner radius Rin and the
outer radius Rout. Additional information defined in the reference frame such as the centre of
propeller Xdisk,Ydisk,Zdisk and the inflow plane Xdisk_wake,Ydisk_wake,Zdisk_wake, the shaft
direction ADnx,ADny,ADnz, the Cartesian grid of the inflow plane x_wake,y_wake,z_wake and
the Cartesian velocity component at the inflow plane u_wake,v_wake,w_wake etc. are provided
for user's convenience. They can be useless for the propeller code.

311 FINE™/Marine 7.1 User Guide


The input data Drag_total is designed for a self-propulsion computation. In such a computation,
we assume that the boat advances in the X-direction in the primary frame aligned with the axial
direction of the boat. Drag_total is the projection of all forces acting on the boat except those of
the propeller on the X-direction of a coordinate system fixed to the centre of gravity of the boat,
following the same translation motion with it, and rotates only with the Rz0 axis. In a self-
propulsion computation, the thrust of all propeller attached to the boat projected in the same
direction should be in balance with Drag_ total. Such projection can be computed with the
following program:
double precision Fx_total(ndisk)
Fx_Total=0.0
do idisk=1,Ndisk
ibody=AD_Body_number(idisk)
Fx_Total(ibody)= Fx_Total(ibody)+ T_imp(idisk)*ADnx_c(idisk)*cos(Theta1tc(3,0,ibody))
+ T_imp(idisk)*ADny_c(idisk)*sin(Theta1tc(3,0,ibody))
end do
The objective of a self-propulsion computation is then to adjust the rate of revolution of An_imp
in such a way that the Fx_total computed with the above formula using the resulting propeller
thrust T_imp predicted by the propeller code satisfy the relation Drag_total = Fx_total for all
boats.
User can modify the template "ad_propeller_code.f90" from the folder "_data/isis/dynamic_lib/"
that you will find in the installation folder. Replacing the "imp_eff_dyn.f90" file by the "ad_
propeller_code.f90" will complete the change. The procedure to use this dynamic library is detail
in Procedure.

312 FINE™/Marine 7.1 User Guide


CHAPTER 14.

MOORING

It is possible to compute the flow around a ship, which has docked for instance, thanks to the
simulation of a mooring line. In that case, the mooring line will be attached to the body at the fairlead
point and to the anchor point. In reality, the anchor point is in the sand, on a dock or on an offshore
platform for instance. The mooring is implemented in FINE™/Marine to take into account the effect of
one or several mooring lines on one or several bodies. The first section will describe the necessary
input to perform such a computation with one or several mooring line(s). The second section details the
implementation.

In this section
14.1 General Parameters 314
14.2 Special Characteristics 314
14.3 Forces Definition 316

313 FINE™/Marine 7.1 User Guide


14.1 GENERAL PARAMETERS

First of all, it is necessary to activate the mooring feature by clicking on the Activate Mooring
option. As soon as the menu is opened, the computation will contain at least one mooring line.

FIGURE 14.1
Mooring is not active

FINE™/Marine allows to perform computations with several mooring lines. They can be created
through the interface. For this purpose, clicking on Add will create a new line in the list. Clicking
on Remove will delete the active line and its properties.

FIGURE 14.2
list of mooring lines

14.2 SPECIAL CHARACTERISTICS

For each mooring line, it is mandatory to define the following parameters:


l Stiffness: this corresponds to the stiffness of the selected mooring line.
l Initial Tension: this represents the tension initially present on the mooring line. This value may
vary during the computation.
l Fairlead position: this represents the fairlead position (coordinates) of the selected mooring
line on the body.

314 FINE™/Marine 7.1 User Guide


l Anchor position: this represents the anchor position (coordinates) of the selected mooring line.
l Link to body: name of the body to which the mooring line is attached, see Body Definition to
know how to create a body.
l No forces in case of compression: if the option is active and while in compression, the forces
in the mooring lines are equal to 0.

FIGURE 14.3
Configuration with four mooring lines

In 2D, the Z coordinates are grayed out since there are not used by the solver.

The fairlead position does not have to be exactly onto the body surface. The force will act on the
body thanks to the Link to body parameter.

Cardan angles are not taken into account. Hence, all coordinates should be specified in the primary
configuration (see Reference Frame ).

The Show/Hide option allows to display the selected mooring line in yellow in the graphics area.

315 FINE™/Marine 7.1 User Guide


FIGURE 14.4
Mooring parameters menu

14.3 FORCES DEFINITION

Each mooring line is seen as a spring. Hence, the force of the mooring line F ML defined by the
spring can be written:

where K stands for the stiffness, ΔL is the variation of the spring length and T is the initial tension
of the mooring line.
When solving the Newton's law (i.e. for a solved motion, see Solved Law of Motion for more
explanations about this motion), this force is then taken into account:

where F is the force applied on the body, m is the mass of the body and a is the body's
acceleration.

After each time step, the tension obtained on each mooring line, will be stored in a separate file called
"tension_line.dat", available in the computation folder.

Even for half-body computations, the stiffness of the mooring line to be defined is the total stiffness
corresponding to the one of the entire body computation.

316 FINE™/Marine 7.1 User Guide


CHAPTER 15.

TUGGING

Tugging lines have been developed to give the possibility to simulate tugboats for instance in
FINE™/Marine or more generally any simulation which involves 2 bodies linked by one line or more.

In this section
15.1 General Parameters 318
15.2 Special Characteristics 318
15.3 Forces Definition 319

317 FINE™/Marine 7.1 User Guide


15.1 GENERAL PARAMETERS

First of all, it is necessary to activate the tugging feature by clicking on the Activate Tugging
option. As soon as the menu is opened, the computation will contain at least one mooring line.

FIGURE 15.1
Tugging is not active

FINE™/Marine allows to perform computations with several tugging lines. They can be created
through the interface. For this purpose, clicking on Add will create a new line in the list. Clicking
on Remove will delete the active line and its properties.

FIGURE 15.2
list of tugging lines

15.2 SPECIAL CHARACTERISTICS

For each tugging line, it is mandatory to define the following parameters:

318 FINE™/Marine 7.1 User Guide


l Stiffness: this corresponds to the stiffness of the selected tugging line.
l Initial Tension: this represents the tension initially present on the tugging line. This value may
vary during the computation.
l Extremity 1 or 2: coordinates of the point and the name of the body which it is linked to.

In 2D, the Z coordinates are grayed out since there are not used by the solver.

The extremities position does not have to be exactly onto the body surface. The force will act on
the body thanks to the Link to body parameter.

The selected tugging line is displayed in yellow in the graphics area.

l No forces in case of compression: helps to avoid compression of tugging lines if needed. If the
option is active and while in compression, the tugging lines forces are equal to 0.

FIGURE 15.3
Tugging parameters menu

15.3 FORCES DEFINITION

Each tugging line is seen as a spring. Hence, the force of the tugging line F TL defined by the
spring can be written:

319 FINE™/Marine 7.1 User Guide


where K stands for the stiffness, ΔL is the variation of the spring length and T is the initial tension
of the tugging line.
When solving the Newton's law (i.e. for a solved motion, see Solved Law of Motion for more
explanations about this motion), this force is then taken into account:

where F is the force applied on the body, m is the mass of the body and a is the body's
acceleration.

After each time step, the tension obtained on each tugging line, will be stored in a separate file called
"tension_tuggingline.dat", available in the computation folder.

Negative forces are taken into account.

320 FINE™/Marine 7.1 User Guide


CHAPTER 16.

CAVITATION

The numerical modeling of cavitation is based on the resolution of a transport equation similarly to
what is done for the free surface. But, in this case, source terms are added to model vaporisation and
condensation of the phases liquid/vapour. Three different models have been implemented: Merkle,
Sauer and Kunz models. The objective of this chapter is to present the settings to use these models and
use cavitation in FINE™/Marine simulations.

In this section
16.1 Parameters 322

321 FINE™/Marine 7.1 User Guide


16.1 PARAMETERS

First of all, it is necessary to activate the cavitation by clicking on the "Activate Cavitation"
button.

FIGURE 16.1
Cavitation activation

16.1.1 Fluid model

l mono-fluid: the Reference pressure will correspond to the Pressure imposed by the external
Boundary condition "Prescribed pressure", which is 0.
l multi-fluid: the Reference pressure will correspond to the Pressure at the Free surface, which is
also 0 by Default.

The Vapour pressure in Cavitation model is to be set relatively to this Reference pressure, so in the
case Pref=0, the Vapour pressure ( Pv) value will become negative.

It can be calculated using the following relation:

where

σ is the target cavitation parameter,


the density of the liquid:

322 FINE™/Marine 7.1 User Guide


and the cavitation reference velocity (the velocity at the end of the blade is considered):

The Pref becomes more important if the User choose to define σ value instead of the Pv due to that it
will be deduced from σ and the Pref.

16.1.2 Flow properties

l Fluid density: information about the density of the main fluid (fluid-1)
l Vapour density and viscosity: density and viscosity of the vapour
l Reference pressure: reference pressure for the cavitation
l Cavitation reference velocity: reference velocity for the cavitation.

323 FINE™/Marine 7.1 User Guide


FIGURE 16.2
Flow properties for the cavitation

16.1.3 Cavitation parameter

One has the choice between two solutions to define the vapour pressure, using the coefficient s or
directly the value of the vapour pressure.
l σinit: initial cavitation parameter
l σ: target cavitation parameter
l Vapour pressure init: initial vapour pressure
l Vapour pressure: target vapour pressure
knowing that the parameters are linked by the formula:

324 FINE™/Marine 7.1 User Guide


with P ref the reference pressure, P v the vapour pressure, ρ the fluid density and V cref the
cavitation reference velocity.
l Tac: physical time from which the model is active in the computation

Tac is an absolute time, thus if the computation is a restart from the previous computation, the
physical time preformed in the previous computation should be taken into account within the Tac
value

l ΔTdec: physical time for the change from σinit to σ.

FIGURE 16.3
Cavitation parameters

325 FINE™/Marine 7.1 User Guide


Default Cavitation parameters are not adapted to all kinds of applications. It is strongly
recommended to modify parameters respecting the physical conditions of the cavitation flow
simulation.

16.1.4 Cavitation model

First of all, one should pick one model among the list: Sauer, Merkle or Kunz. Then, depending
on the selected cavitation model, different inputs are required:
l for Sauer: Nuclei density
l for Merkle and Kunz: Liquid product coefficient, Liquid destination coefficient and Cavitation
reference length.

FIGURE 16.4
Cavitation model

326 FINE™/Marine 7.1 User Guide


More details about the models and the parameters are given in the Theoretical Manual as well as in
the corresponding FAQ of the documentation package.

327 FINE™/Marine 7.1 User Guide


CHAPTER 17.

UNCERTAINTY QUANTIFICATION

The physical variation present in the system can be found in literature as irreducible uncertainty,
variability and inherent uncertainty, this uncertainty is the natural variability that is inherently present.
Due to the physical variability, operational uncertainties are always present when considering a real
physical processes. Examples of operational uncertainties can include free stream conditions like
pressure, velocity, turbulence and for instance cavitation production terms and etc. By measurements
one should be able to find probability density functions for these parameters.
FINE™/Marine provides an uncertainty quantification (UQ) module called Non-Deterministic Data,
which uses the Non-Intrusive Probabilistic Collocation Method (NIPCM) introduced by Loeven, 2010,
and allows to treat operational uncertainties such as boundary conditions and some model parameters.
The selection of quantities to be attributed with an uncertainty and the choice of the uncertainty is
straight forward here and the generation of non-deterministic sub-computations is automatically done
by the in FINE™/Marine GUI. The NIPCM method is applied to the parameters of the and their values
are automatically modified following the imposed uncertainty law.
Polynomial chaos methods (PCM) represent one class of non-deterministic methods which gained wide
acceptance in the CFD community for propagation of the uncertainties in numerical simulations, where
the random quantities are subjected to a spectral representation via a polynomial chaos expansion
(PCE). PCMs show interesting advantages with respect to the perturbation methods. PCMs can handle
more general types of uncertainties while they seem to be more computationally efficient as the basic
Monte Carlo methods. Anyhow, reliable conclusions could be started, for particular applications, only
after completing a comparative assessment of the user-selected non-deterministic methods.
General framework for the computation including the uncertainty quantification analysis is as follows:
1. Define parameters to be uncertain during the computation.
2. Specify input distributions for uncertain parameters by selecting the Probability Density Function
type (PDF).
3. Perform non-deterministic parent computation.
4. Perform deterministic computations for every collocation point.
Computing collocation points and weights based on PDF's of the uncertain parameter(s) together with
constructing the stochastic solution using all obtained deterministic solutions, e.g. mean/ variance fields,
uncertainty bars or probability density functions are done thanks to the Non-Deterministic Data and
Non- Deterministic Results modules within the FINE™/Marine software.

328 FINE™/Marine 7.1 User Guide


A specific license key is required to be able to use this module. Please contact your local support team in case
you do not have it yet.

In this section
17.1 Parameters 330
17.2 Results 336
17.3 Report file 341
17.4 Recommendations 342

329 FINE™/Marine 7.1 User Guide


17.1 PARAMETERS

Before creating a deterministic computation, the user has to create a non- deterministic
computation (usual FINE™/Marine computation). Then, the deterministic computation will be
created based on the non-deterministic computation (parent computation).
The non-deterministic module can be activated in the Additional Models/ Non-Deterministic
Data part of menu. Select Activate Non-deterministic data to enable options for the further
setup. It will be suggested to select uncertainty for quantities in the Boundary Conditions and
Cavitation model menu.

FIGURE 17.1
Non-deterministic module activation window.

In the Boundary Conditions page, a check box uncertain will appear at the right side of the
boundary condition available for the uncertainty analysis. By checking the uncertain box
corresponding boundary condition will be marked as an Uncertainty entry.
Parameters to be possibly selected as an uncertain:
From External Boundary Conditions
Far field:

330 FINE™/Marine 7.1 User Guide


l Velocity component: Vx, Vy, Vz

Uncertainties are not selectable for quantities defined by a profile: for instance, when the Velocity
component is defined as a Profile data, and not as a Constant value.

l Turbulence parameters
l Wave generator: Period, Height
Only the Regular waves parameters are available for the uncertainty quantification analysis for
the moment.
From Cavitation models:
l σinit: initial cavitation parameter
l σ: target cavitation parameter
l Vapour pressure init: initial vapour pressure
l Vapour pressure: target vapour pressure
Sauer cavitation model: Nuclei density
Merkle and Kunz cavitation models: Liquid product coefficient, Liquid destination coefficient
,Cavitation reference length.
After selecting the desired parameters, switch back to the Additional Models / Non-
Deterministic Datapage, the uncertainty settings for the computation will appear as follows:

331 FINE™/Marine 7.1 User Guide


FIGURE 17.2
Uncertainty parameters settings window

Non-Deterministic Data page provides access to the following parameters:


Cubature rule : defines the type of grid and corresponds to a multi-dimentional version of
quadrature rule. The uncertainty propagation method used here being the Non- Intrusive
Probabilistic Collocation Method (Loeven, 2010), the collocation points are selected by means of
the Golub-Welsch algorithm (introduced by Golub and Welsch in 1968) for quadrature of general
probability density function (PDF) shapes. In order to combine several simultaneous uncertainties
the quadrature must be brought to the multi-dimensional case. Several strategies are available to
define the multi-dimensional quadrature:
1. Full tensorization : the cubature is built by computing the tensor product of the maximal
quadrature of each Uncertainty entry. The number of points is equal to '(level+1)^n', where n
is the number of uncertainties.
2. Sparse linear growth: the cubature is built by associating different tensor products based on
different quadrature Level. The number of points is equal to '(2*level)+1'

332 FINE™/Marine 7.1 User Guide


3. Sparse exponential growth: the cubature built is similar to linear, but with less cross-terms.
The number of points is equal to '(2^level)+1'.

Full tensorization of collocation points provides higher number of computations and especially in
case of multiple number of Uncertainty entries for a given accuracy can be reduced thanks to the
Sparse growth method. The same accuracy can be achieved with less points, meaning reduction of
computation time costs with less number of simulation to run .

In order to eliminate duplicate points due to nestedness, a very small value is used to compare the
difference of quadrature points abscissas in all dimensions to this small value, which is set to
epsilon=1e-12. If the user imposes a PDF which would extend only in this range of data, such as
a beta-PDF with minimum value 0.0 and a maximum in the order of 1e-12, then the collocation
points will not be identified as different. The method is thus not applicable in this range of data.
Given the extremely small length scale this should not be a large problem in basically any
application.

Only Golub-Welsch quadrature rule can be used. Sparse codes in literature use a variety of
quadrature rules representing more nestedness, but also less accuracy. As for the full-
tensorization, the Golub-Welsch algorithm for Gauss-Quadrature seems to be the best choice
for our needs, due to its flexibility and high accuracy through Gauss-Quadrature.

Number of Uncertainty Level 1 Level 2


entries
Full Sparse Full Sparse
tensorization growth tensorization growth
1 3 3 5 5
2 9 5 25 17
3 27 7 125 31
4 81 9 625 49
... ... ... ... ...
10 59049 21 6.9 x 106 241

Sparse grids can give negative weights for sub-computations which is considered to be admissible be
method.

333 FINE™/Marine 7.1 User Guide


List of uncertainty entries: marked as uncertain Boundary Conditions and Cavitation model
parameters
Level:
Uncertainty Type can be specified together with the corresponding parameters. Four uncertainty
types are available for selection:
Gauss: the Gaussian distribution is used to compute the collocation points.
l In case that the uncertainty entry is a constant, two parameters need to be specified, one is the
mean of the distribution - Average Value and one is the Variance.
l In case that the uncertainty entry is a profile, only one parameter, Variance, needs to be
specified. For each point of the profile, the variance is common while the mean of the
distribution (Average Value) is set to the value of the point.
Truncated Gauss: the truncated Gaussian distribution is used to compute the collocation points.
l In case that the uncertainty entry is a constant, two parameters need to be specified, one is the
mean of the distribution -Average Value and one is the Variance.
l In case that the uncertainty entry is a profile, only one parameter, Variance, needs to be
specified. For each point of the profile, the variance is common while the mean of the
distribution (Average Value) is set to the value of the point.
Beta: the Beta distribution is used to compute the collocation points. Three parameters need to be
specified, the Minimum Value, the Maximum Value and the Most Likely Value.
l In case that the uncertainty entry is a constant, three parameters need to be specified, the
Minimum Value, the Maximum Value and the Most Likely Value.
l In case that the uncertainty entry is a profile, only two parameters need to be specified, the
Minimum Value and the Maximum Value. The Minimum Value and the Maximum Value
must be defined relative to a Most Likely Value of 0. For each point of the profile, the
Minimum Value, the Maximum Value and the Most Likely Value will be shifted based on
the value of the point.
User defined: the user inputs a probability density function (PDF), which is used to compute the
collocation points. by selecting the file ('.p' format) through the PDF profile file window. The
specified uncertainty probability density function will be displayed. The format of the User
defined PDF should include X, Y coordinates to build a function.
l In case that the uncertainty entry is a constant, the imported PDF is directly used to compute
the collocation points.
l In case that the uncertainty entry is a profile, the imported PDF must be defined relative to a
reference value of zero. Then, for each point of the profile, the PDF will be shifted based on
the value of the point. The shifted PDF is used to compute the collocation points of the point
of the profile.
Format of '.p' file with (x,y) coordinated of the PDF:

334 FINE™/Marine 7.1 User Guide


l Line 1: Contains one string and one integer:
l the string is "number_of_points",
l the integer defines the number of points on the PDF.
l The next lines list the data of each point: variable and its function.

Example

number_of_points 100
00
0.010101010101010102 1.4613474490780709e-005
0.020202020202020204 0.00011601194732412229
0.030303030303030304 0.00038850903048303503
0.040404040404040407 0.00091370627391922316
0.050505050505050511 0.0017704751368160471
0.060606060606060608 0.0030349384765434905
...
It is also possible to export the probability density function (PDF) into a '.p' format file by using
the button export.
At the bottom of the Non-deterministic Data page the total number of sub-computations to be
created will be displayed. By changing any of described before parameters this number will be
updated with respect to all changes imposed. Deterministic computations will have variations of
uncertain values and it's possible combinations.
Option of using results of the non-deterministic run into the deterministic ones can be applied by
checking the box Restart sub-computation from the parent.
By pressing the Generate computations button deterministic sub-computations will be created
according to the given parameters and this page will be automatically closed.

335 FINE™/Marine 7.1 User Guide


FIGURE 17.3
Non-deterministic with deterministic computation hierarchy.

If the Non-deterministic datacheck box will be unchecked after the deterministic computations has
been created, the last will be deleted. In this case, following warning message will be displayed:

FIGURE 17.4
Warning message when the Non-deterministic mode is disabled.

After finalizing creation and setup of the parent non- deterministic computation together with
deterministic sub-computations, modifications into the parent are not recommended anymore. This is
due to the fact that changing defined here uncertainty parameters settings can influence the results in
an undesired way.

Launching of computation can be performed as usually: through the FINE™/Marine GUI or with
the python commands described in the Uncertainty Quantification section.

17.2 RESULTS

After running the desired deterministic computations (including parent non- deterministic
computation), the user can find results on the corresponding page - Computation control/Non-
Deterministic Results .

FIGURE 17.5
Non-Deterministic Results: specifying the percentage of results to be used

336 FINE™/Marine 7.1 User Guide


Specifying the percentage of results to be taken into consideration from the eff_*.dat file will limit
the amount of lines used for averaging the force values. All the following results will be
calculated based on these averaged forces. To recalculate results with the new percentage value
the Update button should be pressed.

If some value is absent in the eff_*.dat file, it will be shown as 0 in the table and the warning will be
printed in the console.

The output of deterministic simulations using probabilistic collocation or polynomial chaos


methods are the moments of an output quantity probability distribution and not the PDF itself.
The PDF display is available below the results table in Non-Deterministic Results page. It
shows the PDF reconstruction based on first four moments (mean, average, skewness and
kurtosis) of the selected output. If the reconstruction is impossible for given moments, the PDF
display area will be crisscrossed.

337 FINE™/Marine 7.1 User Guide


FIGURE 17.6
Representation of Non-deterministic Result

A new file Uncertainty_ results.dat will also be created in the parent non- deterministic
computation folder when pressing the Ok or the Updatebutton of the Non-deterministic Results
page. This file stores the same data as displayed on the page:
Force: name of the force and the body (sub-body) on which it is calculated. The body(sub-body)
name is in brackets.
Value: force value extracted from the parent non-deterministic computation, meaning functional
(φ).
Statistical moments of Output PDFs:

338 FINE™/Marine 7.1 User Guide


Mean value: mean functional (φ k ) computed from the deterministic sub-computation using the
corresponding weights (ωk).

Variance: variance of the functional (φ k ), computed from the deterministic sub-computation


using the corresponding weights (ωk).

Min: minimum value of the functional (φk) among all of the deterministic sub-computations.
Max: maximum value of the functional (φk) among all of the deterministic sub-computations.
Skewness: The skewness of any functional (φk) are evaluated with:

Kurtosis: the kurtosis of any functional (φk) are evaluated with:

Where N P - number of collocation points (= the number of sub-computations); ω k - weight


evaluated with the aforementioned Gauss quadrature.
Based on these statistical moments a PDF can be reconstructed by PEARSON system.

339 FINE™/Marine 7.1 User Guide


FIGURE 17.7
Reconstruction of PDF by PEARSON system

Only some types of distribution can be reconstructed. Indeed only PDF defined by a Pearson
reconstruction (from type I to VII) can be adequately reconstructed. In other cases the
reconstructed PDF will be an approximation based on the first four moments.

Example of the 'Uncertainty_results.dat' structure

NON-DETERMINISTIC RESULTS
=========================
Generated by FINE/Marine 5.2
FORCES
Force Value Mean value Variance Min Max Skewness Kurtosis
Fx(prob) 8.214611e+02 -8.972963e+28 1.762562e+58 -2.861600e+29 4.304872e+05
8.214611e-10 -8.972963e-28
Fx(pale1) 2.127680e+02 2.169839e+19 1.030689e+39 -2.580462e+03 6.919909e+19
8.214611e-10 -8.972963e-28
Fx(pale2) 2.155566e+02 1.129593e+28 2.793292e+56 2.207096e+02 3.602424e+28
8.214611e-10 -8.972963e-28
Fx(pale3) 2.147760e+02 -8.924098e+28 1.743417e+58 -2.846016e+29 1.162512e+05
8.214611e-10 -8.972963e-28
Fx(pale4) 2.132834e+02 1.963878e+20 8.443094e+40 -7.816432e+02 6.263073e+20
8.214611e-10 -8.972963e-28
...

340 FINE™/Marine 7.1 User Guide


17.3 REPORT FILE

During the collocation points computation the report file uq_configuration.log is generated in the
parent computation directory. It lists selected uncertainties with their corresponding parameters
and provides exhaustive list of changes in sub-computations compared to the parent computation.

Example of such report file

GENERATION OF SUB-COMPUTATIONS FOR UNCERTAINTY QUANTIFICATION


=============================================================
Created by FINE/Marine 5.2
SELECTED UNCERTAINTIES
----------------------
1. Vx(x_inlet) - Beta (min = -3, max = 1, mode = 0), level 1; the quantity is defined by a profile
2. Vy(x_inlet) - Gauss (mean = 0, variance = 0.1), level 1
3. Vz(x_inlet) - User defined (load from file '../pdf.p'), level 1
4. Turbulent kinetic energy(x_inlet) - Truncated Gauss (mean = 5.2504684e-10, variance = 1),
level 1
5. Turbulent dissipation(x_inlet) - Gauss (mean = 2.373563126e-11, variance = 1), level 1
Cubature rule: Sparse Linear Growth
Computation of the collocation matrix...
Number of deterministic runs to create: 13
Replicating the parent computation... 13 copies created
CHANGING QUANTITIES IN SUB-COMPUTATIONS...
------------------------------------------
1. computation_1_DeterministicRun_1 w = 0.122999417481133
Vx(x_inlet) = -1.76363137535062 -2.76363137535062 0.236368624649377
Vy(x_inlet) = 0
Vz(x_inlet) = -0.333560082990374
Turbulent kinetic energy(x_inlet) = 5.2504684e-10
Turbulent dissipation(x_inlet) = 2.373563126e-11

341 FINE™/Marine 7.1 User Guide


17.4 RECOMMENDATIONS

Several guiding ideas for the choice of Uncertainty type can be suggested:
l Gauss is not limited
l Truncated Gauss is limited by a value of approximately 35000 (taken from an industrial
experience)
l Beta is the most flexible: allow to define several peaks and change the distribution itself
Regarding these, first two types in general can be advised to be used when the parameter value is
close to realistic value and there is no need in a big amount of uncertain checks. Beta type is more
flexible and allows more advanced features. Here the calculated behind weighting factor for the
collocation points will define how far the collocation point will be from the most probable point
(non-deterministic computation values).

342 FINE™/Marine 7.1 User Guide


CHAPTER 18.

INTERNAL WAVE GENERATOR

The Internal wave generator (IWG) creates waves in the domain based on a momentum source term
applied to the Navier-Stokes equations. More natural than imposing a wave generator on a boundary
condition, it ensures a clean wave signal at all times. The feature is especially relevant for fixed bodies
such as platforms, where waves reflected from the body could reach back the upstream boundary of the
domain. The generator is located inside the domain instead of in a boundary and it should be used in
combination with sponge layers placed near both ends of the domain to damp the waves.

The internal wave generator will generate waves that propagate following the X-axis of the global
reference frame. The waves can be generated in +X, -X or both directions from the source point.

Current limitations:
l The IWG has only been validated so far for fixed domains without any moving body;
l Irregular waves cannot be generated in both +X and -X direction;
l Waves will propagate only along X-direction, to simulate oblique waves, the body should
be rotated;
l Restart computation while activating the IWG is not recommended.

Parameters

Activating the Internal wave generator in the Additional models menu will make the
parameters describing the regular and irregular waves available:

343 FINE™/Marine 7.1 User Guide


FIGURE 18.1
Internal Wave Generator menu for Regular and Irregular waves

Common parameters

l Depth: distance between free surface at rest and the bottom of the domain in meters. It is
displayed by a blue arrow in the graphics area. More information in the Boundary
Conditions"Wave Generator" (p. 205) section.
l Source location: wave generation point coordinate in X. It is shown as a yellow point on the
graphics area with one or two yellow arrows indicating the direction of propagation of the
waves.

344 FINE™/Marine 7.1 User Guide


345 FINE™/Marine 7.1 User Guide
346 FINE™/Marine 7.1 User Guide
FIGURE 18.2
Source location with propagation direction arrows (negative, both and positive X-direction)

l Direction of propagation: choose the direction of propagation of the waves from the wave
generator: Positive X, Negative X, Both

Irregular waves cannot be generated in Both directions.

Link to domain: possibility to select the domain the internal wave generator is linked to, in
order to follow its motion.

Specific to regular waves

l Height: wave height from through to crest in meters. It is displayed in green in the graphics
area.
l Period: wave period in seconds.

347 FINE™/Marine 7.1 User Guide


Specific to irregular waves

l Available spectra:
l ITTC
l Pierson-Moskovitz: modified spectrum according to the 1978 ITTC conference.
l JONSWAP: proposed after analysing data collected during the Joint North Sea Wave
Observation Project. Takes into account that the sea state continues to develop through
non-linear wave-wave interactions even for very long times and distances. This spectrum
extends Pierson-Moskowitz to include developing sea states.
l JONSWAP 3 parameters: additionally to the JONSWAP spectrum parameters, allows to
control the significant wave height.
l User-defined

After the spectrum was selected, the following parameters will become available:

TABLE 18.1 Input parameters

l Peak period (Tp): wave period in seconds corresponding to the frequency with the highest
wave energy in the spectrum.
l Significant height (Hs): mean wave height (through to crest) similar to the highest third of the
waves (H1/3) parameters.
Modern definition: 4 times the standard deviation of the surface elevation.
l Steepness (Gamma): non-dimensional peak shape parameter. It varies from 1 to 5.
l User-defined data file: the spectrum parameters for the User-defined spectrum should be
specified through a spectrum.dat file, for instance, and consist of the number of wave
frequencies and spectral density values together with its distribution parameters for each
frequency.

348 FINE™/Marine 7.1 User Guide


It is strongly recommended to store the spectrum input file inside the Computation folder.

Example of the input file data

991
0.552300000000000 1.425134561970092E-008 0.200072553915353
0.556822222222222 2.105653169018277E-008 -3.10241674047480
0.561344444444444 3.059213503130416E-008 -1.11056951161608
0.565866666666667 4.373966352698112E-008 -1.79666237050452
0.570388888888889 6.159070885437247E-008 1.44797659527557
0.574911111111111 8.547564616889585E-008 0.835759044159744
0.579433333333333 1.169912378314590E-007 -3.13185364267893
0.583955555555556 1.580259532187931E-007 -2.53878755253289
...
983 lines here are omitted.
The first line has the number of waves frequencies (n); following lines contain: the frequency
(fi, [s-1]), spectral density (Si, [m²s]), initial phase of the wave component
( ,[rad]) that should be between [-π;π]. The initial phase is defined at the Reference Point.

Direction of propagation and Reference point have a similar definition as for the regular
waves.

The Depth, Direction of propagation and the Reference point should be specified together
with the spectrum data file.

Remarks

The complete summary of the best practice is provided in the FAQ Wave generation and damping
guidelines. This feature should be used in combination with "wave damping" (p. 351).

General

1. Under the Plugins/Predefined menu, the "Wave generation info" (p. 38) tool is dedicated to

349 FINE™/Marine 7.1 User Guide


the setup of a wave generation project. The tool computes useful information for wave
generation simulations such as frequencies, time step or wave celerity.
2. Time configuration should be set to Unsteady (see " General Parameters" (p. 169)).
3. At least 2 orders of gain for non-linear iterations are necessary to reach a correct accuracy. For
this purpose, set the Maximum number of non-linear iterations to 20 and the Convergence
criteria to 2 (see "General Parameters" (p. 443) of the Control Variables menu)

Internal wave generator

1. The IWG has a length of 1 wavelength centered on the source point, therefore the wave
requested by the user is not generated immediately at the source, but after a certain distance.
1.5 wavelengths should be kept between the source point and the body or area where the wave
signal is analyzed.
2. Wave damping areas should be placed at both ends of the domain to absorb the waves and
avoid any reflection. The recommended length of the sponge layer at each end is 3
wavelengths.

350 FINE™/Marine 7.1 User Guide


CHAPTER 19.

WAVE DAMPING

Wave damping is a sponge layer that damp free surface waves to avoid any undesired reflections at
the boundaries of the domain. The damping term is automatically adapted according to the scale of the
problem ensuring its efficiency for all wave simulations.

Sponge layer damping acts as a porous media using Darcy's law to damp the momentum in Z
direction. The damping term acts on the momentum on Z direction and it is adapted according to
the scale of the problem. This damping method can be used both with the Boundary condition
wave generator and with the Internal wave generator and it should be preferred over the previous
Advanced parameters for Multifluid Smoothing.
More information can be found in Choi, Junwoo and Sung, Bum Yoon,“Numerical simulations
using momentum source wave-maker applied to RANS equation model”, Coastal Engineering, 56
(10), pp. 1043 - 1060, 2009.
This feature can be used in combination with waves generated from the boundary condition
("External Condition" (p. 196)) or from the internal wave generator ("Internal wave generator" (p.
343)).
Parameters
Activating the Wave damping in the Additional models menu will make the parameters
defining the sponge layer available.
The parameters Smin and Smax are used to specify the length of the damping area(s) in X and Y
directions. The values proposed by default correspond to the domain boundaries meaning that no
damping is applied. Once the values are changed the damping zone will be represented
graphically.
In 3D projects Y-direction defaults for Smin and Smax should be kept to avoid any damping in
the Y direction, which would distort the wave signal. In 2D projects only the X direction is
available to define the damping area.

If no damping is needed in one direction Gmin should be identical to Smin, and Smax should be
identical to Gmax. Any difference will create a damping zone.

351 FINE™/Marine 7.1 User Guide


352 FINE™/Marine 7.1 User Guide
CHAPTER 20.

MODAL APPROACH

The present Modal approach offers an efficient two- way coupling solution for the fluid structure
interaction (FSI) simulations, whereby the structure is represented by its mode shapes and natural
frequencies. The modal equations are solved inside the fluid flow solver in order to retrieve the
deformation of the structure and to take it into account in the flow calculation. It presents the
advantage to involve only one solver reducing thereby the complexity of the computational set up.
Functionality is based on the resolution of the modal equation of the structure. As starting point, a
structure code is used to compute modal shapes and eigen frequencies. With these data FINE™/Marine
software will compute the deformation of the structure by solving the modal equation.

FIGURE 20.1
Parameters: Modal approach

A specific license key is required to be able to use this module. Please contact your local support team in case
you do not have it yet.

Details can be found in the paper published by F. Debrabandere, B. Tartinville, C.Hirsch "A
Staggered Method Using a Modal Approach for Fluid- Structure Interaction Computation" also
available at www.numeca.be .

353 FINE™/Marine 7.1 User Guide


In this section
20.1 Parameters 355
20.2 Structure file 357
20.3 Outputs 359

354 FINE™/Marine 7.1 User Guide


20.1 PARAMETERS

Activating the Modal approach in the Additional models menu will make the Coupling
parameters page available.
To have body(ies) in the list of Bodies, in the Body Motion menu it should have an Imposed
motion type and no Solved motion for any of D.O.F.'s. Bodies with imposed motion are listed on
the left, their corresponding parameters on the right.

FIGURE 20.2
Coupling activation

Advanced >>> button shows the expert parameter Map the loads on the non- deformed
configuration set as on by default.
Checking the Coupling activation in the Coupling parameters and pressing Edit... button will
make the Modal structures configuration menu available.

355 FINE™/Marine 7.1 User Guide


FIGURE 20.3
Modal structures configuration menu

After specifying the "Structure file" (p. 357), the Number of modes to be used during the
computation should be set. By default, it is specified equal to the number of modes provided
within the "Structure file" (p. 357).
Visual definition of what are the mode shapes can be presented as follows:

FIGURE 20.4
Mode shapes used for the Vortex vibration calculations: a) Mode 1, b) Mode 2, c) Mode 3, d)
Mode 4

356 FINE™/Marine 7.1 User Guide


For each used mode, a Damping coefficient is available for modification. These damping
coefficients will be used to solve the modal equations and compute the deformation of the
structures. The user can select one or multiple modes by keeping the key <Ctrl> pressed to set
the Damping coefficient for all selected modes. To reach static deflection the best choice for the
damping coefficient (\epsilon _i in the theoretical manual) is 1, as the analysis of a 1D mass-
spring-damper shows.
It is also possible to initialize the starting amplitude by entering the value for the Set initial
amplitude option. When an initial amplitude is defined the computation will start from a non-
equilibrium position. Even without fluid forces the structure would oscillate to try to go back to
equilibrium position. It can be seen as introducing a perturbation in the system.
Set added mass coefficient will allow to specify the estimation mode and frequency for the
virtual added mass terms calculation for each mode. Detailed description about added mass
coefficients can be found in the "Dynamic Parameters" (p. 248).

Non-zero Cardan angles are not supported in the flow solver for bodies with activated Modal
approach.

For unsteady computation, the time step is strongly recommended to be less than one third of the
period of the highest mode to avoid possible divergence.

To compute and save the weighting coefficients for the mesh deformation it is also possible to
perform a pre-processing step by launching the sequential solver in batch mode with an "-init_
modal" option such as:
isiscfdmarine71 -a -init_modal -print
Here the pre-processing step will not checkout a flow solver license and will compute and save
the weighting coefficient only. This will help to decrease the time of initialization for Radial Basis
Function (RBF) interpolation used to handle the computational domain deformation according to
the solid body displacement.
Mesh deformation method using Radial Basis Function (RBF) supports large structure
deformations supporting the good quality deformed meshes in such cases.

20.2 STRUCTURE FILE

As described in Section 4.2 of the theoretical manual the eigen frequencies and mode shapes
normalized with the mass are the inputs needed for the modal approach.

357 FINE™/Marine 7.1 User Guide


These properties can be computed by a side code (CSM for instance) or measured experimentally.
Mode shapes should be computed in the absence of any fluid. They need to be normalized with
the mass of the system, that is to say the mode shapes need to fulfill the following condition:

Where Φ is the mode shape vector and M is the mass matrix.


Modal resolution is a linear method. This is useful to take into account non- linear effects
independent of fluid load such as centrifugal effect. The data have to be written in an ASCII file.
FINE™/Marine will read this file to get the information needed for the FSI computation. This file
should include:
l number of dimensions of the structure
l number of modes
l number of structure nodes at which modes are defined: nodes should be boundary nodes of the
structure mesh in contact with the fluid.
l eigen frequencies listed in increasing order in [Hz]
Mode shape information should be written node by node. So, for each node one line contains:
l three (or two) coordinates, in meters: <x1> <y1> <z1>
l components of each mode normalised with the mass, sorted in increasing frequency order:
<φ11x> <φ11y> <φ11z> ...
Coordinates and mode shape should be written in SI unit system.
When using the output data from an external structured code, components of mode shapes should
be the deformation vectors computed for each mode. Conversion factor here, if necessary, is the
inverse of the square root of mass conversion factor.

Mode shape should be scaled by the generalized mass such as equal to 1.

Example of a structure file .dat

<Comment line>
Number of dimensions : <#dimensions>
Number of modes : <#modes>
Number of nodes : <#nodes>

358 FINE™/Marine 7.1 User Guide


Eigen frequencies
<f1>
<f2>
...
Mode shapes
<x1> <y1> <z1> <φ11x> <φ11y> <φ11z> <φ12x>
<φ12y> <φ12z> ...
<x2> <y2> <z2> <φ21x> <φ21y> <φ21z> <φ22x>
<φ22y> <φ22z> ...

20.3 OUTPUTS

Information about the amplitudes and it's time derivatives calculated during the simulation are
written into the "Mvt_ bodyname.dat" file that is stored within the computation folder. The
structure of the file is explained in "The motion file: Mvt_bodyname.dat" (p. 578).
Calculated quantities can be also opened into the "Monitoring" (p. 487). Here the Quantities to
display: Amplitudes will display the resulting modal deformations parameters read from the
"Mvt_bodyname.dat" file with respect to the Modes simulated during the computation.
For the fluid structure interaction computation cases to monitor the convergence history of
"Unsteady Forces and Moments" (p. 494) the SaveConvEfforts_ can be activated (set to YES)
on the Advanced page of Control variables menu. Results can be opened within the Monitor™
same time with the other quantities.

359 FINE™/Marine 7.1 User Guide


CHAPTER 21.

LAMINAR TRANSITION MODEL

Laminar- turbulent transition is a complex and not yet fully understood phenomenon. Among the
numerous parameters that affect the transition one can list: the free stream turbulence intensity, the
pressure gradient, the Reynolds number, and the surface curvature. In the transition process,
phenomenon of the laminar separation bubble can play a significant role. Strong adverse pressure
gradient makes laminar boundary layer to separate from the solid body surface. For the described
challenges, FINE™/Marine suggests the Transition model. The available implementation is based on
the Local Correlation-based Transition Modeling (LCTM) concept, where experimental correlations are
being integrated into the standard convection-diffusion transport equations using local variables.
To give an example of application, consideration of transition effects is important to estimate
performance of devices based on lifting bodies such as ship appendages (rudders, stabilizers, propulsion
systems) or marine current turbines.

FIGURE 21.1
Parameters: Transition model

Details can be also found in the paper of: Menter, F.R., Smirnov, P.E., Liu, T. et al., "A One-
Equation Local Correlation-Based Transition Model",Flow Turbulence Combust (2015) 95: 583.
doi:10.1007/s10494-015-9622-4

360 FINE™/Marine 7.1 User Guide


In this section
21.1 Introduction 362
21.2 Procedure 362
21.3 Examples 371

361 FINE™/Marine 7.1 User Guide


21.1 INTRODUCTION

This model is based on adding the transport equations for the Intermittency (γ). The Intermittency
acts on the production term of the Turbulent kinetic energy transport equation in the SST
turbulence model to simulate laminar/turbulent flows. Experimental correlations are evaluated
inside the boundary layer only. Coupling with the k-omega (SST) is done by modification of the
original equations for the Turbulent kinetic energy (k) and the specific dissipation rate of turbulent
frequency (ω) with the additional Turbulent kinetic energy production and destruction terms to
ensure the proper generation of k at transition points for arbitrary Turbulence intensity (Tu) levels.

Please note, that sufficient experimental information should be available for an appropriate
Transition model performance, meaning generally the imposed initial conditions of the experimental
setup.

Current limitations:
l Available only when k-omega (SST-Menter) Turbulence model is applied.

21.2 PROCEDURE

Due to the complexity of laminar-turbulent transition as a physical phenomenon some specific


requirements for the computation setup should be respected. At the same time the computational
mesh and flow initialization conditions have a significant impact on a successful transition
prediction. Some ideas regarding these aspects can be found in the "Examples" (p. 371) section.
As it has been mentioned previously, sufficient experimental data should be available to respect
the conditions of the flow regarding the initial level of turbulence: standard parameters (density,
flow velocity and etc.) and the Turbulence intensity and the Viscosity ratio should be known and
properly defined.
To perform a simulation employing the Transition model the following steps can be followed:
1. Select in the Flow model parameters the k-omega(SST-Menter) Turbulence model.
2. Activate the Transition model from the Additional models menu.

362 FINE™/Marine 7.1 User Guide


The FINE™/Marine flow solver is also compatible with the structured mesh configurations. For
instance, an IGG™/AutoGrid5™ generated mesh can be converted into the suitable file format
through Hexpress™ and used during the transition simulation. More details can be found in the
AutoMesh™ documentation.

If the experimental data for the flow turbulence level initialization is


available

The following steps suggest the example of a complete procedure for the simulation, in which the
experimental conditions for the Turbulence level are known and can be used for the flow
initialization.
3. Perform only the pre-processing step in Task Manager or launch it in batch with the tool
"hexpress2isis" (p. 722): this will prepare the files to be run with the solver (including conversion,
partitioning or concatenation of previous results)

4. Initialize the turbulence level with a user input data files as described in "Files Used as Initial
Data Profile" (p. 592)
Also, an example of init_isiscfd.f file mentioned in the procedure for Initial data profile creation
can be found below.

Example of the init_isiscfd.f modification for the Turbulence intensity and


Viscosity ratio initialization

c
c

363 FINE™/Marine 7.1 User Guide


c For gfortran user, add "-frecord-marker=4" in your compilation
c old version of gfortran may not accept this option
c
c
implicit none
character*40 title,title1
integer::i1,i2,i3,n1,n2,n3,n,n_begin,nvar_bnd,i
double precision::t,ymin,ymax,h,yc,surf,u0,tu,tu0,rmu,rho,mu,kinf,winf,pi,alpha,alphar
double precision,dimension(:),allocatable::x,y,z,u,v,w,k,aw,surfx,surfy,surfz
integer,dimension(:),allocatable::flag
c
c Import the cell-centered grid
c
open(10,file='gridcc.bin',status='old',form='unformatted')
c
c Heading of the file
c
read(10) title ! title of the data
print*,'title ',trim(title)
read(10) title1 ! internal version/type information
print*,'informations ',trim(title1)
read(10) i1,i2 ! useless data
read(10) i1,n1,i2,n2,i3,n3,t ! Dimension of the file
c
c t is the initial time, should set to zero.
c
t=0.0
c
print *,'Dimension of the file: '
print *,i1,n1,i2,n2,i3,n3
if (i1.ne.1.or.i2.ne.1.or.i3.ne.1.or.n2.ne.1.or.n3.ne.1) then
print *,'Data dimension error.'

364 FINE™/Marine 7.1 User Guide


stop
end if
n=n1*n2*n3
c
c Memory allocation
c
allocate(x(n),y(n),z(n))
allocate(u(n),v(n),w(n),k(n),aw(n))
c
c Importing the mesh
c
read(10) x
read(10) y
read(10) z
close(10)
c
c Open the boundary face flag file generated by the gen_gridcc tool
c
open(11,file='Boundary_Face_Flags.dat',status='old',err=10)
read(11,*) nvar_bnd ! number of boundary face
allocate(flag(nvar_bnd))
allocate(surfx(nvar_bnd))
allocate(surfy(nvar_bnd))
allocate(surfz(nvar_bnd))
do i=1,nvar_bnd
read(11,*) flag(i),surfx(i),surfy(i),surfz(i) ! boundary face flag
end do
close(11)
c
c Set the velocity and the pressure field to zero everywhere
c
pi=real(4.)*atan(1.)
c Fluid density

365 FINE™/Marine 7.1 User Guide


print*,'Fluid density [kg/m3]?'
read(5,*) rho
c Dynamic viscosity
print*,'Dynamic viscosity [kg/ms]?'
read(5,*) mu
c Inlet velocity
print*,'Inlet velocity [m/s]?'
read(5,*) u0
c Incidence
print*,'Incidence: AoA [deg.]?'
read(5,*) alpha
alphar=alpha*pi/real(180.)
c Turbulence intensity
print*,'Turbulence intensity [%]?'
read(5,*) tu0
tu=tu0/real(100.)
c Viscosity ratio
print*,'Viscosity ratio?'
read(5,*) rmu
kinf=real(3.)/real(2.)*(tu*u0)**2
winf=rho*kinf/(rmu*mu)
print*,'Density [kg/m3] ',rho
print*,'Dynamic viscosity [kg/ms] ',mu
print*,'Inlet velocity [m/s] ',u0
print*,'Incidence [deg.] ',alpha
print*,'Velocity components [m/s] ',u0*cos(alphar),
& u0*sin(alphar)
print*,'Turbulent intensity [%] ',tu0
print*,'Viscosity ratio ',rmu
print*,'Inflow turbulent kinetic energy [m2]',kinf
print*,'Inflow turbulent frequency [1/s] ',winf
do i=1,n
u(i)=u0*cos(alphar)

366 FINE™/Marine 7.1 User Guide


v(i)=u0*sin(alphar)
w(i)=real(0.)
k(i)=kinf
aw(i)=winf
enddo

c
c Loop on boundary faces
c
n_begin=n-nvar_bnd
do i=1,nvar_bnd
i1=n_begin+i
c
c Boundary condition flag in 3.1 release:
c ABBCCDDEE
c with:
c A: mesh deformation flag
c BB: boundary condition flag
c CC: body index
c DD: sub-body index
c EE: domain index (starting from 1)
c
c Identification of the wall by face flag
c
if (flag(i).eq.1010101 .or. flag(i).eq.401010001) then
u(i1)=real(0.0)
v(i1)=real(0.0)
w(i1)=real(0.0)
k(i1)=real(0.0)
aw(i1)=real(0.0)
end if
end do
c

367 FINE™/Marine 7.1 User Guide


c Save the velocity field
c
title='Velocity field'
call save_vec('v.bin',n,u,v,w,t,title)
c
c Save the turbulent kinetic energy field
c
c title='Turbulent kinetic energy field'
call save_sca('k.bin',n,k,t,title)
c
c Save the characteristic frequency of turbulence field
c
c title='Characteristic frequency of turbulence field'
call save_sca('aw.bin',n,aw,t,title)
c
stop
10 print *,'Use the gen_gridcc tools to generate the ',
$   'Boundary_Face_Flags.dat file first.'
end
c
subroutine save_vec(fn,n,u,v,w,t,title)
implicit double precision (a-h,o-z)
character*(*) fn
character*40 title,title1
dimension u(n),v(n),w(n)
c
open(10,file=fn,status='unknown',form='unformatted')
write(10) title
title1='PUTVEC-V3.0 T=VECTEUR F=.BIN P=DOUBLE'
write(10) title1
i1=1
i2=9999
write(10) i1,i2

368 FINE™/Marine 7.1 User Guide


i1=1
i2=1
i3=1
n2=1
n3=1
n1=n
write(10) i1,n1,i2,n2,i3,n3,t
write(10) u
write(10) v
write(10) w
close(10)
end
c
subroutine save_sca(fn,n,u,t,title)
implicit double precision (a-h,o-z)
character*(*) fn
character*40 title,title1
dimension u(n)
c
open(10,file=fn,status='unknown',form='unformatted')
write(10) title
title1='PUTSCA-V3.0 T=SCALAIRE F=.BIN P=DOUBLE'
write(10) title1
i1=1
i2=9999
write(10) i1,i2
i1=1
i2=1
i3=1
n2=1
n3=1
n1=n
write(10) i1,n1,i2,n2,i3,n3,t

369 FINE™/Marine 7.1 User Guide


write(10) u
close(10)
end
5. Perform the steps 4 to 6 from the "Files Used as Initial Data Profile" (p. 592) if not yet
executed:
l convert the mesh files into cell centered configuration with the tool gen_gridcc (the procedure
can be found in "External Tools" (p. 699)),
l compile the fortran program (with g95 or gfortran compiler using the option "- frecord-
marker=4"): gfortran init_isiscfd.f -frecord-marker=4,
l launch the generated executable a.out.

Note that the values of the Fluid density, Dynamic viscosity, Inlet velocity, Incidence, Turbulence
intensity and Viscosity ratio will depend on the test case conditions.

6. If the example file provided above has been used and a.out launch is finished with success,
three new files are generated and should be used to initialize the Boundary conditions for:
l Velocity: v.bin
l Turbulent kinetic energy: k.bin
l Turbulent frequency: aw.bin
7. Copy the generated files into the computation folder.
8. Modify the computation .sim file with the following lines, considering the new initialization of
Velocity, Turbulent kinetic energy and Turbulent frequency:
*
*** R/W : VELOCITY (T)
*
v.bin
*
*** R/W : TURBULENT KINETIC ENERGY (T)
*
k.bin
*
*** R/W : TURBULENT FREQUENCY (T)
*
aw.bin

370 FINE™/Marine 7.1 User Guide


9. Launch the simulation only the Solver and Post-processing steps in batch mode (Details can be
found in "Concept to Run a Parallel Computation in Batch Mode" (p. 527)) or using the batch
file.

21.3 EXAMPLES

Some aspects (grid, boundary conditions, ...) need to be noted when creating a project using the
Transition model. Otherwise it may not be able to improve the simulation, even provide worse
predictions (for example: with inaccurate inlet turbulence variables).

Grid requirements

As the Transition model is based on local values in the boundary layer and solves a transport
equation for the Intermittency, this requires a suitable grid refinement along the Solid walls.
The size of first cell must be sufficiently small to reach a lower than one or in the order of one
(as for all low- Reynolds turbulence models). Moreover too large expansion ratios must be
avoided for the clustering in the normal direction. It is advised to keep an expansion ratio lower
than 1.2.
The refinement location along the streamwise direction is also important for a good transition
prediction. In general, transition predictions will require more points along the streamwise
direction than fully turbulent predictions. A large number of points is requested mainly for
separation induced transition with possible reattachment. The refinement should be concentrated
around the area of possible separation bubbles and reattachment.

Inlet turbulence variables

The user should pay attention to the inlet turbulence variables. The predicted results are very
sensitive to the values of the inlet turbulence variables because of the decay of turbulence from the
inlet to the separation induced transition zone. The inlet boundary conditions should be well
defined considering the Turbulence intensity. The ideal for the best estimation is to know the
turbulence intensity profile at downstream of the inflow boundary.
When the Turbulent intensity ( Tu ) is known, the Turbulent kinetic energy ( k inf ) can be
determined as:

and with the Viscosity ratio ( ), the Turbulence eddy frequency (winf) can be determined as:

371 FINE™/Marine 7.1 User Guide


Where the Rμ is the Viscosity ratio and υ is the Kinematic viscosity.
The larger the inlet turbulent Viscosity ratio, the smaller is the turbulent decay rate.

372 FINE™/Marine 7.1 User Guide


CHAPTER 22.

NUMERICAL MODELS

The Numerical schemes and Under- relaxation parameters pages allow to define the numerical
parameters of the computation. They are described in the next section.

373 FINE™/Marine 7.1 User Guide


FIGURE 22.1
Numerical schemes page

In this section
22.1 Numerical Schemes 375
22.2 Under-Relaxation Parameters 378

374 FINE™/Marine 7.1 User Guide


22.1 NUMERICAL SCHEMES

Turbulence Equations

The different discretization schemes available for the turbulent equations are:
l GDS,
l UPWIND,
l HYBRID,
l CENTERED,
l AVLSMART,
l BLENDED.
The HYBRID scheme uses an automatic blending between upwind and centred schemes based
on the local Peclet number.
The BLENDED scheme is similar to the HYBRID scheme but the level of the upwinding must
be imposed. An input is mandatory for the BLENDED scheme. The value must be set between 0
to 1 and gives the level of upwinding. For instance, 0.8 corresponds to 80% of upwinding and
20% of centred discretization.

See section 1.2 of the Theoretical Manual for more explanation about the numerical schemes.

Momentum Equations

The different discretization schemes available for the transport equations are:
l GDS,
l UPWIND,
l HYBRID,
l CENTERED,
l AVLSMART,
l BLENDED,

375 FINE™/Marine 7.1 User Guide


The inputs of the schemes are presented in the previous section.

See section 1.2 of the Theoretical Manual for more explanation about the numerical schemes.

Multi-Fluid Equations

Available schemes and theory

The different discretization schemes for the mass fraction are listed below. There are only
available for multi-fluid computation.
l BRICS,
l BICS,
l GDS,
l IGDS,
l MGDS,
l AVLSMART,
l HRIC,
l CICSAM.
The GDS scheme used for momentum equations is based on upwind or centred discretization and
could be not appropriate for maintaining the sharpness of an interface convected by the transport
equation of the mass fraction field since the use of some upwind-differencing produces numerical
diffusion, which results in a very strong smearing of the interface. If the central differencing
preserves the sharpness of the interface, it introduces unfortunately non-physical oscillations
around the interface and produces values of the mass fraction which are outside the physically
meaningful bounds [0,1]. On the other hand, the GDS scheme does not suffer from any cell
Courant-Friedrich-Lewy (CFL) number limitation and could be used without any time step
limitation.

When the discretization scheme GDS is used for computing the transport equation of mass fraction, a
coefficient must be specified. This value is located between 0.1 and 0.5. The optimum value is 0.101
and is set as an expert parameter (see List of Advanced Parameters).

376 FINE™/Marine 7.1 User Guide


An alternative treatment of the numerical diffusion problem for an interface capturing method is to
use the donor-acceptor cell concept. A compressive differencing scheme introduces downwind
information and changes any smooth gradient into a step function. However, as a first step, start
with the GDS scheme by introducing downwind differencing (DDS) to build the Inter-Gamma
scheme (IGDS), since compressive characteristics are absolutely required to build an accurate
sharp interface capturing scheme 1. The main disadvantage of the IGDS scheme is a cell CFL
number limitation: Ci < 0.3 in multidimensional cases.
To overcome that difficulty, a correction (MGDS) is used which proved satisfactory in most
applications when Ci < 0.7.
The BICS scheme where BICS stands for "Blended Interface Capturing Scheme", combines the
advantage of the IGDS scheme and tends toward the GDS scheme when Ci > 10 approximately.
The BRICS scheme is similar to the BICS scheme but with an extra Reconstruction. This is the
recommended interface capturing scheme for an accurate simulation of the free-surface elevation.

See Section 1.2 of the Theoretical Manual for more explanation about the numerical schemes.

Cavitation Equations

The different discretization schemes for the cavitation are listed below. They are only available for
computation when a cavitation model is active (see Cavitation).
l BRICS_GDS,
l UPWIND,
l BRICS
l GDS,
l AVLSMART.

Passive scalar Equation

The different discretization schemes for the passive scalar are listed below. They are only
available for computation when a passive scalar model is active (see Fluid model).
l GDS,
l AVLSMART.

377 FINE™/Marine 7.1 User Guide


22.2 UNDER-RELAXATION PARAMETERS

In this page, it is possible to change the under-relaxation parameters. The list is the following:
l Velocity components
l Pressure
l Velocity flux
l Correction
l Turbulent kinetic energy
l Turbulent frequency
l Mass-fraction (available for Multi-Fluid only)
l Cavitation (available for Cavitation models only)

The Z-component of the velocity is frozen in case of 2D projects.

FIGURE 22.2
Under-relaxation parameters

378 FINE™/Marine 7.1 User Guide


CHAPTER 23.

ADAPTIVE GRID REFINEMENT

An Adaptive grid refinement algorithm is implemented in the FINE™/Marine flow solver which
automatically refines the mesh during the computation. The first part of this chapter introduces this
feature, whereas the second part explains the input required through the interface. The chapter ends
with advice on how to use this method.

In this section
23.1 Introduction 380
23.2 Refinement Criteria 382
23.3 Grid Quality 400
23.4 Limiting Box 404
23.5 Refinement Control 407
23.6 Best Practice 412

379 FINE™/Marine 7.1 User Guide


23.1 INTRODUCTION

The adaptive refinement is an iterative process in which the mesh is dynamically adapted to the
requirements of the solution, during the computation. The decision on where to refine the mesh is
based on the physics of the flow. Mesh adaptation is a powerful tool which is useful for a wide
range of applications, since it can:
l Accurately capture flow details, such as waves, wake flows and boundary layers, and
trailing vortices behind ships and propellers. Since adaptive grid refinement is local, it can
create much finer meshes around small details than what is feasible with static meshes.
l Create efficient meshes, by inserting fine cells only there where they are really needed. For
example, unsteady flows change in time; therefore, a non-adapted grid must be fine in all the
positions where the local phenomena will ever be during the simulation. On the other hand,
adaptive grid refinement can place the fine grid only where the flow features are now, and
change the grid as the flow evolves. Thus, a great reduction of the total number of cells is
possible.
l Simplify the computations, by allowing easier meshing in HEXPRESS™. For example, in
certain situations, it is no longer necessary to create free-surface meshes with HEXPRESS™.
Also, one can be sure that all relevant flow features are captured, without placing volume
refinement boxes.
l Assure the accuracy of overset computations, by smoothing out the transition in cell sizes
over the interface between domains (See also "Overset grid management" (p. 423)).
The refinement is cell-based: existing cells are subdivided into smaller cells to locally create a
finer grid. The refinement can be Isotropic or Directional (dividing cells in one direction only):
this reduces the total number of refined cells when flow features are aligned in a specific direction
(e.g. the water surface). The method contains several types of criterion which determine where the
grid has to be refined.
The refinement procedure is called repeatedly during the flow computation, with a given number
of time steps between each call.

380 FINE™/Marine 7.1 User Guide


FIGURE 23.1
Example of computation with adaptive grid refinement (left) and initial HEXPRESS™ mesh
(right)

Mesh adaptation procedure

Step 1

The refinement criterion is calculated, based on the current flow field. The criterion is represented
by a tensor field (to control directional refinement).

Step 2

This criterion is transformed into the decision of which cells should be refined or coarsened. This
decision may depend on the type or on the orientation of the cells, but it does not depend on the
specific way the criterion is calculated, it is the same for all criteria. If cells have the right size
according to the criterion, they are not modified.

Step 3

Finally, the coarsening and refinement of cells are performed where needed. Part of the
refinement is the automatic load balancing: when computing in parallel, parts of the refined grid
are moved from one processor to another, to keep the same total number of cells on each
processor.
For steady flows, the procedure eventually converges and the grid is no longer changed when the
procedure is called. For unsteady flow, the grid changes permanently.

381 FINE™/Marine 7.1 User Guide


The next sections correspond to the logic of the menu: definition of the "Refinement Criteria" (p.
382), parameters to preserve the "Grid Quality" (p. 400), "Limiting Box" (p. 404) definition to
limit the refinement zones and "Refinement Control" (p. 407) to specify among others the
frequency of calls to the method. The last section contains "Best Practice" (p. 412) with
guidelines for the usage of adaptive grid refinement method.

We recommend to use the adaptive grid refinement method conservatively when working on new
problems, to first get experience and limit the total number of cells generated. It is easier to go from
coarse to fine meshes than the opposite.

The evolution of the number of cells during the computation is given in a file called nb_cell.dat ,
which is stored by the solver. The "Results Analysis" (p. 552) tool of the FINE™/Marine interface
has an option to save this evolution as a plot inside a picture.

Since the adaptive grid refinement method changes the mesh files, the refined mesh is stored as an
output of the computation in the computation directory.

23.2 REFINEMENT CRITERIA

First of all, it is necessary to activate the adaptive grid refinement feature by clicking on the
Activate grid refinement option.

FIGURE 23.2
Adaptive grid refinement activation menu

Once the adaptive grid refinement is active, the Criterion page is open. This page contains the
main parameters which control the position and size of the refined cells: the refinement criterion,
which indicates the physical features on which the refinement decision is based, and the
refinement threshold which is the global indicator of the mesh fineness.

382 FINE™/Marine 7.1 User Guide


The available criteria are listed below as:

Surface-capturing criteria

Only available if Multi-fluid is active in the Fluid model menu:


l "Free surface (directional)" (p. 386),
l "Free surface (tensor)" (p. 387),
l "Free surface (isotropic)" (p. 387),
l "Multisurface (tensor)" (p. 388),

Criteria based on second spatial derivatives

Typically used for mono-fluid computations:


l "Pressure Hessian (tensor) " (p. 390),
l "Pressure Hessian (isotropic) " (p. 391),
l "Flux component Hessian criterion " (p. 391),

Combined criteria

Only available if Multi-fluid is active in the Fluid model menu:


l "Free surface + Pressure Hessian " (p. 393),
l "Multisurface + pressure Hessian " (p. 394),
l "Multisurface + flux component Hessian " (p. 395),

Other criteria

l Pressure gradient (isotropic),


l Velocity gradient (isotropic),
l Vorticity (isotropic),
l "Overset continuity only criterion" (p. 398).
The Criterion page lists the different criteria the user can select for the computation. Furthermore,
information about the criterion is given directly through the interface.

383 FINE™/Marine 7.1 User Guide


FIGURE 23.3
Criterion page

Parameters

The Refinement target values control the number of cells during the computation:
l Refinement criterion threshold: this parameter specifies the intensity of the refinement. The
principle of the grid refinement is, that the mesh is adapted in order to get in each cell: "the
criterion in the cell times the cell size is equal to the threshold". Therefore, a low value causes
a large part of the grid to be refined, while a high value causes only very local refinement.
Also, the cell sizes are directly proportional to the threshold: if the value of the threshold is
halved, all the refined cells become twice smaller.

384 FINE™/Marine 7.1 User Guide


Sensible values for the threshold depend on the criterion: suggestions are made in the subsections
below. The default (1) has no particular meaning since the value should be adapted according to
the mesh.

FIGURE 23.4
The effect of reducing the refinement threshold. The right figure has a threshold that is half the
one for the left figure.

For Surface-capturing criteria, the threshold is called Target grid spacing normal to free surface ,
since it directly indicates the size of the refined cells.

l Minimum size limit for refined cells: cells that are smaller than this parameter in a direction,
are not refined in that direction. The default (0) means that there is no restriction.

For Hessian and Combined criteria, it is mandatory to choose a minimum cell size larger than the
thickness of the first cells in the boundary layer.

For Surface-capturing criteria, the default value can be conserved.

The quality of the refined grids is better when a fixed threshold is used. A useful approach for a
series of computations is to use a target number of cells for one computation, to establish the right
order of magnitude for the threshold, and then to run the entire series of computations with this
fixed threshold.
l Use number of cells as target: when activating this option, a new input Target number of
cells is required. Instead of specifying a refinement threshold (see the next item) to indicate the
desired amount of refinement, it is possible to specify the desired total number of cells in the
refined grid. The threshold is then automatically adjusted to meet this specification.

385 FINE™/Marine 7.1 User Guide


This is a useful option for new types of computations when no guideline for the threshold is available.

Even if the initial threshold can have an influence on the convergence speed of the procedure, one
can put whatever value (but normally for the Hessian criterion, a value of 10e-2 to 10e0 works
correctly).

Use number of cells as target is only possible for Hessian and Gradient criterion. It should not be
used with any Free surface criterion.

23.2.1 Surface capturing criteria

Several criteria are available which refine the mesh around the position of the free surface, or at
the edges of cavitation pockets. For these criteria, the refinement threshold has a special property:
its value corresponds to the desired grid size in the direction normal to the water surface.
The mesh must be refined in a zone around the free surface for safety. The criterion does not do
this automatically, it only refines where the volume fraction is between 0.1 and 0.9. Thus, it is
essential to set buffer layers (see also "Grid Quality" (p. 400)). At least two full buffer layers are
advised.

Free surface (directional)

This criterion is similar to the standard Free surface tensor criterion (see below); it is an old
implementation where the buffer layers are computed differently, which produces more
refinement in zones of foam and breaking waves. Hence, using the tensor version of this criterion
is recommended.

This criterion cannot be used with overset grid.

386 FINE™/Marine 7.1 User Guide


FIGURE 23.5
Free surface directional criterion

Free surface (tensor)

This is a directional refinement criterion, it refines the mesh in a direction normal to the free
surface. When the surface is at an angle to the mesh, this results in isotropic refinement, but when
the surface is aligned with the mesh, the cells are refined in one direction only. This criterion is the
preferred choice for free-surface refinement.

FIGURE 23.6
Free surface tensor criterion

Free surface (isotropic)

This criterion is the same as the previous one except that when the surface is aligned with the
mesh, the cells are also refined in an isotropic way. In general, this choice is not advised since it
creates refinement which is not essential to capture the surface.

387 FINE™/Marine 7.1 User Guide


FIGURE 23.7
Free surface isotropic criterion

Multisurface (tensor)

Similar to the Free surface (tensor) criterion, this criterion controls refinement of the free water
surface, the surface of cavitation pockets, or both.

FIGURE 23.8
Multisurface criterion

Individual target cell sizes can be specified for each surface type. Internally, the flow solver will
convert individual Target grid spacing cell sizes into a single Threshold value and a
multiplication factor for the cavitation refinement criterion. Activating one or both of the Target
grid spacing to surface Free surface or Cavitation surface checkboxes will allow the User to
enter the desired cell size in the chosen area.

388 FINE™/Marine 7.1 User Guide


FIGURE 23.9
Multisurface refinement target values

23.2.2 Criteria based on second spatial derivatives

Refinement criteria based on the Hessian matrix of second spatial derivatives create refinement
throughout the computational domain. Since second derivatives are related to interpolation errors
for linear reconstructions, the Hessian gives a rough indication of the zones where the truncation
error for a finite-volume discretization is high. The Hessian matrix is:

389 FINE™/Marine 7.1 User Guide


Different criteria are obtained by basing the Hessian on different variables.
Hessian criteria may have very high values in the small cells close to walls. Therefore, it is
essential to set a minimum cell size (see also "Introduction" (p. 380) of the Adaptive grid
refinement section) when using such criteria. This minimum cell size must not be smaller than the
thickness of the first cells on the wall.

Pressure Hessian (tensor)

For this directional refinement criterion the Hessian is based on the pressure. Thus, the criterion
targets flow features like stagnation points, pressure peaks, and vortex cores. Combined with a
Free surface criterion (see also "Combined criteria" (p. 393)), the pressure Hessian is very useful
for capturing waves.

FIGURE 23.10
Pressure Hessian tensor criterion

The actual criterion is non-dimensionalised and chosen as: , where the

power factor α is taken as .

390 FINE™/Marine 7.1 User Guide


Two ways are available to numerically evaluate the pressure Hessian (see also section about
"Refinement Control" (p. 407)). The preferred method is Smoothed Gauss evaluation, where
the second derivatives are evaluated as the gradients of the gradients. First, the gradients are
computed with a Gaussian evaluation plus misalignment corrections; since the gradients are used
in the discretization of the flow equations they are already known in the flow solver. The pressure
gradient is then smoothed. Finally, the second derivatives are computed by differentiating the
gradients using Gaussian evaluation. Alternatively, direct Least Squares computation of the
second derivatives is available.
The right choice for the threshold depends on the problem. However, a good initial guess for the
threshold is: , where the constant can be chosen as follows: 0.2 corresponds to a
reasonably coarse mesh, 0.1 is medium-fine and 0.05 gives a very fine mesh.

Pressure Hessian (isotropic)

This isotropic refinement criterion uses the norm of the pressure second spatial derivative matrix.
The pressure Hessian is evaluated the same way as for the Pressure Hessian (tensor) criterion
but produces more cells since all cells are refined isotropically.

FIGURE 23.11
Pressure Hessian isotropic criterion

Flux component Hessian criterion

This tensor-based directional refinement criterion is based both on the pressure and the velocity.
Thus, it targets the regions where the Pressure Hessian criterion is active, but also boundary
layers, shear layers, and wakes. It is the criterion of choice whenever a wake flow is to be
computed but it is also effective for accurately representing boundary layers, which may be
necessary to compute forces on bodies (even pressure-dominated ones) accurately.

391 FINE™/Marine 7.1 User Guide


FIGURE 23.12
Flux component Hessian criterion

The flux-component Hessian criterion is computed from Hessians of the pressure and velocity
components, weighted according to the way they appear in the fluxes. A typical flux is for
example , so the criterion is chosen as:

where the velocity is . The power factor α is in general taken equal to 0.5.
The maximum of two tensors is computed using an approximate procedure. Numerically, the
gradients are computed with a Gaussian evaluation plus misalignment corrections; they are
already known in flow solver. The pressure gradient is then smoothed but the velocity gradients
are not. Finally, the second derivatives are computed by differentiating the gradients using a
weighted Least-squares evaluation.
For the choice of the Threshold, since the velocity Hessians are scaled to the same dimension as
the pressure Hessian, the same initial guess as for the Pressure Hessian criterion can be used (see
above).
The flux-component Hessian criterion creates refinement in the boundary layers, parallel to the
wall. For the Wall-function boundary conditions, the gradient in the first layer of cells on the
boundary (and therefore the refinement criterion) depend very strongly on the thickness of this
layer. Therefore, it is important to make sure that this layer is never refined parallel to the wall, by
imposing a minimum cell size that is larger than the thickness of the first layer of cells.
Finally, since the Flux component Hessian criterion reacts to all the flow features, it can create
large numbers of refined cells. It may be useful to limit the number of cells created by selecting a
relatively large threshold, or a large minimum cell size (which means that the finer details of the
boundary layer will not be resolved). Finally, if the far wake is of no interest, refinement far
behind a body can be prevented by setting a limiting box (see also section about "Limiting Box"
(p. 404) parameters).

392 FINE™/Marine 7.1 User Guide


23.2.3 Combined criteria

For Hessian-based refinement of free-surface flows, the Hessian criterion is combined with a
surface capturing criterion. The criteria are combined into one tensor criterion by taking a
weighted maximum of the two tensors. We still want the threshold (Target grid spacing normal
to free surface) to indicate directly the desired cell size, as for the free-surface criterion, so a
weighting factor c is applied only to the Hessian criterion:

C(S,i) being the value of the criterion for the free surface tensor and C(H,i), the one for the pressure
Hessian. This gives a (approximate) maximum of the two tensors.
Like for the multisurface criterion, the User must specify separate thresholds for each of the
combined criteria: a value Tr for the free-surface refinement and TrH for the Hessian-based
refinement. These thresholds can be chosen according to the guidelines given above for the
individual criteria. Internally, the flow solver converts these separate values into one threshold and
computes the weighting factor as

FIGURE 23.13
Combined criterion refinement targets

Free surface + Pressure Hessian

This criterion is a combination of the Free surface (tensor) criterion and the Pressure Hessian
criterion. Advice on their use can be found in "Free surface (tensor)" (p. 387) and "Pressure
Hessian (tensor) " (p. 390) paragraphs.

393 FINE™/Marine 7.1 User Guide


FIGURE 23.14
Free surface + Pressure Hessian combined criterion

Multisurface + pressure Hessian

For cavitating flow generally, the Pressure Hessian criterion is combined with the Multisurface
(tensor) criterion.

FIGURE 23.15
Multisurface + Pressure Hessian combined criterion

Since the Multisurface (tensor) criterion can also be used as a pure free-surface criterion, the
combined criterion can replace the Free surface + Pressure Hessian criterion . For this
combined criterion, up to three thresholds can be specified. The first threshold corresponds to the
free-surface criterion, the second to the cavitation surface criterion and the third to the Hessian.
One of the first two thresholds may be set to zero, in which case the respective criterion is
deactivated.

394 FINE™/Marine 7.1 User Guide


FIGURE 23.16
Multisurface refinement control values

Multisurface + flux component Hessian

For accurate wake/boundary layer simulation of flows with free surface or cavitation, the Flux
component Hessian criterion is combined with the Multisurface criterion.

395 FINE™/Marine 7.1 User Guide


FIGURE 23.17
Multisurface + flux component Hessian combined criterion

Since the Multisurface criterion has the same behaviour as the Free surface (tensor) criterion
and can be used to capture the free surface in non-cavitating flows, no separate Free surface +
Flux component Hessian criterion has been provided.
For this combined criterion, up to three thresholds can be specified. The first threshold
corresponds to the free-surface criterion, the second to the cavitation surface criterion and the third
to the Hessian. One of the first thresholds may be set to zero, in which case the respective
criterion is deactivated.

396 FINE™/Marine 7.1 User Guide


FIGURE 23.18
Multisurface refinement control values

23.2.4 Gradient criterion

Three gradient criteria are available: the gradient of the pressure, the gradient of the velocity or the
vorticity itself. These criteria give isotropic refinements.

397 FINE™/Marine 7.1 User Guide


FIGURE 23.19
Gradient criterion: pressure, velocity and vorticity

23.2.5 Overset continuity only criterion

This criterion improves the mesh continuity between overlapping meshes to ensure a better
transfer of data interpolation for the Overset type of computations. The criterion checks the cell
size at the overlapping boundaries of each domain and refines the mesh of the other domain, such
that its cell sizes are not more than two times larger.
This criterion is always active when any other physical criterion are used in combination with
adaptive grid refinement method (except "Surface capturing criteria" (p. 386) for which the
criterion is not compatible). If the criterion is used on its own, it only ensures a smooth transition
between cell sizes; it cannot be relied upon to refine a very coarse background mesh enough to
capture a flow. Therefore, the original meshes in both domains must be reasonably fine already.

Available only if Overset grid is active in the "Overset grid management" (p. 423) menu.

If the cells are (an)isotropic in the overlapping domain, then the background or the other overlapping
domain will be refined (an)isotropically.

398 FINE™/Marine 7.1 User Guide


At least 4 cells are needed for the initial mesh of the background in the region of each overlapping
boundary. In practice the background grid usually has to be much finer than that.

FIGURE 23.20
Example of resulting mesh for simulation with Overset continuity only criterion used

To control the criterion behavior the Minimum cell size limit for refined cells is available as well
as parameters of the "Grid Quality" (p. 400), "Limiting Box" (p. 404) and "Refinement Control"
(p. 407) menus. If the criterion is used on its own, only the Control parameters need to be set.
The default values can be kept for the other menus.

399 FINE™/Marine 7.1 User Guide


FIGURE 23.21
Overset continuity only criterion

23.3 GRID QUALITY

To ensure accurate flow solutions, it is not enough to have a grid that is adapted to the solution.
The adaptive grid refinement method must also ensure that the grid quality is good enough, so that
the solution is not perturbed by local large errors. This means that the size of the cells may not
vary too abruptly in space and that large aspect ratios are to be prevented in certain situations. In
practice, grid quality is ensured by refining extra cells, or by preventing coarsening of cells.

Criterion Diffusion

For non-smooth refinement criterion (like the free surface criterion), it may be necessary to refine

400 FINE™/Marine 7.1 User Guide


the grid not only in the cells indicated by the refinement criterion, but also in a few extra layers
around these cells. These extra layers are called 'buffer layers'. They are created by copying the
refinement criterion from a cell to its neighbours. For directional refinement criterion, these
procedures are applied individually to each component of the criterion.
For each 'full' buffer layer ( FIGURE 23.22 a)), the following procedure is applied to the
refinement criterion qi in each cell i (k goes from 1 to the Number of layers copying full
criterion value):

Therefore, if a cell has a refinement criterion high enough to pass the threshold, after one buffer
step all of its neighbour cells also have a refinement criterion above the threshold. The number of
layers can be set to zero if needed, the default is 1 buffer layer.
For each 'fractional' buffer layer (FIGURE 23.22 b)), the following procedure is applied to the
refinement criterion qi in each cell i (k goes from 1 to the Number of layers copying fraction of
value):

with 0 < c < 1. The fractional copy will diffuse the value of the criterion among the neighbour
cells. If the criterion value in the neighbour cells is bigger than the value of the criterion in the
reference cell multiply by the fraction ratio, the cell will not be refined. For non-smooth criterion,
this guarantees a smooth transition in cell size from often-refined cells to the original grid size.
The default is 1 buffer layer with a fraction of 0.6.
If "full" and "fractional" buffer layers are required, the "full" one is first applied by the flow
solver and then the "fractional" one.

FIGURE 23.22
Buffer types

401 FINE™/Marine 7.1 User Guide


FIGURE 23.23
Criterion diffusion for grid quality

Boundary Layer Protection

Grids for viscous computations may have special boundary layers close to the walls. Options are
available to protect these boundary layers during grid refinement. The measures typically affect a
'column' of boundary layer cells laying above one wall face. The possibilities are:
1. keeping the cells of a column together during redistribution,
2. preventing refinement in the boundary layer,
3. ensuring that all cells of a column have the same refinement.
Measure 2 is not absolute, it may be overridden by grid quality constraints. Measure 3 however, is
enforced. Which measures are applied, depends on the choice of the user:
l For Longitudinal direction only, measures 1 and 3 are taken, and 2 only in the direction
normal to the wall. In other words: only refinement perpendicular to the wall is allowed.

402 FINE™/Marine 7.1 User Guide


Recommended with Free surface criteria, can also be used for the Pressure Hessian and Free
surface / Multisurface + Pressure Hessian criteria.

l With Any refinement, only measure 1 is applied. Thus, there will be refinement parallel to the
surface.

Usually, this is the right choice for criteria with the Flux component Hessian.

l When Ignore boundary layers is chosen, there is no protection. Boundary layers are treated
like the other cells of the mesh and any refinement is allowed.

Recommended for flows without boundary layers (Euler mesh).

403 FINE™/Marine 7.1 User Guide


l With No refinement, measures 1, 2, and 3 are taken, with prevention of all refinement in the
boundary layers.

No Refinement option sets the refinement criterion to zero in the boundary layer, however some
mesh quality rules that are applied later on can still cause refinement in the boundary layer,
notably the inner product rule: if the division of a cell would cause the inner product of its faces
normal vectors with the line cell center - face center of its neighbour cells to fall below a given
threshold, then the neighbour has to be refined as well. This typically causes columns of refined
cells.

23.4 LIMITING BOX

The adaptive grid refinement can be limited to a rectangular box. Using this method, the total
number of resulting cells can be reduced. It is important to note that the goal of a box is not to
apply refinement inside, but to prevent from refinement outside it. Inside the box, the criterion
decides how to adapt the grid.

404 FINE™/Marine 7.1 User Guide


For mesh quality reasons, few cells outside the box may still be refined, but this will happen locally
only.

By default the boxes are not active. Besides, coordinates are set to very large size to be sure that the
box will have no influence by default.

FIGURE 23.24
Box refinement page

Isotropic/directional refinement

With this choice, grid adaptation according to the selected refinement criterion will be performed
in the restricted area defined by a box displayed in yellow in the graphics area, which is set by
specifying its minimum and maximum coordinates in x, y, and z-direction.

405 FINE™/Marine 7.1 User Guide


If the specified coordinates are outside the domain geometry, the bounding box is restricted to the
domain geometry.

FIGURE 23.25
Effect of Isotropic refinement restriction: x-refinement restricted by Xmax.=1.05 (left); no box
restriction(right)

Directional refinement only

Different boxes can be specified for each direction. In case of isotropic criterion, the boxes will
have no influence at all. For the directional refinement criterion, different boxes may be set for
each of the three components of the criterion and displayed respectively in green, blue and gray in
the graphics area.
If both common box and direction-specific boxes are defined, the size of each of the six sizes of
the box for the directions X, Y or Z, is set to the largest in absolute value of the sizes specified in
the common box and the direction-specific box.

If the specified coordinates are outside the domain geometry, the bounding box is restricted to the
domain geometry.

406 FINE™/Marine 7.1 User Guide


FIGURE 23.26
Effect of Directional refinement restriction: restricted by Xmax.=1.05 (left); no box restriction
(right)

23.5 REFINEMENT CONTROL

The Control page contains several parameters, of different types, which control the global
behaviour of the grid refinement algorithm. The first two parameters control the frequency of the
adaptive grid refinement method during the computation:
l Number of steps before first call to refinement procedure (default: 50): the solver will wait
50 time steps (unsteady and multi-fluid/steady computation) or 50 iterations (mono-fluid/steady
computation) before calling to the adaptive grid refinement method for the first time.
l Number of steps between calls to refinement procedure (default: 50): this input represents
the number of time steps (or iterations) between two calls to the adaptive grid refinement
procedure.

FIGURE 23.27
Frequency of refinement

The next control concerns the available memory for the computation.
l Maximum number of cells per partition:this is the maximum number of cells per partition
that is allocated at the beginning of the computation; the number of cells per partition cannot
exceed this number. On a machine which is used only to run the simulation, it makes sense to
choose this parameter such that all available memory is allocated (and thus potentially available
to store the refined grid). The right choice depends on the available memory of the machine, it
must be chosen with care on computers that have limited memory available, like IBM clusters.
The default is 500,000 cells. On a standard PC, often up to 1,500,000 cells can be chosen. For
limited memory machines, a rough guideline is a maximum of 100,000 - 150,000 cells for each
GB of memory per partition.

407 FINE™/Marine 7.1 User Guide


This parameter is machine-dependent, not simulation-dependent. Once the maximum for a machine is
known, the same value can be used for every simulation.

The final two options control supplementary actions which can be performed together with the
grid refinement:
l Reinitialize solution after first refinement: when this option is activated, the grid refinement
in the first time step is performed iteratively. After the first refinement step, the flow solution
(notably the volume fraction and the pressure) is reinitialized, using the same procedure which
is used before the computation. The grid is then refined again, and the solution is reinitialized.
This procedure is repeated until the refined grid no longer changes. The goal of this procedure
is to get a good definition of the jump in the volume fraction on the refined grid, with a
minimal thickness (2-3 cells). It eliminates the simulation time necessary to gradually compress
the jump in the volume fraction from the thickness which it had on the original grid (2-3 cells
on the original grid, so at least 4-6 cells on the refined grid), to the minimal thickness on the
refined grid.
This option is recommended for any simulation with "Surface capturing criteria" (p. 386) or
"Combined criteria" (p. 393), except for the cases where the grid refinement only cuts the original
cell size in two. There, it may be acceptable to start the grid adaptation only after the flow field
has converged on the original grid. For unsteady flows (where the free surface must be well
defined from the beginning), this choice is mandatory.

When using this option, the initial refinement must be performed during the first time step (i.e.
Number of steps before first call to refinement procedure set to 0).

Caution: if the initial position of the water surface corresponds to a grid plane, it will create no
refinement at the free surface location. To avoid this situation, one can switch the expert parameter
raffCritCiSmooth_ to YES.

If the computation using the Adaptive grid refinement is specified as a Restart from previous
computation in the "Initial Solution" (p. 284) menu a confirmation menu will appear:

408 FINE™/Marine 7.1 User Guide


FIGURE 23.28
Reinitialisation of adaptive grid control when the computation is set to Restart from previous
computation

Upon confirming this setting will be updated and Reinitialise solution after first refinement will
not be available for an active computation.
l Project refined grid onto body surfaces:this method projects the adaptively refined mesh
(containing a body) onto a triangulated surface file giving the desired shape for this body. The
linear interpolation that is used to position the new nodes during grid refinement, does not put
these nodes onto the body surface. In order to capture the geometry accurately, the refined grid
has to be reprojected onto the body geometry. The implementation is based on a triangulated
surface file (.its file), created from the triangulation of the domain description file (.dom file).
The .its file is generated by the hexpress2isis tool.

The projection method is also used with optimization suites (see Projection chapter).

409 FINE™/Marine 7.1 User Guide


FIGURE 23.29
Extra parameters in Control tab

Furthermore, several Advanced >>> parameters are available. For standard computations, these
can be left unchanged.
l Base free surface criterion on smoothed mass fraction: when activated, the free surface
criterion is based on a smoothed field of the mass fraction. This option should be used when
the initial free surface corresponds to a plane of the mesh or when the free surface travels fast
through the mesh (ex: falling objects). Using this option, it is advised to decrease the number
of Number of layers copying full criterion value, since it has the more or less the same
effect.
l Use criterion diffusion by convection: when this parameter is active, buffer layers are created
by convecting the initial refinement, using the current flow field, for the duration of the time
between two subsequent refinement steps. This buffer is created by making use of the cell face
CFL number. The larger the face CFL number, the more buffer layers are created in the
direction of the face; and thus, the buffer layers follow the motion of the fluid. This option is
only useful for unsteady problems with violent motion of the free surface, like impact flows.
l Limit scalar product check to zone where criterion is non-zero: activates the angle check
only in the regions where the refinement criterion is non-zero.
l Allow directional derefinement: this parameter allows to perform the cell coarsening in a
directional manner. Except for debugging purposes, this parameter must always be kept
activated.
l Maximum number of refinements of initial cells: this parameter limits the number of times
that a cell can be refined with respect to HEXPRESS™ mesh. The default (100,000)
corresponds to a value big enough so that there is no imposed limitation.

The initial mesh cannot be coarsened.

In general, there is no reason to change this default. To limit the amount of refinement, it is
recommended to impose a minimum cell size instead.

l Conditional refinement factor: if this parameter is set to a value larger than 1.0, cells with a
criterion value below this value times the threshold are not always refined, but only if one of
their neighbour cells is refined as well (thus, refinement is conditional upon a neighbour being
refined). The effect is, that the resulting grid will be smoother; fewer zones appear where cells
are alternately refined and not refined.

410 FINE™/Marine 7.1 User Guide


The current generation of Hessian-based criteria already contain smoothing, which makes the use of
this parameter not necessary and preserved for older version projects.

l Number of repetitions: when this parameter is set to more than 1, the refinement procedure is
called multiple times in one refinement step. This allows a more complete adaptation of the
grid to the current solution, which may be needed for unsteady simulation on strongly refined
grids.
For all the criteria employing the Hessian matrix calculation, Computation of the pressure
Hessian becomes available with the given selection of the calculation type:

FIGURE 23.30
Computation of the pressure Hessian

Hessian based criteria use the Hessian matrix of the numerical solution which second derivative
operators are discretised. Approximation of the solution can be build with the Third-order Least
Squares approximation or the Smoothed Gauss. With respect to the Least-squares evaluation,
the Smoothed Gauss evaluation gives significantly smoother meshes with higher mesh quality in
general. It is especially suitable for the computation of wave fields and of strong vorticity.
However, due to the smoothing it is less capable of detecting vortex cores of long trailing vortices,
which will therefore attract less refinement than with the Least Squares Hessian. For such
simulations, the Least Squares evaluation may be preferred.

FIGURE 23.31
Cavitation foil computation: SMOOTHED GAUSS (left) and LEAST-SQUARES (right)
applied

411 FINE™/Marine 7.1 User Guide


23.6 BEST PRACTICE

The following best practices are available for adaptive grid refinement:

23.6.1 Free surface criterion

The general principle of the free surface criterion is that it adds greater precision to the free-
surface definition for simulations on meshes that are already reasonably fine. It is not a criterion
which can create a refined mesh starting from a uniformly very coarse one. Also, a general
principle is that the best simulations are obtained when the original HEXPRESS™ mesh is very
regular. The cells in the original mesh must be as nearly rectangular as possible.
Directional refinement at and around the free surface is made for:
l Resolution of strong and breaking waves,
l Sharp surface capturing,
l Wave propagation / reflection.
The criterion is of particular interest for ships with free trim and sinkage, where the exact position
of the free surface is difficult to predict before the simulation. Another key application is the
accurate resolution of ship-generated waves, for example for aft-ship shape optimization or multi-
hull interaction studies. Finally, for surface-piercing hydrofoils, the free-surface capturing grid can
be generated entirely with adaptive grid refinement, so simulations for different immersion depths
can be performed on the same original grid.

The initial grid must be sufficiently fine below the free surface in order to resolve the orbital velocity
of the wave field that is simulated, as the adaptive grid refinement only provides a finer grid at the
location of the water surface.

When using the adaptive grid refinement method for the first time, a good approach can be to
perform a simulation without it and then make a restart activating the method. In case of wrong
settings, this will avoid to start the simulation from scratch again.

Apart from these very general considerations, there are differences in the settings which must be
taken for the grid refinement, depending on the speed of displacement of the water surface with
respect to the mesh. Here, the treatment of three typical cases is shown.

412 FINE™/Marine 7.1 User Guide


Ship in calm water

The flow is steady or nearly steady. The water surface moves little with respect to the mesh, even
if high Courant numbers are chosen. The ship may have imposed or solved motion. The basic
principle of the automatic refinement is to refine cells to half the size of the original grid.
Original mesh : Make a standard mesh, except that the grid size at the water surface in Z-
direction is chosen as L/500 instead of L/1000. Put a refinement box around the undisturbed
water surface (together with the internal surface) such that the entire region where the water
surface will end up is filled with L/500 cells. Typical dimensions for the box are from 0.1L in
front of the ship to 0.3L – 0.5L behind the ship in X, and from the centreline to 0.4L beside the
ship in Y. The thickness in Z depends on the Froude number and the ship's shape.
Criterion: Free surface (tensor) and the threshold is set to L/1000 * 1.3. Do not impose a
minimum cell size.
Grid quality: Set 2 full criterion copy layers, 0 fraction layers. Longitudinal refinement only in
the boundary layer.
Box: Allow Z-refinement in the whole domain. It can be suppressed in the last part of the domain,
but in this case a surface of grid faces must correspond to the undisturbed water surface, otherwise
the water height will be defined imprecisely (the outflow faces define the water height in the
entire domain for subcritical flow). X- and Y-refinement is restricted to a box that contains the
whole domain up to about 1.0L in front of the outflow boundary. Thus, waves are damped out
before they reach the outflow side.
Control: The first refinement when the acceleration of the boat is clearly over (usually between
300 to 500 time steps), then use a frequency of 25 time steps. An alternative is to start from the
first time step with Reinitialize solution after first refinement. Projection on the ship's surface is
in general not necessary.
Time step value: Uniform time steps are generally sufficient. However, for the uniform time step
law, it is good to remember that refining more increases the Courant number during the
simulation.
Grid checks and troubleshooting: It is advised to check a refined mesh visually, like any other
part of the solution. Points to watch out for are:
l Do the refined cells have the right size (L/1000) ? If not, adjust the threshold.
l There are no zones with excessive refinement? The cells should be cut in two in a thin zone
around the free surface, so there is a problem if large packs of strongly refined cells appear
somewhere. If this happens, create an original mesh with more fine cells or impose limiting
boxes for the refinement to damp out the waves.
l The water surface is completely contained within the fine-grid zone of the original grid? If not,
create an original mesh with more fine cells.

413 FINE™/Marine 7.1 User Guide


Ship in waves

In this type of flow, the free surface moves with respect to the grid but this movement is not very
violent. The flow is fully unsteady and it is important to set low Courant numbers in order to
preserve the sharpness of the water surface. Again, the grid is refined to half its original size. This
is extremely effective as the wave can be propagated with the same precision as on a twice finer,
non-refined grid.
Original mesh: Create a mesh as for the calm water case. Place a refinement box from the inflow
boundary to at least L/2 behind the ship in X, and over the entire width of the domain in Y, to
create a fine grid which carries the waves. If the waves move parallel to the X-axis, the cell sizes
in this box can be large in Y-direction. In X-direction, choose lambda/40 as cell size, in Z-
direction it should be the minimum of L/500 and H/6 (lambda, H are the wave length and height).
One may place another refinement box closer to the ship to impose a smaller cell size in Y,
however especially the size in Z should be constant from the inflow boundary to behind the ship,
around the surface.
Criterion: As for calm water.
Grid quality: As for calm water, except set 2 - 3 full criterion copy layers since the flow is
unsteady.
Box: Z-refinement in the whole domain. X-refinement in the region of the refinement box given
above. Y-refinement only close to the ship. For waves parallel to the X-axis it is important not to
allow Y-refinement near the inflow as this helps to keep the grid regular.
Control: First refinement after 0 time steps, then every 2 time steps. Reinitialize solution after first
refinement. Projection is not necessary. From the Advanced menu, select Limit scalar product
check to zone where criterion is non-zero. This also helps to keep the unsteady mesh clean.
Grid checks and troubleshooting: Points to watch out for are:
l Cells have the right size (L/1000) ? If not, adjust the threshold.
l The refined zone is a fine band around the surface? There is no excessive refinement in the
entire region where the waves pass? (Check this early in the computation, so it can be stopped
in time if necessary). This problem can in general be resolved by setting Limit scalar product
check to zone where criterion is non-zero.
l The water surface is always contained within the automatically refined mesh? This must be
checked in time since the computation is unsteady. When in doubt, use surface probes (Cut
plane) to check. If this happens, reduce the time step, reduce the number of time steps between
refinements (but do not choose less than 2) or increase the number of full criterion copy layers.
l The water surface is completely contained within the refined zone of the original mesh?

Impact

This type of flow is characterized by very rapid, violent motion of the water surface. A time step

414 FINE™/Marine 7.1 User Guide


adapted to the Courant number is mandatory. Settings for the computation can be chosen as in the
2D Falling Object Tutorial.
Original mesh: Euler flow without boundary layers can be computed. However, insert a few
boundary layers in the mesh to create a regular grid at the surface. No fine grid is needed below
the falling object: the surface does not deform before it touches the object so if the original grid is
regular, a fine water surface can be obtained entirely with automatic grid refinement. Much
attention should be paid to the regularity of the grid; the closer the cells are to rectangles, the better
the result. Use (coarse) refinement boxes to obtain this.
Criterion: Free surface (tensor) should be used. A threshold can be specified which causes the
grid to be refined 3 – 4 times, i.e. to 1/8 – 1/16 of the original cell size away from the object. The
refined grid at the water surface should be very fine to capture the peak pressure on impact (which
occurs in the first instants of the impact).
Grid quality: Set 4 full criterion copy layers (to handle the unsteadiness) and (average number of
refinements at the surface – 1) fraction copy layers. Any refinement in the boundary layer.
Box: Limit the refinement in X- and Y-direction to a box with z-min just below the object. Thus,
only Z-refinement is possible until just before impact, which keeps the refined grid smooth. Also,
limit X- and Y-refinement to a zone close to the object.
Control: as for the ship in waves, except the projection may be necessary for certain grids.
Grid checks and troubleshooting: Points to watch out for are:
l The water surface is always contained within the automatically refined mesh? See the ship in
waves.
l No spurious waves appear away from the body? This can be due to CIFarField_ : NO
(change to YES) or to perturbations coming from the refined mesh. Consider larger limiting
boxes in that case and boxes that have z-min just below the object, notably for refinement in
X- and Y-direction.

Surface-piercing hydrofoils

The case of a surface-piercing lifting hydrofoil is very similar to a ship in calm water, with the
exception that at high speeds, the waves generated by the hydrofoil are much longer than the
dimensions of the foil itself. This implies that the fine mesh to capture the free-surface can be
generated entirely with the Free surface adaptive grid refinement, so simulations with different
immersion depths can be performed on the same initial grid. The same settings as for the ship in
calm water apply, except for the following points.
Original mesh: The mesh is only refined around the hydrofoil, no internal surface or refinement
box around the water surface location is required. Therefore, the water surface can be placed
anywhere.
Criterion: A reasonable value is about b/100*1.3, where b is the hydrofoil span.

415 FINE™/Marine 7.1 User Guide


Control: It is mandatory to start from the first time step with Reinitialize solution after first
refinement.

23.6.2 Hessian criterion

Criteria based on Hessian matrices adapt the mesh throughout the computational domain. These
criteria have the capacity to generate an adapted fine mesh starting from an initial mesh that is
coarse everywhere. Typical applications include wake flow simulation, vortex capturing, and the
precise computation of pressure peaks. The Hessian criteria on their own are meant for: mono-
fluid flow; for free-surface flow, see "Combined criteria" (p. 393).
Two types of Hessian criterion are available (section "Criteria based on second spatial
derivatives" (p. 389)) : the Pressure Hessian (denoted here as PH) and Flux component Hessian
(FCH) criterion.
Original mesh: since the refinement criterion will create most of the fine mesh, the initial mesh
can be quite coarse. However, it is important that the mesh is regular, i.e. that most cells are
rectangular and aligned with the coordinate axes. If this is not the case, put in a large refinement
box with coarse cells around the free surface, everywhere where the flow is of interest, in order to
get a regular grid and thus a better refined grid.
The FCH refines in the boundary layer, which means that even on the surface of bodies, the initial
mesh can be coarse. The PH criterion does not react to the boundary layer (only to pressure
variations outside), which means that it is preferable to have a slightly finer initial mesh on the
surface, to resolve the boundary layer. In all cases, it is advised to insert the usual number of
layers in the viscous layer mesh.
Criterion: The choice of the criterion depends on the purpose of the simulation. In general, the
FCH is the more all-round criterion but the PH generates less refined cells.
l Wake flow: Flux component Hessian,
l Vortex tracking: Pressure Hessian captures the vortex cores, but if any vortex- wake
interaction is expected, Flux component Hessian is the better choice,
l Pressure distribution and forces: if the mesh on the body is fine enough for the boundary layer,
Pressure Hessian can be used. When starting from uniformly coarse meshes, Flux
component Hessian is recommended.
l Interference between multiple bodies: if the interference is dominated by pressure effects,
Pressure Hessian can be used.
Choose the threshold according to section "Criteria based on second spatial derivatives" (p. 389).
In brief, a good initial guess for the threshold is: . For the constant , we have the
following rough indication for ship-type flows: 0.2 corresponds to a reasonably coarse mesh, 0.1
is medium-fine, and 0.05 gives a very fine mesh.

416 FINE™/Marine 7.1 User Guide


A Minimum cell size must be set. The minimum value for this parameter is the thickness of the
first layer on the boundary. Usually, larger values can be chosen, a good choice is often between
L*10-3 and L*10-4.
Grid quality: Diffusion layers are not critical. One or two full buffer layers can be used if desired.
For the FCH, the Boundary layer protection should be set to Any refinement in general. For
the PH, Any refinement is recommended but Longitudinal only is also acceptable.
Box: It is recommended to restrict all refinement to a box which excludes only the outflow part of
the domain (at least 1.0L from the outflow boundary), in order to diffuse wakes and vortices. If
the far wake is deemed not important, the limit of this box can be moved forward.
When one wishes to focus on one specific flow feature, it is acceptable to put a box only around
this feature, as long as the original mesh is sufficiently fine to resolve the rest of the flow.
Remember that for incompressible flow, the shape of each feature is determined by the entire flow
field, so no part of the flow can be entirely neglected.
Control: For steady simulations, it is advise to wait for convergence before the first refinement
call. 500 time steps (or iterations) are usually necessary. A frequency of 25 time steps (or 50
iterations) is advised. For full unsteady simulations, the refinement should be performed every 2 -
4 time steps. For stability reasons, it is strongly advised to perform at least 5 time steps before the
first refinement.
Projection is generally needed when the original grid is coarse. However, the Reinitialize after
the first refinement is not required.
Grid checks and troubleshooting:
Points to watch out for are:
l Too many cells or clusters of undesired refined cells? If these appear everywhere, the threshold
may be reduced. If the origin appears to be the boundary layer, a larger minimum cell size can
be chosen. If clusters of fine cells are found in the far wake and this wake is of no interest for
the simulation, a part of it can be removed with a limiting box.
l The computation stops because of negative volumes? The projection and subsequent mesh
deformation, when used repeatedly, can degrade the quality of cells and eventually lead to
negative volumes. Also, grid refinement applied to bad cells makes these cells worse, even
without projection. If the computation stops soon after its beginning, check the original mesh
in the location of the negative volumes (the coordinates are given in the error message) and try
to improve its regularity, for example by adding a refinement box in HEXPRESS™. If the
negative volumes appear later on, the computation can be run until shortly before this point,
and then finished with a restart where the projection is desactivated.
l Low-Reynolds grids are acceptable. However, in general the thickness of the first layer is too
small to be used as a minimum cell size. Also, these grids are especially sensitive to projection
issues.

417 FINE™/Marine 7.1 User Guide


23.6.3 Free surface + pressure Hessian criterion

These criteria can be used for multi-fluid flows in the same situations where the Hessian criteria
would be used for mono-fluid flows (section "Criteria based on second spatial derivatives" (p.
389)). A further application is the capturing of any type of surface wave, which can be performed
with the Free surface + Pressure Hessian criterion starting from a coarse mesh without any
initial free-surface refinement.
Original mesh: The grid around bodies can be generated as for the Hessian criteria. For the free
surface, it is not neessary to insert a lofted surface or a fine refinement box in HEXPRESS™.
However, please check that the mesh is regular and orthogonal where the wave field will be. If
needed, this can be improved by inserting a large, coarse refinement box.
Criterion: The advice is the same as for the Hessian criteria. For flows where the wave field is
the point of interest, the Free surface + Pressure Hessian criterion is recommended. The free-
surface threshold is chosen the same as for an equivalent simulation with a Free surface criterion,
please see section "Surface capturing criteria" (p. 386) for the proper values. The Hessian
threshold can be set as in section "Combined criteria" (p. 393) , with the choices for a1 as given
above for the Hessian criteria. In this case, a part of the criterion is non-smooth, so the target
number of cells option should not be used.
Grid quality: Criterion diffusion is as for the Free surface criteria: 1-2 full layers for steady
flow, 2-3 for unsteady flows, or more if the interface motion is violent. Fractional layers may be
important if there is a big difference in the size of the original grid and the refined mesh at the
surface. Boundary layer protection is chosen as for the Hessian criteria.
Box: Do not use a limiting box for refinement in Z-direction. The Z-refinement must go all the
way to the inflow and outflow boundaries in order to impose a correct water level. Limiting boxes
in X-, and Y-direction can be used, it is recommended to use a box which excludes the outflow
part of the domain (at least 1.0L from the outflow boundary), in order to diffuse waves, wakes,
and vortices. If the far wake is deemed not important, the limit of this box can be moved forward.
Control: Use the Reinitialize solution after first refinement option, in order to get a good initial
definition of the free surface. As a result, the Number of steps before the first call to
refinement procedure must be set to 0. A frequency of 25 time steps is advised for steady
simulations, and 2-4 for unsteady simulations. For the projection, see the "Criteria based on
second spatial derivatives" (p. 389).
For unsteady flow and steady flow with mesh deformation, it is advised to use the Limit scalar
product check to zone where criterion is non-zero option to allow derefinement of the high aspect
ratio cells at the outside of the domain.
Grid checks and troubleshooting: see the "Criteria based on second spatial derivatives" (p.
389).

418 FINE™/Marine 7.1 User Guide


23.6.4 Gradient criterion

Isotropic gradient refinement criterion are made for:


l Vortex tracking (bilge vortices, tip vortices (wing, keel, propeller))
l Propeller plane flow.
However, the Hessian criteria are usually better suited for these applications.

Mesh set up

Prepare the mesh with usual precision to capture the free surface correctly.

Target for refinement

Set Maximum number of refinements of initial cells to maximum 2 or 3 and adapt the threshold
accordingly.

Grid quality

l Set diffusion for smooth flows to 1 or 2 full buffer layers and 0 fractional,
l Optional: change the Boundary layer protection to No refinement.

Boxes

The boxes can be used for vortex tracking. The boxes are meant to focus at specific parts of the
flow and to limit the refinement where it is not needed. When in doubt, it is advised to choose
large boxes. The criterion determines the refinement and not the box.

Frequency

l For steady simulations, it is advise to wait for convergence before the refinement call. 500 time
steps (or iterations) are usually necessary. A frequency of 25 time steps (or 50 iterations) is
advised.
l For full unsteady simulations, the refinement should be performed every 2 - 4 time steps. For
stability reasons, it is strongly advised to perform at least 5 time steps before the first
refinement.

419 FINE™/Marine 7.1 User Guide


23.6.5 Remarks in case of Restarts

A restart is always performed on the refined mesh. In the case that the number of partitions
changes between the two computations, the history of cell refinement in the current mesh is lost
and the refinement present in this grid cannot be undone. Hence, it is advised to keep the same
number of partitions while performing a restart.
If a restart is made with a different criterion with the same number of partitions, the refinement
due to the first criterion will be undone, as it is no longer considered necessary by the new
criterion. This can be a desired effect.
If one wishes to perform a restart with a different criterion, while keeping the refinement created
by a first criterion, the files family.cpr present in the block directories /b??? must be deleted
before running the restart. This destroys the history of cell refinement in the current mesh, which
means that the refinement of the current mesh is not undone.

23.6.6 Analysis of the refinements

Different methods are available to analyze the refinements produced by the adaptive grid
refinement method.

How to follow the number of cells created during the simulation

The file 'nb_cell.dat' is created in the computation directory when automatic grid refinement is
activated. This file shows the evolution of the total number of cells created during the
computation. If it increased a lot whereas it was not expected, the first idea is to try to modify the
settings of the automatic grid refinement to produce less cells (increase the threshold, decrease the
diffusion, etc.).
The evolution of the number of cells from this file can be checked in a form of a plot using the
"Results Analysis" (p. 552) tool.

How to control the memory consumption

The flow solver stores in memory the mesh and the solution. For the adaptive grid refinement,
since the size of the mesh will vary during the simulation, the data to store in memory tables will
also vary. Hence, the flow solver will allocate large tables and partially fill them up. It is up to the
user to define this allocation with the maximum number of cells per partition (see dedicated
parameter in "Refinement Control" (p. 407)).

420 FINE™/Marine 7.1 User Guide


For information, the memory consumption is mentioned in the '.std' file and it is then interesting to
pay attention to the evolution of the used memory compared to the allocated memory for three
types of variables 'Element', 'Connectivity' and 'Boundary'. For each of them, the maximum,
minimum and averaged values are indicated over the partitions. The maximum should not get
close to 100% (under 80%, there is not issue to foresee). Also, if there is a big difference between
'Element' and 'Connectivity', it indicates a problem of distribution of the cells over the partitions.
If the 'Boundary' memory is too important, the expert parameter raffMemBoundaryFactor_ can
be increased smoothly from 1 to 2 as a start.

How to check the refinements in CFView™

The main idea is to look at the refinements from vertical or horizontal cutting planes or from the
boundaries of the domain. For domain boundaries, just select the mirror or external patches and
display the mesh on them. This allows to verify the cells size or the cells density, especially for
free surface criteria. Concerning the cutting planes, precise the direction of interest (using the
normal X, Y or Z) and progressively translate the cutting plane using the Step scrolling button
from the Cutting plane menu.

FIGURE 23.32
Cutting plane menu to check the refined grid

How to estimate the converged cell size in CFView™

Estimated converged cell size is a vector field to be activated in the Output menu as an optional
variable. It gives the expected cell sizes in a converged mesh, in X, Y and Z-direction, based on

421 FINE™/Marine 7.1 User Guide


the current refinement criterion and threshold. When activated, this field is computed every time a
solution is saved and it gives an estimation not only of the cell size but also of the future location
of the refined cells.
It takes into account the following information to estimate the cell sizes in a converged mesh:
l the criterion choice,
l the threshold,
l the minimum cell size,
l the limiting boxes,
l the buffer layers.
However, it does not take into account (since these are not included in the refinement criterion):
l the maximum number of generations,
l the boundary layer protection.
A good practice is to make a first computation without adaptive grid refinement. Then, a restart
should be made with one time step using the desired adaptive grid refinement parameters, and
activating this output. If the obtained estimated converged cell size is not the expected one,
change the parameters of refinement criterion and make the restart again.

422 FINE™/Marine 7.1 User Guide


CHAPTER 24.

OVERSET GRID MANAGEMENT

Overset grid approach provides capabilities for solving complex case configurations, especially for
large body motions. This approach is also known as Overlapping grids or Chimera approach. When
working with multiple domains configuration, the key element is the possibility to use an arbitrary
overlap of the computational grids.

FIGURE 24.1
Illustration of overlapping grids

The number of applications is large as illustrated in this non exhaustive list:


l large and complex motions (ship in waves, appendages motions, rudder-propeller interaction, etc.),
l falling objects (life boat, etc.),
l confined regions and maneuvering (bank effects, shallow water, river and channel, lock, etc.),
l crossing or overtaking ships.

423 FINE™/Marine 7.1 User Guide


Overset grid management is available in the Numerical parameters menu in the FINE™/Marine
interface:

FIGURE 24.2
Overset grid management menu

24.1 GENERAL RECOMMENDATIONS

This method should not be preferred when standard approaches can be applied such as mesh
deformation or sliding grids, for instance. The first reason is that the overset grid approach relies
on multiple interpolations between several computational grids (more than sliding grids) which
can lead to difficulties for mass conservation or local flow transfer. As a result, the user might
observe convergence instabilities including forces oscillations.
Overset grid method is not yet fully operational especially for extreme shallow water, squat effect
and grounding and require further calibration. Also, precise guidelines are not yet available for all
kind of applications. However, the user is invited to read the "Best practices" (p. 430) section.
The compatibility between adaptive grid refinement and overset grid is available. The adaptive
grid refinement method will then work following two objectives: ensuring the physical criterion
but also ensuring the mesh continuity between the overlapping grids at the zone of the
interpolation. Hence, the number of created cells can be important especially since the adaptive
grid refinement refines isotropically.

424 FINE™/Marine 7.1 User Guide


24.2 WORKFLOW

Step 1

Two domains or more are created: typically a background domain containing the physical
boundaries and a separate domain surrounding the solid body of interest. Both regions are meshed
separately.

Step 2

The outer boundaries of the overlapping domain are set to Overset in the "External Condition"
(p. 196) page of the Boundary conditions menu.

Step 3

The relationship between the computational grids should be defined in the Overset grid
management menu explained in "Parameters" (p. 427) section.
As the overlapping domain moves within the background region, the overlapping cells will
evolve during the simulation. Information is transferred between the two regions through these
overlapping cells thanks to the so-called procedure of blanking:
l active: regular discretized equations are solved,
l blanked: no equations are solved, cells temporarily or permanently non-active,
l interpolated: value are updated respecting active cells located in another domain.
Example of an overset project type is provided below:

425 FINE™/Marine 7.1 User Guide


FIGURE 24.3
PMM test of a DTMB 5415 combatant ship in a narrow channel conditions: black mesh - the
Background narrow channel domain; blue mesh - Overset domain for DTMB ship

For instance, modeling the ship, rudder and propeller motions can be performed combining
"Sliding Patch Motion" (p. 270) and Overset grid approach.

426 FINE™/Marine 7.1 User Guide


FIGURE 24.4
Example of a Sliding and Overset grids combined project: propeller domain (pink) consists of
Sliding patch connection and Overset domain defines the rudder region (gray)

24.3 PARAMETERS

The general concept of the Overset grid management is based on creating multiple domain
configurations and defining them with appropriate parameters. For each Domain specification,
the following choices are available:

427 FINE™/Marine 7.1 User Guide


l Overlapping: domain containing a solid body.
l Background: general domain mesh region with no solid bodies on it.
l Linked: linked domain are dedicated to domains which are actually defined with sliding grids
but contained inside an overset domain. This is typically the case for a propeller+ship
simulation where the propeller is connected to the ship domain with sliding grids whereas the
ship is contained inside an overlapping domains. Linked domain together with the parent
domain forms a composite domain from the Overset grid management point of view. External
boundaries of the parent domain will be considered for both linked and parent domains; solid
bodies of both linked and parent domains will be considered as solid bodies of the composite
domain.
By checking the box in front of the domain names (the eye symbol) it is possible to visualize the
concerned domain in the graphical area.

FIGURE 24.5
Active Overset Grid menu

The Background domain is always considered behind an Overlapping domain using Overset.
Hence, if we consider solid walls from a background domain inside an overlapping domain, they
will be invisible for the flow. We can define the background domain as overlapping or the
Background domain can be specified as having a physical boundary present with the Is a
physical boundary condition present? selection. This can be important when intersection of
Background external boundaries with an Overlapping or Linked boundaries is expected. In
such case, when the option is selected as Yes, physical boundary of the Background domain will
behave as an Overset boundary.
Parameters provides an option to specify the allowed Distance between the physical boundaries
of the Background domain and other domain boundaries.
Bodies on domain boundaries are Expert parameters that allow to select in the list of solid
bodies which ones belong to a domain boundary in case there a chance that the body of interested
disappeared during the simulation, hidden by an overlapping domain .

428 FINE™/Marine 7.1 User Guide


FIGURE 24.6
Expert parameter menu with the list of bodies to define on domain boundaries

To provide connection between domains, data exchange is supported with the following
interpolations:
l Least-squares
l Distance-weighted
To ensure the second order accuracy the Least-squares interpolation is generally used with the
specified minimum interpolation coefficient threshold value. To control the interpolation method
manually an expert parameter OversetMinInterCoeff_ described in "Specific Numerical
Parameters" (p. 693) can be used. By changing its value to 0 the use of distance-weighted
interpolation will be enforced.

Overset grids technology is not applicable when combined with the Fee surface (directional)
"Refinement Criteria" (p. 382) of an adaptive grid refinement due to its non-tensorial nature.
Therefore a tensorial free surface criterion should be used instead.

Overset grids technology is not compatible with the "Specific Numerical Parameters" (p. 693)
reverseRenumbering_.

The solver does not all that the definition of a body changes during a simulation. Hence,
overset cannot hide patches which are defining a body during a simulation. In other words, all
patches that will be hidden, cannot belong to a body.

429 FINE™/Marine 7.1 User Guide


24.4 VISUALIZATION

General flow analysis for the overset projects has no major difference compared to the other types
of projects. But it is also possible to get the visualization of the status of the cells: active, blanked
and interpolated. The information is contained inside a scalar field automatically saved in the
standard outputs at the end of a simulation with overset approach. This scalar field is also
available as an optional field for probes reconstruction in the Output menu "Volume Probes" (p.
471) under the name Blanking. In CFView™ this variable is available in the Quantities menu as
a Scalar data. This field is not mandatory but allows CFView™ to proper display the flow at the
interpolation zones.
In addition, the Preferences menu of CFView™ allows to Hide blanked cells when working
with representations.
More details can be found in the Flow Quantities Visualization chapter of CFView™ User
manual.

24.5 BEST PRACTICES

Mesh generation

When creating the mesh project within HEXPRESS™ for an overset computation type the
following recommendations can be considered:
l for the Background domain specific refinement zones in the zone of Overlapping domains
can be created so that the transfer of information would be optimal. Cell sizes at boundaries of
the overset grids should match as much as possible the cell sizes of the background domain;
l when possible, the mesh for all the domains should be done with the domain aligned with
Cartesian axes and then rotated at the end of the mesh generation using the Grid > Mesh
transformation... menu in HEXPRESS™ or Initial conditions menu of the "Dynamic
Parameters" (p. 248) in FINE™/Marine interface. This will ensure a better quality mesh and
support domain position changes in an easy way.

When Overset boundary is close to the Solid patch

Considering the study for the Ship having the rudder box and a rudder. The difficulty can appear
if the rudder is of Overlapping type and the external boundary will be in a gap between the
Rudder and the Rudder box of the ship.

430 FINE™/Marine 7.1 User Guide


FIGURE 24.7
Domain configuration for the Ship with the Rudder as Overlapping domain

As it is illustrated an External boundary of the Rudder domain should be in the middle of the gap
between the Rudder and Rudder box Solid patches. Considering the Euler mesh generation, 8-10
cells between the Solid patch and its domain boundary should be generated to avoid possible
interpolation error. For the case of viscous layer inserted 8-10 cell should be respected starting
from the last layer of the viscous layer.

FIGURE 24.8
Interpolation representation by Blanking considering the Ship domain

Numerical setup

Considering known specifics of an overset approach the following advices can be applied:

431 FINE™/Marine 7.1 User Guide


l Time step value should be selected so that cells of the computational mesh will not move from
the "blanked" state to an active state during more than one time step. In other words, a cell
from an overlapping grid should not travel faster than two cell sizes from the background grid.
Using "Adapted to Courant Number Law" (p. 452) for the time step definition can be an
alternative solution for the same idea;
l Viscous layers overlapping is not recommended mainly by the blanking procedure specifics
reason. Such conditions can be linked to the shallow water/squat/grounding case
configurations and with the current experience capturing the 4 cells size as a minimum
recommended Distance to provide a physical solution;

432 FINE™/Marine 7.1 User Guide


FIGURE 24.9
Example of close position case for Solid boundaries, pressure fields distribution: sufficient (top)
and insufficient (bottom) distance between the solid bodies

This figure illustrates the case where the body is very close to the border of the whole
computational area. A part of the mesh from the body can go out of the computational area. To
treat this configuration, the only way is to use the option background with physical boundary
to indicate the importance of the background domain boundaries. Indeed, there is an important
rule to remember: an overlapping domain always has the priority against the background
domain. Hence, if one wants to keep the solid boundary from the background activated during
the simulation, it must be declared with this option. In other words, a background domain is
always blanked by an overlapping grids except when a physical boundary is defined on it. In such
case only, all cells from the overlapping grid exiting the computational area will be blanked.
The picture at the bottom shows a wrong practice: the distance of protection is bigger than the
distance between the body and the border of the background domain. The body might be
blanked. A minimum distance should always be respected: in practice, the height of the viscous
layers plus few cells for instance (4 at least).
l Using VelocityClip_ "Numerical Corrections" (p. 688) Expert parameter can be
recommended for complex motions cases to avoid the local divergence of the solution due to
interpolation errors. It should not be present at the end of simulation (checking the .std file) or
active for cells influencing the solution (to be checked in CFView™);
l Interpolation will be more and more difficult if the number of overlapping domains increases at
the same location. This can lead to a more noisy signal.
l Error message in the .std file stating: "Fail to find a donor point for ..." can be linked to the
motion of an Overlapping domain being too fast relatively to the Background domain.
Improving the cell sizes matching between domains or reducing the Time step value can help
to avoid this error. Another possibility is the incorrect definition of Bodies on domain
boundaries.

24.6 EXAMPLES

Several examples of the Overset grid management menu settings for different computational
cases can be found below.

Free fall of a life boat

Two domains are created, one for the life boat and one for the background flow, see FIGURE
24.1.

433 FINE™/Marine 7.1 User Guide


l 'background': fluid domain,
l 'life boat': overlapping domain with the boat defined as a Solid body.

FIGURE 24.10
Setup for the Life boat launch case

Planar motion mechanism (PMM) test in confined water conditions

Set-up:
l background: fluid domain with the Solid walls of the channel,
l dtmb: overlapping domain with the DTMB hull as a Solid body.

FIGURE 24.11
Setup for the PMM test in confined water case

434 FINE™/Marine 7.1 User Guide


Overtaking maneuver in open water conditions

Three domains are defined with 2 ships and 1 background domain.


l overtaking: overlapping domain with the overtaking ship hull as a Solid body,
l overtaking_2: overlapping domain with the overtaken ship hull as a Solid body,
l background: fluid domain.

FIGURE 24.12
Setup for the Overtaking maneuver case

Submarine torpedo launch

Two domains are defined, 1 for the submarine and 1 for the torpedo.
l 'submarine': overlapping domain with the submarine hull as a Solid body,
l 'arm': overlapping domain with the torpedo hull as a Solid body.

435 FINE™/Marine 7.1 User Guide


FIGURE 24.13
Setup for the Submarine torpedo launch case

Ship circulation with a constant speed including the propeller-rudder


interaction

Set-up:
l RUDDER: overlapping domain with the rudder as a Solid body,
l prop: overlapping domain with the marine propeller as a Solid body,
l KCS_2: overlapping domain with the KCS hull as a Solid body,
l big_domain: fluid domain defined as background.
Here, only 3 domains could have been sufficient as well. The background domain is not
necessary here if the domain and the mesh for the KCS is sufficiently good to capture the wake.

436 FINE™/Marine 7.1 User Guide


FIGURE 24.14
Setup for the Ship circulation with the constant speed case

In this case it is also possible to combine the overlapping grid approach with the sliding grids by
specifying the sliding patches for the prop domain and providing the proper configurations also
described in "Sliding Patch Motion" (p. 270).

437 FINE™/Marine 7.1 User Guide


CHAPTER 25.

PROJECTION

A projection method is present in FINE™/Marine to project an existing mesh onto a triangulated


surface file. For instance, this feature can be used for the computation optimization: a series of
different body shapes is provided by the optimization suite. Using the projection, an existing grid can
be adapted quickly and automatically to each shape, and the converged state of a baseline solution on
the grid can be used as starting point for each computation.

This projection menu is only available under the license (no additional cost).

The projection method is also used in the adaptive grid refinement feature.

In this section
25.1 Workflow 439
25.2 Projection Strategy 439
25.3 Examples 440
25.4 General Parameters 440

438 FINE™/Marine 7.1 User Guide


25.5 Expert Parameters 441

25.1 WORKFLOW

The mesh is projected onto a triangulated surface file in a simple, flow solver specific format: the
".its" file ("ISIS-CFD Triangulated Surface"), whose format is described in the Triangulated
surface file chapter.
For a given mesh, the initial ("baseline") ".its" file is generated by "hexpress2isis", based on the
".dom" file of the HEXPRESS™ mesh. A computation on the initial mesh can then be started.
Optimization suites can deform this baseline (the initial ".its" file) into different variants (new
".its" files) for subsequent computations on different hull forms.
Pre-requisites:
l The ".its" files must be topologically equivalent to the original ".its" file (same number of
surfaces and triangles),
l The computation must contain a solid body.

25.2 PROJECTION STRATEGY

Projection of the body surface nodes onto the triangulated surface is performed at the very
beginning of a computation and directly after each adaptive grid refinement step.
It is assumed that the geometry of the body is given in a triangulated surface file with extension
".its". During the basic projection, for each node in the mesh that lies on the surface of the body,
the triangle in the ".its" file that lies closest to the node is searched. The node is then moved to the
surface of this triangle.
The information of which node lies on which triangle is recorded and saved (in an internal file).
When the same mesh is later projected onto a different triangulated surface with the same
topology, this information is used to project each node onto the new position of its original
triangle. This feature is essential for optimization, in order to conserve hull topology features like
edges; cells may not "flow around" an edge when the surface is deformed for a new design.
Therefore, a new ".its" for a new design must be topologically compatible with the original (or
baseline) ".its" file. It means that the new ".its" design must have the same number of surfaces and
of triangles (but with different triangle node locations of course).
In both cases, after the surface nodes have been projected onto the triangulated surface, the entire
mesh is deformed in order to adapt it to the new position of the surface nodes.

439 FINE™/Marine 7.1 User Guide


The choice of the type of projection (node on arbitrary triangle, or node on predefined triangle) is
chosen automatically by the flow solver, based on the following criteria. A node is projected on a
predefined triangle if:
l the computation is a restart,
l a file describing the connection of nodes to triangles exists,
l this file contains the same number of body surface nodes as the actual mesh.

25.3 EXAMPLES

As an example, three scenarios of one or more computations are described. The type of projection
is indicated as "AT" (node on arbitrary triangle), or "PT" (node on predefined triangle). For
optimization, it is assumed that a first ("baseline") computation is performed on the original grid,
followed by several computations on hulls that have been deformed by the optimizer.

Basic optimization without adaptive grid refinement

Baseline computation; start of computation: AT,


New computation with deformed hull, same mesh; start of computation: PT.
… etc. for all new computations.

Optimization with adaptive grid refinement

Baseline computation; start of computation: AT,


Baseline computation; after grid refinement: AT,
New computation with deformed hull; start of computation: PT (the number of cells is the same as
at the end of the baseline computation!),
New computation with deformed hull; after grid refinement: AT (topology problems do not
appear as only the new nodes are moved).

25.4 GENERAL PARAMETERS

To specify which file should be used as a baseline for the optimization runs, a file chooser appears
as soon as the projection method is activated.

440 FINE™/Marine 7.1 User Guide


FIGURE 25.1
Projection menu

For the first baseline computation, the projection should already be active. Hence, it is mandatory
to perform the pre-processing once without projection, go back to this menu, select the ".its" file
newly generated and launch the complete simulation.

25.5 EXPERT PARAMETERS

Two expert parameters are linked to the projection method: itsProjectionDeactivateCBFP_ and
itsProjectionDeactivateCBFS_. These two parameters control the speed and the robustness of
the projection method.

441 FINE™/Marine 7.1 User Guide


CHAPTER 26.

CONTROL VARIABLES

This section describes global and expert parameters for the management of steady or unsteady
computations.

In this section
26.1 General Parameters 443
26.2 List of Available Time Laws 448
26.3 Sub-cycling Acceleration 454
26.4 Expert Parameters 457

442 FINE™/Marine 7.1 User Guide


26.1 GENERAL PARAMETERS

The General tab of Computation Control/Control Variables page allows to define some
global parameters for the selected computation.

Steady and mono-fluid computations

l Maximum number of iterations : maximum number of iterations before stopping the


computation.
l Convergence criteria corresponds to the number of orders of magnitude the infinite norm of
the residuals must decrease to stop the computation. If this criteria is not reached, the
computation proceeds until the Maximum number of iterations has been performed.
l Save solution every corresponds to the frequency for outputs saving: every x iterations the
solver saves the flow solution and creates the output files to be read in CFView™ (where "x"
is the number of iterations defined in the FINE™/Marine interface).

443 FINE™/Marine 7.1 User Guide


FIGURE 26.1
General tab of the Control Variables page, steady with mono-fluid model

Unsteady computations

Also Steady+multi-fluid or Unsteady selected in the Flow model menu.

444 FINE™/Marine 7.1 User Guide


FIGURE 26.2
General parameters of the Control Variables page, unsteady case

l Maximum number of non-linear iterations: represents the maximum number of non-linear


iterations for each time step.

Local high mesh densities or clustering of cells have an impact on the number of nonlinear
iterations to impose. Hence, it is advised to increase this value in case of local important
refinements. This will ensure a better convergence order. The user is invited to check the tutorials,
democases and FAQ to know how many non linear iterations should be used for practical cases.

l Convergence criteria, corresponds to the maximum number of orders of magnitude the


infinite norm of the residuals must decrease during each time step. If this criteria is not reached
the solver proceeds until the Maximum number of non- linear iterations has been
performed,

445 FINE™/Marine 7.1 User Guide


The flow solver checks the gain for momentum equation. But for a computation with free motion,
it also checks that the gain for the Newton's laws resolution is reached.

l Save solution every: every x time step(s), the solver saves the flow solution and creates output
files (where "x" is the number defined in the FINE™/Marine interface),
l the maximum Number of time steps to be computed (default is 1000 for every laws),
l Time step law: selection of the time step law among the possible choices described in the List
of Available Time Laws ,
l Activate sub-cycling acceleration: allows to activate the sub-cycling acceleration (see Sub-
cycling Acceleration ),
l Reset time law parameters : allows to reset the time law parameters to default values,
according to the current Lref and Vref values from the Flow model menu.
l An Advanced>>> button provides the access to the specific Pressure solver parameters and
is available for both Steady and Unsteady computations.

FIGURE 26.3
Pressure solver parameters advanced settings

The choice between the following pressure solver methods is available:


PCGSTAB_MB: basic method to solve the pressure linear system.

446 FINE™/Marine 7.1 User Guide


BoomerAMG: applies an algebraic multigrid technique (AMG). AMG was introduced as a
method for solving linear systems based on multigrid principles using the hierarchy of geometric
grids, but in a way that requires no explicit knowledge of the problem geometry. The AMG
method determines coarse grids, inter-grid transfer operators, and coarse-grid equations based
solely on the matrix entries. This approach allows to drastically accelerate the solving time of the
pressure solver and so the complete computation time without compromise on the accuracy of the
solution.
Dynamic switch: combines automaticly the classic PCGSTAB_MB and BoomerAMG methods.
The solver starts with PCGSTAB_MB and if after 30 non-linear iterations the solver observes
that it is spending too much time on the pressure solver (more than 40%), it will switch to
BoomerAMG and try to go faster. If this is slower, the solver will switch back to PCGSTAB_
MB.
Each method has the controls of the pressure solver behavior:
Convergence criteria: Maximum convergence criteria in orders of magnitude for the pressure
linear system.
Max. number of iterations: Maximum number of iterations in the pressure linear system.
Defaults for the pressure solver parameters will vary depending on the active/non-active models
for "Cavitation" (p. 321) and "Overset grid management" (p. 423):
Cavitation : No Cavitation : Yes

Overset : No Solver method: Dynamic switch Solver method BoomerAMG


PCGSTAB_MB Convergence criteria 5 orders
Convergence criteria: 2 orders Max. number of iterations:200
Max. number of iterations: 300 If the PCGSTAB_MB is used:
BoomerAMG Convergence criteria 5 orders
Convergence criteria 3 orders Max. number of iterations: 1000)
Max. number of iterations 60
Overset : Yes Solver method Dynamic switch Solver method Dynamic switch
PCGSTAB_MB PCGSTAB_MB
Convergence criteria 3 orders Convergence criteria 5 orders
Max. number of iterations: 1000 Max. number of iterations:
BoomerAMG 1000
BoomerAMG
Convergence criteria 4 orders
Max. number of iterations: 200 Convergence criteria: 5 orders
Max. number of iterations: 200

447 FINE™/Marine 7.1 User Guide


BoomerAMG is not recommended for Overset and Sliding Grid simulations for the moment since
some cases can diverge. Hence, in the Dynamic switch mode, the solver will not try to switch to
BoomerAMG if overlapping or sliding grids are present in the computation. However, it will try
BoomerAMG if the user defines "BoomerAMG" in the GUI anyway.

26.2 LIST OF AVAILABLE TIME LAWS

In FINE™/Marine, various time step laws are implemented. It is possible to choose among five
different laws:
l Uniform
l Linear
l Sinusoidal
l Hyperbolic Tangent
l Adapted to Courant Number

Default values are initially proposed for each law according to current values of Lref and Vref from
the Flow model menu. If one changes them, a warning will appear to know if the interface should
compute the new default values or not.

In case of solved motion, the default time steps are divided by 2.

The sub- cycling acceleration is not described in this section. Please go directly to Sub- cycling
Acceleration to know more about this feature.

Uniform Law

Only the Time step value is required. Default value:


l Time step:

448 FINE™/Marine 7.1 User Guide


FIGURE 26.4
Uniform Law Scheme

It is recommended to use the previous formula to compute the time step value, where Δ t is the time
step value (seconds), Lref and Vref are the reference length and velocity respectively. The reference
velocity, Vref, can be taken from the body speed. The reference length, Lref, can be based on the water
line. These values should be entered in the Flow Model menu (see Reynolds and Froude Numbers).

Linear Law

The time step will be first equal to Δti until Ti. Then the time step will increase linearly from Δti to
Δtf starting from Ti and finishing at Tf. The time step will be then equal to Δtf for the rest of the
computation.
Default values:
l Initial time step:

l Final time step:

l Initial time of the linear initialization:

l Final time of the linear initialization:

449 FINE™/Marine 7.1 User Guide


FIGURE 26.5
Linear Law Scheme

Sinusoidal Law

The time step can also evolve with a sinusoidal law. The amplitude A should be specified, as well
as the period T and the mean time step value Δt m . An initial time T i is imposed to define the
starting time of the oscillations during the computation.
Default values:
l Average of the time step:

l Amplitude:

l Period:

450 FINE™/Marine 7.1 User Guide


l Starting time:

FIGURE 26.6
Sinusoidal Law Scheme

Hyperbolic Tangent Law

The time step will be first equal to Δti until Ti. Then the time step will increase as an hyperbolic
curve from Δti to Δtf starting from Ti and finishing at Tf. The time step will be then equal to Δtf for
the rest of the computation.
Default values:
l Initial time step:

l Final time step:

451 FINE™/Marine 7.1 User Guide


l Initial time of the linear initialization:

l Final time of the linear initialization:

FIGURE 26.7
Hyperbolic Law Scheme

Adapted to Courant Number Law

This law is adaptive: the time step is not known in advance and will be adapted at each time step
to reach the target Courant number. For this law, Co is the aimed Courant Number, N is the
number of time steps, Δtmax is the maximum time step and Tmax is the time of the simulation.
Default values:

452 FINE™/Marine 7.1 User Guide


l Number of time steps N: 1000
l Courant number Co: 10
l Maximum time step:

l Time of the simulation:

FIGURE 26.8
Adapted Courant Number Law Scheme

The checked cells Courant number is the one close to the free surface (which means with the mass
fraction in the range [0.1;0.9]). The Courant numbers far from the free surface are out of interest.

It is important to know, that the time step law adapted to Courant number does not guarantee that
the Courant number will be always under the excepted value. Indeed, since this law is based on
the Courant number calculated from the previous time step, the solver estimates what will be the
time step for the next one. If high velocity fluctuations are observed around the free surface, this
Courant number changes a lot, hence the law can give Courant number slightly above the
objective.

453 FINE™/Marine 7.1 User Guide


26.3 SUB-CYCLING ACCELERATION

Introduction

To reach a steady state flow in computations with an interface capturing methodology, an


unsteady approach is mandatory. The discretization of the volume fraction transport equation
needs specific compressive schemes to accurately preserve the sharpness of the interface. As a
consequence, it is required to use very small time steps, even if the CFL constraint comes only
from the resolution of the fraction volume.
The idea of the sub-cycling acceleration method of the volume fraction equation is to reduce that
CFL condition, by using a specific time step for the volume fraction which is a multiple of the
time step associated with the global simulation. In other words, the global time step is split into a
sequence of smaller ones leading naturally to smaller Courant number. As a consequence, the
volume fraction equation is solved several times during a single global time step. As the CPU time
related with the volume fraction equation is not high compared with other parts of the solver, the
global CPU time of the simulation is strongly reduced.

FIGURE 26.9
Sub-cycling acceleration method

The checked cells Courant number is the one close to the free surface (which means with the mass
fraction in the range [0.1;0.9]). The Courant numbers far from the free surface are out of interest.

This method is available for both steady and unsteady free surface simulations. However, in
the unsteady mode, this method has not been validated enough; thus the symbol BETA has
been added. This functionality must be used with care and it is provided only for testing and
not for production.

Layout

When activating this option, the interface requires the same extra inputs for each time law:

454 FINE™/Marine 7.1 User Guide


l Maximum number of sub-cycles: corresponds to the maximum splits number of the global time
step to reach the target Courant number,
l Target courant number: represents the target Courant number for the selected computation

FIGURE 26.10
Activation of the sub-cycling acceleration method

The name of the other parameters may change when activating the sub- cycling acceleration. For
instance, some input parameters are renamed by adding the "Global" to indicate that these values are
associated with the global simulation (velocity/pressure coupling).

For each time law, the interface gives information in italic about the influence of the sub- cycling
acceleration on the time step.

Example

The following example is based on the linear time law. Lref and Vref are equal to 3.048 m and
1.531 m/s respectively, without solved motion. In that case, 5 maximum sub-cycles have been set
to reach a target Courant number of 5. The initial time step ΔTi is then multiplied by 5 (and its
name changed to "Global ΔTi") and the same for ΔTf (please check the description of the formula
used to compute default values in the Linear Law section). The final time step used for the global
simulation is 0.0995, whereas the minimal final sub-cycling time step used for the advection of the
volume fraction equation is 0.0199 in that case.

455 FINE™/Marine 7.1 User Guide


FIGURE 26.11
Example of sub-cycling acceleration with the linear time law

Best Practice

The number of sub-cycles effectively used will be the minimum needed to reach the target
Courant number (if this number is lower than the specified Maximum number of sub-cycles). In
the other case, when the target Courant number can not be obtained with the specified Maximum
number of sub-cycles, the computation will be performed using this maximum number of splits.
With this procedure, the diffusion of the interface now depends on the sub-cycle Courant number,
which is lower than the Courant number originally obtained with the global time step.
This fact leads to two possible ways of using this method:
1. One can use the same uniform time step as usual, and can activate the sub-cycles acceleration
method to decrease the Courant number, and then get a more accurate description of the
interface. In this case, the CPU time is increased with respect to a classical computation, but
the quality of the result will be improved.
2. One can use a larger global time step (for example five times the usual time step), and activates
the sub-cycling acceleration method to reach approximately the same (or even a little bit lower)
sub-cycle Courant Number compared to a classical computation. Here, the accuracy is the
same as one obtained with a classical computation, but CPU time is greatly reduced.

This 2nd way is used by the interface to compute the default values.

3. It is not recommended to use the sub-cycling:

456 FINE™/Marine 7.1 User Guide


l For the low Froude number cases (Froude number around 0.1);
l In the acceleration phase of propulsion cases (ship + propeller) when the time step is
defined according to the ship's motion (large time step).

Remarks

l A simple way to control the sub-cycling procedure is to voluntarily limit the number of sub-
cycles to a given value. In this case, one can put a very low value for the target Courant
number. In that case, the sub-cycle Courant number will be approximately equal to the global
Courant number divided by the number of splits.
l If a global time step is too important for a simulation with solved d.o.f., the flow/motion
coupling will become instable. To overcome this difficulty, the quasi-static method should be
used too (see Quasi-Static Approach). This procedure will remain stable even for larger time
steps.
l The association of the sub-cycling acceleration method with the time step law 'Adapted to
Courant number' can be more convenient. In this case, the specified Courant number does not
take into account the sub-cycling process. Indeed, for the velocity/pressure coupling, it can be
a large Courant number (for instance, equal to 100). Consequently, to limit the maximum sub-
cycle Courant number, one can specify a large Target courant number (for instance, equal to
20). The maximum number of sub-cycles should be high enough so that the Target Courant
number can be achieved. In this example, one would set the Maximum number of sub-cycles
to equal to 100/20=5 (actually, it should be bigger than 5 (so here equal to 6), otherwise the
number of sub-cycles will be just at the target or below, leading to a sub-cycling time step too
high to reach the desired value of the sub-cycling Courant number).
l The optimal CPU gain is obtained around 10 splits. Hence more that 10 splits are not
recommended, since the global time steps will be too large and the global convergence will be
too difficult. Besides, the time spent to solve the mass fraction equation will not be negligible
anymore and will lead to a possible saturation of the method.

26.4 EXPERT PARAMETERS

Under the Expert parameters tab of the Computation control/Control Variables page a list of
non-interfaced expert parameters is available. As stated in the interface, these parameters should
not be modified unless explicitly stated in this manual. See the "List of Expert Parameters" (p.
678) for a description and available options.

457 FINE™/Marine 7.1 User Guide


FIGURE 26.12
Expert parameters tab

In addition the Evaluation Of The Gradient is available in this menu to ease the process of
selection. The different possibilities for evaluation of the gradient are:
l STANDARD LEAST SQUARE,
l LEAST SQUARE + WEIGHTING,
l GAUSS METHOD - CORRECTIONS,
l GAUSS METHOD + CORRECTIONS,
l LEAST SQUARE + WEIGHTING + GAUSS.

458 FINE™/Marine 7.1 User Guide


CHAPTER 27.

OUTPUT

This chapter is dedicated to the output available in FINE™/Marine.


A certain number of quantities are automatically output by the FINE™/Marine flow solver. The output
contains the information necessary to make a restart of the computation.
Furthermore CFView™ allows to calculate derived quantities, which limits the memory size of the
outputs. All outputs generated by the solver for CFView™ are written in ".d1.s*" files for scalar
quantities and in ".d1.v*" files for vector quantities. These binary files can then be processed by the
CFView™ visualisation software, which reads the ".cfv" file to determine which quantity is associated
with which file.
The last section summarizes the different backups that is possible to create depending on the objective.

In this section
27.1 Automatically computed variables 460
27.2 Output 461
27.3 Backups 481

459 FINE™/Marine 7.1 User Guide


27.1 AUTOMATICALLY COMPUTED VARIABLES

Some parameters do not need to be specified as outputs in order to be visualized in CFView™.


The following quantities are automatically generated by the flow solver and are therefore directly
available when opening a project in CFView™:
l Relative velocity or Absolute velocity vector
The relative velocity will be computed if the traveling shot option is active for the corresponding
degree of freedom, otherwise, the absolute velocity will be computed. For instance, in case of
resistance applications, with an imposed forward motion in the X- direction, activating the
traveling shot for Tx will create the relative velocity vectors.
l Pressure (normal stress).
This pressure is coming from the flow solver directly and contains the influence of the static and
hydrodynamic pressures where the static pressure is defined as:

l Mass fraction (for a multi-fluid computation).


l Cavitation fraction (if cavitation model is used).
When the Spalart-Allmaras turbulence mode is active, the following additional quantity is also
computed automatically by the flow solver:
l Turbulent viscosity
l Turbulent viscosity ~
l Turbulent viscosity gradient
In case of a computation with the k- ω, EASM or DES turbulence models, the following
additional quantities are computed by the flow solver:
l Turbulent dissipation
l Turbulent viscosity
l Turbulent kinetic energy
l Turbulent frequency
l Turbulent kinetic energy gradient
l Turbulent frequency gradient
In case of a computation with the k-ε turbulence models, the following additional quantities are
computed by the flow solver:

460 FINE™/Marine 7.1 User Guide


l Turbulent dissipation
l Turbulent viscosity
l Turbulent kinetic energy
l Turbulent frequency
l Turbulent kinetic energy gradient
l Turbulent dissipation gradient

These variables do not appear in the output menu because they are automatically generated by the
solver. They are mandatory to make a restart.

If an unsteady computation is selected, the flow solver needs all the previous listed quantities at the
time step T but also at T-ΔT if a second order accurate restart is needed (except the gradients and the
pressure).

For solid wall (with no-slipping boundary or with wall function), the velocity defined at the wall is
not shown, but the extrapolated velocity from the internal cells to the wall. This will allow to check in
CFView™ the velocity distribution near the wall, identify the problematical region when convergence
problems appear, plotting the wall limiting streamline, etc.

27.2 OUTPUT

27.2.1 Interface

Management of outputs in FINE™/Marine is performed through the Computation


control/Outputs page. The interface is divided in four thumbnails referring to different types of
outputs:

461 FINE™/Marine 7.1 User Guide


27.2.2 Motion and Force Variables

This page offers the possibility to prescribe the kinematic parameters to be displayed in the
Monitor (they have no influence on the computation). The page is divided in several sections
described below all related to the degrees of freedom specified in Body Motion menu (see
Degrees of Freedom): translations (including their velocity and acceleration), rotations (with
angular velocity and acceleration).

The selected variables are then saved in the file called MvtBodyName.dat , which is read by the
Monitor.

The last option is dedicated to the frame of the Body force decomposition. The forces and
moments observed in the Monitor can be expressed in the Global frame or in the Body frame of
reference. The moments will be computed on the Reference point if there are no solved motions
or on the Center of Gravityif at least one degree of freedom is solved.
For example:

For the simulation with Solved Trim, where α is the Trim angle.
Note that if half body configuration is used the forces computed by the solver will correspond to
half body.
An example of the Body Motions page is shown on FIGURE 27.1 for a free trim and sinkage
motion with a X-axis forward motion.

462 FINE™/Marine 7.1 User Guide


FIGURE 27.1
Default Body Motion page

If the option Import Convergence History is active in the page Initial Solution, the data will be
accumulated in the file Mvt BodyName.dat every time the computation is restarted.

To avoid singular configurations induced by any classical decomposition of the body orientation by
three successive rotations, the whole kinematics (for the body and for the mesh too) can be described
using quaternion.

Wave making resistance: Definition

Wave making resistance (noted R W ) is a notion different from the outputs that one can find from
the flow solver. To do the correlation with FINE™/Marine, we should write the definition of the
total resistance RT:

463 FINE™/Marine 7.1 User Guide


with RF the viscous resistance (which depends from the Reynolds number), Rf the form resistance
and R W the wave resistance (which depends from the Froude number). Besides, R f = kR F , k
being the form factor.
In FINE™/Marine:

with i = x,y,z (see Forces and moments for more information). Hence, for the component x, R T =
Fx, RF corresponds to FxV and RW+Rf is equal to FxP.
In other words, Fx = FxV + FxP = FxV+ Fx_Form + Fx_WaveMaking
From the above definition: F x P = F x _Form + F x _WaveMaking. But by default we cannot
distinguish.

How to compute the wave making resistance in FINE™/Marine

To know exactly what is the intensity of the wave making resistance, we could do the following
exercise (but time consuming):
l compute the drag D1 for a mono-fluid computation.
l perform the same computation but with the free surface to get the drag D2.
The difference of drag (D2-D1) will give the wave making resistance.

ITTC 57 formula

To verify the experimental data, coming from ITTC 57 formula, one can write as well:

with SDWL the wetted surface, ρ the density of the water and

27.2.3 Probe Variables

Flow variables can be periodically saved on disk during the computation for the post-processing
of unsteady simulations.

464 FINE™/Marine 7.1 User Guide


The menu is not available for steady mono-fluid computations.

Regarding the expected memory usage when there are probes specified for the post-processing,
the following example can be useful.
Several studies have been carried out for the cases with mesh sizes from 3 to 18 Mcells and
volume probes for the mesh, hydrodynamic pressure and mass fraction defined.
It has been noticed, that the relation between the probe size and the number of cells is linear, thus
the following result has been obtained:
l Probe size when non-reconstructed: 0.04 Go/Mcells
l Probe size when reconstructed: 0.27 Go/Mcells
Where "probe size non-reconstructed" is the size of all files needed for the reconstruction (located
in project_name/bxxx folders) for 1 volume probe.
And "probe size reconstructed" is the sum of the "probe size non-reconstructed" plus the size of
all the files created during the reconstruction for 1 volume probe.

Information on probes reconstruction procedures can also be found in the Post-Processing chapter.

A. Surface Probes

FINE™/Marine is able to save surface probes during the computation. The advantage is to use
less disk space and to load them into CFView™ very rapidly. However, saving a surface means
that only this surface will be available: if the surface was not correctly defined, the computation
should be started again. This feature should be preferred for making animations or when the
surfaces locations and types are well known and sufficient for the computation analysis.
In this menu, five surface probe types are present and are described below. They can be removed
anytime by pressing the Remove button.
A common parameter to all surfaces types is the probe interval. Save probe every X
timesteps/seconds: it corresponds to the frequency of the probe saving (Probe interval). It is
possible to choose the frequency in terms of time steps or seconds for unsteady simulations.
By default, the surfaces will be saved in CGNS format (following SIDS standards). This format is
the one that CFView™ will be able to open. But the format can be changed thanks the expert
parameter SurfaceProbeFormat_ (see the List of Advanced Parameters), which gives access to
CGNS (simple or double precision), STL and Tecplot formats.

465 FINE™/Marine 7.1 User Guide


In case of a 2D project, the surface data menu is not available.

Surface probe is based on dual meshes. As a consequence, the corners of a free surface or a cutting
plane can be not calculated and so not represented.

Very small differences can exist between the 2 modes (surface and volume probes) due to
discretization errors. It is advised to use volume probes if the objective is to get accurate values and
surface probes to get just a trend or for pictures and animations purposes.

FIGURE 27.2
Surface data

Free surface

The free surface corresponds to a probe of the mass fraction, equal to 0.5. There is no property for
this surface probe type.

466 FINE™/Marine 7.1 User Guide


This surface is not available if mono-fluid configuration is selected in the Fluid model menu.

For the strong breaking waves cases, the topology of the mass fraction equal to 0.5 isosurface is not a
closed surface. Thus when surface probes are created, holes can be observed.

Isosurface

An isosurface variable must be given together with the desired isovalue. It is possible (but not
mandatory) to give an extra probe variable, whose values are saved on the isosurface to be used
for colouring the isosurface.

Up to five isosurface probes can be defined.

FIGURE 27.3
Isosurface properties

Cut plane

The position of the cutting plane is given with a normal vector (not necessarily of unit length) and
a point on the plane: the Origin. The variable to be saved on the cutting plane is the Quantity. It is
not mandatory to define a body to follow. If selected, the cutting plane moves according to the
body motion. If no body is selected, the plane remains fixed in space and time.

467 FINE™/Marine 7.1 User Guide


Up to five cut plane probes can be defined.

FIGURE 27.4
Cut plane properties

It is not advised to probe on the external boundaries of the computational domain with a cutting
plane: it can lead to an empty file.

Cylinder probe

Position and main particulars of Cylinder probe can be specified by the Origin coordinates X, Y,
Z; Normal vector coordinates; Radius and Height definitions provided int he Properties part of
the menu. The variable to be saved on the Cylinder probe is the Quantity. It is not mandatory to
define a body to follow. If selected, the probe moves according to the body motion. If no body is
selected, it remains fixed in space and time.

468 FINE™/Marine 7.1 User Guide


FIGURE 27.5
Cylinder probe properties

For the better quality of results representation in can be generally recommended to increase the
computational mesh resolution for the probed region to avoid "holes" into the results visualization.

Ellipsoid probe

Position and main particulars of Ellipsoid probe can be specified by the Origin coordinates (X,
Y, Z); Normal vector coordinates (X, Y, Z); Main axis radius and Perpendicular axis radius
definitions depending on the Normal vector specified and provided in the Properties part of the
menu. The variable to be saved on the Ellipsoid probe is the Quantity. It is not mandatory to
define a body to follow. If selected, the probe moves according to the body motion. If no body is
selected, it remains fixed in space and time.

469 FINE™/Marine 7.1 User Guide


FIGURE 27.6
Ellipsoid probe properties

For the better quality of results representation in can be generally recommended to increase the
computational mesh resolution for the probed region to avoid "holes" into the results visualization.

Wall probe

The wall probe allows to save quantities on the body's (or bodies) surface. By default the
Pressure is selected but it can be removed (pressing << button). An other quantities can be
added (pressing >> button). This probe gives access to the "identifier" (see the Identifier section)
of the body (or bodies), which will help to select independently some parts of the solid patches in
CFView™ (useful to compute the forces for instance).

Up to nine variables (called Quantities) can be saved on the body's surfaces.

This surface probe must be used if one would like to see the geometry itself in CFView™. In that
case, just select any quantity from the list.

470 FINE™/Marine 7.1 User Guide


FIGURE 27.7
Wall probe properties

Wall forces probe

This probe replaces the Probe on wall feature from previous versions (before v2.3) and replaces
the wall_data.bin file for 3D computations (indeed, the surface probe is not available for 2D
projects). It saves those variables that are needed to compute the local wall forces as friction and
pressure (the complete set of data is: Fxv, Fyv, Fzv, P and Ci).

Even if this probe is not active, the information will be saved once at least at the end of the
computation anyway, in the file called wall_data.cpr . How to extract the data from this file? Run
post_surface tool from the computation directory, specify that this file should be converted and
choose your format of preference (see post_surface section for more details). CFView™ is able to
read CGNS format.

B. Volume Probes

The available variables for probing are:


l Mass Fraction (Multi-fluid computation only)
l Cavitation Fraction (Cavitation model active)
l Pressure
l Pressure Gradient
l Hydrodynamic pressure (Multi-fluid computation only)
l Velocity
l Vorticity
l Courant Number (Multi-fluid computation only)

471 FINE™/Marine 7.1 User Guide


l Turbulent viscosity (for turbulent models only)
l Turbulent viscosity ~ (Spalart-Allmaras model only)
l Turbulent dissipation (k-ω or k-ε model only)
l Turbulent kinetic Energy (k-ω or k-ε model only)
l Turbulent frequency (k-ω or k-ε model only)
l Helicity
l Second Invariant
l Cavitation fraction
l Correlation R11 (correlations are present for turbulence models only, and defined in section
2.4 of the Theoretical Manual)
l Correlation R12
l Correlation R13
l Correlation R22
l Correlation R23
l Correlation R33
l Blanking

The probes "Correlation R13" and "Correlation R23" are not available in case of 2D projects.

Starting from v2.3, the Mesh probe is not proposed in the list but saved automatically as soon as an
other probe is saved.

Only one input is required:


l Save probe every X timesteps/seconds: corresponds to the frequency of the probe saving
(Probe interval). It is possible to choose the frequency in terms of time steps or seconds for
unsteady simulations or in terms of iterations for steady simulations.

472 FINE™/Marine 7.1 User Guide


FIGURE 27.8
Volume data

The variable will be recorded in a file called: " Nameofthecomputation_probe Nameofthevariable _


Frequency timesteps.cpr"

C. Specific point probes

For this type of probes no reconstruction is required and data collected during the computation
will be stored into the output file "points_probe.dat".
Two different kinds are available:
l Flow probes: probe a flow quantity at a specified location (X, Y and Z). Flow probes can
follow or not the body.
The available variables for probing are:
l Mass Fraction (Multi-fluid computation only)
l Cavitation Fraction (Cavitation model active)
l Pressure
l Dynamic pressure
l Velocity
l Vorticity
l Courant Number (Multi-fluid computation only)

473 FINE™/Marine 7.1 User Guide


l Turbulent viscosity (for turbulent models only)
l Turbulent viscosity ~ (Spalart-Allmaras model only)
l Turbulent dissipation (k-ω or k-ε model only)
l Turbulent kinetic Energy (k-ω or k-ε model only)
l Turbulent frequency (k-ω or k-ε model only)
l Helicity
l Cavitation fraction
l Second Invariant
l Wave probes: probe the elevation at the user specified location (X and Y). Wave probes can
follow or not the body.

FIGURE 27.9
Point probe settings

In 2D:Y- component for the wave probe and Z- component for the flow probe are not available.

474 FINE™/Marine 7.1 User Guide


If a probe is set outside of the flow domain (or inside the Body) a value of 0 is returned. Also, noise
in the signal can be observed in case of wave breaking but it can also lead to 0 values.

The output file content will depend on the choice of quantities and consist of: Time step ("Time"),
quantity names selected ("DYNAMIC PRESSURE 1", for instance), probe number, coordinates of
the point where the probe will be taken (X, Y, Z) and the values itself in columns below the name
of the quantity. An example of the "points_probe.dat" file for the Flow probes can be found
below:
#TITLE =(ISIS-CFD:4.1)
#NI_BEGIN VARIABLES
# NAMES "Time", "DYNAMIC PRESSURE 1", "DYNAMIC PRESSURE 2",
"COURANT NUMBER 3", "COURANT NUMBER 4"
#NI_END VARIABLES
#PROBE NO.
#1234
#VARIABLES
# DYNAMIC PRESSURDYNAMIC PRESSURCOURANT NUMBER COURANT
NUMBER MASS FRACTION
#COORDINATES
# X -0.1515000E+01 -0.1565000E+01 -0.1515000E+01 -0.1565000E+01
# Y 0.1270000E+01 0.1270000E+01 0.1270000E+01 0.1270000E+01
# Z 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00
TITLE ="(ISIS-CFD:4.1)"
VARIABLES = "Time", "DYNAMIC PRESSURE 1", "DYNAMIC PRESSURE 2",
"COURANT NUMBER 3", "COURANT NUMBER 4"
ZONE
0.6169750E-02 -0.2308740E+02 0.8416668E+00 0.7618135E+00 0.2637845E+00
0.1233950E-01 -0.1367866E+02 0.1331418E+02 0.6743206E+00 0.2683083E+00
0.1850925E-01 -0.4243391E+02 0.4275235E+01 0.7456950E+00 0.2675107E+00
...

475 FINE™/Marine 7.1 User Guide


Limitations

l Total number of probes is limited to 99. The type of probe for each of these can be chosen
arbitrarily.
l Velocity and vorticity probes can move with the Body, but the probed velocity will respect the
global non-moving reference frame.

Traveling shot is not available.

For the wave probes, the water height is undefined in the case of overturning breaking waves and
appears to be out of sense in the case of spilling breakers with thick foam zones. For such cases, the
probe value will be noisy and should not be trusted, otherwise than as an indication of wave breaking.
More precisely, agreement with experimental wave probes should not be expected for breaking waves
since these experimental probes also return meaningless signals, but different meaningless ones.

27.2.4 Optional Output Variables

The optional variables list is given below:


l Viscous stress (fluid to wall) (computed only with "No Slip Wall" (p. 195) Boundary
condition)
l Hydrodynamic pressure (Multi-fluid computation only)
l Shear Stress
l Y+
l Courant number
l Vorticity
l Helicity
l Residuals
l Grid quality: non-orthogonality (scalar field representing the non-orthogonality of the current
mesh. (controlled by the FaceReconsGQNORT_ expert parameter).
l Estimated converged cell size
l Second invariant
l Correlation R11 (correlations are present for turbulence models only, and defined in section
2.4 of the Theoretical Manual)
l Correlation R12

476 FINE™/Marine 7.1 User Guide


l Correlation R13
l Correlation R22
l Correlation R23
l Correlation R33
l DES blending function (available only for DES turbulence models (DES-SST, DES-SST-F1
and DES-SST-F2)): function checks where the RANS or LES model is effective; if this
function is equal to 1, it is a RANS model and when this function is greater than 1 it is a LES
model.

The probes "Correlation R13" and "Correlation R23" are not available in case of 2D projects

The "Residuals" variable gives access to several quantities grouped together under a unique name,
depending on the choice of the turbulence model.

The hydrodynamic pressure is computed from the pressure P (normal stress) by the following
formula:

with P hd representing the hydrodynamic pressure and P hs the hydrostatic pressure. The latter is
defined by the formula:

with ρ the fluid density, g the absolute value of the gravity intensity, z the vertical free surface
position and z 0 the initial free surface position. The value of c represents here the analytically
defined value for the volume fraction (connected to the Multi-Fluid model): when ,
and when .
For the hydrodynamic pressure variable output the flow solver uses the dynamic position of the
boat and it is necessary to keep in mind the following specifics, depending on the type of data is
desired:

477 FINE™/Marine 7.1 User Guide


l Output data vs. measurements, when the Reference pressure is calibrated with the boat at rest
conditions, it is the Initial position of the Boat that should be used for this condition
l User defines which value for z should be used: to compare with the measurement data,
interpolating the mesh z value to the value at a face center will provide the appropriate
coordinate

When using the wall_data.bin values for z are available

l To obtain the same result as given by the flow solver, use the center of face value (Zf)
l To compute face center (Xf,Yf,Zf) and face area vector (Sxf, Syf, Szf) from the surface grid,
import the surface data, interpolate the face centered data to node, and output a postprocessing
data

FIGURE 27.10
Optional output variables page

The definition of two output variables is required:


l The helicity, noted He, is defined by:

478 FINE™/Marine 7.1 User Guide


where is the velocity vector and the vorticity vector.

l The second invariant of the velocity gradient, noted Q, can be computed as:

where Si j = (U i, j + U j,i )/2 is the symmetric part - rate of strain and Ω i j = (U i, j - U j,i )/2 is the
non-symmetric part - rate of rotation.
As a remark, to get a dimensionless quantity Q* from Q, we can write:

l Estimated converged cell size: vector field which gives the expected cell sizes in a converged
mesh, in X, Y and Z-direction, based on the current refinement criterion and threshold from
the adaptive grid refinement technique. This field can be computed every time a solution is
saved. More information can be found in the chapter "Analysis of the refinements" (p. 420).

27.2.5 Mean Flow Variables

A mean flow variable corresponds to a time average output for the whole computation. They are
computed by a trapezoidal rule. The list of available quantities is given below:
l Mass fraction (Multi-fluid computation only)
l Pressure
l Viscous stress (fluid to wall) (computed only with "No Slip Wall" (p. 195) Boundary
condition)
l Hydrodynamic pressure (Multi-fluid computation only)
l Velocity
l Vorticity (DES computation only)
l Helicity (DES computation only)
l Passive scalar (when Passive scalar is active)
l Second invariant (DES computation only)
l Turbulent viscosity (Turbulent computation only)
l Turbulent viscosity ~ (Spallart-Allmaras computation only)
l Turbulent dissipation (k-ω or k-ε computation only)
l Turbulent kinetic energy (k-ω or k-εcomputation only)

479 FINE™/Marine 7.1 User Guide


l Turbulent frequency (k-ω or k-ε computation only)
l Cavitation fraction
l Correlation R11 (correlations are present for turbulence models only, and defined in section
2.4 of the Theoretical Manual)
l Correlation R12
l Correlation R13
l Correlation R22
l Correlation R23
l Correlation R33

The probes Correlation R13 and Correlation R23 are not available in case of 2D projects.

Cavitation fraction mean flow variable is not available for the Steady monofluid computation.

Mean flow variables for rotating domain do not have a physical sense since the average is performed
in time but also in space (cells are rotating but not necessarily the flow). In such case, only
computations with "Rotating frame method" (p. 277) would provide relevant information.

480 FINE™/Marine 7.1 User Guide


FIGURE 27.11
Mean flow variables page

27.3 BACKUPS

When a project is finished, it is usually time to back it up. Depending on the available back-up
space, several options are outlined.

Minimum number of files

From the _mesh folder, only keep the files to be able to generate the mesh in HEXPRESS™. The
extension of these files are .igg, .dom and .bcs. For the settings of the computation, only keep the
.iec file located in the project directory. Within these files, no results are saved.
A minimal backup containing these files can be created from the graphical interface using
Project/Create minimal backup.

481 FINE™/Marine 7.1 User Guide


Necessary files for post-processing only

One may also want to keep files only for a future post-processing (comparison, verification,
etc...). In that case, in the simulation directory, the following files should be kept to visualize the
integral quantities in the Monitor:
.res, eff_*.dat (18 files: pressure, viscous and total for 3 forces and 3 moments), Mvt_*.dat
If one also wants to keep the CFView™ result, the following files in the simulation directory need
to be saved (for single domain simulations):
.cfv, .d1.s*, .d1.v*, if present: .hex, .bcs. Also keep the files from the _mesh folder.
In case of Overset computations, the .blanking file is also necessary for CFView™ visualization.

Necessary files for a restart only

For a restart, one can delete all the files dedicated to CFView™ (see previous section). It is not
recommended to delete any other file.

Necessary files to run the wake flow tool in CFView™

More information about this post-processing tool can be found in Wake Flow Tool description of
the CFView™ manual.
l Faces file (faces_original.cpr) in the _mesh folder.
l Nodes file of the final position of the ship ( nodes_ original.cpr in the _ mesh folder or
projectname_ computationname_ nodes.cpr in the computation directory in case of mesh
deformation).
l projectname_computationname_vel.cpr in the computation directory.

482 FINE™/Marine 7.1 User Guide


CHAPTER 28.

MONITORING AND LAUNCHING MODE

This chapter is dedicated to monitoring and launching mode.


Using the Solver menu in FINE™/Marine, sequential or parallel computations can be started,
suspended or killed. For basic task management the menu items are sufficient. For parallel
computations, the Task manager menu offers the possibility to control the tasks to perform including
different computations or different tools of the FINE™/Marine chain (see Task Manager).
Advices are here provided on how to select a sequential or parallel computation and how to use the
monitoring tool for analysing the progress of a computation ( Monitoring).

In this section
28.1 Launching Mode 484
28.2 Computation End 485
28.3 Monitoring 487

483 FINE™/Marine 7.1 User Guide


28.1 LAUNCHING MODE

Once the settings of the computation are correctly defined, it is strongly advised to save the
project and the computation before starting to run the computation. See Main Menu Bar to know
how to save the project and the computation.
It is then possible to start the computation by clicking on the Start button (Serial is selected by
default).

FIGURE 28.1
Launching mode menu

The sequential mode concerns the computations with a relative small amount of cells. They can
be launched directly through the FINE™/Marine interface. On the contrary, for parallel
computations, the interface automatically switches to the Task Manager page (see Parallel
Computations) and allows to define the parallel computation settings.
Once these operations are done, the computation is starting and a new window pops up: the Task
Manager window . It contains the evolution of the status for the current computation. The
iterations (or time steps) can be followed and as well as all information related to the computation.

This output is stored in the ".std" file.

At the bottom of the Task Manager window a Refresh Rate can be chosen. This rate determines
how frequently the Task Manager window is updated. A higher refresh rate will update the
information in the window more frequently but will use more of the available CPU.

484 FINE™/Marine 7.1 User Guide


FIGURE 28.2
Task Manager information window

When quitting the FINE™/Marine interface, all the message windows will remain open and the
tasks will continue. Closing a message window will immediately kill the corresponding
computation.
It is then possible to check to convergence history. This information is stored in the convergence
history file ".res" and can be easily visualized with the Monitor (see Monitoring).

28.2 COMPUTATION END

At the end of a computation (or just a task, see Task Definition for the definition of a task), the
interface pops up a window called "Task Manager Info". This window contains information
about the performed tasks, giving the following information:

485 FINE™/Marine 7.1 User Guide


l computation path,
l computation name,
l pre-processing status (if selected),
l solver status (if selected),
l post-processing status (if selected).
The status are the same as in the Task Manager menu, in the section where the tasks are selected
(see Task Definition).

FIGURE 28.3
Task Manager information window

In addition, this pop up gives the opportunity to check the reason why a task failed. In the
example below, the flow solver crashed. The ".std" file of the computation can then be opened
directly in the pop up.

486 FINE™/Marine 7.1 User Guide


FIGURE 28.4
Task Manager information in case of task failure

28.3 MONITORING

The Monitor™ can be launched as an external tool, with the command monitor -niversion
marine# where the # is the version of the software or directly from FINE™/Marine interface by
clicking on the Start Monitor button in the main icon bar.

487 FINE™/Marine 7.1 User Guide


FIGURE 28.5
Global overview of the Monitor™

It is also possible to directly open one or several residuals files from the command line using the
command monitor -niversion marine# path_to_res1 path_to_res2 where path_to_res# indicates
the full path of the residual files to open immediately.

The Monitor™ features can be used in on-line (during the simulation) or off-line (after the
simulation) mode to control the following items for one or several computations:
l the evolution of motions variables, forces, and momentum for the bodies and/or sub-bodies
l the choice of units to be used for results representation
l the range of values to be presented.
FINE™/Marine allows multi- computations analysis. Therefore, the convergence histories of
multiple (running or not) projects can be visualized at the same time. It is also possible to compare
the convergence history associated with different computational parameters for the same project.
The monitored variables are displayed as a x-y graph in the upper part of the window. The x-axis
represents the number of non-linear iterations or time steps computed by the flow solver. For the
y-axis, it is possible to display the residuals as well as motions variables, forces, and moments. In
this graphical section, the user can interactively zoom in and out according to the following
actions:

488 FINE™/Marine 7.1 User Guide


1. Press the left mouse button to initiate a zooming operation,
2. Drag the mouse to the left or to the right to zoom in, the zooming window number is displayed
on the screen,
3. Click again on the left button when finished,
4. To zoom out (the previous zoom level), click on the right button of the mouse.
The lower part of the graphic control window contains several frames which will be described in
the next sections. The central lower part next to the logo contains a Print button (which allows to
save the current graph as a postscript file) and a Quit button to exit the Monitor™.

28.3.1 Residual file

This box contains the list of loaded computation residual files. Two buttons are provided in this
box to Remove or Add residual files through a file chooser. The residual files .res describe the
iteration process of previous or current computations.

When opening the graphic control window, the residual files associated with the running applications
is automatically active.

Monitor™ will also load the Mvt_bodyname.dat and eff_*.dat files from the same computation
directory to visualize motions variables, forces, and moments (see "The eff_*.dat files" (p. 575)
section for their description). For each computation, the user will have the possibility to control
these different quantities depending on the type of simulation and the structure of bodies.
It is possible to make a multiple selection with the Shift or Ctrl key to select several files to display
Quantities unless the selected computations have a different structure of quantities. A different
structure means that available bodies and associated quantities differ between computations.
If several computations are performed at the same time, the curves associated with the different
projects are drawn in different colors. The buttons for the quantities to display act only on the
curves of the file selected through the Residual file menu.
If the loaded results belong to the running computation the Update now button will reload the
latest results of the running computation. The check box Auto update will set this procedure to
be done automatically each time step of the computation.

489 FINE™/Marine 7.1 User Guide


28.3.2 Display options and Units

Display options

This part of the Monitor™ controls the way results will be represented.
l The check box for the Legend will show or hide the naming of the corresponding
computation results file in the graphical area.
l Activating Log scale check box is available only for the Residuals history and activates a
logarithmic axis representation for these residual values.
l Time span allows to select the time range for the quantity defined with time (second). Here
the first entry set the minimum values, second - the maximum. If some will be left blank (as by
default), quantities will not be limited from the corresponding side.
l Iterations limits the range for quantities defined per solver non linear iteration. The two entries
act as for the Time span.
l The Update now button updates the graph for the active residual file and the selected block.
l The Auto update option can be checked on to follow the iteration processes automatically.
This button is not active by default.
l The Draw average of last X [%] option can be checked to draw the average value of the last
X % of time steps/iterations in the graphical area.

If the data range is limited using Time span or Iterations fields, X % is still computed from the
original data and not from truncated ones.

Only Motions, Forces, Moments and User defined plots are supported for the averaging option.

Units

Within this section the choice of Units is providing the opportunity to set the Metric, Angle and
Speed units to be used for the quantities representation. Defaults are corresponding to the SI
metric system, by switching between choices it can be customized to Feet, Degrees and Knots
and available for the Motions tab of the Quantity to display menu. Following the general logic,
Knots can be applied to only Vx, Vy and Vz; Degrees to Rx, Ry, Rz; Feet to Tx, Ty, and Tz.
Behind the selection, the following formulas has been used for the units conversion:
1 m = 3.2808399 ft
1 rad = 180 grad/pi = 57.295779513 grad

490 FINE™/Marine 7.1 User Guide


1 m/s = 1.94384449 Kt

28.3.3 Structure of bodies

In the Structure of Bodies, the current body/ sub-body can be selected to visualize the results of
the finished or running computation. Names of sub-bodies will follow the names given through
the Bodies and sub-bodies definition menu (see the "Body Definition" (p. 215) section for how
to define the sub-bodies).

FIGURE 28.6
Bodies with sub-bodies selections in the Monitor™

The option to choose several bodies/ sub-bodies at the same time and select a quantity for them
simultaneously (multi-bodies curves plotting) allows user to compare curves between bodies/ sub-
bodies within the same project as well as between different projects.

If one selects Motions as a quantity type, all the sub-bodies become disabled for selection.

491 FINE™/Marine 7.1 User Guide


Selecting Residuals as quantity type disables the selection of any body/ sub-body due to the fact that
residuals are not related to bodies/ sub-bodies.

Curves for bodies within the same project will be distinguished by a tag at the end of the curves and
special markers (symbols) on the curves. These markers can be circle, triangle, diamond, square, etc...

If the project includes sliding patch(es), the Quantities to display will only give access to the
Motions page with the name Sliding_patches_# .
It is also possible to monitor the virtual bodies. For such projects the Structure of Bodies menu
will include the list of existing virtual bodies with names as Virtual_body_#. Only the Motions
page of the Quantities to display will be accessible. Details on how to create a sliding grid or a
virtual body can be found in the "Mesh Management" (p. 267) section.

28.3.4 Quantities to display

Residuals

Availability of residuals to display depends on the type of calculation. If one residual quantity is
not available in the project output files, the corresponding checkbox will be disabled in the
interface.
One can select among the following Residuals:
l ResU, ResV, ResW (velocity components)
l ResP (pressure)
l ResK, Resω, Resε, Resνt (turbulence data, see Uniform Values for their definition)
The flow solver computes the residuals with the L2 norm during convergence:

with Resi the residual in the cell i .


The Monitor offers to possibility to display the logarithmic law of the Residuals, which means
Log(RES).

492 FINE™/Marine 7.1 User Guide


In the Task manager window while running a computation, or in the ".std" file, information
about residuals can also be found. "GAIN IN NL RESIDUAL" is defined by the ratio between
the initial and the final residual for the non linear iterations:

with

For the other information, let's consider the example below from the ".std" file:
>>> ??? GAIN IN NL RESIDUE : 0.14E+02
>>> CONVERGENCE SPEED : 0.23E+00 ORDERS/ITER.
>>> 5 ITERATIONS FOR 0.11E+01 ORDERS
Once the "GAIN IN NL RESIDUE" is known, its logarithm to the basis 10 yields the value on
the third line (0.11E+1), whereas the convergence speed is this value divided by the number of
the non linear iterations (5 in this example).

Forces and Moments

Forces and Moments quantities are potentially available for the simulation (it depends if at least
one body has been defined in the interface, see Body Definition). If the quantity is not available in
the project output files corresponding checkbox will be disabled in the interface.
Forces and moments values are stored in the eff_*.dat files. They contain the information about
the global fluid forces and moments for each body and sub-body. If a half-body configuration was
used the forces for half body will be outputted. The moments will be computed on the Reference
point if there are no solved motions or on the Center of Gravityif at least one degree of freedom
is solved.
"F" represents the forces, "M" the momentum, "V" the viscous forces and "P" the non-viscous
forces (also called pressure component). For instance, "eff_FxV.dat" corresponds to the viscous
forces applied on the body along the X-axis.
The main relation for each component is: ,
An other expression is: ,

The suffix "Dyn" means that there is a correction of the quantity to exclude the hydrostatic
pressure (see Optional Output Variables for its expression).

493 FINE™/Marine 7.1 User Guide


Fz_dyn is defined as Fz_dyn = Fz - Fz_pressure, where Fz_pressure is the integration of the pressure
defined by p=rho*g*z. z here is defined in the dynamic position, hence is different from the
Hydrostatic value (which is defined with the free surface at rest). In consequence, this Fz_dyn doesn't
have a real physical interpretation.

Motions Variables

Motions variables are only related to bodies. If the quantity is not available in the project output
files, the corresponding checkbox will not be present in the interface. Names of the variables
depend on the Cardan Angle activation (see Body Motion) and on the selected outputs in the
Output menu (described in Outputs). They are defined in the Degrees of Freedom section. For
instance, "Tz0" represents the evolution of the translation of the center of gravity of the body
along Z-axis in the initial frame of reference.
The Monitor™ includes the possibility to display body motion relative to the center of gravity (if
no center of gravity is defined in the computation settings, these checkbox will not be visible). In
such case, the Monitor™ presents checkboxes both for the original motion and its relative
counterpart in Motions. The relative motion checkboxes are named by adding "rel" to the motion
name.

FIGURE 28.7
Motion quantities

The Monitor™ reads the "body_ param.dat" file to define the relative motions in addition to the
"Mvt_bodyname .dat" file.

Unsteady Forces and Moments

The convergence of the Forces and Moment can be displayed for all the nonlinear iterations.

494 FINE™/Marine 7.1 User Guide


Unsteady Forces and Moments values are stored in the same eff_*.dat files as Forces and
Moments when an expert parameter SaveConvEfforts_ is set to "YES" in the Control variables
menu Advanced page, except for that unsteady values are marked by a negative time step. In the
Monitor™ Unsteady forces and Unsteady moments will appear as a separate Quantities page if
available in the computational results.

Amplitudes

For the computations applying the "Modal approach" (p. 353) Amplitudes of the generalized
displacement for each Mode calculated during the simulation will be available for the display.
The generalized displacement is giving the "weight" with which the Mode participates in the
global structure deformation. Quantities available are: "Amp_M1", "dAmp_M1", "d2Amp_M1"
meaning Amplitude of deformation, and its time derivatives. Results are taken from the motion
file: "Mvt_ bodyname.dat" stored for each fluid- structure interaction (FSI), naming Modal
approach computation type.

Actuator disk

The choice for Actuator disk is only present when an actuator disk with open water data is used
in the simulation, more information are available in the "Actuator Disk" (p. 289) menu. Hence,
the Monitor™ offers the possibility to display quantities such as the thrust, the torque and the
active fraction, for each actuator disk. Results are read from the actuator disk file: "eff_AD.dat"
created by the solver (the format is described in "Files Produced by the FINE™/Marine flow
solver" (p. 573)).

495 FINE™/Marine 7.1 User Guide


FIGURE 28.8
Actuator disk quantities

When the tangential force is not activated, the quantity Q and Kq are not displayed.

User defined plots

When the user chooses User defined plots, the list of plots is shown below with buttons Add,
Edit and Remove to manage these plots.

496 FINE™/Marine 7.1 User Guide


FIGURE 28.9
User defined plots

The user can add plots using the button Add and they will appear in the list. Each plot has the
associated checkbutton to control the plot visibility. When adding the plot, the user needs to
specify the plot formula in the dialog Add user defined plot.

FIGURE 28.10
Formula definition area

Pressing Help for syntax button shows the help for formula syntax to remember all the
possibilities and limitations offered by this feature.

497 FINE™/Marine 7.1 User Guide


FIGURE 28.11
Formula syntax help

Regarding the list of quantities, all motions, forces and moments are added as "QUANTITY_
BODY" where QUANTITY is the quantity name as it appears in the Quantities to display,
BODY is body or sub-body name as given in the Structure of bodies. Additionally the time unit
"t" is added to the list of quantities.
Plots defined in User defined plots are shown not only when that tab is active, they are shown
for other tabs too ("global" plots). To hide such a plot the user can uncheck it in the list or
completely remove it clicking on the button Remove.

If the formula cannot be evaluated (syntax error or undefined variable, for example), nothing will be
shown in the plot area.

The expression evaluator does not check the consistency of units. For this reason the units are not
mentioned in the plot for user defined functions.

Relative motions are not available in this list of quantities and thus they cannot be used inside
the formula as variables.

The structure "QUANTITY_BODY" does not allow spaces in BODY part.

498 FINE™/Marine 7.1 User Guide


Here is an example to Monitor™ the change of application point to write the moments for each
component at a different point than the Reference point or the Center of gravity defined in "Body
Motion" (p. 222)menu. Let's consider a resistance simulation of a ship called "vessel" with free
trim and sink. We want to have the moments at a point "a" from a distance AC from the center of
gravity "c". The point "a" is located in the XZ symmetry plane, such that there is no Y-
component. At the beginning of the simulation, we know that AC.x=d1 , AC.y=0 and AC.z=d2.
The ship is going to the positive X-direction.

Hence, here is the formula to prescribe for the Y-component of the moments:

Show user data

When Show user data check box is enabled, the Monitor™ displays quantities from the file
"user_data.csv" stored in the computation folder of the opened simulation. If the file is not present
or the Monitor™ could not extract any data from it (wrong format, wrong name, wrong file
permissions, etc.) , the check box becomes disabled. In a case of user mistake (wrong syntax of
user_data.csv), the user needs to correct the file and reload .res file (pressing Update now button
will not enable Show user data again).

499 FINE™/Marine 7.1 User Guide


FIGURE 28.12
Show user data option

The format of the file is described here below:


Time [unit] // Quantity1 [unit1] // Quantity2 [unit2] // ... // Quantity_M [unit_M]
t1 // x11 // x12 … x_1M
t2 // x21 // x22 ... x_2M

t_N // x_N1 // x_N2 … x_NM
“//” depicts Tab character here. The first line contains names of quantities with their units. Units
can be omitted (in this case square brackets can be omitted too). Both quantity names and unit
names can include spaces.
Each following line of the file corresponds to a specific time step/ iteration. It lists values for each
quantity at this time step/ iteration. The list is delimited by Tabs here.

Example

Time [s] A [m] B [m/s]


0 1 -1
0.1 1.2 -0.75

500 FINE™/Marine 7.1 User Guide


0.2 1.3 -0.1
0.3 1.1 0.04
The Monitor™ draws a curve for each available user quantity. X-coordinates are taken from the
first column of the file, Y-coordinates are from the other columns.
The final values of each curve are displayed in bold, as for regular quantities, with the syntax:
Quantity: value unit.
Settings from the Units frame do not affect these curves (since units in user_data.csv file can be
totally different). On the other hand, restricting time range in Display frame works for these
imported quantities. The axis label Time [s] or Non-linear iterations depends on the computation
itself and not on the time unit specified in user_data.csv. Therefore it is suggested for the user to
put the correct units into user_ data.csv , otherwise restricting time range would work in an
unintuitive manner.
If the user has changed the file, pressing Update now button will update the values. Activating
Auto update check box will read user_data.csv repeatedly.

501 FINE™/Marine 7.1 User Guide


CHAPTER 29.

CONVERGENCE CHECKER

FINE™/Marine suggests a particular dynamic library which allows to control the solution convergence.
Named Convergence checker is based on the behavior of a ship or on the stability of the flow and
provides adapted approach for the numerical solution control. This chapter then describes how to track
the convergence and automatically stop the computation when necessary applying provided withing the
Convergence checker functionality.

In this section
29.1 introduction 503
29.2 Criterion and configuration file 503
29.3 Library structure and compilation 505
29.4 Output 506
29.5 Examples 507

502 FINE™/Marine 7.1 User Guide


29.1 INTRODUCTION

Two methods can be used to stop a computation:


l define a maximum number of time steps,
l define a convergence criterion based on the Residuals history.
However, none of them are efficient enough for the free surface applications in which the notion
of time is important. Indeed, the residuals criterion can only be used at each time step and the
maximum number of time steps is typically set to be large enough to avoid that the simulation
stops too early. But most of the times, this is not obvious and not efficient to keep the computation
running for more time steps than strictly necessary.
A first criterion has been developed for monofluid and multifluid simulations with forward
Imposed motion only, without Solved motion. This is typical for applications like hydrofoils or
ship resistance calculations without solved trim and sink. Although this criterion is not prevented
to be used for any kind of simulation its success is not guaranteed.

Current limitations:
l Not dedicated to fully unsteady simulations like sea keeping, cavitation, etc.
l Incompatible with steady monofluid simulations (but compatible with unsteady monofluid
simulations).
l A maximum of 10 000 last time steps are recorded in the library. Once the limit is reached,
the average and relative errors are computed over the last 10 000 time steps.

29.2 CRITERION AND CONFIGURATION FILE

This section describes how the convergence criterion works and how to define the configuration
file. The dynamic library called isis_dynamic.so that contains the convergence checker can be
found in _ data/isis/dynamic_ lib/Convergence_ checker of the installation folder (then under
linux64 or win64 depending of the operating system). This library should be placed inside the
computation folder together with the configuration file called convergence_checker.input that
the user must create.

Convergence criterion

The library stops the computation when the two following conditions are met:

503 FINE™/Marine 7.1 User Guide


1. Ax (acceleration along the x-direction) is zero during the last X% of time steps.
2. The relative error between the last X% of time steps and the reference value is below Y% for
each selected quantity.
The formula for the relative error is given by:

where time step number i runs across last X% of time steps, qi is the quantity value at time step i,
the reference value a is the average of the last Z% of time steps.
The quantity qi is considered converged when ε < Y%.

Configuration file

The file convergence_ checker.input should be placed in the computation folder with the
following structure:
STABILITY INTERVAL X
AVERAGE LAST Z
TOLERANCE Y
CHECK QUANTITIES list of quantities
CHECK AFTER N

The lines can go in arbitrary order but the keywords are case-insensitive.

If the line is omitted, a default value is used.

Values for X, Y and Z are given as real numbers per cent but without per cent sign. N should be an
integer number.

STABILITY INTERVAL represents the stability interval computed by the last X% of time steps,
during which the averaged quantities should be less than the tolerance.
AVERAGE LAST represents the percentage of the last time steps to compute the averaged value
for all quantities defined in CHECK QUANTITIES.

504 FINE™/Marine 7.1 User Guide


TOLERANCE is the value under which the quantity is considered as converged compared to its
averaged value.
By default X = 10%, Y = 1% and Z = 0% (average of last 0% is the very last time step value).
CHECK QUANTITIES: list of the quantities to check by the convergence checker from the
following list: Tx, Ty, Tz, Vx, Vy, Vz, Ax, Ay, Az, Fx, Fy, Fz, Mx, My, Mz. The names can be
separated by spaces or commas. Example: CHECK QUANTITIES Fx, Mx
In order to avoid pathological cases in the very beginning of the simulation when X% is actually 1
or 2 time steps, the convergence check is not done from the very beginning of the simulation, but
only starting from the time step number N, which is 30 by default. This number is also
configurable through the mentioned above file using the line CHECK AFTER N .
The last two lines that the library accepts from the configuration file are EPSILON and
VERBOSITY. The first one is used to specify the absolute error for checking condition 1 of the
convergence criterion (1.0E-8 by default) and the second one specifies the verbosity of the library
(1 by default). Higher verbosity will give more output from the library. Verbosity 2 gives more
information, 3+ is for debug output.

29.3 LIBRARY STRUCTURE AND COMPILATION

This section is dedicated to users who wants to check or extend the capabilities of the
convergence checker for other applications, or simply to add the convergence checker to another
dynamic library to use them both at the same time.

Structure

The library consists of four Fortran source files and a supplementary shell script to help to compile
it, all stored under _data/isis/dynamic_lib/Convergence_checker. These four files are:
l computation_control.f90,
l solver_quantities.f90,
l session_module.f90,
l logging.f90.
In terms of Fortran, computation_control.f90 contains the external procedure and the other three
files are modules. computation_ control.f90 contains the dynamic library subroutine
computation_control itself that is called by the flow solver. The responsibility of this code is to:

505 FINE™/Marine 7.1 User Guide


1. initialize library data structures on the first call,
2. pass the data from the solver to those data structures on next calls,
3. stop the solver when the convergence is reached.
solver_ quantities.f90 implements general data structures. These are represented as Fortran
derived types.
session_ module.f90 implements the convergence logic. It contains the session type which
corresponds to the library state between computation_control subroutine calls.
logging.f90 is the supplementary module to simplify error reporting. Its functionality is used in all
other files.

Compilation procedure

The library comes with two scripts build and build.bat to help with compiling the library from its
source. The first script uses GNU Fortran compiler and dedicated for Linux. Compilation was
tested with GNU Fortran 4.8.5 and 4.4.3. The second script uses Intel Fortran and dedicated for
Windows. Compilation was tested with Intel Visual Fortran 12.0 compiler.
When compiling, the directory obj is created near src directory. It can be deleted after successful
compilation. The result of the compilation is the single file called isis_dynamic_lib.so on Linux
and isis_dynamic_lib.dll on Windows and should be placed in the computation folder.

29.4 OUTPUT

The library prints several pieces of information in the .std file of the computation (and hence
visible in the Task Manager information window while running the simulation through the
graphical user interface) to inform the user about the settings that will be used and the current
status of the convergence check:
l Before the first time step, the library gives the settings that will be used.

506 FINE™/Marine 7.1 User Guide


l During the simulation, the library give the status of the checks. A variable can be "converged"
or "not converged".

l When all checks indicate that the simulation is converged, the library reports it as well and
stops the simulation.

29.5 EXAMPLES

Here is an example of a convergence_checker.input file for hydrofoil simulations:


STABILITY INTERVAL 20
AVERAGE LAST 0
TOLERANCE 0.1
CHECK QUANTITIES Fx, Fz, Fy, Mx, My, Mz

507 FINE™/Marine 7.1 User Guide


CHECK AFTER 100

508 FINE™/Marine 7.1 User Guide


CHAPTER 30.

TASK MANAGER

Using the Solver menu in FINE™/Marine, computations can be started, suspended or killed. For basic
task management these menu items are sufficient.
The Task Manager provides more advanced features for the management of (multiple) tasks. It
allows the user to manage tasks on different machines on a network, to define parallel computations or
to delay tasks to a given date and time.
Before using the Task Manager for the first time it is important to first read the limitations as listed
below and the next section. This section provides important information for getting started with the
Task Manager . The user should read this section carefully to fully benefit of the capabilities of the
Task Manager .
From FINE™/Marine the Task Manager can be accessed by clicking on the Switch to TASK
MANAGER button on the main icon bar. The interface, as shown in FIGURE 30.3, will appear.
The Task Manager Interface is described in detail including a description of all its capabilities.
Task management through the use of scripts is also possible and has the benefit that it is not necessary
to remain logged on to the machine on which the tasks are launched. See the Task Management Using
Scripts section for more detail on the scripts to use to launch NUMECA software.

Limitations
The task manager have some limitations due to the current PVM and MPI libraries:
l UNIX to PC or PC to UNIX connections are not allowed.
l When a user launches FINE™/Marine on different machines, the connection between these
machines is not allowed.

In this section
30.1 Getting Started 510
30.2 The Task Manager Interface 516
30.3 Parallel Computations 522
30.4 Task Management Using Scripts 533

509 FINE™/Marine 7.1 User Guide


30.1 GETTING STARTED

The PVM Daemons

The Task Manager is based on the PVM library. It allows FINE™/Marine to control processes
and the communication between processes on all the machines available to the user. PVM works
with a virtual machine managed through a pvm daemon. In this section the way the PVM
daemons work and their limitations under Windows are described.

What PVM Daemons Do

If a user starts the FINE™/Marine interface on a given computer where no PVM daemon is
running, FINE™/Marine will automatically start the process 'pvmd' on this machine that becomes
the virtual machine server for the user. When adding a host in the Task Manager(on the Hosts
definition page) a 'pvmd' is started on the remote computer and this machine is added to the
virtual machine. If the user now starts FINE™/Marine on this second computer the host list will
contain the original machine on which the 'pvmd' was first started. The original machine remains
the server for all the associated virtual machines.
If the user logs on a third computer on which no pvmd is running and starts the FINE™/Marine
interface, FINE™/Marine will start a 'pvmd' on this machine and this will become the server of a
new virtual machine. If the user attempts to add a machine already controlled by a different virtual
machine (for example contained in the list controlled by machine 1), he will see the message "can
not connect the virtual machine".
If the user wants to have the three computers in the same virtual machine, one of the virtual
machines servers must be shut down (on the Hosts definition page) and this machine can then be
added to the existing virtual machine.

Limitation under Windows

On Windows, only one pvmd can run and therefore, only a single user can connect to the virtual
machine. If another user wants to use the NUMECA software on the PC as server
(FINE™/Marine) or as client (CFD flow solver), the first user must shut down the pvm daemons
on this machine. To shut down go to the Hosts definition page and click on Shutdown. This will
close the interface and removes all the pvm daemons on the machine. Remove the files
pvml.<userID> and pvmd.<userID> from the directory defined by the PVM_TMP (by default
C:\tmp).

510 FINE™/Marine 7.1 User Guide


Multiple FINE™/Marine Sessions

During a FINE™/Marine session all the tasks defined by the user are stored in the "marinetasks"
file in the NUMECA tmp directory. This is the ".numeca/tmp" directory in the home directory of
the user. On UNIX the home directory corresponds to the HOME environment variable. This is
also true on Windows if this variable is defined and, if it is not the case, it is set to the
concatenation of HOMEDRIVE and HOMEPATH environment variables.

On Windows, the home directory can not contain white spaces: if the HOMEPATH variable of the
user contains white spaces, a HOME variable must be defined corresponding to a directory that does
not contain white spaces.

By default the NUMECA tmp directory is defined as TMP_DIR = {HOME}/.numeca/tmp. To


modify this, the environment variable NI_TMP_DIR needs to be defined with the desired location
manually.
When FINE™/Marine is started more than once using the same virtual server, it can cause
conflicts with the other FINE™/Marine sessions. For example, the user can define tasks in both
interfaces but the task definitions saved when exiting FINE™/Marine can be overwritten by the
other sessions. Therefore, it is not advised to open multiple FINE™/Marine sessions when the
Task Manager is used.

Machine Connection from Linux Platforms

The Task Manager allows the user to control processes on all the machines connected to the
network. The rsh command is used by the PVM library to access the machines. Before using the
Task Manager, the following actions must be done:
1. Modify the ".rhosts" file in the home directory in all the machines which can be used by the
Task Manager. i.e.: if the machines machine1 and machine2 will be used by the users tasks
from machine_master, the file in machine1 and machine2 must be modified as follows:
line1: machine_master <login1>
where machine_master is the host name. login1 is optional. If the login on machine_master is
different from login1, the user in machine_master will be asked to supply a password when
connecting to machine1 and machine2.
The rhosts file needs to be ended by a blank line.
The file permission must be set to 'rw' (on UNIX: chmod 600 ~/.rhosts).
2. Test the rsh command on the desired machine: an external check that the ".rhosts" file is set
correctly is to enter the following command line:

511 FINE™/Marine 7.1 User Guide


rsh remote_host ls <Enter>
where remote_host is the name of the machine to connect to. If the login on the remote host is
not the same, ensure that the ".rhosts" file contains the line:
remote_hostlocal_login
and in this case the command line is:
rsh remote_host -l local_login ls <Enter>
If the rhosts file is set up correctly, a listing of the files is shown on the remote host.

Due to a limitation of the PVM library, FINE™/Marine can not be connected to a machine where
FINE™/Marine has already been started. When PVM tries to establish the connection, it detects that a
FINE™/Marine server is already running and/or pvm daemons are still running and refuses the
connection. To solve this problem, the PVM daemons must be stopped on the machine on which
FINE™/Marine must be connected.

When having PVM problem, here is the procedure to stop PVM daemon:
1. Log on the machine where the connection must be established.
2. Start FINE™/Marine and open the Task Manager and use the button Shutdown of the page
Hosts Definition. The button Shutdown can be used to stop all the PVM daemons of all the
machines connected to this FINE™/Marine virtual server. This action will stop all the
daemons on all the machines connected, kill all the tasks and exit FINE™/Marine.
3. On UNIX: remove all the /tmp/pvmd.<userID> and /tmp/pvml.<userID> files. Under
Windows these files should be removed from the directory defined by PVM_TMP (by default
this directory is C:\tmp).
4. Repeat this operation for all the machines on which the problems appear.
5. If PVM still has a problem obtaining a connection, it will print an error message either to the
screen, or in the log file /tmp/pvml.<userID>. Please send this log file to our local Support
office.

All these operations apply only to the user's daemons and user's files. Multiple users can use the Task
Manager simultaneously. There is no interaction between the PVM daemons and the PVM log files
of different users.

The Task Manager does not allow the user to launch processes from a UNIX platform on a Windows
platform.

512 FINE™/Marine 7.1 User Guide


Machine Connection from Windows Platforms

When a user stops the pvmd on a remote host (using Remove Host button on the Hosts Definition
page) and immediately try to restart it (using the Add Host... button), a message will appear stating
that it is not possible to connect. This problem does not occur in general since there is no need to
remove a host and add it immediately after. When it occurs the only solution is to wait until the
host is available again (after 5 to 10 minutes).
From time to time, when a user tries to connect on a remote host, an error message can appear
very briefly: "Can not connect to RSH Port!!!". This may happen on a Windows machine
connecting to a host, disconnecting, and trying to reconnect again to the same host. This will stop
the FINE™/Marine interface. Windows contains a socket release time parameter which keeps the
connection for some time.

Machine Connection from Windows to Linux Platforms

The Task Manager allows the user to use mixed platform machines connected to the network. It
is possible to complete the computation setup on the Windows machine and launch steps of the
computation remotely on the Linux machine. Results can be visualized on both after.

Connection is not available to Windows Vista due to the existing Microsoft system limitations

To support such mixed platforms connection several steps should be performed:


1. Check files 'rhosts.txt' for Windows and '.rhosts' for Linux stored under "C:\Windows" and
home directory folder for ".rhosts"respectively. See the Machine Connection from Linux
Platforms for files content details.

On Windows machine, administrator privileges to edit 'rhosts.txt' are needed.

2. To edit this file:


l select Notepad (or similar editor) in your Start menu (or Start screen on Windows 8)
l and right click on it and select "Run as administrator"
l in Notepad, select "File->Open"and 'C:\Windows\rhosts.txt'
3. Check that the project folder is placed in the directory accessible from both machines (e.g.,
network drive)

513 FINE™/Marine 7.1 User Guide


4. Check that the project folder is placed in the direction accessible from both machines (network
drive for eg.)
5. Create the file 'remote paths.txt' with the hostname and path to the project files place:
machine_master /user_directory/project_name/remote paths.txt
where "machine_master" is the name of the host to which connection is performed;
"/user_directory/project_name" is the path to the project directory in the shared drive.
It is possible to have several hosts in "remote paths.txt", each should be in a separate line.

"remote paths.txt" file can be placed inside the project directory. But it is also possible to place this
file above the project folder but it is important to ensure that it will be kept accessible for both:
remote and local machines.

All machines should be able to connect to all mapped network drives. If one drive is not accessible by
one machine, the computation will stop because of MPICH process.

Example for Windows HPC (using UNC path)


The computation is located into the folder \\server\path\project\project_computation1
The user works on a machine named “mymachine”. The network drive Z: is pointing to
\\server\path.
The path substitution is activated by creating a file in Z:\project, named “remote paths.txt”, with
the following line in it:
mymachine \\server\path\project
After this is done, one can open the project using the network drive Z: and the interface will save
the computation and script with the UNC paths \\server\path\... so that the files can be accessed
from all cluster nodes.

It is also possible to configure hosts definition files through the Administration Wizard. Attention
should be payed here, since it will configure files on the machine on which it was started only. It
will not configure/reconfigure the hosts list on the machine to which the connection will be
performed.
To launch the computation from the Task Manager interface when files have been properly
configured, follow these steps:

514 FINE™/Marine 7.1 User Guide


l Set up the computation,
l Click on the Switch to TASK MANAGER button on the main icon bar,
l Switch to the Hosts definition part of Task Manager and click on Add hosts...,
l In the appearing menu select the hostname to which to connect and click Accept. Successfully
added hostname will be reflected in the list of Host names.

FIGURE 30.1
Hosts definition menu of the Task Manager

In the Tasks definition part it is possible to set different Hosts between Subtasks: Pre-processing,
Solver, Post-processing

FIGURE 30.2
Subtasks distribution among different hosts

Task Manager creates the '.log' file of path substitution in NUMECA temporary folder
(.numeca/tmp). Its name is 'paths substitution.log' and contains of information about performed
connections together with path substitutions info and its status.

515 FINE™/Marine 7.1 User Guide


30.2 THE TASK MANAGER INTERFACE

30.2.1 Hosts Definition

The Hosts definition page shows the list of available hosts that the interface can be connected to,
the operating system of these machines, their respective connection status and their possible
queuing system if it exists on the machine. If the connection is not OK, it means that the
corresponding computer is no longer visible by the interface. This may occur, for example, if the
computer has been rebooted. Once can try to connect using the Connect button.

FIGURE 30.3
Hosts definition page

Add a Host

When clicking on the Add host... button, the interface asks for a host name and a login name. The
login name is optional. It is needed only if the user's login on the local host and the one on the
remote host are different.

516 FINE™/Marine 7.1 User Guide


FIGURE 30.4
Add a host pop-up window

When pressing the Accept button, the host name appears in the host list, with type of operating
system and its connection status. At this point, the host is ready to receive a task.

Remove Host

When clicking on the Remove Host button, the selected host is removed from the list, and is no
longer available. This operation is not allowed when a task is running on the host to be removed,
or when the local host is selected.

Shutdown

When clicking on the Shutdown button, all listed hosts are removed. FINE™/Marine exits as
well. All running tasks are killed. This option is useful when changing the machine where
FINE™/Marine is running on. See Getting Started for more details.

30.2.2 Tasks Definition

A task is a collection of subtasks where a subtask refers to the execution of a program with its
arguments (for instance a .simfile for FINE™/Marine flow solver). These arguments are provided
in the Task Arguments & Characteristics section of the Task Manager. The different subtasks
of a given task can be run individually if the output of one subtask is not needed by other ones. If
the output of one subtask is needed by another, it must be run sequentially. For example: the
output of a computation is used to start CFView™.

517 FINE™/Marine 7.1 User Guide


FIGURE 30.5
Tasks definition page

Task List

In this section, the defined tasks and their status can be controlled. To create a task, click on the
New Task button. The defaults task name can be modified by clicking on the Rename Task
button. The selected task can be removed by clicking on the Remove Task button.
Once a task has been created and defined (see following section), it can be started or stopped by
clicking on the Start, or Stop buttons, respectively.
Clicking the button Save Batch File, a script projectname_computationname.batch (or .bat for
Windows) and a machines.txt file will be created in the corresponding computation folder. This
script enables the user to launch the same computation in batch.
The script is also saved automatically when clicking on Start button from the Launching menu or
the Task Manager.
A task can be delayed clicking on the Delay button by two possible ways: enter the date and time
for when the task should be launched in the dialog box or create a dependency from another task.
For instance, the computation can be started only when the previous task is over. The delayed
task can be disabled using the Cancel button.

518 FINE™/Marine 7.1 User Guide


FIGURE 30.6
Task Delay pop-up window

When applying the data, a small watch in the task list indicates that the task is scheduled:

FIGURE 30.7
Task List with Delay window to start a task at a later moment

When exiting FINE™/Marine, all the delayed tasks are automatically started and stay in sleep mode
until their starting times are reached. When starting FINE™/Marine again, all the task managers
relating to the delayed tasks, still in sleep mode are killed, and the FINE™/Marine Task Manager
recovers control of these tasks.

Task Arguments and Characteristics

This section allows to define the number of partitions for the computation. Information about the
current used .sim file is also displayed.

FIGURE 30.8
Task Definition and Characteristics

519 FINE™/Marine 7.1 User Guide


Two types of license keys can be used to trigger parallel computations: either seat-locked type
(MPROC) whose associated cores cannot be shared between several simultaneous parallel
computations or flexible type (FULLFLEX) whose associated cores can be distributed between
several simultaneous parallel computations. The flow solver uses the seat-locked type in priority.
Activating the option Use Fullflex license key forces the flow solver to use the flexible license key
type in priority.

This option can be used in case both MPROC and FULLFLEX keys are available in the license file.

If only one partition is entered, the computation will be started sequentially.

To manage the communication types between the cores of the machines during the computation,
the MPI library can be changed selecting between Intel MPI and Open MPI. The
recommendation is to use the Intel MPI library. This choice affects the MPI libraries but also the
flow solver's executable.

Task Definition

In this section, the subtasks of the selected task from the Task List are discussed. A subtask is
defined by its type, its status (it can be pending, running, finished, mismatch or crashed) and the
host on which it is launched. The list of available subtasks are:
l Pre- processing (preparation of the files to be run with the solver (including conversion,
partitioning or concatenation of previous results),
l Solver (execution of the solver),
l Post-processing (reconstruction of the results to be opened by CFView™).

During its execution, each task has its own ".log" file, stored in the computation directory after
execution. For instance, "hexpress2isis.log", "isis2cfview.log",... They contain the output from the
execution of the tools. Please send these log files to your local Support office if necessary

To add/remove a subtask, tick the corresponding subtask. Select the host on which the process
should be started in the pull-down box beneath the task list. The list contains the hosts that are in
the available as defined in the Hosts definition page. The Pause Solver button will suspend the
running computation and save the data (no effect on the pre and post-processing subtasks)

520 FINE™/Marine 7.1 User Guide


FIGURE 30.9
Launching mode menu

The Machine selection and balancing button allows to give the repartition of the partitions
through the machines of the network, defined in the Host Definition page. Besides, on a
machines network (or Cluster) where the speed of different nodes is different, it is desirable to
perform a domain decomposition so that the mesh size on each block is proportional to its power.
By default, grid cells are equally distributed among all processors. To change the repartition in
each partition, first activate the process by pressing the Weighted button. Then specify the weights
(in %) of all the partitions. An indication about the number of cells is given in the column Load
(cells).

The sum of all the weight must be equal to 100%.

As soon as a special decomposition of the partitions is required by the user, a file is created by the
interface. This file is called partition_weight.dat. For users working in batch, here is an example
of the format for a parallel computation on three machines with a weight 20%-50%-30%:
1 20
1 50
1 30
This file corresponds to the machines.txt file (see the Launch FINE™/Marine flow solver in
Sequential mode using Scripts section for its description): indeed, the first line of the partition_
weight.dat file will be dedicated to the first machine/node written in the machines.txt file, etc...

521 FINE™/Marine 7.1 User Guide


FIGURE 30.10
Machine selection and balancing menu

30.3 PARALLEL COMPUTATIONS

Parallel computation reduces the calculation time of a given problem by splitting the task among a
number of processors, each of which works on part of the problem. Communication between
these different processes is necessary at the partition interfaces to ensure that the solution near the
boundaries is consistent across the different partitions.
A domain decomposition approach is taken to the parallelization of the flow solver. The Metis
library from the University of Minnesota is used to perform the partitioning. This library uses the
graph of the mesh to perform the partitioning, with the goals of minimizing the communication
cost, using a selection of metrics, and balancing the number of grid cells in each partition.
At the interfaces between partitions, the meshes are overlapped by a single cell to facilitate inter-
partition communication. Data in these ghost cells are replaced with the correct value at various
points in the computation procedure where an incorrect value of solution would adversely
influence the calculation. In addition to the cells that share faces, cells that share nodes need to be
communicated in the case of viscous calculation.
Each processor will launch a self-contained instance of the solver using the MPI parallel message
passing interface. Both shared memory and distributed memory are supported as are shared/non-
shared disk configurations.
Parallel computations can be fully defined through the FINE™/Marine interface. The Task
manager page has also been developed for this purpose.

522 FINE™/Marine 7.1 User Guide


30.3.1 Management of Inter-block Communication

Each partition must be assigned to a separate process. When starting the computation each process
has a self- contained instance of the solver referencing its own input and output files.
Communication between overlapping ghost cells of the different processes occurs at various
points in the calculation, when updated values in the ghost cells are required.
The partitions have been optimized to balance the computational load, by ensuring the same
number of cells in each partition by default, and to reduce the inter-process communication, by
minimising the number of connections between the partitions.

We recommend an amount of 400.000 cells per GB of RAM.

A number of global communications are also necessary during the calculation to make global
variables, such as the residuals, available to all processes.

If the computation is running on different machines or on Clusters, all data need to be visible from all
machines/nodes.

At the end of the computation the outputs from the different processes have to be collected and
the full solution is reconstructed by the "postmetis" tool, see Position and Wake flow section for
more information about it.

30.3.2 How to Run a Parallel Computation through the


Interface

Parallel computations can be run directly through the interface using 2 different ways: a direct
submission or the via a queueing system.

A. Direct Submission

This method will run the task on distributed machines network, added by the Host definition
page. Only the Number of partitions and the Machine selection are required (see Task Definition).
When the computation is set up, one can be press the Start button.

523 FINE™/Marine 7.1 User Guide


In case user credentials have not been entered yet (see Installation note for this), the GUI will ask
the user to do it trough the interface the first time a parallel computation is performed on the
machine.

FIGURE 30.11
User credential warning

B. Queuing System

Task Manager provides a functionality to work with queuing system in two different modes:
Automatic System and Templates. This section will introduce the two possibilities.

Automatic System

Within the Task Manager, the parallel computation can be set-up on the Sun Grid Engine batch
system (SGE), the Portable Batch System (PBS), the Load Sharing Facility (LSF), the Load
Leveler or the Windows HPC. This system is only available when the interface detects one of
them installed on the Cluster (if several systems are installed, SGE is selected by default). One can
activate or deactivate this section of Task Manager by clicking on Activate checkbox.

524 FINE™/Marine 7.1 User Guide


FIGURE 30.12
Automatic System

l The selection of the Queueshould be first made among the available ones.
l The available Parallel environment is detected by the interface. It can be selected from the
combobox. The names are given by the system administrator.
l The Job Name for the computation should be specified.

The correct 'mpirun' executable corresponding to the parallel flow solver executable can not be
selected directly. It should be compiled for the user's cluster specifically. The selected version of
'isiscfdmpi' should correspond to the compiled version of 'mpirun'. To select the appropriate one, save
the script and edit it to use the one installed on the Cluster.

l Number of partitions and ".sim" file are defined in Task arguments & characteristic part.
l The subtasks are defined in Task definition part.

All the tools, except the solver, require only one node and it will be selected automatically by the
queuing system.

l Once the settings are defined, it is possible to save the queuing system script by clicking on
Save Script button or to save and submit it by clicking on Submit Script button. The script will
be saved in the computation folder with the extension ".pbs" or ".sge" (according to the
detected queuing system). A special suffix depending on if pre-processing, post-processing
and solver are selected, will be added to the name of the file:
l Pre-processing: "_pre" suffix is added,
l Solver: "_solv" suffix is added,
l Post-processing: "_post" suffix is added.
For example:
1. If all the three subtasks are selected and SGE system is detected, the generated script name is
"projectname_computationname_pre_solv_post.sge",
2. If pre-processing and solver subtasks are selected on a PBS system, the generated script name
is "projectname_computationname_pre_solv.pbs",
3. If only pre-processing is selected on a SGE system, the generated script name is "project_
computation_pre.sge".

525 FINE™/Marine 7.1 User Guide


On Windows HPC, it is strongly recommended to use path substitution. Please check "Example for
Windows HPC (using UNC path)" (p. 514) for more information.

Template Mode

Template mode allows to create and manage scripts from pre-defined templates. By default, a set
of templates is available for the supported queuing systems SGE, PBS, LSF, Load Leveler and
Windows HPC (with corresponding extension .sge, .pbs, .lsf, .lvl and .bat) under the directory
"finemarine#/COMMON/queuing_templates/_marine". All types of templates are supported for
both Open MPI and Intel MPI (except for Windows HPC).
Functionalities are listed below:
l New: opens a pop-up window where one can choose the template to build the script from.
Clicking on Next opens the Editor.
l Edit: edits the selected template in the Editor,
l Load: loads a template already created in the list,
l Unload: unloads a template from the list,
l Submit Script: submits the selected script to the queueing system.
Two extra options are also present to manage lists of scripts:
l Backup : saves the current list of scripts (the list is stored into the Home directory under
".numeca/marine/" folder)
l Restore: loads a list of scripts

FIGURE 30.13
Template Mode

526 FINE™/Marine 7.1 User Guide


Best Practice

Since the templates are pre-defined, it is possible to replace all the fields between two "*" (for
instance, "*job_name*") and assign some values to the shell variables (for example "ARCH_
SUFFIX="). Comments inside the script (# ) give some hints to users.
All the templates are divided into several sections. In the first section, all the queuing system
instructions are written. In the second section general environment and NUMECA variables are
defined. The third section is related to the computation (paths, output files, log files). The final
section contains the command lines to start the executable using variables defined in all the
previous sections. For instance, one can read the section How to Launch FINE™/Marine flow
solver in Parallel using SGE on LINUX to have more details about the required SGE inputs.

30.3.3 Concept to Run a Parallel Computation in Batch Mode

The general steps involved in running a parallel computation are the following:
1. Create the full project with the FINE™/Marine interface
2. Save the project and the simulation file (.sim)
3. Run hxp2isis_no_interactive tool to create the mesh files readable by the flow solver, see
hexpress2isis
4. Create the required number of partitions with the tool premetis, using "-npar=" argument to
specify the number of partitions, see Mesh Partitioning
5. Create the machines.txt file, see Launch FINE™/Marine flow solver in Sequential mode using
Scripts
6. Launch the computation with the command written in Launch FINE™/Marine flow solver in
Sequential mode using Scripts
7. Run the isis2cfv_no_interactive tool to post-process the results.
From the Task Manager a batch file can be saved containing the instructions to run steps 3 to 7.
The user should define the Number of partitions and Machines selection & balancing and then
press Save Batch file. This will save the corresponding machines.txt and batch files in the
computation directory. When executing this batch file the computation will be launched in the
specified hosts without any interface opening.
The structure of the batch file is shown in the next sections.

Batch file template for Linux

The extension of the file should be ".batch". In bold paths to be modified according to the
installation directory and the working directory.

527 FINE™/Marine 7.1 User Guide


#!/bin/sh
#############################################
## SETTINGS
#############################################
NI_VERSIONS_DIR="NUMECA_INSTALLATION_DIRECTORY\FineMarine71"
I_MPI_ROOT=$NI_VERSIONS_DIR/LINUX/_mpi/_impi5.0.3
. $I_MPI_ROOT/intel64/bin/mpivars.sh
export I_MPI_ROOT
LD_LIBRARY_PATH=$NI_VERSIONS_DIR/LINUX/_lib_sx86_64:$LD_LIBRARY_
PATH
export PATH
export LD_LIBRARY_PATH
#############################################
## WORKING DIRECTORY
#############################################
WDIR="<path_to_computation_directory>"
cd "$WDIR"
#############################################
## LAUNCH part
#############################################
"$NI_VERSIONS_DIR/LINUX/isis/hexpress2isis_no_interactivex86_64" -p="$WDIR" >
hexpress2isis.log 2>&1
"$NI_VERSIONS_DIR/LINUX/isis/premetisx86_64" -npar=<numprocs> -
sim="$WDIR/<computation_name>.sim" -auto > premetis.log 2>&1
mpirun -np <numprocs> -hostfile machines.txt "$NI_VERSIONS_
DIR/LINUX/isis/isiscfdmpi_intelmpix86_64" > "$WDIR/<computation_name>.std" 2>&1
"$NI_VERSIONS_DIR/LINUX/isis/isis2cfview_no_interactivex86_64" -p="$WDIR" >
isis2cfview.log 2>&1

Batch file template for Windows

The extension of the file should be ".bat". In bold paths to be modified according to installation
and working directory.
@echo off

528 FINE™/Marine 7.1 User Guide


rem #########################################
rem ## SETTINGS
rem #########################################
set NI_VERSIONS_DIR=NUMECA_INSTALLATION_DIRECTORY\FineMarine71
set SOLVER_DIR=%NI_VERSIONS_DIR%\bin\isis64
rem #########################################
rem ## WORKING DIRECTORY
rem #########################################
set WDIR=<path_to_computation_directory>
pushd "%WDIR%"
rem #########################################
rem ## LAUNCH part
rem #########################################
"%SOLVER_DIR%\hexpress2isis_no_interactive.exe" -p="%WDIR%" > hexpress2isis.log
2>&1
"%SOLVER_DIR%\premetis.exe" -npar=<numprocs> -sim="%WDIR%\<computation_
name>.sim" -auto > premetis.log 2>&1
"%NI_VERSIONS_DIR%\impi5\mpiexec.exe" -mapall -delegate -env FLEXLM_BATCH 1 -
n <numprocs> -machinefile "%WDIR%\machines.txt" "%SOLVER_DIR%\isiscfd_
intelmpi.exe" > "%WDIR%\<computation_name>.std" 2>&1
"%SOLVER_DIR%\isis2cfview_no_interactive.exe" -p="%WDIR%" > isis2cfview.log 2>&1

30.3.4 Customized choice of MPI version

From version 6.2, IntelMPI becomes the default for both LINUX and Windows. But it is possible
to change the default MPI libraries or even the type of executable to use for each future
computations.

Changing default MPI version

To by-pass these defaults, a concept of MPI customizing has been introduced. Two ways are
available:

529 FINE™/Marine 7.1 User Guide


1. When using batch mode, one can use a virtual command called isiscfd_parallel with special
arguments indicating the version of mpi to use. For instance:
isiscfd_parallelmarine71 -mpich -np 2 -machinefile COMPUTATION_PATH/machines.txt
-print
The command will launch from the computation folder a parallel computation on 2 partitions
with the MPICH version of MPI. The available options for MPI are: -mpich and -ompi
It may be required to tune some parameters:
-mpi_leave_pinned: When mpi_leave_pinned is set to 1, Open MPI aggressively leaves user
memory registered with the OpenFabrics network stack after the first time it is used with a send or
receive MPI function. This allows Open MPI to avoid expensive registration / deregistration
function invocations for each send or receive MPI function. When the value is set to 0, it is
disable. -1 (default) let the system decides. Setting this parameter to 0 has helped to performed a
parallel partitioning on a cluster.
-btl_ ###_ eager_ limit (### being tcp, openib,sm,...): This argument controls the size of the
message above which the processor must wait a confirmation from the other processor that the
message has been properly delivered. If the message is smaller than the specified value, the
message is sent and the processor does not wait any confirmation of reception. If the message is
bigger than this value, the message is split in sub-packets of fixed size and each sub-packet is sent
one by one and the processor waits a confirmation of reception from the other processor before
sending the next packet. By removing this parameter, the size is reduced to the default one (4096
b= 4 Kb) and the processors must wait a confirmation from the other processors in order to go on
for all messages bigger than 4 kb. This may have an impact on the speed up but it secures the
communication.

If no option is given, "-ompi" (openmpi) is used by default.

One can also store in the .numeca/ folder from his home directory, a file called default_mpi . In
this case the user needs to specify some parameters for this mpi:
l NUMECA_MPI_DIR: absolute full path to the directory containing the mpirun to use,
l ISISCFD_MPI_EXEC: type of solver executable (openmpi or intelmpi),
l ISISCFD_LD_LIBRARY_PATH: absolute full path to parallel solver libraries,
l ISISCFD_CLIENT_MPI_RUN: the name of the executable for MPI (mpirun).
An example of this file setting ompi as a default MPI for any computation:
NUMECA_MPI_DIR=NUMECA_INSTALLATION/finemarine71/LINUX/_mpi/_
ompi1.6/bin
ISISCFD_MPI_EXEC=ompi

530 FINE™/Marine 7.1 User Guide


ISISCFD_LD_LIBRARY_PATH=NUMECA_INSTALLATION/finemarine71/LINUX/_
mpi/_ompi1.6/lib
ISISCFD_CLIENT_MPI_RUN=mpirun

Default_mp i has the priority compared to the argument -<mpi_version> argument for isiscfd_
parallel virtual command. If there are several FINE™/Marine versions installed on the machine
default_mpi will be applied to all of them.

Example for Intel libraries as default MPI for any new computation

NUMECA_DIR=NUMECA_INSTALLATION/finemarine71/LINUX/_mpi/_impi5.0.3
NUMECA_MPI_DIR=$NUMECA_DIR/intel64/bin
ISISCFD_MPI_EXEC=intelmpi
ISISCFD_CLIENT_MPI_RUN=mpirun
ISISCFD_LD_LIBRARY_PATH=$NUMECA_DIR/intel64/lib
echo $NUMECA_MPI_DIR/mpivars.sh
I_MPI_ROOT=$NUMECA_DIR
. $NUMECA_MPI_DIR/mpivars.sh

Intel® MPI on Windows

Starting from FINE™/Marine v5.1 Intel® MPI library is available and starting from
FINE™/Marine v5.1 it is used by default. The procedure below should be followed once in each
host machine where computations will run. Afterward the services will be restarted automatically
at reboot.
1. Install and start the Hydra service from the directory \NUMECA_
SOFTWARE\finemarine7.1\impi5:
l Open a command prompt "cmd" as Administrator.
l cd NUMECA_INSTALLATION_DIR\finemarine71\impi5
l hydra_service.exe -install
Check in the Windows Task manager > Services tab if the Service impi_ hydra status is
Started. If it is not use the following command to start it:
l hydra_service.exe -start

531 FINE™/Marine 7.1 User Guide


2. If a version previous to FINE™/Marine v5.2 is used the standard batch file "computation_
name.bat" saved in the computation directory from the Task Managerneeds to be modified to
use the IntelMPI®. Please replace line 17 which starts the flow solver with:
%NI_VERSIONS_DIR%\impi5\mpiexec.exe" -delegate -mapall -env FLEXLM_BATCH 1
- n <nprocs> - machinefile "%WDIR%\machines.txt" "%NI_ VERSIONS_
DIR%\bin\isis64\isiscfd_ intelmpi.exe" > "%WDIR%\cfd_ cube_ test2_ computation_ 1.std"
2>&1

-delegate argument is mandatory, although -impersonate is also possible, but this will use a limited
domain- based authentication. This does not allow file access to network drives (even if mapped
locally), and should only be used when other options are not working.

30.3.5 Troubleshooting

Computation is stopped for unknown reasons

If the computation is interrupted for an unknown reason, more detailed information can be found
in the shell. The shell contains all relevant information, including MPI error messages. When the
computation is launched, the message can be written into a file with the command "> output.txt"
and should be sent to our local Support office. Please also send the output.list file from each
partition.

Permission denied

If the "Permission denied" message appears when launching the computation, it can be a problem
of rsh or ssh usage. Please check whether it is a true rsh or whether it is a link to ssh. If you are
using rsh, please check that the ".rhosts" file is well configured according to the installation note.
If you are using ssh, please make sure that ssh can work without the need of a password.
If you want to know if the solver is using ssh or rsh, choosing the correct "isiscfdmpi" executable
is explicit for mpich. However, for the other ones, the only way to know it, is to do the following
steps:
1. deactivate rsh
2. launch the executable
3. 2 possibilities:

532 FINE™/Marine 7.1 User Guide


l if it works, ssh is used,
l if it does not work: rsh is used. But if you want to use ssh, you can make a link from rsh to
ssh so that the executable will actually work using ssh.

30.3.6 Limitations

l The distributed memory mode is restricted to homogeneous system. While not strictly
necessary, it is recommended that machines of the same speed are used, as all partitions are of
equal size by default and therefore, require the same computational cost.
l The number of processors should be strictly equal to the number of partitions. It is possible to
run more than one process on a single machine, but each process must be defined separately.

30.4 TASK MANAGEMENT USING SCRIPTS

This section provides information on how to launch the installed NUMECA Software from a
shell, without using HEXPRESS™, FINE™/Marine or CFView™ interfaces.
In the next sections the commands available to launch NUMECA software are described in more
detail:

30.4.1 Launch HEXPRESS™ using Scripts

The command line to start the grid generator HEXPRESS™ contains its name, the full path name
of the mesh that will be saved (geometry ".dom" should be located in the same directory and
should have the same name) and the HEXPRESS™ release that will be used. The "-batch"
option avoids the display of the HEXPRESS™ graphical user interface.

How to Launch HEXPRESS™ under Linux

1. Create a template and geometry files (".igg", ".bcs" and ".dom") using the HEXPRESS™
interface.
2. Start HEXPRESS™ to create a mesh from these files by typing:
hexpress -batch -project /user/test.igg -niversion marine71 -print

533 FINE™/Marine 7.1 User Guide


How to Launch HEXPRESS™ under Windows

1. Create a template and geometry files (".igg", ".bcs" and ".dom") using the HEXPRESS™
interface.
2. Start HEXPRESS™ to create a mesh from these files by typing:
c:\NUMECA_ SOFTWARE\finemarine71\bin\hexpress.exe - batch - project
c:\users\mesh.igg

30.4.2 Launch Pre-Processing Step using Scripts

Once the mesh generation has been performed and the set up of the computation has been done,
the pre- processing step can be executed. It consists in a succession of tools that convert
HEXPRESS™ mesh file into mesh files readable by the flow solver and prepare the partitioning
if required. For batch scripting, one can use the following tools and arguments (no question will
be prompted to users):
postmetis -niversion marine71 -print (optional: only required in case of a restart, it should be
launched from previous computation folder)
hxp2isis_no_interactive -niversion marine71 -print (to be launched from the new computation
folder)
premetis -npar=X -niversion marine71 -print (to be launched from the new computation folder)

See the External Tools chapter for a complete description of the tools

30.4.3 Launch FINE™/Marine flow solver in Sequential


mode using Scripts

How to Launch FINE™/Marine flow solver in Sequential mode on


LINUX

Two different ways to launch the flow solver in sequential using batch mode exist:
isiscfd /COMPUTATION_PATH/project_computation.sim -niversion <version> -print
OR

534 FINE™/Marine 7.1 User Guide


/INSTALLATION_ DIRECTORY/isiscfd < /COMPUTATION_ PATH/project_
computation.sim
Based on these considerations, one can easily create his own scripts as follows:
1. Create a script file (for example, with the name "batch.sh"). Such script file must be created
with execution permission in order to launch a series of computations. An example of a
"batch.sh" file for a series of computations on LINUX:
#! /bin/csh
isiscfd /COMPUTATION_PATH1/project_computation_1.sim -niversion <version> -print
isiscfd /COMPUTATION_PATH2/project_computation_2.sim -niversion <version> -print
The script is started in a C-shell due to its first line: "#! /bin/csh". This command line, to start
FINE™/Marine flow solver, contains its name, the full path name of the ".sim" and the
FINE™/Marine release that will be used:
2. Set Permission for execution for the script file "batch.sh" by typing the command: "chmod
755 batch.sh".
3. Check that the computation is ready to run (".bcs" file and ".sim" files already present in the
working directory).
4. Launch the script "batch.sh" by typing the script file name: "./batch.sh".

Clicking the button Save Batch File in the Task Manager menu, a script "projectname_
computationname.batch" will be created in the corresponding computation subfolder. This script
enables the user to launch the same computation in batch.

How to Launch FINE™/Marine flow solver in Sequential mode on


Windows

Create Script File "batch.bat". An example of "batch.bat" file for a series of computations:
C:\NUMECA_SOFTWARE\FineMarine71\bin\isis64\isiscfd.exe \\
< C:\users\project\project_computation_1\project_computation_1.sim
C:\NUMECA_SOFTWARE\FineMarine71\bin\isis364\isiscfd.exe \\
< C:\users\project\project_computation_2\project_computation_2.sim
The command line, to start the flow solver, contains its full path name, the full path name of the
".sim" file to launch, and the sequential mode selection:
INSTALLATION_DIRECTORY\isiscfd.exe\\
< COMPUTATION_PATH\project_computation_1.sim

535 FINE™/Marine 7.1 User Guide


1. Set Permission for Execution of "batch.bat" file,
2. Create an input file (".sim") for each computation. To create these files through the
FINE™/Marine interface, click on the Project/Save Selected 'Sim' Files menu in order to save
the ".sim" file of the activated computation, after opening the corresponding project.
3. Launch the script "batch.bat" by typing the script file name: "batch.bat" in a shell or double
click on the "batch.bat" file from the Windows Explorer.

Clicking the button Save Batch File in the Task Manager menu, a script "projectname_
computationname.bat" will be created in the corresponding computation subfolder. This script enables
the user to launch the same computation in batch.

Specifying the - auto option alone will work only when launching the flow solver from the
computation folder directly. Everything will be treated automatically with no input required. If it is
important to launch the flow solver from the directory other than the computation folder using the -
auto option, the simulation file (.sim) directory should be specified with the -sim= option.

30.4.4 Launch FINE™/Marine flow solver in Parallel using


Scripts

This chapter focuses on the conception of scripts to launch the solver in parallel and explains the
details for both LINUX and Windows operating systems.
It is strongly recommended to read first the chapter "Concept to Run a Parallel Computation in
Batch Mode" (p. 527) first since it explains the full launching procedure.

How to Launch FINE™/Marine flow solver in Parallel using MPI on


LINUX

1. The following command should be used to launch parallel computations by the flow solver. It
is also possible to create a script file "batch.sh" with permission for execution. An example of
a "batch.sh" file for a parallel computation on Linux:
#! /bin/csh
INSTALLATION_DIRECTORY/finemarine71/LINUX/_mpi/_ompi1.6/ -np X -machinefile
"/users/project/computation/machines.txt" /INSTALLATION_
DIRECTORY/finemarine71/LINUX/isis/isiscfdmpi

536 FINE™/Marine 7.1 User Guide


where "X" is the number of partitions and "isiscfdmpi" should be replaced by the flow solver
executable corresponding to the machine configuration.
The script is started in a C-shell due to the line: "#! /bin/csh". To sum up, the command line,
to start the flow solver FINE™/Marine flow solver in parallel, contains the script name that
enables parallel computation (mpirun), the number of partitions, the full path name of the file
"machines.txt" which contains the definition of the machines that will be used to launch the
computation in parallel and the executable of the solver for parallel computations:
"mpirun -np X -machinefile "/COMPUTATION_PATH/machines.txt" isiscfdmpi"
2. Create Hosts Definition File "machines.txt". A file needs to be created to define the hosts. This
file specifies the machine information of the various processes. Two examples of a
"machines.txt" file:
Example 1: 2 processes on Hostname1
Hostname1
Hostname1
Example 2: 1 process on Hostname1 & 1 process on Hostname2
Hostname1
Hostname2
The number specified in the "machines.txt" file should be equal to the number of processes
required on this machine

The first machine (hostname) specified in the file "machines.txt" should be the one from which
the script will be launched.

3. Set permission for execution "batch.sh" by using the command: "chmod 755 batch.sh"
Create input files ".sim" to launch the computation. Therefore before launching the parallel
computation script, the following steps must be performed through the FINE™/Marine
interface:
4. Check that the computation is ready to run (input files already present in the working
directory).
5. Launch the "hexpress2isis" and "premetis" tools from the working directory and follow the
instructions given in the shell
6. Launch the script "batch.sh" by typing the script file name: "./batch.sh".

537 FINE™/Marine 7.1 User Guide


To run a computation on a distant machine where the interface is not installed, the option "-local"
must be added in the command line to work in relative way.

We strongly recommend to use the full path of each file and executable to avoid any trouble in
computation start.

Clicking the button Save Batch File in the Task Manager menu, a script "projectname_
computationname.batch" and a machines.txt file will be created in the corresponding computation
subfolder. This script enables the user to launch the same computation in batch.

How to Launch FINE™/Marine flow solver in Parallel using SGE on


LINUX

1. Create a script file "batch.sge" with permission for execution. An example of a "batch.sge" file
for a parallel computation on LINUX:
#! /bin/csh
#$ -S /bin/sh
#$ -o /home/sgeuser/parallel_sge/parallel_sge_computation_1/ parallel_sge_computation_
1.std -j y
#$ -N comput1
#$ -pe mpi 3
#$ -notify
P4_GLOBMEMSIZE=15000000
Export P4_GLOBMEMSIZE
NI_VERSIONS_DIR=/usr/numeca_software/finemarine71
MPIR_HOME=$NI_VERSIONS_DIR/_mpi
cd /home/sgeuser/parallel_sge/parallel_sge_computation_1
$MPIR_HOME/bin/mpirun -np $NSLOTS -machinefile $TMPDIR/machines \
$NI_VERSIONS_DIR/LINUX/isis/isiscfdmpi
where:

538 FINE™/Marine 7.1 User Guide


#$ -S /bin/sh requires Bourne shell to be used by SGE for job submission and hence, only the
".profile" file of the user is executed if exists on each computation host. There is nothing
specific to NUMECA software that must be written in the ".profile" file.
#$ -o /home/sgeuser/parallel_sge/parallel_sge_computation_1/ parallel_sge_computation_
1.std -j y tells SGE system that the standard output has to be redirected in the ".std" in the
computation directory, the option "-j y" indicates that the standard error is redirected into the
same file.
#$ -N comput1 is the name of the job given to SGE and that will be seen when monitoring the
job with the graphical monitoring utility qmon (Job Control button ) or with the qstat SGE
command. SGE has a limitation of 8 characters for the job name.
#$ -pe mpi 3 requests 3 slots (processors) to the SGE system for executing the job using the
numecampi parallel environment.
#$ -notify gives a delay between the send of the SIGKILL signal and SIGUSR2 signal. The
delay is defined in the SGE interface.
P4_GLOBMEMSIZE=15000000
Export P4_GLOBMEMSIZE
NI_VERSIONS_DIR=NUMECA_RELEASE_PATH
MPIR_HOME=$NI_VERSIONS_DIR/finemarine71/_mpi
are the environment variables indicating respectively the Numeca software installation
directory and the mpi directory that are used in the following command:
$MPIR_HOME/bin/mpirun -np $NSLOTS -machinefile $TMPDIR/machines \
$NI_VERSIONS_DIR/LINUX/isis/isiscfdmpi
$NSLOTS is the number of slots (processors) that have been allocated by SGE for the job,
$TMPDIR is generated by SGE for providing the machines file used by the mpirun script.
$NI_ VERSIONS_ DIR/bin/isiscfdmpi refers to the executable of the flow solver
corresponding to the machine configuration.

For sequential runs, the line " #$ -pe numecampi 3 " must be removed and the final command
must be:
$NI_VERSIONS_DIR/LINUX/isis/isiscfd < /COMPUTATION_PATH/sge_computation_
1.sim

2. Set permission for execution "batch.sge" by using the command: "chmod 755 batch.sge"
3. Check that the computation is ready to run (.bcs file and .sim files already present in the
working directory).
4. Close the interface

539 FINE™/Marine 7.1 User Guide


5. Launch the "hexpress2isis" and "premetis" tools from your working directory and follow the
instructions given in the shell
6. Launch the script "batch.sge" by typing the script file name: "./batch.sge".

We strongly recommend to use the full path of each file and executable to avoid any trouble in
computation start.

How to Launch FINE™/Marine flow solver in Parallel using MPI on


Windows

1. Create a script file "batch.bat" with permission for execution. An example of a "batch.bat" file
for a parallel computation on Windows:
\NUMECA_SOFTWARE\FineMarine71\bin\isis64\mpiexec.exe -np X -machinefile
"/users/project/computation/machines.txt" \NUMECA_
SOFTWARE\FineMarine71\bin\isis64\isiscfdmpi.exe
where "X" is the number of partitions and "isiscfdmpi" should be replaced by the flow solver
executable corresponding to the machine configuration.
To sum up, the command line, to start the flow solver FINE™/Marine flow solver in parallel,
contains the script name that enables parallel computation (mpiexec), the number of partitions,
the full path name of the file "machines.txt" which contains the definition of the machines that
will be used to launch the computation in parallel and the executable of the solver for parallel
computations:
"mpiexec.exe -np X -machinefile "/COMPUTATION_PATH/machines.txt"
isiscfdmpi.exe"
2. Create Hosts Definition File "machines.txt". A file needs to be created to define the hosts. This
file specifies the machine information of the various processes. Two examples of a
"machines.txt" file:
Example 1: 2 processes on Hostname1
Hostname1
Hostname1
Example 2: 1 process on Hostname1 & 1 process on Hostname2
Hostname1
Hostname2
The number specified in the "machines.txt" file should be equal to the number of processes
required on this machine

540 FINE™/Marine 7.1 User Guide


The first machine (hostname) specified in the file "machines.txt" should be the one from which
the script will be launched.

3. Set permission for execution "batch.bat" file,


Create input files ".sim" to launch the computation. Therefore before launching the parallel
computation script, the following steps must be performed through the FINE™/Marine
interface:
4. Check that the computation is ready to run (input files already present in the working
directory).
5. Launch the "hexpress2isis" and "premetis" tools from the working directory and follow the
instructions given in the shell
6. Launch the script ".bat" by typing the script file name: "batch.bat" in a shell or double click on
the "batch.bat" file from the Windows Explorer.

To run a computation on a distant machine where the interface is not installed, the option "-local"
must be added in the command line to work in relative way.

We strongly recommend to use the full path of each file and executable to avoid any trouble in
computation start.

Clicking the button Save Batch File in the Task Manager menu, a script "projectname_
computationname.bat" and a machines.txt file will be created in the corresponding computation
subfolder. This script enables the user to launch the same computation in batch.

How to launch FINE™/Marine flow solver using the license


capabilities

One can choose the license key to use for the solver in case both MPROC and FULLFLEX keys
are available. By default, the 'MPROC_X' license key, where X is the number of cores defined
within the license is used by the solver if present in the license file. By adding the argument '-
fullflex' to the solver executable, the Fullflex license key will be used, thus all extra cores will be
shared among all seats purchased with the license.

541 FINE™/Marine 7.1 User Guide


30.4.5 Launch Post-Processing Step using Scripts

Once the computation has been performed, the post-processing step can be executed. It consists in
the transformation of files into a format readable by CFView™. For batch scripting, one can use
the following tool (no question will be prompted to users):
isis2cfv_no_interactive -niversion marine71 -print (it should be launched from the previous
computation folder)

See the External Tools chapter for a complete description of the tool

30.4.6 Launch CFView™ Using Scripts

How to Launch CFView™ on LINUX

1. Create a macro file ".py". See the CFView™ User Manual for more details on the format of a
macro file and the commands that it can contain.
2. Launch the macro ".py" by typing: cfview -macro /user/test.py -batch -niversion marine71
The command line to start CFView™ contains its name, the full path name of the macro ".py"
file to launch, and the CFView™ release that will be used. The "-batch" option disables the
display of the CFView™ graphical user interface.
"cfview -macro MACRO_PATH/macro.py -batch -niversion <version>"

How to Launch CFView™ on Windows

1. Create a macro file ".py". See the CFView™ User Manual for more details on the format of a
macro file and the commands that it can contain.
2. Launch the macro ".py" by typing:
NUMECA_SOFTWARE\FineMarine71\bin\cfview.exe -macro <py_path>\test.py -batch
The command line to start CFView™ contains its full path name and the full path name of the
macro ".py" file to launch. The "- batch" option disables the display of the CFView™
graphical user interface.

542 FINE™/Marine 7.1 User Guide


Command Line Arguments

The command cfview may be followed by a set of command line arguments. These command line
arguments allow the user to override some system defaults (driver used, display, double-buffering
and update abort options) or to specify files to be loaded immediately (project, macro, defaults
settings, macro module). The supported command line arguments are:
-help prints a summary of the command line arguments,
-version prints the CFView™ version number,
-date prints the CFView™ version date,
-defaults <file name> starts CFView™ with the default settings from the specified file,
-project <file name> starts CFView™ and immediately opens the specified project,
-macro <file name> starts CFView™ and execute the specified macro script,
-macromodule <file name> starts CFView™ and load the specified macro module,
-display <display name> starts CFView™ on the specified display device,
-doublebuffering on (off) enables (disables) double buffering,
-updateabort on (off) enables (disable) update aborting (see the CFView™ User Manual for
more detail on this option),
-driver <driver name> starts CFView™ with the specified graphics accelerator,
-reversevideo on (off) starts CFView™ with black (white) background color (see the CFView™
User Manual for more detail on this option),
- facedisplacement <n> starts CFView™ with the specified face displacement (see the
CFView™ User Manual for more detail on this option),
-loaddata all (none, ask) when opening a project, the quantities fields are loaded in the computer
memory (are not loaded, a specific dialog box is raised where the user chooses the field variables
to be loaded). The defaults is to load all field quantities. (see the CFView™ User Manual for a
description of the data management facility and of the associated dialog box),
-batch on (off) starts CFView™ without graphical user interface. This mode can be used in
combination with the -macro command line option in order to perform the execution of a macro
script without user interaction,
-hoops_relinquish_memory off this option disables the hoops garbage collection feature that is
activated when CFView™ is idle for a long period of time.

543 FINE™/Marine 7.1 User Guide


CHAPTER 31.

POST-PROCESSING

This chapter is dedicated to post-processing management. It describes:


l how to prepare the results and open them in CFView™ (for more information on CFView™, please
refer to the CFView™ User Manual);
l how to manage results using the Results analysis tool.
As soon as the computation is over, or even during the computation, post- processing results can be
prepared by using these two options differently, but directly from the FINE™/Marine interface.

Pressing the icon on the main icon bar, will open the CFView™ post- processing management
window. Depending on the computation, different windows can be proposed. The choice of the window
is made according to the presence of probes or not (see Probe Variables for more information about
the probes).
Among the options the Last saved results can be is selected, so the isis2cfview tool will be launched
( isis2cfv_no_interactive ). Otherwise Unsteady reconstructioncan be selected,so the probes2cfview
tool will be launched by the interface. Also see the see External Tools for descriptions.
The following scenarios are possible:
a. if the interface check considers that the Post- processing hasn't been done yet, it launches
isis2cfview/probes2cfview tools.
b. If the Post-processing results are present in the computational folder and the parameters don't match
those that the user has specified (Traveling shot, Interval of reconstruction and etc.) and allows to
repeat the reconstruction with different parameters.
c. if the post- processing results are present and the parameters do match, the Post- processing is
skipped to avoid the repetition.
Since CFView™ cannot directly read the files saved by the FINE™/Marine flow solver, a conversion is
needed. This conversion is done automatically at the end of each computation. It is also performed each
time the user would like to open CFView™ through the interface.

For users working in batch, the reconstruction tool is called isis2cfview (see External Tools for its
description).

544 FINE™/Marine 7.1 User Guide


By pressing the icon on the main icon bar the Results Analysis tool will be opened providing
options of computation results management options. Details can be found in "Results Analysis" (p.
552).

In this section
31.1 No probes have been performed 546
31.2 Probes have been performed 546
31.3 Traveling Shot 550
31.4 Results Analysis 552

545 FINE™/Marine 7.1 User Guide


31.1 NO PROBES HAVE BEEN PERFORMED

In the situation where the computation does not contain any probe, a pop up will appear with the
possibility to prescribe the traveling shot parameters and then open CFView™ (see Traveling
Shot for more information about traveling shot parameters). This window will open the last saved
results of the computation adding a traveling shot or not.

This choice is not definitive and it is possible to perform again the post- processing with different
parameters for the traveling shot.

FIGURE 31.1
Post-processing window (no probe performed), with traveling shot

31.2 PROBES HAVE BEEN PERFORMED

In the situation where the computation contain probes, a pop up will appear with the possibility to
open the last saved results only or to reconstruct the solution including all the intermediate probes.

Open last saved results

Open last saved results gives exactly the same results as the situation when no probes have been
performed (see previous section). The traveling shot parameters can be modified (see Traveling
Shot for more information about traveling shot parameters) and the results will be directly opened
in CFView™.

546 FINE™/Marine 7.1 User Guide


This choice is not definitive and it is possible to perform again the post- processing with different
parameters for the traveling shot.

FIGURE 31.2
Post-processing window (probes performed) with traveling shot

Unsteady results

Unsteady results (reconstruction required) button allows to reconstruct all intermediate probes
and load them into CFView™. Traveling shot parameters can be modified (see Traveling Shot) as
well as options for the reconstruction:
l the Available probes frame allows to select the quantities to reconstruct
l As an information, the menu gives the Available number of probe intervals which are
effectively saved during the computation.
l The Interval of reconstruction allows to reconstruct only a given range of probes. By default,
the menu proposes all the probes. It can be in terms of "Time steps" or "Seconds" depending
on the project configuration.
l The Probeskip interval: allows to skip the reconstruction for some probes in a sequence of
interval: "1" means that all probes are going to be reconstructed, "2" means that 1 probe over 2
will be reconstructed, etc... As a consequence, the non- reconstructed probes will not be
available in CFView™.

This choice is not definitive and it is possible to perform again the post- processing with different
parameters.

547 FINE™/Marine 7.1 User Guide


The interface is using the tool "probes2cfview". To reconstruct computations with probes in batch,
please read how to use this tool in probes2cfview section.

FIGURE 31.3
Post-processing window to reconstruct probes

Once the reconstruction has been performed, CFView™ will open the partial loader. It gives the
list of available quantities and offers the possibility to load the required time steps, specifying the
initial and final time steps, and to give an interval input to skip some probes. Please read the
CFView™ User Manual for more description about the partial loader.

548 FINE™/Marine 7.1 User Guide


FIGURE 31.4
Partial loader in CFView™ for volume probes

FIGURE 31.5
Partial loader in CFView™ for surface probes

549 FINE™/Marine 7.1 User Guide


Once all the time steps are loaded, an animation menu appears in the icon bar. This menu gives
the opportunity to load a particular time step, to launch the complete animation and to record it.

All the possibilities are listed in the CFView™ User Manual.

Limitation: "Time Label" option in CFView™ will give the index of the volume probes list and not
the actual value of the time step (limitation not present for surface probes).

31.3 TRAVELING SHOT

For simulations with at least one moving body, degrees of freedom (d.o.f.) carried out only by
rigid or weighted mesh displacement (see the Multibody definition section for the information
about the mesh displacement), can be visible or not by selecting a point of view. As in
cinematographic techniques, a traveling shot can be performed on each d.o.f., by attaching the
"camera" to the mesh during the rigid displacement of this d.o.f..

FIGURE 31.6
Traveling shot illustration

550 FINE™/Marine 7.1 User Guide


First of all, one should specify if the traveling shot is based on a body or not. This is done thanks
to the question: Traveling shot based on? If no body is specified, the point of view will be
attached to the initial position of the boat (like a person at port who will see the body passing by).
If a body is prescribed, the point of view will be attached to the body and will follow its
displacement.
Then, traveling shot options should be assigned to each d.o.f.. By default, they are grayed out for
fixed d.o.f., active for d.o.f. associated to a rigid mesh deformation (imposed or solved motions)
and inactive but available for d.o.f. associated to a weighted deformation.

This choice is not definitive and it is possible to perform again the post- processing with different
parameters.

For rotation (Rx,Ry,Rz), traveling shot is limited to the following possibilities: (0,0,0) (1,1,1) or
(0,0,1) with "1" meaning active and "0" inactive.

FIGURE 31.7
Traveling shot options

Using the traveling shot will result in getting the Relative Velocity instead of the Velocity in
CFView™.

551 FINE™/Marine 7.1 User Guide


31.4 RESULTS ANALYSIS

By pressing the icon on the main icon bar, the Results Analysis tool will be opened
providing tools to analyze the computation convergence but also extract interesting information.

FIGURE 31.8
Results analysis tool

The Results Analysis tool is capable of the following actions for each of the selected
computations in the right side of the Computations list:

552 FINE™/Marine 7.1 User Guide


l extracting the defined quantities data from computed results files,
l applying filters to the set of computed data,
l plotting the computed quantities,
l performing particular analysis of the convergence and the different outputs.

31.4.1 Application selection

The type of post processing should be first selected. The objective can be to create a resistance
curve, make a self-propulsion analysis or check results by quantity.

Resistance curve

Perform resistance curve (averaged selected quantity vs. Froude number) option is available
for the multiple selected computations being selected. Here, the resistance force values (Fx) will
be checked and represented depending on the Body definition structure and averaging settings
applied.

Self-propulsion analysis

Perform self-propulsion analysis option is available for a single computation being selected.
This analysis is based on the inputs and outputs of the selected computation and some extra
information requested to the user, which will depend on how the propulsion unit is considered in
the simulation. The following propulsion coefficients will be reported:
l Propeller advance ratio (J)
l Propeller thrust coefficient (KT)
l Propeller torque coefficient (KQ)
l Propeller torque coefficient in open water conditions (KQ,0)
l Thrust deduction factor (t)
l Taylor wake fraction (wt)
l Propeller open water efficiency (η0)
l Relative rotative efficiency (ηR)
l Hull efficiency (ηH)
l Propulsive efficiency (ηD)

553 FINE™/Marine 7.1 User Guide


The self-propulsion analysis is limited to computations in which the ship is always aligned with
the x-Cartesian axis, the Rotation variables are defined as Rotation and there is only one
propulsion unit. Depending on how the propeller is considered in the simulation, it is possible to
distinguish between:
l Scenario 1: the propeller is physically present in the computation inside a Sliding or Overset
mesh
l Scenario 2: the propeller is not physically present in the computation because it is modeled
with an Actuator disk
Regardless of the scenario under consideration, the user will always be requested to give the Ship
resistance in towing conditions (R) and the Skin friction coefficient (SFC). In the event of a
half -body computation with the propulsion unit not being located at the mirror plane, these two
quantities will be half of their values for a full body configuration.

Scenario 1

For the computations classified as Scenario 1, the user is requested to identify the Body ¨ship¨,
the Body ¨propeller¨ and to define the Diameter of the propeller (D) unless the plugin can
automatically retrieve this information from the *.sim and the SPinputs.dat files of the
computation. The latter file will be present in the computation directory only if the user decided to
perform the simulation making use of the "Self-propulsion " (p. 151) dynamic library "Types I, II
and III" (p. 153). See image below for the case in which the user has to define the three
aforementioned parameters.

554 FINE™/Marine 7.1 User Guide


FIGURE 31.9
Results analysis tool - Self-propulsion analysis inputs for Scenario 1

Scenario 2

For the computations classified as Scenario 2, the user might be requested to define the Propeller
rotational speed, to identify the Body ¨ship and to load the Open water data *.dat file unless
the plugin can automatically retrieve this information from the *.simfile or from the SPinputs.dat
file from the computation folder. The latter file will be present in the computation directory only if

555 FINE™/Marine 7.1 User Guide


the user decided to perform the simulation making use of the Self-propulsion dynamic library
"Type IV" (p. 158). See image below for the case in which the user has to define the three
aforementioned parameters.

FIGURE 31.10
Results analysis tool - Self-propulsion analysis inputs for Scenario 2

556 FINE™/Marine 7.1 User Guide


Unless the user has performed the computation having used an actuator disk with the "Body force
update" (p. 291) set to OPEN WATER DATA, it will be necessary to load in the "Open water
data" (p. 292) section a *.dat file containing the open water performance curve. An example of
this file is given below, in which any line starting by # will be considered as a comment, hence
ignored, and the line ¨J Kt Kq eta¨ defines the order of the columns in which the data is provided.

FIGURE 31.11
Results analysis tool - Example of a *.dat file of the open water curve

By clicking on Perform, the self-propulsion analysis will be performed and the results stored in
the "Computed_data.dat" file. However, before doing so it is advisable to average both efforts
and motions by activating the Average efforts and Average motions in the tab Analysis
options.

By quantity

By quantity >>> option gives access to the analysis of individual quantities such as efforts and
motions among others.

557 FINE™/Marine 7.1 User Guide


558 FINE™/Marine 7.1 User Guide
FIGURE 31.12
Results analysis tool - Individual quantity selection

l Efforts: "Forces and Moments" (p. 493)


l Motions: "Motions Variables" (p. 494)
l Other quantities:
l Courant number: global values and free surface proximity values
l Number of cells (in case of adaptive grid refinement): when computation is performed
applying the "Adaptive Grid Refinement Parameters" (p. 651) ,adaptive mesh cells count
will be reported
l Actuator disk thrust and torque : Thrust (Disk_ #n) and Torque (Disk_ #n) for each
"Actuator Disk" (p. 289) defined into the computation
l Wetted surface area : computed wetted surface area values if present during the
computation

MultifluidsWettedSurf_ Expert parameter should be activated to store the "body_wettedsf.dat"


keeping the Wetted surface area evolution through the computation

l Y+ distance: Minimum and Maximum value on solid bodies


l Point probes: all point probes defined and stored in the computations selected will be
considered
"Specific point probes" (p. 473) data is extracted from the "point_probes.dat" file generated by
the flow solver and represented on the PNG plot.
Probes units:
l Wave probe: [m]
l Velocity flow probe: [m/s]
l Dynamic pressure: [N/m²]
l Pressure: [N/m2]
l Turbulent viscosity: [m²/s]
l Turbulent dissipation: [m²/s³]
l Turbulent kinetic energy: [m²/s²]
l Turbulent frequency: [1/s]
l Helicity: [m²/s²]
l Second invariant: dimensionless

559 FINE™/Marine 7.1 User Guide


l Courant number: dimensionless
l Vorticity: [1/s]
l Cavitation fraction: dimensionless
Computation applying the "Modal approach" (p. 353) will receive an additional choice of
Quantities as Amplitudes described in "The motion file: Mvt_bodyname.dat" (p. 578)

FIGURE 31.13
Modal approach: Amplitudes quantities selections

31.4.2 Analysis options

This page provides the access to the settings of available averaging and filtering procedures.

FIGURE 31.14
Analysis options

Average and convergence criterion

Criterion for average calculations and convergence


Here it is possible to setup the calculation of:
l Average efforts
l Average motions

560 FINE™/Marine 7.1 User Guide


Parameters for averaging conditions are:
l Average values over the last: defining the percentage of the simulation to analyze starting
from the end
l Convergence criterion value: defining the allowed results deviation in percent
Here, the minimum and the maximum values from the averaged ones will be calculated for which
it can be assumed that the computation is converged. Thus, by analyzing the averaged data it can
be seen if the computation has reached its convergence or not. Representing the solution
oscillations, it can be defined on which time step or iteration the convergence have been reached
based on the minimum and maximum values.

Filters

Filtering options can be useful for the results better representation or smoothing the curves. For
instance, applying the "Quasi-Static Approach" (p. 244) during the simulation can result in peaks
of convergence, which are not useful regarding the computed values. Thus, Filters can be applied
with the given choices:
l Moving average
l Median filter

If both filters are selected, Median filter will be applied first.

The Median filter is especially efficient for deleting peaks relied on the Quasi-Static approach.
The Moving average is efficient for smoothing the results curves.
When Median filter is active and the Window width in time steps is defined as N, filtering
will be applied as follows:
l define the first successive quantity values: q1, q2, …, qn
l construct new sequence of values: q'1 , q'2 , …, q'i, where the q'i is a median of qi and about
N/2 nearest values of sequence q from both sides of qi
Moving average filter works similarly, but it uses averages instead of Median filter.

31.4.3 plot options

This page shows all the possible ways to sort and represent the data that can be defined.

561 FINE™/Marine 7.1 User Guide


FIGURE 31.15
Plot options

Plot options

l Define a range (minimum and maximum) for the X and Y-axis on the plots (no input means no
restriction).
l Double the values for the drag Fx (to do in case of half body simulation)
l Use absolute values for all selected quantities on the plots
l Represent selected quantities on the same plot
l Represent selected computations on the same plot (grayed out when only one computation is
selected).
If nothing selected here, previously selected quantities will be represented separately and for each
computation.

A warning "The following quantities have not been found: Thrust Torque Number of Cells Wetted
Surface" can appear listing the Quantities not available for the plot. This can happen when an option
of Represent selected computations on the same plot have been applied and the selection of
Quantities is not compatible with the output legends formats. For instance, Torque plot together with
the Number of cells will not be available for the suitable scale.

Dimensionless coefficient

When the option is activated, two text boxes appear: "Denominator name" and "Denominator

562 FINE™/Marine 7.1 User Guide


value". Text box "Denominator name" defines how the denominator will be named on plots. Text
box "Denominator value" defines the denominator value. Zero value will be rejected. By default,
"Denominator name" is "*" to symbolize a coefficient and "Denominator value" is 1.
When the dimensionless coefficient is used, it is indicated on plots in titles, axis labels and legend
where possible: contents of "Denominator name" text box is appended right after the quantity
name. Examples: Q*, Q / Lref, Q^ for corresponding Denominator names "*", " / Lref" and "^".

The unit is not shown when the dimensionless coefficient active.

31.4.4 Report folder structure

All the created results files will be stored within the project folder having the name
"Convergence_report_date_time", for instance: Convergence_report_23-09-2015_17h-06m-28s.
If selected computation have different time scales, data will be stored with the time scale along
with each quantity.

Convergence report information

After creating the "Convergence_report_date_time", Results Analysis tool creates the info file
"convergence_report.info" which contains the applied options for the analysis.

Example

Convergence report parameters


=============================
Selected computations:
computation_#
Efforts: Fx Fy Fz Mx My Mz FxP FyP FzP MxP MyP MzP FxV FyV FzV MxV MyV MzV
Motions: Tx0 Vx Ax
Other quantities: Courant# cells# thrust torque wetted_surface Y+
Average efforts.
Average over the last 10% of time steps.
Convergence criterion: 1%.

563 FINE™/Marine 7.1 User Guide


For each selected computation a folder having its name "computation_ name" is created. It
contains:
l "computed_data.dat" file
l selected quantities plots in PNG format

FIGURE 31.16
Example of the Fx force components plot for the Body: DTMB

"Convergence_report_date_time" will also contain of PNG files in case of Resistance curve has
been activated or when the Represent selected computations on the same plot has been applied.

Please note, that legends for the PNG pictures are defined automatically by the Python
libraries. Thus, it cannot be guaranteed that the legend will always be placed at the same
location.

564 FINE™/Marine 7.1 User Guide


Computation report file

"Computed_data.dat" file contains of the following information:


l Project name
l computation name and computation mesh file path
l list of Quantities that have been requested and have not been found for any reason
l table with average values and convergence status
l tables with Quantity values (some of them could be filtered)

Example

Convergence report
==================
Project: /home/User1/Project_1/resistance.iec
Computation: computation_#
Mesh: /home/User1/Project_1/_mesh/mesh.igg
The following quantities have not been found: Wetted Surface
Average values
Quantity Average Min Max Std. deviation
Fx(Body1) -3.4259381e+01 -3.5224150e+01 -3.2721830e+01 3.8770517e-01
Fx(Body2) -1.6660469e+01 -1.9926500e+01 -1.4808630e+01 1.0654178e+00
Fy(Body1) -4.9440199e-01 -9.3531450e+00 3.0237600e+01 3.7201312e+00
Fy(Body2) 1.2470519e+00 -4.3823220e+00 2.5087720e+01 2.5314469e+00
Mz(Body1) 2.9071903e-01 -2.1124660e+01 1.1449300e+01 6.8705075e+00
Mz(Body2) -4.6927811e-01 -6.4888300e+00 1.1183190e+01 2.7084917e+00
CPU time and convergence
Quantity CPU_Time Physical_Time Iteration
Mz(Body1) not reached
Mz(Body2) not reached
Table of quantity values (filtered quantities are marked by *)
Common quantities

565 FINE™/Marine 7.1 User Guide


T Fx(Body1) Fx(Body2) Fy(Body1) Fy(Body2) Mz(Body1) Mz(Body2) Tz0(Body1) Ry1
(Body1) Tz0(Sliding_patches_1) Ry1(Sliding_patches_1) Tz0(Sliding_patches_2) Ry1
(Sliding_patches_2) Tz0(Body2) Ry1(Body2) Y+min(Body1) Y+max(Body1) Y+min(Body2)
Y+max(Body2) Courant#
3.368500e-02 -2.269570e-01 -2.174586e-01 5.617925e-02 -4.073670e-03 1.827997e-01 -
1.146920e-01 1.074375e-02 7.125046e-07 -1.030817e-06 6.275238e-07 -1.142215e-05
7.125046e-07 1.074329e-02 6.275238e-07 1.299843e-05 4.751390e+01 1.288248e-05
4.417061e+01 1.829200e+00
When Filters have been applied for the Results analysis, the "Average values and convergence
table" in the report file will be presented. It will be computed the following way:
1. Column "Average" is an average of the last X% of the Time step/iteration values
2. Columns "Min" and "Max" are minimum and maximum of the last X% of Time step/iteration
values of the Quantity.
3. Column "Std. deviation" is the standard deviation of the Quantity from its average value, using
the last X%).
The quantity considered to be converged if (qn-A)/A< Y/100
where q n is the last Time step/iteration value of the quantity; A is its average value; Y is the
Convergence criterion value defined in %.
If the convergence have not been reached for the Quantity, "not reached" status will be shown
into the "CPU time" column and "Time" and "Iteration" will be left empty.
If the quantity is converged, the tool defines at which Time step the convergence have been
reached and it will be reported in "CPU time", "Time" and "Iteration" in different units.

Column "Time" is not displayed for steady mono-fluid computations.

All created by Results Analysis tool files can be opened by text editors including such as Open
Office and Microsoft Excel.

566 FINE™/Marine 7.1 User Guide


CHAPTER 32.

FILE FORMATS

This chapter describes the files used by FINE™/Marine and the flow solver. It is divided into two parts.
The first gives the file format information needed to use FINE™/Marine, while the second one
describes the format of the files used and produced by the flow solver. As FINE™/Marine is intended
to handle the files treatment, knowing the exact format of all the files used in a simulation process is
not required. This chapter is therefore written for advanced users.
In the following description, it is assumed that all the files are related to a generic project called
'project'. The chapter is divided in five sections:
l files produced by HEXPRESS™,
l files produced and used by FINE™/Marine,
l files produced and used by the FINE™/Marine flow solver,
l files used as data profile,
l resource files used to control the layout and which contain default values and reference
information.

In this section
32.1 Files Produced by HEXPRESS™ 568
32.2 Files Produced by FINE™/Marine 568
32.3 Files Produced by the FINE™/Marine flow solver 573
32.4 External preferences file: .dat 583
32.5 External user input file: stop.now 584
32.6 Triangulated surface file 584
32.7 Wall Surface Data Description 585
32.8 Resource Files 590

567 FINE™/Marine 7.1 User Guide


32.1 FILES PRODUCED BY HEXPRESS™

This section describes the files produced by the grid generator HEXPRESS™ and used by
FINE™/Marine:
l project.igg contains all relevant parameters about the grid generation process in
HEXPRESS™.
l project.dom contains the computational domain definition (geometry and topology).
l project.hex contains the mesh and its connection to the computational domain.
l project.bcs contains boundary conditions information. As described in the Boundary
Conditions chapter, the settings of the boundary condition type is performed in HEXPRESS™
while the physical boundary condition parameters are set in FINE™/Marine. The settings of
HEXPRESS™ are stored in the file project.bc s. This file is used by FINE™/Marine to
initialize the boundary condition types for each patch. It is updated each time the boundary
condition type is changed in HEXPRESS™.
For more details about these files, please refer to the HEXPRESS™ User Manual.

32.2 FILES PRODUCED BY FINE™/MARINE

This section describes the files produced and used by FINE™/Marine (or used by the flow solver
launched from FINE™/Marine). Please note that FINE™/Marine acts as a file manager between
different software systems. Therefore, it is important that the read, write and execute permissions
are set properly for all the files and directories used by FINE™/Marine.

Manual modification of these files is not supported since it may corrupt the file or provide incorrect
results. Such a modification should only be done on explicit advice of our local Support office.

The Project File: project.iec

This file contains all the information related to the project. It is used by FINE™/Marine to save
and recover all project settings. This file is subdivided into several blocks. Each block contains
data and/or other sub-blocks. The beginning of each block is identified by the key word NI_
BEGIN and a name and the end of the block are identified by the key word NI_END and the
name of the block.

568 FINE™/Marine 7.1 User Guide


File Header

The file always has the following header containing the version number and the project type:
NUMECA_PROJECT_FILE VERSION 5.1
PROJECT_TYPE MARINE
After the header, 3 lines are used to store the name of the files linked to the project:
GRID_FILE /usr/local/_marine_projects/_project_1/_mesh/mesh1.igg
TRB_FILE /usr/unknown (irrelevant)
GEOMETRY_FILE /usr/unknown (irrelevant)
These are respectively the mesh, the template and the geometry files. The template and the
geometry files are not used by FINE™/Marine and are only there for backward compatibility
reasons.

The Computation Block

The project file contains the settings of all the computations settings. Each computation block is
identified by the following keywords:
NI_BEGIN computation
...
NI_END computation
The computation block contains the following sub-blocks:
l The Initial Solution and Boundary Condition block contains initial solution parameters and
boundary conditions definition.
l The Blade-to-Blade block contains turbomachinery flow hub/shroud definition.
l The Marine Parameters block contains all the parameters for the FINE™/Marine flow solver.
l The Grid Parameters block contains irrelevant information (backward compatibility).

The Computation File: project_computationName.sim

When the solver is started, FINE™/Marine creates a new directory using the name of the active
computation. A subproject file (".sim" extension) containing the settings of the active computation
is saved in this new directory. This file is used as input to the flow solver.

The C-Wizard Computation File: cwizard.input

When the user clicks on the "Start mesh set-up" button at the end of the C-Wizard Part I. plugin
procedure, it switches to the next step of the wizard (Domain and mesh setup) and it creates a

569 FINE™/Marine 7.1 User Guide


'.dat' file named 'wizard. input' in the project folder, at the same level than the '.iec' file. The script
writes in this file all the inputs given by the user and additional information useful for the setup of
the simulation. According to the application type selected the .input file created will have the
name as:
l Resistance: cwizard_resistance.input
l Seakeeping: cwizard_seakeeping.input
l Open water: cwizard_open_water.input
l Planing regime: cwizard_planing.input
l Hydrofoil resistance: cwizard_foilVPP.input
l Sailing yacht resistance: cwizard_sailingYachtVPP.input

To change the name of the bodywithin the .input file, it should be written in one word and including
a space at the end of the line.

The C-Wizard Status File: .status

A global status file that summarizes the progress of every computation launched under the global
project within the "C-Wizard computation matrix" (p. 129) is stored in a project directory.
This file is located in the global directory under the name " cwizard.status" and contains the
following information:
Project Name Geometry Yaw Pitch Roll Draft Status
t1_Y0.0_P2.0_R0.0_D8.0 geom_name 0.0 2.0 0.0 8.0 Finished
t2_Y0.0_P2.0_R0.0_D10.0 geom_name 0.0 2.0 0.0 10.0 Pending
t3_Y0.0_P4.0_R0.0_D12.0 geom_name 0.0 4.0 0.0 12.0 Running
t4_Y0.0_P4.0_R0.0_D14.0 geom_name 0.0 4.0 0.0 14.0 Crashed

Status that can be found:


l "Finished" computation has been performed with success
l "Crashed" computation had and issue and failed
l "Pending" computation is not started yet
l "Running"computation is ongiong at the current moment.
To open the " cwizard.status" it is recommended to use Microsoft Excel or Open Office. The
column separator when importing the text data should be "Tab".

570 FINE™/Marine 7.1 User Guide


The Self-propulsion Dynamic Library file: SPinputs.dat

*** Type of self propulsion computation: integer


Set the computation type [must be defined].
Options: 1=solved RPM; 2=solved ship velocity; 3=fixed power.
*** Name of the vessel: string
Name of the vessel as created in the FINE™/Marine project [must be defined].
*** Name of the propeller: string
Name of the propeller as created in the FINE™/Marine project [must be defined].

Defined through the FINE™/Marine GUI Name of the vessel and propeller through the Body
Definition menu will be stored in the '.sim' file, thus the name used in and in the '.sim' and
'SPinputs.dat' should strictly match.

*** Diameter of the propeller in [m]: decimal number


Specify the propeller diameter [must be defined].
*** Water density [kg/m**3]: decimal number
Density of the fluid in which the propeller rotates and should match imposed in FINE™/Marine
GUI if modified manually in 'SPinputs.dat' [must be defined].
*** Thrust is positive when omega is positive: integer
Considering the orientation of the axis, if the rotation of the propeller is positive and if the
resulting thrust in open water is positive, then this parameter should be equal to 1 [must be
defined].
0ptions: 1 = true, -1=false
*** Additional constant wrench force along X-axis [N]: decimal number
For instance, this parameter can be applied to simulate:
l vessel behavior as a tugboat, by specifying resulting force on the vessel;
l towing tank test conditions, by imposing the residual force on the carriage pulling.

571 FINE™/Marine 7.1 User Guide


This parameter is also available in FINE™/Marine GUI through the Body motion menu in the
Dynamic parameters . For instance, to model the towing tank constant tugging speed, it could be
necessary to activate the Non follower force option.

Advancing velocity of the vessel becomes mandatory when the residual force is non zero
(namely, Additional constant wrench applied along the X- axis), otherwise the residual force will
be changed to zero and therefore not taken into account.
*** Propeller rotational velocity, [rad/s]: decimal number
The rotational velocity of the propeller at operating point must be imposed by the user in case of
the solved vessel speed, and will be estimated in case of fixed power.
*** Power of the propeller [W]: decimal number
The power of the propeller at operating point. Must be defined only for the fixed power
simulation (Type 3).
Expert input parameters [optional input]:
Each parameter here has a suggestion about if this parameter will be important for the certain type
of the computation (1, 2 or 3):
Requirements by type of computation: 1-Optional, 2-Not required, 3-Optional
*** Estimated advance coefficient at operating point: decimal number
Dimensionless advance coefficient of the propeller defined by J=Vship/(n*D) at the operating
point where:
Vship - advancing velocity of the ship [m/s];
n - the rotational speed of the propeller [rps].
The convergence speed of the computation is related to the value of the thrust coefficient (Kt).
The closer the estimated thrust coefficient gets to the real value at operating point, the faster will
be the convergence speed together with the stability ensured. However, this may lead to stability
issues during the computation in case of inappropriate choice of parameter value.
*** Estimated thrust coefficient of the propeller at operating point: decimal number
Dimensionless thrust coefficient of the propeller defined as Kt=Thrust/(rho*n**2*D**4), where
at the operating point:
Thrust [N];
n - the rotational speed of the propeller [rps].
*** Number of time steps before the controller is activated: integer
The controller will be activated after preforming the specified number of time steps. Before this, at
each time step, the rotational speed imposed on the propeller will be the same as the one has been
obtained at the previous time step.
*** Number of time steps before the limiter is activated: integer

572 FINE™/Marine 7.1 User Guide


The limiter will be activated after preforming the specified number of time steps. Before that, there
is no limitation on the variation of the propeller rotational speed between two consecutive time
steps n and n+1. After that, this variation is limited by the parameter "Maximum variation of
Omega between two consecutive time steps". This parameter can be applied to cope with the
potential stability issues and to avoid possible computation divergence.
*** Maximum variation of Omega between two consecutive time steps
Maximum variation of the rotational speed of the propeller between two consecutive time steps n
and n+1 when the limiter is activated. Expressed in percentage of the propeller rotational speed
value at the time step n.
*** Maximum variation of vessel speed between two consecutive time steps
Maximum variation of the vessel speed between two consecutive time steps n and n+1 when the
limiter is activated. Expressed in percentage of the vessel speed value at the time step n.

The Information File: project_computationName.std

This ASCII file contains all the information related to the current computation. It contains a
summary of the computation variables as well as any warnings and/or error messages. If the flow
solver encounters a problem, this is described in the ".std" file. When a problem appears please
send this file together with a detailed description to our local Support office The std file is
displayed through the Task Manager when launching the code from the FINE™/Marine interface.

Boundary Conditions File: project_computationName.bcs

This ASCII file contains all the information about boundary conditions related to the current
computation. It contains the reference to the mesh file and to the ".sim" file. This file also shows
the identifier of each surface (see Identifier), their name and the boundary conditions created in
HEXPRESS™.

32.3 FILES PRODUCED BY THE FINE™/MARINE


FLOW SOLVER

This section describes the files produced and used by the flow solver. The flow solver uses most
of the files described above and produces the following files:

The _body_param.dat file

This file contains the data related to the body and stored into the computation folder with the

573 FINE™/Marine 7.1 User Guide


name created as Project_ name_ computation_ body_ param.da t. Data that can be stored here
automatically is described in the Body Motion chapter. An example of the file content can be
found below:
DemoCase3_computation_1_body_param.dat
* BODY PARAMETERS (ISIS-CFD:6.1)
*
*** Number of moving bodies (non-fixed)
*
1
*
*** Index of moving bodies
*
1
*
*** Parameters of the body : DTMB
*
Index of the body
1
Reference point
0.135870000000000E+01 0.000000000000000E+00 -0.402000000000000E-01
Reference Cardan angles
0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
Reference quaternion
0.100000000000000E+01 0.000000000000000E+00 0.000000000000000E+00
0.000000000000000E+00
Translation tq= 0.696301885999982E+02
-0.105072818987277E+03 0.000000000000000E+00 -0.604353139721305E-02
Velocity tq= 0.696301885999982E+02
-0.153100000000000E+01 0.000000000000000E+00 -0.304441213637909E-06
Acceleration tq= 0.696301885999982E+02
0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
Translation tp= 0.696799599999982E+02
-0.105149019000677E+03 0.000000000000000E+00 -0.604354654967847E-02

574 FINE™/Marine 7.1 User Guide


Velocity tp= 0.696799599999982E+02
-0.153100000000000E+01 0.000000000000000E+00 -0.304441213637909E-06
Acceleration tp= 0.696799599999982E+02
0.000000000000000E+00 0.000000000000000E+00 0.000000000000000E+00
Rotation vector tq= 0.696301885999982E+02
0.000000000000000E+00 -0.171681463061522E-05 0.000000000000000E+00
...

The eff_*.dat files

These files contain the information about the global fluid forces and momentum for each body
and sub-body (remark: they do not contain external or actuator disk forces). F represents the
forces, M the momentum, V the viscous forces and P the non-viscous forces (also called pressure
component). For instance, eff_FxV.dat corresponds to the viscous forces applied on the body
along the X-axis. See Forces and Moments for more details. The information about the time T is
as well as the number of non-linear iterations, noted Itnl, are present (remark: for steady mono-
fluid computation, T is always equal to 0). Below, an example for an eff_Fx.dat file for an
imposed forward motion of a body called DTMB in unsteady mode.
#TITLE =(ISIS-CFD:6.1) Var=Fx Fixed_Frame
#NI_BEGIN VARIABLES
# NAMES Fx FxDyn
#NI_END VARIABLES
#NI_BEGIN CALCUL
# MODE UNSTEADY
#NI_END CALCUL
#NI_BEGIN BODY
# NAME DTMB
#NI_END BODY
TITLE ="(ISIS-CFD:3.1-1) Var=Fx Fixed_Frame "
VARIABLES = "T","Itnl","Fx(DTMB)","FxDyn(DTMB)"
ZONE
0.5000000E-01 4 0.1233527E-01 0.6426352E-02
0.1000000E+00 4 0.3146476E-01 0.2555553E-01
0.1500000E+00 4 0.1463032E+00 0.1403937E+00

575 FINE™/Marine 7.1 User Guide


0.2000000E+00 4 0.2957437E+00 0.2898339E+00
0.2500000E+00 4 0.3968518E+00 0.3909416E+00
The convergence of the efforts can be saved for all the nonlinear iterations into the eff_*.dat files.
The time value takes a negative sign to distinguish the line from the other values. To use this
option an expert parameter SaveConvEfforts_ should be set as YES in the Control variables
menu Advanced page.

Example of an "eff_Fx.dat" with 20 non linear iterations

#TITLE =(ISIS-CFD:6.1) Var=Fx Fixed_Frame


#NI_BEGIN VARIABLES
# NAMES Fx
#NI_END VARIABLES
#NI_BEGIN CALCUL
# MODE UNSTEADY
#NI_END CALCUL
#NI_BEGIN BODY
# NAME Agard
#NI_END BODY
TITLE ="(ISIS-CFD:4.2a9) Var=Fx Fixed_Frame "
VARIABLES = "T","Itnl","Fx(Agard)"
ZONE
-0.5000000E-02 1 0.0000000E+00
-0.5000000E-02 2 -0.5234422E+04
-0.5000000E-02 3 -0.1299763E+05
-0.5000000E-02 4 -0.2024485E+05
-0.5000000E-02 5 -0.2485315E+05
-0.5000000E-02 6 -0.2611258E+05
-0.5000000E-02 7 -0.2455302E+05
-0.5000000E-02 8 -0.2141792E+05
-0.5000000E-02 9 -0.1806993E+05
-0.5000000E-02 10 -0.1554358E+05
-0.5000000E-02 11 -0.1432982E+05
-0.5000000E-02 12 -0.1438984E+05
-0.5000000E-02 13 -0.1532382E+05

576 FINE™/Marine 7.1 User Guide


-0.5000000E-02 14 -0.1659602E+05
-0.5000000E-02 15 -0.1773435E+05
-0.5000000E-02 16 -0.1844971E+05
-0.5000000E-02 17 -0.1866487E+05
-0.5000000E-02 18 -0.1847194E+05
-0.5000000E-02 19 -0.1805327E+05
-0.5000000E-02 20 -0.1760027E+05
0.5000000E-02 20 -0.1760027E+05
-0.1000000E-01 21 -0.1648655E+05
-0.1000000E-01 22 -0.1597969E+05
When the actuator disk is used with open water data, the eff_AD.dat is created and contains the
rotation speed [RPS], the actuator disk thrust [N] and torque [Nm], and dimensionless coefficients
such as the advanced ratio, the torque and thrust coefficients and the active fraction. The active
fraction corresponds to the percentage of the actuator disk which is inside the water.

Example of an "eff_AD.dat" with 1 time step

TITLE ="(ISIS-CFD:7.1) Actuator disk data,D1= 3.30000,Rho= 1025.070"


VARIABLES = "T","Itnl","N1","T1","Q1","Jow1","Kt1","Kq1","Af1"
ZONE
0.6437150270E-01 4 0.3009446E-01 48.11865 23.15984 0.050000 0.437050 0.063744
1.000000
Description of the quantities:
l "T" time [s]
l "Itnl" non linear iteration
l "N1" rotation speed [rps]
l "T1" thrust [N]
l "Q1" torque [Nm]
l "Jow1" advance ratio [-]
l "Kt1" thrust coefficient [-]
l "Kq1" torque coefficient [-]
l "Af1" active fraction: how much of the propeller is under the water (1 = all under water, 0 =
all in air).

577 FINE™/Marine 7.1 User Guide


The convergence history: .res file

This file stores the convergence history of the current computation. The residuals are written
according to the non-linear iterations itnl, the time t in seconds and cpums which is the CPU time
per variable in milliseconds. To know more about the definition of the residuals, please read the
Quantities to Display section. An example of .res file is given below:
#NI_BEGIN CALCUL
# MODE UNSTEADY
#NI_END CALCUL
#COLUMNS = itnl t cpums ResU ResV ResW ResP ResK Res`w
TITLE = "(ISIS-CFD:6.1) : Convergence"
VARIABLES = "itnl", "t", "cpums", "ResU", "ResV", "ResW", "ResP", "ResK",
"Res`w"
1 0.330000E-01 0.310522E-01 0.157558E-08 0.121511E-10 0.179463E-04 0.306026E+00
0.342958E-06 0.113064E+01
2 0.330000E-01 0.436903E-01 0.443751E-03 0.732851E-03 0.787221E+00 0.151139E+00
0.728790E-07 0.385368E+00
3 0.330000E-01 0.561916E-01 0.204232E-03 0.319256E-03 0.353062E+00 0.122346E+00
0.259866E-07 0.281035E+00
...

If nvariable is the number of variables in the simulation and cpums is the time per variable in
milliseconds, these values are linked together with the time step CPU cost in [MSEC/PTS] written in
the . std file such as: CPU COST OF THE TIME STEP = cpums/1000*nvariable . The
information is computed only by the first partition to avoid unnecessary communications between
partitions.

The motion file: Mvt_bodyname.dat

The kinematic variables outputs are recorded in a file called Mvt_bodyname.dat. This file is read
by the Monitor to show the evolution of the body motion in time. The information about the time
T is also present. Below, an example for the body called boat is presented.
#TITLE =(ISIS-CFD:#)
#NI_BEGIN BODY
# NAME boat

578 FINE™/Marine 7.1 User Guide


#NI_END BODY
#COLUMNS = T Tx0 Rx2 Vx dRx2 Ax d2Rx2 Rn dRn d2Rn
TITLE ="(ISIS-CFD:6.1) Var=boat "
VARIABLES = "T ","Tx0","Rx2","Vx","dRx2","Ax","d2Rx2","Rn","dRn","d2Rn"
ZONE
0.3300000E-01 0.3130373E-03 0.0000000E+00 0.1897184E-01 0.0000000E+00
0.5749043E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00
0.6600000E-01 0.1252126E-02 0.0000000E+00 0.3794227E-01 0.0000000E+00
0.5748614E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00
For the computation applying "Modal approach" (p. 353) the specific variables outputs is
provided: Amp_ M1 , dAmp_ M1 , d2Amp_ M1 meaning Amplitude mode, and it's time
derivatives. Here the _M# identifies the Mode calculated, and Amplitudes are summarized for
each Mode to define the generalized displacement, which is used at its turn to retrieve the
structure deformation.
Amplitude of the Mode# can be seen as the weight or the factor of the Mode# , which is a
function of time.
#TITLE =(ISIS-CFD:6.1)
#NI_BEGIN BODY
# NAME Agard
#NI_END BODY
#COLUMNS = T Ty0 Vy Ay Amp_M1 dAmp_M1 d2Amp_M1 Amp_M2 dAmp_M2
d2Amp_M2
TITLE ="(ISIS-CFD:6.1) Var=Agard "
VARIABLES = "T ","Ty0","Vy","Ay","Amp_M1","dAmp_M1","d2Amp_M1","Amp_
M2","dAmp_M2","d2Amp_M2"
ZONE
0.5000000E-03 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.4963874E-03 -
0.7225253E-02 -0.1445051E+02 0.3610048E-05 0.7220095E-02 0.1444019E+02
0.1000000E-02 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.4926632E-03 -
0.7559974E-02 0.6221090E+01 0.6164540E-05 0.4053430E-02 -0.1672009E+02
0.1500000E-02 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.4885295E-03 -
0.8676797E-02 -0.3015745E+01 0.7804431E-05 0.2365180E-02 -0.1898088E+01
To generalize, the amplitude of a mode represents its influence into the generalized displacement,
and it should be taken into account, that Amplitude is multiplied by the Modal shape. This will
give its contribution into the generalized displacement of the given mode.

579 FINE™/Marine 7.1 User Guide


With multiple Modes, the global deformation (which is the generalized displacement indeed) is
computed as Modes per nodes. The loads are projected on each Modal shape, leading to
uncoupled scalar equation to solve (per mode). The resulting variable which is computed is the
Amplitude.
It should be taken into consideration, that the order of magnitude of the different Modal shapes
can be different too, thus to compare the Amplitudes of each Mode can be misleading.

The output.list file

The file output.list, stored in each partition folder, contains information about the convergence
and warning messages, in case of parallel computation. Useful information can be found in it, in
case the computation refuses to start for instance. Please send these files to our local Support
office in case of troubles starting a parallel computation.

The folder b001 does not contain an output.list file. The information of this block is stored in the
general output of the code in the .std file (or in the shell if the computation has been started in batch).

The SPResults_XXX.dat file

This file is created when the dynamic library for self-propulsion is used. At every time step, the
dynamic library writes for each processor a file SPResults_XXX.dat where XXX is the number of
the processor. Check Type 1 computation procedure example for the self-propulsion library
description.
Each of the SPResults_XXX.dat file contains the following data, depending on the type of the
computation carried out.
Type 1: fixed ship speed [m/s] when the propeller rotational velocity [rad/s] to be calculated:
itt : current time step
tc : current value of the time step
Fvessel(tc) : vessel drag at the current time step tc
Fprop1(tc) : thrust of the propeller at the current time step tc
(Fvessel-Fprop1+Fres)(tp) : sum of thrust, drag and residual force at the previous time step
Delta n(tc) :variation of the rotational speed of the propeller to be applied at the current time step
tc
n(tc) : value of the rotational speed of the propeller to be applied at the current time step tc
Flag limiter : if the limiter bounds n(tc), then the flag is set to 1 instead of 0

580 FINE™/Marine 7.1 User Guide


Type 2: fixed propeller rotational velocity[rad/s] when the ship speed [m/s] to be calculated:
itt: current time step
tc: the current value of the time step
Fvessel(tc): vessel drag at the current time step tc
Fprop1(tc): thrust of the propeller at the current time step tc
(Fvessel-Fprop1+Fres)(tp): sum of thrust, drag and residual force at the previous time step
Delta V(tc): variation of the ship speed to be applied at the current time step tc
V(tc): value of the ship speed to be applied at the current time step tc
Flag limiter: if the limiter bounds V(tc), then the flag is set to 1 instead of 0
Type 3: fixed power [W] when the propeller rotational velocity[rad/s] and ship speed [m/s] to be
calculated:
itt: current time step
tc: the current value of the time step
Fvessel(tc): vessel drag at the current time step tc
Fprop1(tc): thrust of the propeller at the current time step tc
(Fvessel-Fprop1+Fres)(tp): sum of thrust, drag and residual force at the previous time step
Delta n(tc) :variation of the rotational speed of the propeller to be applied at the current time step
tc
n(tc) : value of the rotational speed of the propeller to be applied at the current time step tc
Delta V(tc): variation of the ship speed to be applied at the current time step tc
V(tc): value of the ship speed to be applied at the current time step tc
Ptarget- Pship (tp) : difference between the imposed power and the computed power at the
previous time step
Pship(tc): value of the ship power at the current time step tc
Flag limiter: if the limiter bounds n(tc), then the flag is set to 1 instead of 0; if the limiter bounds
V(tc), then the flag is set to 2 instead of 0, if the limiter bounds both speeds, then the flag is set to
3 instead of 0.

The variables

Some variables are computed automatically by the solver, they correspond to the mandatory
variables, see Automatically computed variables for more details.
Some optional variables can also be computed and stored upon request through the
FINE™/Marine interface. They are not necessary to make a restart but they can be useful for the
post-processing step.

581 FINE™/Marine 7.1 User Guide


The status.dat file

This file is created by the graphical user interface to know the evolution and the chronology of the
computation steps performed by all the tools including the flow solver. It indicates the following
information:
l the computation is over or not,
l the save counter,
l dates of changes,
l the status of each steps,
l pending (nothing has been done for this step yet),
l done (the step has been correctly performed),
l stopped (the step has been stopped by the user),
l mismatch (the step has been previously done but new data are available),
l crashed (the step has not been performed correctly. Ex: missing files, executable has been
killed abruptly, etc.).

This file must not be modified by the user.

The file .lockStatus prevents all tools to write inside status.dat file at the same time. If a tool failed to
perform its tasks, the file .lockStatus might still be present which could block others tools to proceed,
including the graphical user interface. Hence, in very rare occasion where the GUI freezes, please
remove this .lockStatus file.

The overset cell status file *.blanking

This file contains the information about the overset mesh cells status:
l active
l blanked
l interpolated
The information is used to represent the cells graphically in the visualizer. More details about the
overset method can be found in "Overset grid management" (p. 423).

582 FINE™/Marine 7.1 User Guide


32.4 EXTERNAL PREFERENCES FILE: .DAT

To specify the position and the size of the Graphical Interface appearance a 'preference.dat' file
can be created and stored in /.numeca directory. This option is available for the FINE™/Marine
GUI, HEXPRESS™ and Monitor™.
This file should contain the following info :
l graphical interface name: PRODUCT
l screen location: GEOMETRY

Example

PRODUCT HEXPRESS
PRODUCT CFView
GEOMETRY 1920x1200-0-0
END_PRODUCT
PRODUCT Monitor
GEOMETRY 1920x1200-0-0
END_PRODUCT
GEOMETRY 1520x1200-0-0
END_PRODUCT
PRODUCT FINE/Marine
GEOMETRY 1920x1200-0-0
END_PRODUCT
PRODUCT specifies the product name: "FINE/Marine" for FINE™/Marine, "Monitor" for
Monitor™ , "HEXPRESS" for HEXPRESS™ and "CFView" for CFView™.
GEOMETRY specifies window size and position for that product main window: it has form
widthxheight[+|-]x[+|-]y. [x|y] means x or y here; Numbers width and height specify sizes of the
window in pixels, x and y – position in pixels:
l If x is preceded by +, it specifies the number of pixels between the left edge of the screen and
the left edge of window border;
l If preceded by - then x specifies the number of pixels between the right edge of the screen and
the right edge of window border;
l If y is preceded by + then it specifies the number of pixels between the top of the screen and
the top of window border;

583 FINE™/Marine 7.1 User Guide


l If y is preceded by - then it specifies the number of pixels between the bottom of window
border and the bottom of the screen.

32.5 EXTERNAL USER INPUT FILE: STOP.NOW

The solver reads a file "stop.now" at each non-linear iteration. It can be edited manually to control
the computation end. This file is automatically created by the solver when the computation is
launched and it only contains a number (written in the second column of the first line only) or a
letter (written in the first column of the first line only), with the different possibilities described
below:
l "0" (default value): this number means that the solver continues until the maximum number of
iterations/time steps written in ".sim" file is reached.
l "n" (positive number): this corresponds to the number of iterations or time steps that the solver
should still perform before the end of the computation (for instance: "2" means that the solver
will perform 2 extra iterations or time steps before saving and stopping).
l "-n" (negative number): a negative number imposes a new absolute number of time steps, i.e. -
400 will stop the computation after 400 time steps total. -1 corresponds to the Suspend button
in the interface: the solver will save the results and stop after the next time step or iteration.
l "q": this letter corresponds to the Kill button in the interface: the solver stops immediately
without saving.

On LINUX, users can type echo q > stop.now in the shell to stop a computation.

l "s": the solver will save the computation as soon as possible and keeps on running.

32.6 TRIANGULATED SURFACE FILE

The structure of the triangulated ".its" surface file is as follows:


# In headers, each line starting with " # " is a comment line.
# For " versioning ", the string "Generated by: (tool_name:version number)" must be
# present in the heading. Examples:
# Generated by: (Hex2Isis:1.49) (ISIS-CFD:2.3-0)

584 FINE™/Marine 7.1 User Guide


# No more comment lines after the following 'number_of_surfaces data' integer value
number_of_surfaces (integer)
name_of_1st_surface (character, max 1024)
number_of_points (integer)
x, y, z # 1st point (3 reals)
x, y, z # 2nd point (3 reals)
...
number_of_triangles (integer)
id1, id2, id3 # Vertices connectivity indexes of the 1st triangle (3 integers)
id1, id2, id3 # Vertices connectivity indexes of the 2nd triangle (3 integers)
...
name_of_2nd_surface (character, max 1024)
...

32.7 WALL SURFACE DATA DESCRIPTION

Standard output data of FINE™/Marine flow solver is the volume data field. In order to allow
advanced users to get access to wall surface data such as local friction forces or hydrostatic
pressure, a special wall surface data output is available. This section gives a description of the
structure of wall surface data.

585 FINE™/Marine 7.1 User Guide


32.7.1 Wall Surface Grid

FIGURE 32.1
Surface grid configuration

FIGURE 32.1 shows a configuration of a surface grid. There are 3 faces and 8 nodes defining
this grid.
l Face 1 is formed by nodes 1,2,5 and 4. We assume that it is assigned with a boundary
condition flag 3 (wall function), a body index 1, and a sub-body index 2.
l Face 2 is formed by nodes 4, 5, 7 and 6. It has the same boundary condition flags, body index
and sub-body index as face 1.
l Face 3 is formed by nodes 2,3,8,7 and 5. It has a boundary condition flag 2 (slipping face), a
body index 1, and a sub-body index 1.
For a parallel computation, during the domain decomposition, faces 1 and 2 are assigned to block
1, and face 3 is assigned to block 2. The wall surface grid is extracted and saved in a file named
"wall_surface_grid.bin" during the domain decomposition step with the tool "premetis" (see the
Mesh Partitioning section). It contains all boundary faces with boundary condition flag 1 (no
slipping wall), 2 (slipping face) and 3 (wall with wall function).
For a sequential computation, the wall surface grid "wall_surface_grid.bin" needs to be generated
with the "extract_wall_surface_grid" tool. Fortran not formatted binary format is employed since
it can be easily and quickly imported without the need of special IN/OUT library. However, it is
not compatible between different computer system (Linux and Windows are found to be
compatible). Hence, postprocessing needs to be performed with the same computer system as the
computation.
The following source code can be used to import the grid:

586 FINE™/Marine 7.1 User Guide


integer:: nnode_w,npar_save,nfwall
double precision version
double precision,dimension(:),allocatable::Xw,Yw,Zw
integer,allocatable,dimension (:) :: IpPar
integer,allocatable,dimension (:) :: IpFace_w,IndFace_w
open(10,file='wall_surface_grid.bin',status='old',form='unformatted')
read(10) version ! no version check required
read(10) nnode_w ! number of grid nodes
print *,'Number of nodes: ',nnode_w
allocate(xw(nnode_w),yw(nnode_w),zw(nnode_w))
read(10) xw,yw,zw ! wall surface grid
read(10) npar_save ! number of partitions
print *,'Number of partitions: ',npar_save
allocate(IpPar(npar_save+1))
read(10) IpPar ! useless partition information
read(10) nfwall
print *,'Number of wall surfaces: ',nfwall
allocate(IpFace_w(nfwall+1))
read(10) IpFace_w
allocate(IndFace_w(IpFace_w(nfwall+1)1))
read(10) IndFace_w ! face connectivity table
close(10)
The following table shows the description of different variables imported:.

version double precision Version number for future use


nnode_w integer Number of grid nodes
xw,yw,zw double precision array Grid node coordinates
npar_save integer Number of partitions
IpPar integer array Partition information. Block i contains node IpPar(i) to IpPar(i+1)1.
nfwall integer Number of faces
IpFace_w integer array Face topological information, see description below
IndFace_w integer array Face topological information, see description below.

Topological information for face 1 is given in IndFace_w(1) to IndFace_w(5) with:

587 FINE™/Marine 7.1 User Guide


IndFace_w(1)=3102 (B.C. flag 3, body index 1, subbody index 2)
IndFace_w(2..5)=(1,2,5,4)
IndFace_w(1) is the face flag used in the code. It is an integer number having the form of xxxyzz
where xxx is the boundary condition flag, y is the body index and zz is the subbody index.
IndFace_w(2) to IndFace_w(5) are index of the nodes forming face 1. Nodes are ordered in such
a way that the face normal direction is oriented outward to the computational domain following
the right hand rule.
IndFace_w(1) may have a negative sign which indicates that the normal to the face direction used
in the code is in the opposite direction. It should be ignored by the user. Similarly, IndFace_w(6)
to IndFace_w(10) represent topological information for face 2 with:
IndFace_w(6)=3102 (B.C. flag 3, body index 1, subbody index 2)
IndFace_w(7..10)=(4,5,7,6)
Finally, IndFace_w(11) to IndFace_w(16) represent topological information for face 3 with:
IndFace_w(11)=2101 (B.C. flag 2, body index 1, subbody index 1)
IndFace_w(12..16)=(2,3,8,7,5)
To locate topological information for face i in the IndFace_w array, a pointer array IpFace_w is
defined such that topological information for face i is given between IndFace_w(IpFace_w(i)) to
IndFace_w(IpFace_w(i+1)1).
In the above example, we have IpFace_ w (1..4)= (1,6,11,17). The IpFace_ w array contains
nfwall+1 elements in order to indicate the end of the IndFace_w array (IpFace(nfwall+1)1).

32.7.2 Output Data

The Fortran source code "read_ wall_ data.f" found in the "_ data/isis/Src" folder from the
FINE™/Marine installation directory can be used to import the output data from "wall_data.bin"
file. Results are imported for each sampling in the array var(1..nvar, 1..nfwall) where nvar is 5 or
11 depending on user input parameter. Time or nonlinear iteration number is also imported to the
variable "t" in the source code. User is free to add user postprocessing for each sampling after the
comment lines:
c*********************************************************
c Add user program here
c*********************************************************
Another Fortran source code "read_ wall_ surface_ grid.f" found in the same folder gives a
complete example for wall surface data postprocessing: Import the surface grid, compute face
center (Xf,Yf,Zf) and face area vector (Sxf, Syf, Szf) from the surface grid, import the surface
data, interpolate the face centered data to node, and output a postprocessing data in Tecplot format
(for the last sample only).

588 FINE™/Marine 7.1 User Guide


As an example to user added postprocessing program, following source codes can be used to
compute the friction resistance and pressure resistance acting on body 1 (standard results provided
by the code in eff_FxV.dat and eff_FxP.dat files found in the b001 folder).
c*********************************************************
c Add user program here
c*********************************************************
if (nvar.eq.11) then
FxP=0.0
FxV=0.0
do iface=1,nfwall
I_Face_Flag=abs(IndFace_w(IpFace_w(iface)))
I_BND_Flag=I_Face_Flag/1000
I_body=I_Face_FlagI_
BND_flag*1000
I_body_index=I_Body/100
I_sub_body_index=I_bodyI_
body_flag*100
if (I_body_index.eq.1) then
Sxf=var(4,iface)
Syf=var(5,iface)
Szf=var(6,iface)
Fxf=var(7,iface)
Fyf=var(8,iface)
Fzf=var(9,iface)
p=var(10,iface)
surf=sqrt(Sxf**2+Syf**2+Szf**2)
FxP=FxP+p*Sxf
FxV=FxV+Fxf*surf
end if
end do
print *,'Pressure and friction resistance= ',FxP,FxV
end if

589 FINE™/Marine 7.1 User Guide


This postprocessing code must be run in the folder where the "bxxx" sub-folders are located.

32.7.3 How to extract the data

All the files have now been defined. The data to extract are the friction forces, the pressure and
the mass fraction on the solid walls. What is the procedure to extract the data?
1. At the end of the computation, perform the tool "extract_wall_surface_grid" tool. It creates the
file "wall_surface_grid.bin" from the "wall_data.bin" file.
2. Look for the Fortran program "read_wall_surface_grid.f" in "_data/isis/Src" folder from the
installation folder. Copy it into the computation directory and compile it (with g95 or gfortran
compiler using the argument "-frecord-marker=4").
3. Launch the executable a.out. It creates the file "wall_ surface_ grid.dat" where all the
information are stored in a Tecplot format.

32.8 RESOURCE FILES

All the resource files are located in the same directory, which is /COMMON under LINUX and
\bin under Windows. It is not possible to start FINE™/Marine if any of these files is missing.

Default Parameters File isis.def

This file contains the default values for all parameters related to a computation. The parameter
values displayed when creating a new project in FINE™/Marine are read from this file by the
interface. This file is not edited by FINE™/Marine.

Boundary Conditions Resource File isis_bc.def

This file contains the default values for all parameters of the available boundary conditions. The
same file is also used to create the graphical layout of the page Boundary Conditions in
FINE™/Marine. FINE™/Marine only reads from this file so this file is not modified while using
FINE™/Marine.

590 FINE™/Marine 7.1 User Guide


CHAPTER 33.

USER-DEFINED PROGRAMS

This chapter describes user-defined programs to be used with FINE™/Marine flow solver to initialize
the flow or insert function depending on time (through a dynamic library).

In this section
33.1 Files Used as Initial Data Profile 592
33.2 Dynamic libraries 594
33.3 Procedure 607
33.4 Examples 610

591 FINE™/Marine 7.1 User Guide


33.1 FILES USED AS INITIAL DATA PROFILE

This section describes the files created by the user and used as initial input data to initialize the
quantities (mass fraction, pressure, velocity,...). For the moment, this can be done through a
fortran program. A template file is provided in the FINE™/Marine package, called init_isiscfd.f,
available in the _data/isis/Src folder of the package. To perform a computation with initial user-
defined conditions, the steps below have to be done in batch mode:
1. define the project in the interface as usual,
2. save the project and the simulation file (.sim),
3. create the mesh with the tool hexpress2isis,
4. convert the mesh files into cell centred configuration with the tool gen_gridcc,
5. compile the fortran program (with g95 or gfortran compiler using the option - frecord-
marker=4),
6. launch the executable a.out,
7. (optional) use the cvrfmt conversion tool to convert the initial data file obtained with init_
isiscfd.f (.bin format) to .cpr or .xdr format according to the extension of the variables names
specified in the .sim file.
8. (optional) if the computation is parallel, perform premetis,
9. launch the computation in batch using the command detailed in Monitoring & Launching
Mode.

Example: Parabolic inlet velocity profile

In template file init_isiscfd.f, provided _data/isis/Src folder of the package, an example of the
initialization of a parabolic inlet velocity profile is given for a water jet.
c Set the velocity and the pressure field to zero everywhere
u=0
v=0
w=0
p=0
c Loop on boundary faces
n_begin=n-nvar_bnd
do i=1,nvar_bnd
surf=sqrt(surfx(i)**2+surfy(i)**2+surfz(i)**2)

592 FINE™/Marine 7.1 User Guide


i1=n_begin+i
c Identification of the inlet by x location
if (abs(x(i1)+0.1016).lt.1.0d-4) then
c Parabolic inlet velocity profile
u(i1)=11.246
else if (flag(i).eq.010000401) then
u(i1)=-8.924*surfx(i)/surf
v(i1)=-8.924*surfy(i)/surf
w(i1)=-8.924*surfz(i)/surf
else if (flag(i).eq.010000501) then
u(i1)=-54.58*surfx(i)/surf
v(i1)=-54.58*surfy(i)/surf
w(i1)=-54.58*surfz(i)/surf
end if
end do
c Save the velocity field
title='Velocity field'
call save_vec('v.bin',n,u,v,w,t,title)

The flag definition for any patch has changed starting v3.0 and is defined as AAABBCCDD with
AAA the boundary condition flag, BB the body index, CC the sub-body index and DD the domain
index (starting from 1). Available boundary condition flags and its meaning can be found in the
Identifier of the User Manual.

Example: Fluids repartition

The mass fraction field can also be initialized in a particular area, along any direction. In this
example, water is defined in the zone where X-coordinate is smaller than 0.146 and Y-coordinate
is smaller than 0.292. The Z-coordinate is taken from the simulation generated by the interface,
Ci=1 corresponds to fluid-1 (water by default) and Ci=0 to fluid-2 (air by default).
Ci=0.0d0
c Define the location of the fluid-1
Xslvar=0.146d0

593 FINE™/Marine 7.1 User Guide


Yslvar=0.292d0
c Initialization of the mass fraction
Do ivar=1,n
If (X(ivar).LE.Xslvar) Then
If (Y(ivar).LE.(Yslvar)) Then
Ci(ivar)=1.0d0
EndIf
EndIf
EndDo

33.2 DYNAMIC LIBRARIES

The idea is to give the capability for the user to dynamically impose or control specific settings
during the simulation. By doing this, the user can overwrite the parameters prescribed through the
interface or simply add more physics and external factors to the simulation. This specification
should be done through Fortran programs, provided as templates in the package and called
dynamic libraries.
These libraries are not included in the executable but dynamically linked during the runtime
execution. Thus it allows to keep the library separate reducing it's size and the disk space used.
By calling the library components when needed, it becomes available to impose specific
parameters depending on the study. For example, it is possible to control dynamically bodies
motion (check the Imposed Law of Motion section), impose external forces law or even perform
the self-propulsion study (detailed explanations can be found in Self-propulsion dynamic library).
The template files can be found in _data/isis/dynamic_lib/ of the installation folder and should be
used as follows:
l to impose customized external forces laws: imp_eff_dyn.f90,
l to impose customized motion laws " kinematic_ control.f90 . The subroutine of kinematic
control is called at each non-linear iteration if at least one body has a degree of freedom which
is Solved. Otherwise, it is called at each time step,
l to automatize the simulation of a zigzag ship maneuver, where the rudder is moved according
to ship heading: kinematic_control_zigzag.f90 (see more explanation in "Zig-zag maneuver"
(p. 596))
l to control the computation parameters: computation_control.f90,
l to define customized Actuator disk body forces distribution:  ad_ forces.f90 (see more
explanation in "User-defined" (p. 304)),

594 FINE™/Marine 7.1 User Guide


l to make a coupling with a panel code for the Actuator disk body forces distribution: ad_
propeller_code.f90 (see more explanation in "Propeller code coupling" (p. 306)),
l to modify the source terms of the right hand side of the Navier-Stokes equation: momentum_
source_term.f.

A specific free license key is required to be able to use this module. Please contact your local support
team in case you do not have it yet.

33.2.1 Imposed laws

The list of possible variables in imp_eff_dyn.f90 is the following:


mybloc : index of the current computation bloc
nbody : number of defined bodies in the simulation
In FINE™/Marine flow solver, there is a local index of the bodies (which can be different from
the one defined in the identifier). If the simulation involves only one body, the index is 1 anyway.
Otherwise, two ways to find the local index of the body in the flow solver:
l using the pointer ID_Body and the "body flag index" from the .bcs file from the computation
folder (which means the body flag index from the identifier).
ip_body = ID_Body(body flag index)
l or using the name of the body:
Name_Body : name of each defined body
do ip_body=1,nbody
if (Name_Body(ip_body) == 'Name_of_the_body') then
...
endif
enddo
tc : current time
itnl : number of non-linear iterations (=1 at each new temporal iterations)
CGref_ R0 : component of the gravity centre of the body indexed ip_ body in the reference
configuration:
CGref_R0 (1 = x or 2 = y or 3 = z, ip_body)
CGtc_ R0 : component of the current position, velocity and acceleration of the current body
indexed by ip_body:

595 FINE™/Marine 7.1 User Guide


CGtc_R0 (1 = x or 2 = y or 3 = z, 0 = position or 1 = velocity or 2 = acceleration, ip_body)
Theta1tc: component of the Cardan angles and their successive derivatives of the current body
indexed by ip_body:
Theta1tc (1 = x or 2 = y or 3 = z, 0 = Cardan angles or 1 = first derivative or 2 = second
derivative, ip_body)
body_frame (ip_body) :
l if "=0", the imposed forces of the body indexed by ip_body are given in the galilean axes.
(Xapp_ IMP, Yapp_ IMP, Zapp_ IMP) defines the current application point in the current
configuration
l if "=1", the imposed forces of the body indexed by ip_body are given in the primary frame of
the body and are attached to it while moving. (Xapp_IMP,Yapp_IMP,Zapp_IMP) defines the
application point given in the primary frame. Hence the application point and orientation of
forces and momentum follow the body while it is moving
fx,fy,fz,fmx,fmy,fmz (ip_body) : resultant and moment of fluid loads on the body
fx_IMP,fy_IMP,fz_IMP (ip_body) : resultant of imposed forces of the current body indexed by
ip_body. When working in half body configuration the applied external forces should be halved
compared to the full body configuration.
fmx_IMP,fmy_IMP,fmz_IMP (ip_body) : moment of imposed forces at the CG point of the
current body indexed
Xap_ IMP,Yap_ IMP,Zap_ IMP (ip_ body) : coordinates of the point where the moments are
specified (if nothing is specified for these variables, the moments are assumed to be located at the
CG point of the body, i.e. :
l if body_frame(ip_body) = 0, the coordinates are given in the current configuration (if nothing
is specified, CGtc_R0 is the default point)
l if body_frame(ip_body) = 1, the coordinates are given in the primary configuration (if nothing
is specified, CGref_R0 is the default point)

If the point is specified, all the three coordinates have to be defined.

33.2.2 Zig-zag maneuver

This maneuver establishes several important characteristics of the yaw response. These are: the
response time (time to reach a given heading), the yaw overshoot (amount the vessel exceeds
±20° when the rudder has turned the other way), and the total period for the 20° oscillations.
Similar tests can be made with different rudder angles and different threshold vessel headings.
Standard zig-zag maneuvering test includes the following steps:

596 FINE™/Marine 7.1 User Guide


1. With zero rudder, achieve steady speed for one minute.
2. Deflect the rudder to 20°, and hold until the vessel turns 20°.
3. Deflect the rudder to -20°, and hold until the vessel turns to -20° with respect to the starting
heading.
4. Repeat.
Provided dynamic library is set to 20°/20° zigzag maneuver. It is obtained by reversing the rudder
alternately by degrees to either side at a deviation Ψ 0 from the initial course. After a
steady approach the rudder is put over to right (first execute). When the heading reaches Ψ 1
degrees off the initial course, the rudder is reversed to the same angle to left (second execute).
After counter rudder has been applied, the ship initially continues yawing in the original direction
with decreasing yaw rate until it changes sign, so that the ship eventually yaws to the left in
response to the rudder. When the heading is reaching Ψ2 degrees off the course left, the rudder is
reversed again to right (third execute). This process continues until a total of 5 rudder executions
have been completed.

Variables

vship: Ship speed in X direction, with correct sign. It will be kept constant as the ship forward
speed of the ship in its body reference frame during all the computation.
maxexecutes : Number of rudder motions during simulation. The first exacute starts at the
beginning of the computation.
nrudders: Number of rudders.
omega_in: Rudder rotational speed in deg/s.
maxangle_in: Maximum change of rudder angle in degrees (δ).
maxheading: Change of ship heading before counter-rudder is applied, in degrees (Ψ).
firstdirection: Direction of the first maneuver: 0 = port, 1 = starboard, see schematic below.

597 FINE™/Marine 7.1 User Guide


FIGURE 33.1
Direction of the first rudder turn in a function of ship's direction.

rudder_names(1), rudder_names(2): Exact names given in the FINE™/Marine GUI. Comment


line “rudder_names(2)” by adding “!” at the beginning of the line if there is only one rudder.
ship_name: Exact name given in the FINE™/Marine GUI
Example of the dynamic library header with the user inputs can be found below:

FIGURE 33.2
Zig-zag dynamic library header

598 FINE™/Marine 7.1 User Guide


Workflow

1. Allocate the vector of rudder names depending on the number of rudders the ship has.
2. Find rudder(s) and ship body IDs according to their names.
3. Convert variables to SI units. Set rudder rotation direction according to port/starboard first turn.
4. Define control of rudder angle and ship speed.
5. Define ship speed components Vx and Vy as:

Where Ψ is the ship's heading angle.


1. Rudder motions:
l Rudder turns if its maximum angle has not been reached or if an execution takes place
exactly at current time step;
l Rudder motion is fixed when the maximum rudder angle has been reached;
l If ship heading is higher than defined maximum heading, an execute is done. Rudder
rotation speed sign is changed from ω to -ω.
2. Once the execute n+1 should be applied the simulation is stopped by editing the stop.now file.
3. Outputs are written into a text file Zigzag_output.dat and saved into the computation folder.
Information saved: Iteration, Time, Ship heading [deg], Rudder angle [deg], Rudder w
[deg/s], N Execute, Blockrudder, Execute(Y/N)
4. Information is also printed in the .std file:
l at the first time step library is used,
l every time step.

Recommendations

The following general advises can be followed to setup a successful simulation employing the
Zig-zag dynamic library:
1. The project should contain of at least 1 ship and 1 or several rudders,
2. Rudder(s) mesh can be generated considering the "Sliding Patch Motion" (p. 270) or the
"Overset grid management" (p. 423) approach and a PIN connection type to the ship should
be specified for the "Multibody definition" (p. 260).
3. Main setup:

599 FINE™/Marine 7.1 User Guide


l Run one first computation to accelerate to cruise speed, trim and sink can be Solved .
Rudder(s) should be Fixed.
l Second restart computation run with the Zig-zag dynamic library
l Time configuration: Unsteady
l Body motion : Ship's Rz Solved; Ship's Tx and Ty and Rudder(s) Rn is Imposed as
Dynamic Library
4. Control variables:
l Parameters: minimum of 8 non-linear iterations,
l Time step value: at least 20 time steps for the time to move the rudder to the maximum
angle,
For
l example, rudder moves at 5 deg/s to 10 deg → Time step value=0.1.
l Set a very large Number of time steps, the computation will be automatically stopped
when the requested number of the rudder executes is performed.
5. Define input variables in the Zig-zag dynamic library (see "Workflow" (p. 599)).
6. Compile it ( see also "Procedure" (p. 607)) and copy isis_dyn_lib.so isis_dyn_lib.dll into the
computation directory.

Please note that the half body configurations should not be studied here.

33.2.3 Computation control

The list of possible variables in computation_control.f90 is the following:


mybloc: index of the current computation bloc
nbody: number of defined bodies in the simulation

In FINE™/Marine flow solver, there is a local index of the bodies (which can be different from the
one defined in the identifier). If the simulation involves only one body, the index is 1 anyway.
Otherwise, two ways to find the local index of the body in the flow solver:

l using the pointer ID_ Body and the "body flag index" from the ".bcs" file from the
computation folder (which means the body flag index from the identifier).
ip_body = ID_Body(body flag index)
l or using the name of the body:

600 FINE™/Marine 7.1 User Guide


Name_Body : name of each defined body
do ip_body=1,nbody
if (Name_Body(ip_body) == 'Name_of_the_body') then
...
endif
enddo

At each new time step, the dynamic library is called once before entering in the non-linear loop with
the itnl variable equal to 0. Then, it is called at each non-linear with successive values 1,2,...

tp: previous time (last time where position and force are known)
tc: current time
O1ref_R0: reference point of the body indexed ip_body in the primary configuration
1=x
O1ref_R0 ( 2 = y , ip_body )
3=z
Theta1ref: Cardan reference angles of the body indexed ip_body with respect to the primary
configuration
O1tp_R0: current position,velocity and acceleration of the reference point of the current body
indexed by ip_body
1 = x 0 = position
O1tp_R0 ( 2 = y ,1 = velocity , ip_body )
3 = z 2 = acceleration
Theta1tp: Cardan angles and their successive derivatives of the current body indexed by ip_body
1 = x 0 = Cardan angles
Theta1tp ( 2 = y , 1 = first derivative , ip_body )
3 = z , 2 = second derivative
fx_R0,fy_R0,fz_R0: resultant of fluid loads on the body indexed by ip_body in the Galilean
frame
f?_R0 ( ip_body , 0) : load on the whole body
f?_R0 ( ip_body , n°index sub-body) : load limited to the sub-body
fmx_R0,fmy_R0,fmz_R0: moment at the point O1tp_R0 of fluid loads on the body indexed by
ip_body
fm? ( ip_body , 0) : load on the whole body

601 FINE™/Marine 7.1 User Guide


fm? ( ip_body , n°index sub-body) : load limited to the sub-body
fx_Rb,fy_Rb,fz_Rb: idem but expressed in the body frame
fmx_Rb,fmy_Rb,fmz_Rb: idem but expressed in the body frame
tp: previous time
itt: current temporal time step
Available output to be modified :
IControlComputation: always equal to 1 to control the computation
itte: maximum number of time step before the simulation stops
dtc: next time step
itsch: order of the temporal scheme (1 for BACKWARD ORDER 1; 2 for BACKWARD
ORDER 2 (BDF2))
itnlmax: maximum number of non-linear iterations
grnlm: requested non-linear iterations convergence criteria gain (for instance, for 3 orders of
residual reduction 0.001 should be used)
maxitsP: maximum number of pressure solver iterations
epsP: requested accuracy for the pressure solver (for instance, 2 orders means 0.01)
Relax_U, Relax_V, Relax_W: under-relaxation parameter for velocity components
Relax_P: under-relaxation parameter for pressure
Relax_Ake, Relax_Aw: under-relaxation parameters for turbulent kinetic energy and frequency
Relax_Ci: under-relaxation parameters for volume fraction for the free surface
Relax_CiCav: under-relaxation parameters for volume fraction for the cavitation
Parameters for the Quasi-Static approach:
Law_QS: control of the Quasi-Static evolution law indexed by the local index of the body (Law_
QS(ip_body)): 0=LINEAR , 2=SMOOTH
dT2_QS, dT3_QS: time between two evaluations for the position update (dT2) and evolution
interval (dT3) indexed by the local index of the body: dT2_QS(ip_body), dT3_QS(ip_body)

Condition to be respected: dT2_QS(ip_body) should have smaller or equal value to dT3_QS(ip_body)

T1_QS: release times, indexed by the DOF index and by the local index of body (ip_body)
3 = Tz
T1_QS ( 4 = Rx , ip_body)
5 = Ry

602 FINE™/Marine 7.1 User Guide


relax_QS: under-relaxation parameters, indexed by the DOF index and by the local index of
body (ip_body)
3 = Tz
relax_QS ( 4 = Rx , ip_body)
5 = Ry
Parameter for the classical Newton's law for rigid bodies:
AddedMassCoef: array of imposed added mass coefficients,indexed by the DOF index and by
the local index of body(ip_body)
1 = Tx
2 = Ty
AddedMassCoef (  3 = Tz , ip_body)
4 = Rx
5 = Ry
6 = Rz
factor_AM: multiplicative factor for computed added mass coefficient (common for all computed
added mass coefficients)

33.2.4 Momentum equation source term definition

A source term of the momentum equation can be modified containing explicit contributions, such
as porous media, or other physical effects.
mybloc: index of the current computation bloc
nbody: number of defined bodies in the simulation

In FINE™/Marine flow solver, there is a local index of the bodies (which can be different from the
one defined in the identifier). If the simulation involves only one body, the index is 1 anyway.
Otherwise, two ways to find the local index of the body in the flow solver:

l using the pointer ID_ Body and the "body flag index" from the ".bcs" file from the
computation folder (which means the body flag index from the identifier).
ip_body = ID_Body(body flag index)
l or using the name of the body:
Name_Body: name of each defined body
do ip_body=1,nbody

603 FINE™/Marine 7.1 User Guide


if (Name_Body(ip_body) == 'Name_of_the_body') then
...
endif
enddo

At each new time step, the dynamic library is called once before entering in the non-linear loop with
the itnl variable equal to 0. Then, it is called at each non-linear with successive values 1,2,...

tc: current time


itnl: number of non-linear iterations (=1 at each new temporal iterations)
nface: number of faces
ncell: number of cells
nvariable: number of variables (=ncell+number boundary variables)
nfbnd: number of boundary cells to be used to get access to boundary face with
do ipnt=1,nfbnd
iface=Ipnt_Fbnd(ipnt)
end do
IpFace,IndFace,Ipnt_Fbnd,IpntCF_CC,IndCon_CF,Indcon_CC :connectivity tables to get
access to cell and face
Xc,Yc,Zc: x,y,z coordinates at cell centered position
Xf,Yf,Zf: x,y,z coordinates at face centered position
SXf,SYf,SZf: face normal vector
Ci: volume fraction
U,V,W: velocity field
P: pressure field
dUdX,dUdY,dUdZ,dVdX,dVdY,dVdZ,dWdX,dWdY,dWdZ: Velocity gradient
dPdX,dPdY,dPdZ: Pressure gradient
CGref_R0: CG of the body indexed ip_body in the reference configuration
1=x
CGref_R0 ( 2 = y , ip_body )
3=z
CGtc_R0: current position, velocity and acceleration of the current body indexed by ip_body
1 = x 0 = position

604 FINE™/Marine 7.1 User Guide


CGtc_R0 ( 2 = y ,1 = velocity , ip_body )
3 = z 2 = acceleration
Theta1tc: Cardan angles and their successive derivatives of the current body indexed by ip_body
1 = x 0 = Cardan angles
Theta1tc ( 2 = y , 1 = first derivative , ip_body )
3 = z , 2 = second derivative

Using the source term dynamic library in parallel

The source term dynamic library has the particularity of applying modifications on certain cells: it
can apply a source term on all cells in the mesh; on one particular domain or on cells that fulfill a
geometrical criterion. If the library is used in a parallel computation each partition will work on
the cells assigned to it. Hence we might need to compute the total sum of the source terms we
have applied over all partitions. To do that we need to use the tools provided by MPI.
The following subroutine needs to be added to the library, and can be used in the main subroutine
to compute the global sum of a quantity over all partitions. An complete example is provided
below.
subroutine my_glbsum(res)
include 'mpif.h'
double precision :: res,res1
call MPI_ALLREDUCE(res,res1,1,MPI_DOUBLE_PRECISION,MPI_SUM,
& MPI_COMM_WORLD,ierror)
res=res1
end

Linux compilation

Template files for compiling the libraries build_ Linux64_ *.sh can be found in _
data/isis/dynamic_lib/check_dynamic_lib/src_fortran in the installation folder. To use the MPI
capabilities the option -I needs to be added as follows:
FC=gfortran
/bin/rm *.so
$FC -c -fPIC -I INSTALLATION_PATH/finemarine7.1/LINUX/_mpi/_ompi1.6/include
momentum_source_term.f
$FC -shared -o isis_dynamic_lib.so momentum_source_term.o
/bin/rm *.o
Please adapt the paths according to your installation.

605 FINE™/Marine 7.1 User Guide


Windows compilation

Template files for compiling the libraries build_ Windows_ win64_ *.bat can be found in _
data/isis/dynamic_lib/check_dynamic_lib/src_fortran of the installation folder. To use the MPI
capabilities the options -I and -L need to be added as follows:
del *.dll
PATH_TO_COMPILER\gfortran.exe -I"C:\NUMECA_
SOFTWARE\finemarine7.1\mpich2\include" -fno-range-check -c momentum_source_
term.f
PATH_TO_COMPILER\gfortran.exe -shared -static -mrtd -o isis_dynamic_lib.dll momentum_
source_term.o -L"C:\NUMECA_SOFTWARE\finemarine7.1\mpich2\lib" -lfmpich2g
del *.o
Please adapt the paths according to your installation.

Example

subroutine momentum_source_term()
<All variable declaration as in template, skipped here for clarity>
!Loop over all cells
do i=1,ncell
ipnt_face=IpntCF_CC(i)
iface=IndCon_CF(ipnt_face+1)
iflag=IndFace(IpFace(iface))
domain_index=iflag-(iflag/100)*100
! If domain index is 2 we apply a source term in X direction
if (domain_index.eq.2) then
src_user_u(i)=5.0
!Make the sum in this partition
ftot = ftot + src_user_u(i)*Vol_Cell(i)
else
src_user_u(i)=0
end if
end do
! Make sum over all partitions and print it to std file
call my_glbsum(ftot)
print*, 'Total source term applied: ', tc, mybloc, ftot

606 FINE™/Marine 7.1 User Guide


end
! Subroutine that allows to sum over partitions using MPI
subroutine my_glbsum(res)
include 'mpif.h'
double precision :: res,res1
call MPI_ALLREDUCE(res,res1,1,MPI_DOUBLE_PRECISION,MPI_SUM,
& MPI_COMM_WORLD,ierror)
res=res1
end

33.3 PROCEDURE

1. Copy the fortran routine that is needed (in this procedure "imp_eff_dyn.f90"is used) from the
folder "_data/isis/dynamic_lib/" that is stored in the installation folder into the project directory
normally.

It is advised not to copy these files directly into the computation directory (or at least a copy, or a
symbolic link) to avoid loosing the user-defined program if the computation is deleted later on.

2. Depending on the OS of the machine:


l For Unix System: copy the file ' build_ OSversion_ compiler.sh ' from the folder "_
data/isis/dynamic_lib/check_dynamic_lib/src_fortran", where OSversion is the operating
system version and compiler is the name of the fortran compiler to be used.
l For Windows System: copy the file 'build_OS_version_compiler.bat' from the folder "_
data/isis/dynamic_lib/check_dynamic_lib/src_fortran", where OS is Windows, version is
the operating system version and compiler is the name of the fortran compiler to be used.

This file should be copied in the folder where the Fortran routine is stored (project directory for
eg.).

607 FINE™/Marine 7.1 User Guide


Existing files stored in the installation folder can be considered as a template that can be modified
to automatize the compiling process. User can either modify them to fit the certain case
conditions, build new ones or perform the compilation steps manually.

An example of modified build_Linux64_gfortran.sh file:


FC=gfortran
/bin/rm *.so
$FC -c -fPIC imp_eff_dyn.f90
$FC -shared -o isis_dynamic_lib.so imp_eff_dyn.o
/bin/rm *.o

The compiled library should always be called "isis_dynamic_lib.so " , because it is the file name
that the solver will be expecting.

3. Update the imp_eff_dyn.f90 file according to the new definition of external forces.
4. Compile the modified source of this library:
l For Unix System: open a shell, go to the folder containing the file build_ OSversion_
compiler.sh and enter the command ./build_OSversion_compiler.sh
l For Windows System: go to the folder containing the file build_OS_version_compiler.bat
and double click on this file.
This step will generate the dynamic library file "isis_dynamic_lib.so" for Unix System or
"isis_dynamic_lib.dll" for Windows System.
5. Copy the file called 'isis_dynamic_lib.so' into the computation directory or update the profile
(.cshrc or .bashrc,...) of the User account by adding the line:
export LD_LIBRARY_PATH=path_to_isis_dynamic_lib_folder:$LD_LIBRARY_PATH
or setenv LD_LIBRARY_PATH path_to_isis_dynamic_lib_folder:$LD_LIBRARY_PATH
In case the environment variable LD_LIBRARY_PATH is not yet defined, here are two
examples scripts to define it:
l for C-Shell:
#!/bin/csh
if( $?LD_LIBRARY_PATH ) then
setenv LD_LIBRARY_PATH ${MyPath}:${LD_LIBRARY_PATH}

608 FINE™/Marine 7.1 User Guide


else
setenv LD_LIBRARY_PATH ${MyPath}
endif
echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}"
l for Bash-Shell:
#!/bin/bash
export LD_LIBRARY_PATH=${MyPath}:${LD_LIBRARY_PATH}
echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}"
6. Launch the computation as usual either by GUI or in a shell.

The compiler gfortran v5.1.4 has been officially tested.


By default, the flow solver will look for a file called "isis_ dynamic_ lib.so" in the computation
directory. If the file is not present, the flow solver will check the environment variable "LD_
LIBRARY_PATH". If there still no dynamic library found, a warning is raised and the computation
continues:
l for Unix system: "isis_dynamic_lib.so' cannot open shared object file: No such file or directory"
l for Windows system: "Dynamic library not found"

These programs are written in Fortran. Please make sure that the machines you are working on
(especially nodes from a cluster for instance) can see the dynamic libraries and their dependencies.
For instance, compiling with gfortran will create a dependency with the dynamic library file
libgfortran.so.3 . User may need to copy these files in the working directory. To check the
dependency, type the command ldd isis_dynamic.so.

It is also possible to modify the variables definition from INTENT(IN) to INTENT(INOUT).


Please note, that changes may lead to inconsistent data into the flow solver, thus should be treated
with care. For instance, changing time is possible but will create an inconsistent simulation.

609 FINE™/Marine 7.1 User Guide


33.4 EXAMPLES

Print some information

All the basic Fortan functions can be used in the dynamic library. For instance, one can print
some information the in ".std" file. For instance:
if (mybloc.eq.1) print*,'Begining of the dynamic library imp_eff_dyn'

Impose a constant force

To add an external effort along the X-axis of magnitude -1.5 N on the body 1, this line can be
used:
fx_IMP(1)=-1.5

Periodic forward force

Time dependent forces can also be used. This example shows how to impose a periodic forward
force on body 1, defining extra constants.
double precision forceAmplitude, period, mass, gravity, pi
forceAmplitude = 25.
period = 2.
mass = 62.5
gravity = 9.81
pi/2 = ACOS(0.0)
fx_ IMP (1)=- 4.*ABS (forceAmplitude*SIN (pi/period*tc)) - 2.* (- mass*0.25* (pi/period)*
(pi/period)*SIN(2*pi/period*tc))

610 FINE™/Marine 7.1 User Guide


CHAPTER 34.

PYTHON & PLUGINS

Actions executed by the user through the FINE™/Marine interface are recorded in a python-like script
giving added flexibility for automation of project creation and management. The Project/Script...
menu allows to edit and save the script while it can be executed using the Project/ Script.../Execute
menu.

The Project/ Script.../Execute menu accepts the *.pyc file pattern as well as the *.py.

To launch a python script with FINE™/Marine in batch, the command is:


l On Linux: finemarine71 -script test.py -batch -print
l On Windows: fine_marinex86_64.exe -script test.py -batch -print (from the installation folder)

The script should contain the command open_project() to specify the project to work on.

The path on Windows should be prescribed with "/" instead of "\".

Project/Script.../Edit... opens a dialog box displaying all the commands performed by the user since
the beginning of its session. The user can easily edit this script (add, remove and modify commands).
The dialog box contains two pull-down menus. File menu allows to open a script in a separate dialog
box and to save the script in a file. Run menu allows to run the script shown in the window under the
current session ("Rerun on top").

611 FINE™/Marine 7.1 User Guide


FIGURE 34.1
Edit menu

Script Recording Project/Script.../Save All... is used to save the dynamic recording of all
commands performed by the user since the beginning of its session. Project/Script.../Execute... is
used to run a python script file containing FINE™/Marine commands. A file chooser is opened to
select a file with a ".py" extension. Upon selection of a valid file, the script is executed in the current
session and the result is visualized in the graphical window. Depending on the content of the script,
operations will be added to the current project or a new project will be automatically opened before
operations are performed (the previous project is closed). If the script being run contains a syntactical
error it will be aborted and a message will appear in the shell. Project/Script.../Re-execute Last can
be used to rerun the last script that was run using the Project/Script.../Execute... command. This
option is most useful when writing own scripts manually to rapidly test it on the fly. The supported
commands for writing python scripts are described below, all other commands, even if recorded, are
not officially supported. All actions running in FINE™/Marine GUI cannot be all recorded as python
scripts. When replaying a python script that has been recorded automatically, it may be that the
graphics representations are not identical as in the initial session for instance.
All FINE™/Marine commands are available from the FM module. This means that they must be
accessed by default by using the FM prefix. All commands are defined in the python file FM.py. This
file is accessible in the installation directory INSTALL_DIR/_python/_fine/_marine/FM.py.

It is NumPy package provided to ensure the backward compatibility. Also, to support several tools developed
in Python, the plotting library Matplotlib has been added into FINE™/Marine starting from v3.1-2. Use of other
then provided together with FINE™/Marine package and results obtained are not officially supported by
NUMECA will stay under the responsibility of the user.

The next sections will present the list of supported macros. The ones which are not described are not
supported yet. The last section will be dedicated to dialog boxes creation to interact with scripts.

In this section
34.1 Macro Commands 613
34.2 Dialog Box Creation 669

612 FINE™/Marine 7.1 User Guide


34.1 MACRO COMMANDS

34.1.1 BCPatch Class

Computations always requires patches definition (boundary conditions, body creation, etc.). To
provide a convenient access to patches, the BCPatch class has been added. The class can be
combined with other python commands.
l get_name(): gets patch name, e.g. 'Hull' or 'X_mirror'
l set_name(name): sets patch name
l get_block_patch(): gets block ID and patch ID
l get_bc_name(): gets name of boundary condition of this patch, e.g. 'SOL', 'EXT', 'MIR'
l get_bc_type(): gets type of BC and opsel, see Boundary Conditions for values of BC type
l set_bc_type(value): sets type of BC and opsel, value is a list of these two
l set_passive_scalar(on, value):management of the passive scalar for a patch, on is defined as
'True' if the passive scalar is active for the patch and in this case valuedefines the passive
scalar value on the boundary.
l get_passive_scalar():gets the relative information for a given patch (activation and value).

34.1.2 Project Commands

l create_project(dirname): creates directory structure along with a project file with default
settings:
dirname/
dirname/_mesh/
dirname/dirname.iec
If dirname contains no path, this macro creates a project in the current working folder of the
script.
Example: create_project("/home/user/myproject_ship1")
l close_project(): closes the current project and clears the screen from all previous drawings.
l open_project(project_name): opens an existing project named as project_name.

613 FINE™/Marine 7.1 User Guide


l save_project(): saves open project.

Silent mode for save_project() is available. In case there is a computation running a warning
will be displayed: isiscfd for the computation computation_1 is running. Saving the project could
make your simulation(s) invalid.

l link_mesh_file((meshfile, move_files=False): links the project with a mesh file; move_files


argument is set to False by default, when it is True (or set to 1), files related to .igg meshfile
will be moved to _mesh folder of the project.
l duplicate_project(project_location,filename,mode): duplicates the active project on the disk
under a different name:
project_location: directory for a new project;
filename: new project name;
mode can be 0 or 1, with 1 which enables the copying of the results of the active
computation.
l get_project_file_name(): returns project path and file name for the active project:
Example: path,name = get_project_file_name()
l get_mesh_location(): returns directory where mesh files are located.
l get_mesh_file_igg(): returns full name of .igg file including path.
l get_mesh_file_dom(): returns full name of .dom file including path.
l get_mesh_file_bcs(): returns full name of .bcs file including path.
l get_mesh_file_hex(): returns full name of .hex file including path.
l ok=create_backup(folder_name, compress=0): creates the backup of the currently open
project; folder_name is the backup folder name (not a full path); if compress is 1, the .zip
archive will be created near the backup folder with the .zip extension; returns ok = 1 if the
backup succeed, ok = 0 if errors.

34.1.3 Computation Management

l get_nb_computations(): returns the number of computations in the project.


l get_computation_name(index): returns the name of the computation according to its index;
index is an integer number that identifies an unique computation. It starts from 0. Within the
Uncertainty Quantification management (see Uncertainty quantification for more information
about UQ options) this command has an extension to get the two element list, where the first
element means parent non-deterministic computation index and second means deterministic

614 FINE™/Marine 7.1 User Guide


sub-computation index.

Example

get_computation_name((0,0)) or get_computation_name([0,0]) gets the name of the 1st


sub-computation of the 1st parent computation inside the project; get_computation_name
((4,1)) gets name of the 2nd sub-computation of the 5th parent computation.
l set_ computation_ name (index,name): sets the name of computation; index is an integer
number that identifies an unique computation. It starts from 0. Within the Uncertainty
Quantification management sets the name of computation and all sub-computations.

Example

set_computation_name(0,"comp2012")
l get_active_computation(): gets active computation with the index; within the Uncertainty
Quantification management this command has an extention to return the list of values for
computation_no and subcomputation_no, if the sub-computation has been selected.
l set_active_computation(index): sets active computation with the index.

Example

Activate the last computation in the project.


n_computations = get_nb_computations()
last_computation_id = n_computations - 1
set_active_computation(last_computation_id)

Within the Uncertainty Quantification management set_ active_ computation (index) has
received an extended functionality to the set_active_computations(list) accepting not only a
single computation index, but a pair of indexes, denoting computation and sub- computation
numbers respectively.

l set_ active_ computations (list): sets multiple computations; list consists of two types of
elements: single numbers and pair of numbers: if a single number is in the list, the
corresponding computation will be selected; if a pair is in list, - the sub-computation will be
selected.
l get_active_computations(): Returns list of selected computations/sub-computations defined
like the argument of function set_active_computations.

615 FINE™/Marine 7.1 User Guide


Example

FM.set_active_computations([0, 1, (1,0)])
will select computation #0, #1 and the first sub-computation of computation #1.
l reset_computation(). Cleans all the files withing the active computation folder inside the
Project and saves the computation again to be ready to run the simulation. In the case of
success it returns an empty list. If it couldn’t remove folders of some computations, it returns
the list of names of such computations.
l move_computation_down() Moves active computation down by one position.
l move_computation_up() Moves active computation up by one position.

Example

set_active_computations([0, 1, (1,0)]) will activate the parent computations with the index 0,
index 1 and the first sub-computation of computation with the index 1.
l new_ computation (name): creates a new computation with specified name. Project
parameters are duplicated from the active computation.
l save_active_computation(): saves parameters of the active computation to sim-file. Saves
sub-computations, if any present. Can be also used within the Uncertainty Quantification
management; full list of commands for UQ is available in paragraph Uncertainty
Quantification.

Example

Save parameters of the first computation (index is 0).


set_active_computation(0)
save_active_computation()

Silent mode for save_active_computation() is available. In case there is a computation running


a warning will be displayed: isiscfd for the computation computation_1 is running. Saving the
project could make your simulation(s) invalid.

l delete_computation(index): removes computation from the project.


l set_comments(comment_text): sets the comment for an active computation.
l get_comments():gets the comment for an active computation.

616 FINE™/Marine 7.1 User Guide


34.1.4 Job management

l Task(simfile): creates an instance of class Task associated with the .sim name. This does not
add the created task to Task Manager. In order to add the task to Task Manager, use add_task
(see below).

Basic methods of the Task class

l launch(): Starts the task using current parameters. Saves the batch file and returns name of the
created file. (Note that the batch file is never used for launch in GUI.)
l kill(): Kills the task computation. The same action performs "Stop" button in Task Manager.
l suspend (): Suspends the task computation. The same action performs "Suspend Solver"
button in Task Manager.
l save_batch_file(): Saves the batch file for the computation. Returns name of the created file.

Saving the batch file when working with the mixed platform connection (Windows to UNIX
platform connection exactly) is not available for the moment.

l enable_preprocessing(machine): enables preprocessing computation step and designate it to


the given machine.
l enable_ solver (machine) : enables solver computation step and designate it to the given
machine.
l enable_postprocessing(machine): enables postprocessing computation step and designate it
to the given machine.

For the enable_ preprocessing, enable_ solver, enable_ postprocessing command usage when
launching computations within machine network connection it is important to add hostnames of
used machines. Procedures to setup machines connection and how to add the hostname can be
found in the Task Manager. This action can be done only once for each machine. If the machine
hasn't been added to the Task Manager yet, FINE™/Marine GUI will try to add it without the
password.

l disable_ preprocessing (): disables preprocessing computation step and designate it to the
given machine.
l disable_solver(): disables solver computation step and designate it to the given machine.

617 FINE™/Marine 7.1 User Guide


l disable_postprocessing(): disables preprocessing computation step and designate it to the
given machine.
l set_ machines(k1, machine1, …, kN, machineN): sets machines for the solver with the
number and machine hostname as: machine number k1 has the hostname machine1, …,
machine number kN has the hostname machineN.
l save_queue_job(system, queue, jobname, mpi_version, mpi_path): saves the batch file for
the queuing systems: system can be SGE or PBS; queue corresponds to the pull-down box
Parallel Environment in Task Manager; jobname is a created queuing job name and
corresponds to the entry field Job Name in the Task Manager; mpi_version corresponds to the
box Binary type in the Task Manager; mpi_path is the path to mpi installation to use. It can be
the empty string (in that case mpi installation provided into the FINE™/Marine package will
be used), to check the version used please see the NUMECA_ MPI_ DIR variable in the
generated file. This macro also returns name of the saved batch file, where the file name
depends on the set of selected sub-tasks and the queuing system.
l submit_ queue_ job (system,batchfile) : submits the batch job file to the queuing system.
batchfile is the file name returned by save_queue_job.

Job status

l get_ status (tool) : returns running status of the tool from 'status.dat' file. tool can be
"postmetis", "hexpress2isis", "3dto2d", "premetis", "isiscfd", "isis2hexpress", "isis2cfview"
and "probes2cfview".
l get_ status (tool, param) : returns parameter value from the 'status.dat' file. too l can be
"postmetis", "hexpress2isis", "3dto2d", "premetis", "isiscfd", "isis2hexpress", "isis2cfview"
and "probes2cfview"; param can be "STATUS", "DATE", "NPART", "SAVE_
COUNTER". (not every tool have all parameters).

Notice that status.dat' file is locked while retrieving the data from it.

l enable_preprocessing(machine): enables preprocessing computation step and designate it to


the given machine.
l enable_ solver (machine) : enables solver computation step and designate it to the given
machine.

618 FINE™/Marine 7.1 User Guide


l enable_postprocessing(machine): enables postprocessing computation step and designate it
to the given machine.

For the enable_ preprocessing, enable_ solver, enable_ postprocessing command usage when
launching computations within machine network connection it is important to add hostnames of
used machines. Procedures to setup machines connection and how to add the hostname can be
found in the Task Manager. This action can be done only once for each machine. If the machine
hasn't been added to the Task Manager yet, FINE™/Marine GUI will try to add it without the
password.

l disable_ preprocessing (): disables preprocessing computation step and designate it to the
given machine.
l disable_solver(): disables solver computation step and designate it to the given machine.
l disable_postprocessing(): disables preprocessing computation step and designate it to the
given machine.
l set_ machines(k1, machine1, …, kN, machineN): sets machines for the solver with the
number and machine hostname as: machine number k1 has the hostname machine1, …,
machine number kN has the hostname machineN.
l save_queue_job(system, queue, jobname, mpi_version, mpi_path): saves the batch file for
the queuing systems: system can be SGE or PBS; queue corresponds to the pull-down box
Parallel Environment in Task Manager; jobname is a created queuing job name and
corresponds to the entry field Job Name in the Task Manager; mpi_version corresponds to the
box Binary type in the Task Manager; mpi_path is the path to mpi installation to use. It can be
the empty string (in that case mpi installation provided into the FINE™/Marine package will
be used), to check the version used please see the NUMECA_ MPI_ DIR variable in the
generated file. This macro also returns name of the saved batch file, where the file name
depends on the set of selected sub-tasks and the queuing system.
l submit_ queue_ job (system,batchfile) : submits the batch job file to the queuing system.
batchfile is the file name returned by save_queue_job.

Job status

l get_ status (tool) : returns running status of the tool from 'status.dat' file. tool can be
"postmetis", "hexpress2isis", "3dto2d", "premetis", "isiscfd", "isis2hexpress", "isis2cfview"
and "probes2cfview".
l get_ status (tool, param) : returns parameter value from the 'status.dat' file. too l can be
"postmetis", "hexpress2isis", "3dto2d", "premetis", "isiscfd", "isis2hexpress", "isis2cfview"
and "probes2cfview"; param can be "STATUS", "DATE", "NPART", "SAVE_
COUNTER". (not every tool have all parameters).Notice that status.dat' file is locked while
retrieving the data from it.

619 FINE™/Marine 7.1 User Guide


l get_ postmetis_ status(): simplified versions of get_ status for the "postmetis" tool, returns
information from the 'status.dat' file for the "postmetis" tool.
l get_ hexpress2isis_ status(): simplified versions of get_ status for the "hexpress2isis" tool,
returns information from the 'status.dat' file for the "hexpress2isis" tool.
l get_ premetis_ status () : simplified versions of get_ status for the "premetis" tool, returns
information from the 'status.dat' file for the "premetis" tool.
l get_isiscfd_status(): simplified versions of get_status for the "siscfd" tool, returns information
from the 'status.dat' file for the "postmetis" tool.
l get_isis2hexpress_status(): simplified versions of get_status for the "postmetis" tool, returns
information from the 'status.dat' file for the "isiscfd" tool.
l get_isis2cfview_status(): simplified versions of get_status for the "isis2cfview" tool, returns
information from the 'status.dat' file for the "isis2cfview" tool.
l get_probes2cfview_status(): simplified versions of get_status for the "probes2cfview" tool,
returns information from the 'status.dat' file for the "probes2cfview" tool.

Advanced

l enable_solver_tool(tool, machine): enable arbitrary tools in the chain, thus can be considered
as an advanced handling of the run; tool can be "postmetis", "hexpress2isis", "3dto2d",
"premetis", "isiscfd", "isis2cfview"; machine specifies the machine to run the tool on.
l disable_solver_tool(tool): disnable arbitrary tools in the chain, thus can be considered as an
advanced handling of the run; tool can be "postmetis", "hexpress2isis", "3dto2d", "premetis",
"isiscfd", "isis2cfview".
l set_fullflex_license(usage): make the solver check for a 'Fullflex' license if usage = 1 and the
usual license if usage = 0.
Example of usage: FM.Task("SIMFILENAME").set_fullflex_license(1)
l get_fullflex_license(): returns 1 if 'Fullflex' license will be used for the task.

Other functions defined in the FM module for job management

l task_list(): Returns a list of all Task Manager tasks. The list consists of FM.Task instances.
l get_sim_file(): Returns the .sim file name of the current computation.
l add_task(simfile): add a task associated to the sim file to the Task Manager
l local_machine(): returns the local machine name
l add_machine(machine, arch): adds a host machine. Arch can be 'UNIX' or 'WIN32'

620 FINE™/Marine 7.1 User Guide


Examples

l Launch the current computation with default parameters: serial, on local machine:
t = FM.add_task(FM.get_sim_file()) #add task if none, then reset to defaults
t.launch()
l Launch the current computation on the current machine using n cores:
t = FM.add_task(FM.get_sim_file())
t.set_machines(n, FM.local_machine())
t.launch()
l Do not launch, just save batch file, use 2 cores in machine1 and 8 cores in machine2:
t = FM.add_task(FM.get_sim_file())
t.set_machines(2, 'machine1', 8, 'machine2')
filename = t.save_batch_file()

To avoid using pvm after this step, one can submit the job with os.system( filename)

l Launch the computation through the queuing system on 32 cores:


t = FM.add_task(FM.get_sim_file())
t.set_machines(32, FM.local_machine()) # only number of cores is important in this case
filename = t.save_queue_job("SGE", "batch", "Example", "openmpi", "")
FM.submit_queue_job("SGE", filename)

34.1.5 Domain Management

l get_nb_domains(): gets number of domains.


l get_all_domains(): gets a list of the domain names.
l get_domain_list(): returns a list of the domain IDs and names. Every pair of ID and name is
grouped into a list.
Example: get_domain_list() returns [[0, 'domain1'], [1, 'domain2']]

621 FINE™/Marine 7.1 User Guide


34.1.6 General Parameters

l get_time_configuration(): returns time configuration mode: 0 for Steady, 1 for Unsteady


l set_time_configuration(mode): sets time configuration mode. 0 for Steady, 1 for Unsteady.

34.1.7 Fluid Model

l set_fluid_model_number(value): defines the number of fluids in the project, value can be 1 or


2, corresponding to mono-fluid or multi-fluid projects.
l get_fluid_model_number(value): gets the number of fluids in the project, value can be 1 or 2,
corresponding to mono-fluid or multi-fluid projects.
l get_fluid_name(mode): gets name for the fluid. mode can be 1 or 2, corresponding to fluid-1
or fluid-2.
l set_fluid_name(mode,name): sets name for the fluid. mode can be 1 or 2, corresponding to
fluid-1 or fluid-2.
l get_ fluid_ viscosity (mode): gets dynamic viscosity of the fluid. mode can be 1 or 2,
corresponding to fluid-1 or fluid-2.
l set_fluid_viscosity(model,viscosity): sets dynamic viscosity of the fluid. mode can be 1 or 2,
corresponding to fluid-1 or fluid-2.
l get_fluid_density(model): gets density of the fluid. mode can be 1 or 2, corresponding to fluid-
1 or fluid-2.
l set_fluid_density(model,density): sets density of the fluid. mode can be 1 or 2, corresponding
to fluid-1 or fluid-2.

Examples

l for the current computation, one wants a multi- fluid model with fluid1 = WATER,
density=1000, viscosity = 1e-6 and fluid2 = AIR, density=1, viscosity = 1e-4
FM.set_fluid_model_number(2)
FM.set_fluid_name(1,"WATER")
FM.set_fluid_density(1,1000)
FM.set_fluid_viscosity(1,1e-6)
FM.set_fluid_name(2,"AIR")
FM.set_fluid_density(2,1)
FM.set_fluid_viscosity(2,1e-4)

622 FINE™/Marine 7.1 User Guide


l for the current computation, one wants a mono-fluid model with fluid1 = AIR, density=1,
viscosity = 1e-4
FM.set_fluid_model_number(1)
FM.set_fluid_name(2,"AIR")
FM.set_fluid_density(2,1)
FM.set_fluid_viscosity(2,1e-4)
l set_passive_scalar_usage(boolean): management of passive scalar activation. Boolean can be
set 0 (to deactivate the feature) or 1 (to activate it).
l get_passive_scalar_usage(): gets the status of the passive scalar activation: 0 (inactive) or 1
(active).
l set_passive_scalar_name(name): management of passive scalar name. The name can be set
to any expression.
l get_passive_scalar_name(): gets the passive scalar name.

34.1.8 Flow Model

l get_flow_model_turb_model(): gets turbulence model (see next python command)


l set_flow_model_turb_model(model): sets turbulence model:
1: "LAMINAR";
11:"EULER"
2: "SPALART-ALLMARAS";
3: "K-EPSILON LAUNDER-SHARMA";
4: "K-W(:WILCOX)";
5: "K-W(BSL:MENTER)";
6: "K-W(SST:MENTER)";
7: "K-W-NE-EASM";
8: "DES-SST";
9: "DES-SST-F1";
10: "DES-SST-F2".
l get_flow_model_gravity_parameters(): gets gravity vector parameters.
l set_ flow_ model_ gravity_ parameters (x,y,z): sets gravity vector parameters. Only Z
component is necessary for a 3D computation and Y for a 2D computation.
l get_flow_model_reference_parameters(): gets length and velocity reference parameters.

623 FINE™/Marine 7.1 User Guide


l set_flow_model_reference_parameters(length,velocity): sets length and velocity reference
parameters.

34.1.9 Boundary Conditions

l get_bc_value(block,face,patch): gets boundary condition for a given block, face, patch.


l set_bc_value(block,face,patch,number): sets boundary condition for a given block, face,
patch. The value of boundary condition is associated with number as follows:
1 - SOLID No slip (Laminar or low Reynolds number model)
2 - SOLID Slip (zero shear stress)
3 - SOLID Wall-function
10 - EXTERNAL Far field
27 - EXTERNAL Prescribed pressure (updated hydrostatic pressure)
28 - EXTERNAL Zero pressure gradient
29 - EXTERNAL Prescribed pressure (frozen pressure)
45 - EXTERNAL Wave generator
Note: another way to access BC value is by class BCPatch.
Example: get BC value for a patch having name 'Hull'
bc_value, opsel = get_bc_patch_by_name('Hull').get_bc_type()
l patch.set_parameter_value(parameter_name, parameter): sets the value of the parameter
with the given name parameter_name.
l parameter = patch.get_parameter_value(parameter_name): returns the parameter value
with the given name parameter_name.
l type = patch.get_parameter_type(parameter_name): returns the type of the parameter with
the given name parameter_name.

Parameter Parameter Description Remarks


name type
“Vx” physical Velocity components
entry
“Vy” physical Velocity components
entry
“Vz” physical Velocity components
entry

624 FINE™/Marine 7.1 User Guide


Parameter Parameter Description Remarks
name type
“Vx” physical Velocity components
entry
“Turbulent physical Turbulent kinetic energy
kinetic entry
energy”
“Turbulent physical Turbulent dissipation
dissipation” entry
“Turbulent physical Turbulent viscosity
viscosity” entry
“Profile integer entry Type of all profiles for this patch 1-x;2-y;3-z
interpolation” ; 4 - r ; 5 - theta ;
51 - x and y; 52 -
x and z; 53 - y and
z; 54 - r and theta;
55 - r and z; 56 -
theta and z; 61 - x,
y and z; 62 - r,
theta and z.
“From integer entry Turbulence level initialization status 1 - turbulence level
turbulence initialization is
level” active, 0 -
turbulence level
initialization isn’t
active
“Turbulent real entry Turbulent length scale (used for turbulence level
length scale” initialization)
“Turbulent real entry Turbulent length (used for turbulence level
length” initialization)
“Mass integer entry Mass fraction initialization 0 - default, 1 -
fraction” fluid 1, 2 - fluid 2

Example 1

patch = FM.get_bc_patch(2,4)
parameter = patch.get_parameter_value("Vy")
parameter.set_value(2)
patch.set_parameter_value("Vy",parameter)

625 FINE™/Marine 7.1 User Guide


Example 2

patch = FM.get_bc_patch(2,4)
parameter = patch.get_parameter_value("Turbulent dissipation")
parameter.set_type("constant")
parameter.set_value(5)
patch.set_parameter_value("Turbulent dissipation",parameter)
l get_far_velocity(): gets the Far field velocity. The far field velocity settings are defined as
global parameters.
l set_far_velocity(x,y,z): sets the Far field velocity. The far field velocity settings are defined as
global parameters. x, y, z specify the coordinate components.
l get_FF_profile_type(block,face,patch): gets the Far Field profile type. Denotes interpolation
direction or "surface" for a surface profile
l set_FF_profile_type(block,face,patch,ptype): sets the Far field profile type. This profile type
will be used for all profiles associated with Far field parameters of the patch, if any.
l get_FF_velocity(block,face,patch): gets the Far field velocity data. Returns 3 pairs of values.
Example:
"constant" 4.6 "profile" "vinlet_01.p" "constant" 0
The first value in a pair is "constant" or "profile". If it's "constant", the second value is a real
number; if not, the second value is a filename, absolute or relative to the working directory.
l set_FF_velocity(block,face,patch,t_x,val_x,t_y,val_y,t_z,val_z): sets velocities of the Far
field patch. Arguments are the same pair that may return get_FF_velocity()
It is convenient to form arguments of set_FF_velocity as the separate list and then pass it to the
function as the variadic argument:
patches = [[1,4],[2,5]]
args = ["profile_data", "vinlet03.p", len(patches)]
for p in patches:
args.append(p[0])
args.append(p[1])
args.append("constant")
args.append(2)
args.append("constant")
args.append(-1)
FM.set_FF_velocity(1,1,7, *args)

626 FINE™/Marine 7.1 User Guide


l get_FF_turb_kenergy(block,face,patch): gets Turbulent kinetic energy of the patch. Values
are: the first one is a string, "constant", "profile" or "profile_data". If it's "constant", the second
value is a real number denoting constant value of turbulent kinetic energy; if it's "profile", the
second value is a filename
l set_FF_turb_kenergy(block,face,patch,t,val): sets Turbulent kinetic energy of the patch. It
would be convenient for the User to form arguments of set_FF_turb_kenergy() in a way
similar to set_FF_velocity
l get_FF_turb_dissip(block,face,patch): gets the Turbulent dissipation of the patch
l set_FF_turb_dissip(block,face,patch,t,val): sets the Turbulent dissipation of the patch
l get_FF_turb_viscosity(block,face,patch): gets the Turbulent viscosity of the patch
l set_FF_turb_viscosity(block,face,patch,t,val): sets the Turbulent viscosity of the patch
l get_FF_mass_fraction(block,face,patch): gets the Mass fraction for the patch. Values are: 1
for 1st fluid, 2 for 2nd fluid, 0 for default option
l get_FF_turb_length_scale(block,face,patch):gets the Turbulent length scale for the patch.
This value used by the solver when turbulent dissipation equals 0 only.
l set_FF_turb_length_scale(block,face,patch,value): sets the Turbulent length scale for the
patch. This value used by the solver when turbulent dissipation equals 0 only.
l set_FF_mass_fraction(block,face,patch,value): sets the Mass fraction for the patch
l get_wave_parameters(): gets parameters of wave generation
l set_ wave_ parameters
(flag,speed,order,depth,propX,propY,refX,refY,height,period): sets parameters of wave
generation.
flag is 1 if boundary condition is active with identifier 45 (EXTERNAL wave generator) and
0 otherwise.
speed, depth, height, period specify wave speed, depth, height and period. speed value
should be set to 0.
order specifies wave order and can be set to 1, 2 or 3.
propX, propY specify the direction of propagation along X and Y axis.
refX, refY specify the reference point along X and Y axis.
l set_ WaVe_ params(spectrum, order, depth, propx, propy, refx, refy, height, period,
gamma): get parameters of wave generation, for the Irregular waves Spectrum modeling.
Spectrum may be "REGULAR", "ITTC", "JONSWAP", "JONSWAP 3 PARAMETERS"
or "PIERSON-MOSKOWITZ" and denotes whether Stokes or irregular waves used and what
a spectrum will be used for irregular waves;order is the wave order; propx and propy give
the direction of wave propagation; refx and refy give reference point; gamma is the
JONSWAP gamma steepness parameter. Can accept "USER-DEFINED" as the spectrum
type.

627 FINE™/Marine 7.1 User Guide


l get_WaVe_params():get parameters of wave generation, for the Irregular waves Spectrum
parameter. May return "USER-DEFINED" value as the spectrum type.
l get_irregular_waves_file(): returns the absolute file name for the User-defined spectrum.
l set_irregular_waves_file(filename): sets the file name for the User-defined spectrum. May be
relative to the computation folder.
l get_bc_patch_by_patch(patch): returns the boundary condition for the given list of patch
names.
l get_bc_patch(DomainID,patch): returns an object of class BCpatch for given domain and
patch. Value for block is 1 for the first function, when there is only one domain defined in the
project. Note that face is hardcoded to 1.
l get_bc_patch_by_name(name): returns an object of class BCpatch with given name.
Example: get patches having name 'Hull':
get_bc_patch_by_name('Hull')
l get_bc_patch_list(pattern): returns a list of objects of class BCpatch whose name matches
the pattern string. The special characters are * (matches everything) and ? (matches any single
character).
Example: get patches ending with mirror:
get_bc_patch_list('*mirror')
l order, ok = estimate_wave_order(h, H, tau, g): estimates wave order provided values of the
mean depth (h), wave height (H), period (tau) and the gravity intensity (g, absolute value);
order is the estimated value, ok gives the status: ok = 1 - success, ok = 0 - failure.
l x, y, ok = detect_wave_generator_point(): detects the reference point for wave generator
boundary conditions; in 2D y will always be 0; ok gives the status: ok = 1 - success, ok = 0 -
failure (in a case of failure, x = 0 and y = 0).

34.1.10 Body Definition

l get_body_list(): returns list of all bodies in format: ID, name, ( [child sub-body index, block0,
face0, patch0], [child sub-body index, block1, face1, patch1], ... ).
l get_nb_bodies(): returns number of bodies.
l set_body(Id,name,nPatches,patches): builds a body from patches. Id identifies a new body.
It must be an integer number greater than or equal to 1. name specifies unique name of new
body. nPatches specifies the number of patches included into new body. patches is a row of
lists separated by comma. Each list composes the values of block, face and patch.
Example: build a body called"ship" with two patches
id = get_nb_bodies() + 1

628 FINE™/Marine 7.1 User Guide


set_body(id,"ship",2,[0,0,1],[0,0,11])
l remove_patch_from_body(block, face, patch): removes the patch identified by the values of
block, face, patch from a body.
l set_ body_ by_ patch_ name (name,pattern): sets body with a given name from patches
whose names match the pattern string. Return new body ID. The special characters are: *
(matches everything) and ? (matches any single character).
Example: get body from patches ending with 'hull'
new_body_id = set_body_by_patch_name('ship','*hull')
l get_subBody_list(): gets list of all sub-bodies in format: ID, name, ( (block0,face0,patch0),
(block1,face1,patch1), ... )
l set_subBody(Id,name,nPatches,patches): builds a sub-body from patches. Works exactly
the same as function set_body(). Note that Id for body and sub-body have no relation.
Example: build a sub-body of two patches included into a body
set_body(1,"Body",3,[0,0,1],[0,0,2],[0,0,3])
set_subBody(1,"Sub-body",2,[0,0,1],[0,0,2])
l remove_ patch_ from_ subBody (block, face, patch): removes the patch identified by the
values of block, face, patch from a body.
l get_body_domain(body_id): gets a domain associated with a given body_id.
l set_body_domain(body_id,domain_id): sets a domain associated with a given body. body_
id is a positive integer. domain_id can be -1 or any non-negative integer. -1 means that given
body is not a pilot body in any domain of a project.
l update_body_list(): removes bodies which Id is not referenced any more.
To support the concept of different types of bodies, the following classification is used:
l regular body: (BODY)
l sliding patch link: (LINK)
l virtual body associated with the moving domain: (DOMAIN)
l virtual body based on FNMB patches: (~BODY)
l get_body_type(index): gets the body type for the body with given index: possible values
"BODY", "LINK", "DOMAIN", "~BODY".
l set_ body_ type (index, type): sets the type of the body with the given index; type is
"BODY", "LINK", "DOMAIN", "~BODY".
The body type is detected automatically by the type of the patch type it consists of when the
body is created using create_body() or enable_domain_motion() macros :

629 FINE™/Marine 7.1 User Guide


l BODY: SOL patch type
l LINK: SOL* patch type
l DOMAIN: EXT patch type
l ~BODY: cannot be detected automatically at the moment of the body creation.
When creating the virtual body (~BODY) the Python recording is produced like this:
FM.set_body(6,"Virtual_body_1",1,[1,0,0])
FM.set_body_type(6,"~BODY")
When creating all the other types of bodies (BODY, LINK, DOMAIN), setting the body type
is not required and thus the second line will not appear as well normally.

34.1.11 Body Motion

l get_solved_motion_cardan_angle(body_id): gets Cardan angles for motion reference axis


for a given body_id. Measured in radians.
l set_ solved_ motion_ cardan_ angle (flag,body_ id,yaw_ Rz0,pitch_ Ry1,roll_ Rx2): sets
Cardan angles (yaw_Rz0,pitch_Ry1,roll_Rx2) for motion reference axis for a given body_
id. Measured in radians. flag is set to 1 to activate Cardan angles and to 0 to deactivate them.
l get_quasi_static_active(): gets the quasi-static status.
l set_quasi_static_active(flag): sets the quasi-static status. flag can be 0 or 1. 1 to activate
quasi-static approach, 0 to deactivate.
l get_quasi_static_parameters(body_id): gets quasi-static parameters for a given body_id.
l set_ quasi_ static_ parameters (body_ id,tz0_ t1,tz0_ r,rx1_ t1,rx1_ r,ry2_ t1,ry2_
r,dt2,dt3,law):sets quasi-static parameters for a given body_id.
body_id is a positive integer starting from 1.
tz0_t1, rx2_t1, ry1_t specify release time for Tz0, Rx2, Ry1.
tz0_r, rx1_r, ry2_r specify under-relaxation parameters for Tz0, Rx2, Ry1.
dt2 specifies position update.
dt3 specifies evolution interval.
law is 0 for linear and 1 for smooth.
l get_body_motion_outputs(): gets body motion output
l set_ body_ motion_ outputs
(Tx,Ty,Tz,R0,R1,R2,R3,Vx,Vy,Vz,dRx,dRy,dRz,Ax,Ay,Az,d2Rx,d2Ry,d2Rz): sets
body motion output: translations and rotations modification, velocity, and acceleration. Note:
this command is general and not linked to one particular body.

630 FINE™/Marine 7.1 User Guide


l get_body_motion_type(body): gets motion type for a given body
l set_body_motion_type(body,Tx,Ty,Tz,Rx,Ry,Rz): sets motion type for a given body. Tx,
Ty, Tz, Rx, Ry, Rz can be 'Fixed', 'Imposed' or 'Solved'
l get_body_motion_law(body_id): gets the motion law for a given body_id.
l set_ body_ motion_ law (body_ id,lawTx,lawTy,lawTz,lawRx,lawRy,lawRz): sets the
motion law for a given body_id for every degree of freedom. body_id specifies ID number of
the body. lawTx, lawTy, lawTz, lawRx, lawRy, lawRz can be: "Constant", "Classical
ramp", "1/4 sinusoidal ramp", "1/2 sinusoidal ramp", "Z-axis gyration", "Sinusoidal law",
"PMM sway motion", "PMM yaw motion", "Linear position modification", "Angular position
modification", "Copied from another body", "Dynamic library" or "User defined".
If a law is attached to the fixed or solved degree of freedom, get_body_motion_law(body)
returns 'None'. Besides, all degrees of freedom do not have the same laws.
Example: set "1/2 sinusoidal ramp" for Tx for body with body_ id =1, while keeping
"Constant" for other degrees of freedom:
set_body_motion_law(1,"1/2 sinusoidal ramp", "Constant", "Constant", "Constant",
"Constant", "Constant")
l get_body_motion_parameters(body_id,dof): gets motion parameters for a given body_id.
dof can be 'Tx', 'Ty', 'Tz', 'Rx', 'Ry' or 'Rz'.
l set_ body_ motion_ parameters (body_ id,Tx_ list,Ty_ list,Tz_ list,Rx_ list,Ry_ list,Rz_ list):
sets motion parameters for a given body_id.
Tx_list, Ty_list, Tz_list, Rx_list, Ry_list, Rz_list specify lists of parameters for a given
degree of freedom. Each list contains 7 parameters. Depending on the motion law, it means (a
"0" in the parameters below means that the concerned parameter is unused):
"Constant": [constant velocity, 0, 0, 0, 0, 0, 0]
"Classical ramp": [initial time, initial velocity, final time, final velocity, 0, 0, 0]
"1/4 sinusoidal ramp": [initial time, final time, initial velocity, final velocity, 0, 0, 0]
"1/2 sinusoidal ramp": [initial time, final time, initial velocity, final velocity, 0, 0, 0]
"Sinusoidal law": [initial time, final time, amplitude, period, dephasing, 0, 0]
"Linear position modification":
l If the modification is relative, [initial time t0, final time t1, position change P1-P0, 0, 0, 0,
0].
l If the modification is absolute, [initial time t0, final time t1, 0, 0, 0, 0, final position P1].
"Angular position modification":
l If the modification is relative, [initial time t0, final time t1, position change P1-P0, 0, 0, 0,
0].
l If the modification is absolute, [initial time t0, final time t1, 0, 0, 0, 0, final position P1].

631 FINE™/Marine 7.1 User Guide


"Z-axis gyration": [initial time, final time, initial velocity, final velocity, x-gyration center, y-
gyration center, 0]
"PMM sway motion": [initial time, final time, amplitude, rotation per minutes, 0, 0, 0]
"PMM yaw motion": [initial time, final time, amplitude, rotation per minutes, drift angle, 0, 0]
"Copied from another body": [Body ID to copy from, 0, 0, 0, 0, 0, 0]
l disable_domain_motion(Domain_id): removes a virtual body from the domain with defined
ID if such body exists.
l get_body_motion_reference_point(body_id): gets body reference point for specified body_
id.
l set_body_motion_reference_point(body_id,x,y,z): sets body reference point for specified
body_id. x, y, z specify coordinates (real numbers)
l get_solved_motion_geometry(body_id): gets entire or half geometry for solved body_id
motion.
l set_solved_motion_geometry(body_id,geometry): sets entire or half geometry for solved
body_id motion. geometry can be set to "entire" or "half".
l get_solved_motion_gravity_center(body_id): gets gravity center coordinates for a given
body_id.
l set_solved_motion_gravity_center(body_id,x,y,z): sets gravity center coordinates (x,y,z) for
a given body_id.
l get_solved_motion_mass(body_id): gets mass for solved motion for a given body_id.
l set_solved_motion_mass(body_id,mass): sets mass for solved motion for a given body_id.
l get_solved_motion_inertia_matrix(body_id): gets the inertia matrix for solved motion for a
given body_id.
l set_solved_motion_inertia_matrix(body_id,A,B,C,D,E,F): sets the inertia matrix for solved
motion for a given body_id. A, B, C, D, E, F correspond to the matrix elements.
l get_solved_motion_added_mass_coefficient(body_id): gets added mass coefficient for each
solved degree of freedom for a given body_id.
l set_ solved_ motion_ added_ mass_ coefficient (body_ id,cTx,cTy,cTz,cRx,cRy,cRz): sets
added mass coefficient (cTx,cTy,cTz,cRx,cRy,cRz) for each solved degree of freedom for a
given body_id.
l get_solved_motion_damping_coefficient(body_id): gets damping coefficient for a given
body_id.
l set_solved_motion_damping_coefficient(body_id,coefficient): sets damping coefficient for
a given body_id.
l get_solved_motion_wrench_parameters(body_id): gets constant wrench force parameters
for a given body_id.

632 FINE™/Marine 7.1 User Guide


l set_ solved_ motion_ wrench_ parameters (body_ id,toggle, forceX, forceY, forceZ,
torqueX, torqueY,torqueZ,pointX,pointY,pointZ): sets constant force parameters for a
given body_id. toggle is set to 1 to activate the force (0 otherwise). forceX,forceY,forceZ for
the force components. torqueX,torqueY,torqueZ for torque components.
pointX,pointY,pointZ the application coordinates.
l get_ solved_ motion_ wrench_ follower_ force (body_ id): returns "FOLLOWER" for the
follower force and "NONFOLLOWER" for non-follower force;
l set_solved_motion_wrench_follower_force (body_Id, "FOLLOWER"): sets the wrench
follower force when follow = "FOLLOWER" for a body with the given index. Unsets
otherwise.
l get_solved_motion_propeller_parameters(body_id): gets propeller wrench parameters for
solved motion for a given body_id.
l set_ solved_ motion_ propeller_ parameters (body_ id,toggle, dirX, dirY, dirZ, pointX,
pointY, pointZ): gets propeller wrench parameters for solved motion for a given body_id.
toggle set to 0 or 1 to activate the constant force, dirX,dirY,dirZ for direction,
pointX,pointY,pointZ for the application point.
l set_solved_motion_propeller_follower_force(bodyId, follow): sets wrench follower force if
follow :"FOLLOWER" for a body with the given index. Unsets otherwise.
l get_solved_motion_propeller_follower_force(bodyID): gets "FOLLOWER" for follower
force and "NONFOLLOWER" for non-follower.
l get_solved_motion_initial_velocity(body_id): gets initial velocity and initial rotation velocity
for solved motion for a given body_id.
l set_ solved_ motion_ initial_ velocity (body_ id,velX,velY,velZ,rotVelX,rotVelY,rotVelZ):
sets initial velocity (VelX, VelY, VelZ) and initial rotation velocity (rotVelX, rotVelY,
rotVelZ) for solved motion for a given body_id.
l get_solved_motion_initial_displacement(body_id): gets initial displacement parameters for a
given body_id.
l set_solved_motion_initial_displacement(body_id,transX,transY,transZ,rotX,rotY,rotZ):
sets initial displacement parameters for a given body_id with transX,transY,transZ the initial
translation and rotX,rotY,rotZ the initial rotation.
l get_body_connection(body): gets body connection parameters
l set_ body_ connection (body,connection_ body,connection_
type,pointX,pointY,pointZ,normalX,normalY,normalZ): sets body connection parameters
for linked bodies.
body specifies Id number of the body.
connection_body specifies ID of the connected body. -1 means no connection.
connection_type can be: 0 - 'Rigid', 1 - 'Pin',3 - 'Roll cut',4 - 'Pitch cut',5 - 'Yaw cut',6 -
'Rotation cut',2 - 'Spin cut, deprecated'

633 FINE™/Marine 7.1 User Guide


pointX, pointY, pointZ specify coordinates of the connection point (mandatory for PIN and
SPIN_CUT, otherwise "0" should be specified)
normalX, normalY, normalZ specify normal direction for connection (mandatory for PIN
otherwise "0" should be specified)
l set_added_mass_coeff_type(bodyID, Tx, Ty, Tz, Rx, Ry, Rz):sets the estimation mode for
a body (bodyID) by each DOF(Tx, Ty, Tz, Rx, Ry, Rz) specified. Available types: "User-
defined", "Accurate", "Approximate".
For example: set_added_mass_coeff_type(1,"User-defined","User-defined","User-
defined","User-defined","User-defined","Accurate")
l get_added_mass_coeff_value(bodyID):gets added mass coefficient values for each DOF.
l set_added_mass_coeff_value(bodyID, Tx, Ty, Tz, Rx, Ry, Rz): sets added mass coefficient
values for each DOF. Note that the solver does not use values for DOFs with accurate and
approximate estimation modes. So such values can be arbitrary.
l get_ added_ mass_ coeff_ period (bodyID): returns estimation frequency for each DOF (6
integer values).
l set_added_mass_coeff_period(bodyID, Tx, Ty, Tz, Rx, Ry, Rz): sets estimation frequency
for each DOF. Note that the solver does not use estimation frequencies for DOFs with the user
define estimation mode. Therefore such frequencies can be arbitrary.
l get_added_mass_coeff_linking(bodyID): gets bodies linked to current one are accounted in
added mass coefficient estimation: 1 if bodies linked identified, 0 otherwise.
l set_added_mass_coeff_linking(bodyID, account): sets/unsets body linking accounting for
the given bodyID: account1 sets accounting; account 0 disables it.
l set_body_inertia_spec(bodyId, consider): sets the inertial parameters for a bodyId: consider
= 1- enables inertial parameters, so if the bodyId is a linked body with imposed Rn, then
center of gravity, mass and inertial matrix will be written to .sim file;consider = 0, mass and
inertial matrix will not be written to .sim for such a bodyId.
l get_body_inertia_spec(bodyId): returns 1 if inertial parameters were enabled for a linked
body with imposed motion, 0 otherwise.
l set_solved_motion_link_wrench(bodyId, enable, torque, spring_stiff, damping): defines
setup of forces imposed by a parent body. External forces will be imposed if enable = 1, 0
otherwise; torque is the imposed torque, spring_stiff is the torsional spring stiffness, damping
is the damping coefficient. Values of torque, spring_stiff and damping will not be taken into
consideration if enable = 0.
l get_ solved_ motion_ link_ wrench (bodyId): returns the parameters of the external forces,
which are imposed by the parent body; 0 if no forces are imposed or 1 if followed by the:
torque as the imposed torque, spring_stiff as the torsional spring stiffness, damping as the
damping coefficient.

634 FINE™/Marine 7.1 User Guide


34.1.12 Mesh Management Boundary Conditions

l get_domain_grid_motion(domain_id): sets grid motion for a given domain.


l set_ domain_ grid_ motion (domain_ id,gmTx,gmTy,gmTz,gmRx,gmRy,gmRz) : sets grid
motion for a given domain for each degree of freedom. domain_id corresponds to domain's
ID and gmTx, gmTy, gmTz, gmRx, gmRy, gmRz can be Weighted_ deformation or
Rigid_motion.
l set_ body_ connection (body,connection_ body,connection_
type,pointX,pointY,pointZ,normalX,normalY,normalZ) : sets the body connection
parameters for linked bodies.
body specifies Id number of the body.
connection_body specifies ID of the connected body. -1 means no connection.
connection_type can be: 0 - Rigid, 1 - Pin,3 - Roll cut,4 - Pitch cut,5 - Yaw cut,6 -
Rotation cut,2 - Spin cut, deprecated
pointX, pointY, pointZ specify coordinates of the connection point (mandatory for PIN and
SPIN_CUT, otherwise 0 should be specified)
normalX, normalY, normalZ specify normal direction for connection (mandatory for PIN
otherwise 0 should be specified)
l get_body_kinematics(body): gets kinematic type for a given body.
l set_body_kinematics(body,type): sets kinematics for a given body. type = 0 : body itself, i.e.
this body follows its own kinematic. type = 1 : pilot body, i.e. motion of this body is controlled
by a pilot body. This has no effect on pilot bodies.
l is_rot_frame_active(DomainID): returns True if the rotating frame method is activated for
the domain with a given ID, False otherwise. ID's are counted from 0.
l set_rot_frame_usage(DomainID, val): sets the rotating frame method usage for the domain
with a given ID. If val is equal to 1 or True , method will be activated; if 0 or False -
deactivated.
l get_grid_bc(block, face, patch): get the boundary condition flag for the grid deformation of
the patch: 4 for No slip, 5 for Free, 6 for Bottom (shallow water) condition. Block, face and
patch indexes are one-based.
l get_bc_value(block, face, patch): get the boundary condition value. If the user wants to get
actual flag value, it should be computed.

Example:

grid_bc = get_grid_bc(1, 1, 2)
bc = get_bc_value(1, 1, 2)

635 FINE™/Marine 7.1 User Guide


whole_flag = grid_bc * 100 + bc
l set_ grid_ bc (block, face, patch, grid_ bc) : the boundary condition flag for the grid
deformation of the patch. It will be the first digit of the whole B.C. flag.

34.1.13 Initial Solution

l set_ initial_ solution_ computation (name): sets the name of the computation from which
active ones should be restarted
l get_initial_solution_computation(): returns the name of the computation from which restarts
the active one. The returned value can be "" if the computation is initialized by uniform values.
If the returned value is not "", it is the name of an existing computation
l set_initial_solution_type(restart): sets the computation as a restart computation if restart = 1.
Makes the computation start from uniform values if restart = 0
l set_ convergence_ accu (import_ history): allows to import the computation history of the
simulation used for restart: can be set to "YES" or "NO".
l get_initial_solution_turb_parameters(): gets initial solution parameters
l set_ initial_ solution_ turb_ parameters(level,value,length): sets initial solution parameters:
turbulence level, turbulence value, turbulence length.
l get_initial_turbulence(): gets initial turbulence level and frequency.
l set_initial_turbulence(level,frequency): sets initial turbulence level and frequency.
l get_initial_interface_position(): gets the interface position
l set_initial_interface_position(value): sets the interface position, if a multifluid computation is
used.
l get_initial_velocity(): gets initial velocity components.
l set_initial_velocity(vX,vY,vZ): sets initial velocity components vX,vY,vZ.
l restart_from_previous_computation(name,import_history): defines possibility to continue
a computation using the results from a previous computation. name specifies the '.sim' file of a
computation. import_history can be set to 0 or 1. If set to 1 (default), the convergence history
file, which contains all the residuals from the previous computation, will be used as the initial
conditions of the new computation. It is an optional parameter.

Starting from FINE™/Marine v5.1 the function restart_from_previous_computation is no longer


recorded in Project… > Script… > Edit… Instead, set_initial_solution_computation, set_
initial_solution_type and set_convergence_accu are used.

636 FINE™/Marine 7.1 User Guide


34.1.14 Actuator Disks

l get_actuator_disk(): gets status (activate/ deactivate) of actuator disk.


l set_actuator_disk(flag): activates/ deactivates actuator disk. flag can be set to 0 (deactivate)
or 1 (activate).
l get_actuator_disk_tangential_force(): gets status (activate/ deactivate) of tangential force.
l set_actuator_disk_tangential_force(flag): activates/ deactivates tangential force. flag can be
set to 0 (deactivate) or 1 (activate).
l get_actuator_disk_self_update(): gets type of the body force update.
l set_actuator_disk_self_update(flag): controls body force update types with the Available
options are: "NO_ SELF_ UPDATE", "BODY_ DRAG", "OPEN_ WATER_ DATA" and
"PROPELLER_CODE".
l get_ actuator_ disk_ update_ frequency () : gets the frequency (number of time steps or
iterations).
l set_ actuator_ disk_ update_ frequency (number): sets the frequency. The number is the
number of time steps for unsteady computations or the number of iterations for steady
computations.
l get_actuator_disk_force_distribution(): gets force distribution.
l set_ actuator_ disk_ force_ distribution (value): sets force distribution. value can be either
"DEFAULT", "UNIFORM", "USER DEFINED" or "PROPELLER CODE"
l get_actuator_disk_list(): gets list of actuator disk(s).
l set_ actuator_ disk_ list(nDisks, disks): sets a list of actuator disks. nDisks specifies the
number of actuator disks and disks is a row of lists separated by a comma. Each list is
composed by id and name.

Example

# set two actuator disks


set_actuator_disk_list(2,[1,"Disk_#1"],[2,"Disk_#2"])

All existing actuator disks previously defined will be deleted.

l get_actuator_disk_properties(id): gets parameters for an actuator disk. id starts from 1.


l get_ disk_ revolution_ rate(disk_ id): gets the revolution rate of the actuator disk number:
disk_id. Disks are numbered from 1.

637 FINE™/Marine 7.1 User Guide


l set_disk_revolution_rate(disk_id, rate): sets the revolution rate of the actuator disk number
disk_id to rate. With rate = 0.0001 and -0.0001 corresponds to Update counterclockwise and
Update clockwise choices (resp.) for OPEN WATER DATA. Disks are numbered from 1.
l set_ actuator_ disk_ properties (id,thrust,torque,thickness,inner_ radius,outer_ radius,
center_ x, center_ y, center_ z, direction_ x, direction_ y, direction_ z, body_ id, inflow_
plane_distance): sets parameters for an actuator disk.
id starts from 1.
thrust specifies the thrust of the propeller.
torque specifies the torque of the propeller.
thickness specifies the thickness of the propeller.
inner_radius, outer_radius specify respectively the inner and outer radii of the propeller.
center_x, center_y, center_z specify the Cartesian coordinates of the propeller center.
direction_x, direction_y, direction_z specify the direction of the propeller force.
body_id specifies the body id on which the propeller is attached to.
inflow_plane_distance specifies the inflow plane distance.
l set_number_of_actuator_disks(n): removes all existing actuator disks and creates n disks
with default parameters instead. Disk IDs would be 1, 2, ..., n; disk names would be Disk_#1,
Disk_#2,..., Disk_#n.
l get_ number_ of_ actuator_ disks () : returns the number of actuator disks in the active
computation.
l set_actuator_disk_open_water_file(disk_index, filename): sets the open water data file
name for the actuator disk with the given serial number. Numbering of actuator disks starts
from 1 here. Note that this is only useful for OPEN WATER DATA.
l get_actuator_disk_open_water_file(disk_index): returns the open water data file name for
the actuator disk with the given serial number. Numbering of actuator disks starts from 1 here.
l set_actuator_disks(names): removes all existing actuator disks and creates disks using names
from the given list. Disk IDs would be assigned automatically: 1, 2, ...

Example

set_actuator_disks(["Disk A", "Disk B", "Disk C"]) will remove all existing disks and create 3
disks with default parameters. The first disk will be named "Disk A" and its disk ID will be 1,
the seconds disk will be named "Disk B" and disk ID 2, the third disk will be named "Disk C"
with disk ID 3.

638 FINE™/Marine 7.1 User Guide


34.1.15 Mooring

l get_mooring(): gets status (activate/deactivate) of mooring.


l set_ mooring (flag) : activates/deactivates mooring. flag can be set to 0 (deactivate) or 1
(activate).
l get_mooring_list(): gets a list of mooring lines (anchors).
l set_mooring_list(nLines, lines): sets a list of mooring lines (anchors). nLines specifies the
number of mooring lines. lines is a row of lists separated by comma. Each list is composed by
id and name.
Example:
# set two mooring lines
set_mooring_list(2,[1,"Line_#1"],[2,"Line_#2"])
Remark: all existing mooring lines previously defined will be deleted.
l get_mooring_properties(id): gets parameters for a mooring line. id starts from 1.
l set_ mooring_ properties (id, stiffness, pretension, fairlead_ x, fairlead_ y, fairlead_ z,
anchorage_x, anchorage_y,anchorage_z,body_id): sets parameters for a mooring line.
id starts from 1.
stiffness specifies the stiffness of the mooring line.
pretension specifies the tension initially present on the mooring line.
fairlead_x,fairlead_y,fairlead_z specify the fairlead position (Cartesian coordinates) of the
selected mooring line on the body.
anchorage_x,anchorage_y,anchorage_z specify the anchor position (Cartesian coordinates)
of the selected mooring line.
body_id specifies the body id on which the mooring is attached to.
l get_mooring_compress(line): gives compressibility of the mooring line; returned values are
"COMPRESS" (when there are forces) and "AVOID" (no forces).
line is the line number (numbering starts from one).
l set_ mooring_ compress(line, state): set compressibility of the mooring line, state can be
"COMPRESS" or "AVOID".

639 FINE™/Marine 7.1 User Guide


34.1.16 Tugging

l get_tugging(): gets status (activate/deactivate) of tugging.


l set_ tugging (flag) : activates/deactivates tugging. flag can be set to 0 (deactivate) or 1
(activate).
l get_tugging_list(): gets a list of tugging lines.
l set_tugging_list(nTugs, tugs): sets a list of tugging lines. nTugs specifies the number of
tugging lines. tugs is a row of lists separated by comma. Each list is composed by id and
name.
Example:
# set two tugging lines
set_tugging_list(2,[1,"Line_#1"],[2,"Line_#2"])
Remark: all existing tugging lines previously defined will be deleted.
l get_tugging_properties(id): gets parameters for a tugging line. id starts from 1.
l set_tugging_properties(id, stiffness, pretension, p1_x, p1_y, p1_z, p2_x, p2_y, p2_z,
body_id1, body_id2): sets parameters for a tugging line.
id starts from 1.
stiffness specifies the stiffness of the tugging line.
pretension specifies the tension initially present on the tugging line.
p1_x, p1_y, p1_z specify the Cartesian coordinates of the extremity for the first body.
p2_x, p2_y, p2_z specify the Cartesian coordinates of the extremity for the second body.
body_id1, body_id2 specify the different linked bodies.
l get_tugging_compress(line): gives compressibility of the tugging line; returned values are
"COMPRESS" (when there are forces) and "AVOID" (no forces).
line is the line number (numbering starts from one).
l set_ tugging_ compress (line, state): set compressibility of the tugging line, state can be
"COMPRESS" or "AVOID".

34.1.17 Cavitation

l get_cavitation(): gets status (activate/deactivate) of cavitation.


l set_cavitation(flag): activates/deactivates cavitation feature. flag can be set to 0 (deactivate) or
1 (activate).

640 FINE™/Marine 7.1 User Guide


l get_cavitation_model(): gets cavitation model.
l set_ cavitation_ model (value) : sets cavitation model. value can be set to "SAUER",
"MERKLE" or "KUNZ".
l get_cavitation_vapor_viscosity(): gets vapor viscosity.
l set_cavitation_vapor_viscosity(value): sets vapor viscosity.
l get_cavitation_vapor_density(): gets vapor density.
l set_cavitation_vapor_density(value): sets vapor density.
l get_cavitation_reference_pressure(): gets reference pressure.
l set_cavitation_reference_pressure(value): sets reference pressure.
l get_cavitation_reference_velocity(): gets cavitation reference velocity.
l set_cavitation_reference_velocity(value): sets cavitation reference velocity.
l get_cavitation_reference_length(): gets cavitation reference length.
l set_cavitation_reference_length(value): sets cavitation reference length.
l get_cavitation_use_sigma(): gets type of cavitation parameters.
l set_ cavitation_ use_ sigma (flag): sets type of cavitation parameters. flag can be set to 0
(sigma) or 1 (vapor pressure).
l get_cavitation_sigma_initial(): gets initial sigma.
l set_cavitation_sigma_initial(value): sets initial sigma.
l get_cavitation_sigma(): gets sigma.
l set_cavitation_sigma(value): sets sigma.
l get_cavitation_vapor_pressure_initial(): gets initial vapor pressure.
l set_cavitation_vapor_pressure_initial(value): sets initial vapor pressure.
l get_cavitation_vapor_pressure(): gets vapor pressure.
l set_cavitation_vapor_pressure(value): sets vapor pressure.
l get_cavitation_sigma_decay_duration(): gets sigma decay duration.
l set_cavitation_sigma_decay_duration(value): sets sigma decay duration.
l get_cavitation_activation_time(): gets activation time.
l set_cavitation_activation_time(value): sets activation time.
l get_ cavitation_ MERKLE_ liquid_ production () : gets liquid production for MERKLE
model.
l set_cavitation_MERKLE_liquid_production(value): sets liquid production for MERKLE
model.
l get_ cavitation_ MERKLE_ liquid_ destination () : gets liquid destination for MERKLE
model.

641 FINE™/Marine 7.1 User Guide


l set_cavitation_MERKLE_liquid_destination(value): sets liquid destination for MERKLE
model.
l get_cavitation_KUNZ_liquid_production(): gets liquid production for KUNZ model.
l set_cavitation_KUNZ_liquid_production(value): sets liquid production for KUNZ model.
l get_cavitation_KUNZ_liquid_destination(): gets liquid destination for KUNZ model.
l set_cavitation_KUNZ_liquid_destination(value): sets liquid destination for KUNZ model.
l get_cavitation_SAUER_nuclei_density(): gets nuclei density for SAUER model.
l set_cavitation_SAUER_nuclei_density(value): sets nuclei density for SAUER model.

34.1.18 Uncertainty Quantification

l is_UQ_available():checks if the UQ feature is present in the computation, doesn't check out


the license features: True if there is, False otherwise.
l get_uncertainty_approach_usage(): gets the status of UQ for the current computation: True
if UQ is enabled, False otherwise.

In case the license is not providing the NON_DETERMINISTIC feature, all python functions which
set_ uncertainty parameters will fail with the error message in the console: "Your license does not
include the uncertainty quantification feature". Please contact your local support team in this case.

l set_uncertainty_approach_usage(usage): sets the UQ for the current computation if usage =


1, disables otherwise.
l get_ number_ of_ uncertainties (): gets the number of uncertain quantities defined for the
computation.
l get_uncertainty(index): gets the uncertain quantity information with the given index;index is
an integer number that identifies an unique computation, tt starts from 0; quantity information
is the domain, face, patch, quantity. With the get_number_of_uncertainties() the index is
returned that can be used here; if the quantity has not been defined per (domain, face, patch) -
returned info can be arbitrary.
Uncertain quantities:
Vx
Vy
Vz
Turbulent kinetic energy

642 FINE™/Marine 7.1 User Guide


Turbulent dissipation
Turbulent viscosity
Wave height
Wave period
Sigma
Sigma (init)
Vapor pressure
Vapor pressure (init)
Nuclei density
Merkle liquid production coefficient
Merkle liquid destruction coefficient
Kunz liquid production coefficient
Kunz liquid destruction coefficient
Cavitation reference length
l set_uncertainty_usage(domain, face, patch, quantity, use): sets the quantity status: if use
=1 sets as uncertain; unsets otherwise.
l get_uncertainty_usage(domain, face, patch, quantity): gets the status of the quantity: 1 if
the quantity is uncertain.
l update_ uncertainty (): generates deterministic sub- computations according to the current
settings. Without an argument, sub-computations will be set as a restart from the parent non-
deterministic computation.
l update_uncertainty(value): defines if the deterministic computation is a restart of the non-
deterministic; 1 sets as a restart, 0 otherwise.
l get_ uncertainty_ params (domain, face, patch, quantity): gets the uncertain quantity
parameters: pc_ order is the polynomial chaos order, ranges from1 to 10; distr is the
uncertainty type - "Gauss", "Truncated Gauss", "Beta" or "User defined"; average is the
average value of the uncertain quantity; variance is the parameter variance; min value of the
uncertain quantity with the type "Beta"; max value of the uncertain quantity with the type
"Beta"; profile is a PDF profile file name.

The variable for the Most likely value of "Beta" uncertainty type distribution is the same as for
the Average value of the "Gauss" uncertainty type: average .

l set_ uncertainty_ params (domain, face, patch, quantity, chaos_ order, distribution,
average, variance, min, max, profile): sets uncertainty parameter

643 FINE™/Marine 7.1 User Guide


Example 1: set_uncertainty_params(1, 1, 5, "Vx", 2, "Gauss", 7.6, 1.0, 0, 0, "")
in the domain 1, face 1, patch 5 the X- component of Velocity ( Vx ) in the Boundary
Conditions is set to be uncertain with the following parameters: Polynomial chaos order is set
to 2; Uncertainty type is "Gauss"; Average value is equal to the value of 7.6 defined in the
current deterministic computation; Variance is 1; min and max are 0 since they are available
for "Beta" type only and profile name is empty " " since there is no User defined PDF used.
Example 2: set_uncertainty_params(1, 1, 5, "Vx", 2, "Beta", 7.6, 1.0, 7.0, 9.0, "")
in the domain 1, face 1, patch 5 the X- component of Velocity ( Vx ) in the Boundary
Conditions is set to be uncertain with the following parameters: Polynomial chaos order is set
to 2; Uncertainty type is "Gauss"; Most likely value is equal to the value of 7.6 defined in the
current deterministic computation; Variance is 1; min is 7.0 and max is 9.0 and profile name
is empty " " since there is no User defined PDF used.
l get_nb_of_subcomputations(): gets the number of deterministic sub-computations for the
active computation.
l get_nb_of_subcomputations(index): gets the number of deterministic sub-computations with
the certain index; index is an integer number that identifies an unique computation. It starts
from 0.
l set_ non_ determ_ cubature_ rule (rule): sets cubature rule, can be one of: "Full
Tensorization", "Sparse Linear Growth" or "Sparse Exponential Growth".
l ave, var, min, max, skewness, kurtosis = get_uncertain_force_2(body, force): this is the
variation of get_uncertain_force() that returns skewness and kurtosis in addition to usual
statistics.
l ok, x, y = get_PDF_reconstruction(ave, var, skew, kurt, n): returns PDF reconstruction by
first four moments of an uncertainty (ave - mean, var - variance, skew - skewness, kurt -
kurtosis); x and y are n-tuples which define the PDF: x corresponds to variable values, y - to
PDF values. ok is 1 if the reconstruction was successful and 0 otherwise.
l rule = get_non_determ_cubature_rule(): returns the currently selected cubature rule: "Full
Tensorization", "Sparse Linear Growth" or "Sparse Exponential Growth".
l get_collocation_points_nb(domain, face, patch, quantity): gets the number of collocation
points created for the uncertainty quantity.
l get_collocation_point(domain, face, patch, quantity, no): gets the collocation point for the
uncertainty quantity with the given number - no. Collocation points can be created with the
update_uncertainty().
l get_ uncertainty_ weight (subcompno): gets the weight based on the probability density
function of the uncertain parameter with the given no of the deterministic computation.
l collect_uncertainty_results(value): retrieves results of the UQ for the current computation
from the 'eff_*.dat' files; value specifies the percentage of the last lines of 'eff_*.dat' files to be
considered.

644 FINE™/Marine 7.1 User Guide


l write_ uncertainty_ report (): creates the 'Uncertainty_ results.dat' file inside the current
computation folder; results should be collected first using the collect_uncertainty_results()
command.
l get_forces_list(): gets the list of found forces where each list item is a pair of names: body
(sub-body), force.
l get_computed_force(body, force): gets the deterministic computation results data for the
body (sub- body) and forces calculated from the 'eff_ *.dat' collected with the command
collect_uncertainty_results().

Commands get_forces_list() and get_computed_force(body, force) can be used to get the 'eff_
*.dat' information for the non UQ computations.

l get_ uncertain_ force (body, force): gets the uncertainty properties of the force: mean,
variance, min, max.

Commands provided in the paragraph Computation Management can also be applied for the
Uncertainty Quantifiction management.

plot_dependency(computations, b, f, p, quantity, body, force): plots dependency between


quantity and computed force from the computations using matplotlib; b, f, p, quantity
denotes the uncertain quantity with names if:
Vx
Vy
Vz
Turbulent kinetic energy
Turbulent dissipation
Turbulent viscosity
Wave height
Wave period
Sigma
Sigma (init)
Vapor pressure
Vapor pressure (init)
Nuclei density

645 FINE™/Marine 7.1 User Guide


Merkle liquid production coefficient
Merkle liquid destruction coefficient
Kunz liquid production coefficient
Kunz liquid destruction coefficient
Cavitation reference length

Quantity can also be uncertain not for all of computations.

body and force denotes the results data for the body (sub-body) and force calculated from the
'eff_*.dat' (see also get_computed_force(body, force)). Command returns a matplotlib figure
object, which can be drawn on the screen or saved to the file after; it is also possible to add
plotted data to the figure or setup various options of the figure using matplotlib. Command
collect_ uncertainty_ results () on computations should be called before using this plot
function.
Example 1: creating a matplotlib figure and saving the plot into the file:
import matplotlib.pyplot as plt
c = range(0, 5) # range of computations with numbers [0, 1, 2, 3, 4]
for i in c:
FM.set_active_computation(i)
FM.collect_uncertainty_results(10) # use 10% of 'eff_*.dat' file last results
plot_dependency(c, 1, 1, 5, "Vx", "kvlcc2", "Fx")
plt.figure(fig.number) # if only several figures are in use
It is possible to show a figure by using plt.show() instead of plt.figure(), although this comand
is not working completely stable, thus should be applied with attention.
Example 2: non- deterministic results built with the get_ uncertain_ force (body, force),
collected with the collect_ uncertainty_ results () and plotted with the plot_ dependency
(computations, b, f, p, quantity, body, force):

646 FINE™/Marine 7.1 User Guide


Y- coordinate of a data point is the force mean value; Y - error bar corresponds to the range
between [-2ε;2ε], where ε² is the variance returned by the get_uncertain_force(body, force)
command. X- error bars are displayed only if the uncertainty type of the quantity is "Gauss",
"Truncated Gauss". These bars will display the [-2ε;2ε] range for variance of uncertainty as it
has been specified by the user. If the uncertainty type of the quantity is "Gauss"or "Truncated
Gauss", X- coordinates of data points will be set to the mean value of the quantity, as it has
been specified during the computations creation procedure. For the other uncertainty types, X-
coordinates are used for the quantity values from the corresponding computations
representation.

647 FINE™/Marine 7.1 User Guide


34.1.19 Internal wave generator

Activation

l activation = get_internal_wave_usage(): returns 1 if the internal wave generator is activated,


0 otherwise
l set_ internal_ wave_ usage (activation): enables the internal wave generator for activation
different from zero, disables for active=0

Set the parameters

l param = FM.InternalWaveParameters(): the Internal Wave Generator can be set using the
constructor (here param)
l param.set_domain(domain_nbr): sets the domain attached to the internal wave generator,
by its serial ID.
l param.set_spectrum(spectrum): sets the type of waves to generate. Possible spectrum are:
l "REGULAR"
l "ITTC"
l "JONSWAP"
l "JONSWAP 3 PARAMETERS"
l "PIERSON-MOSKOWITZ"
l "USER-DEFINED"
l param. set_ period (period): sets the period for regular waves and the peak period for
irregular waves
l param.set_height(height): sets the wave height for regular waves and the significant wave
height for irregular waves
l param.set_depth(depth): sets the depth for all types of spectrum
l param.set_steepness(gamma): sets the steepness for the JONSWAP and JONSWAP 3
PARAMETERS spectra
l param.set_data_file(filename): sets the file path for the wave spectrum for the USER-
DEFINED spectrum
l param.set_source_x(x): sets x coordinate of the wave generation source

648 FINE™/Marine 7.1 User Guide


l param.set_direction(direction): sets the direction of wave propagation. Possible directions
are:
l FM.POSITIVE_X
l FM.NEGATIVE_X
l FM.BOTH_X
BOTH_X is only available for REGULAR spectrum
l set_ internal_ wave_ parameters(param): applies the constructor to set all the parameters
defined above in the computation

Retrieve the parameters

l param = get_internal_wave_parameters(): gets the constructor containing the values set in the
computation. Available values:
l domain = param.get_domain(): gets the domain attached to the internal wave generator, by
its serial ID.
l spectrum = param.get_spectrum(): gets the type of waves to generate
l period = param.get_period(): gets the period for regular waves and the peak period for
irregular waves
l height = param.get_height(): gets the wave height for regular waves and the significant
wave height for irregular waves
l depth = param.get_depth(): gets the depth for all types of spectrum
l gamma = param.get_steepness(): gets the steepness for the JONSWAP and JONSWAP 3
PARAMETERS spectra
l filename = param.get_data_file(): gets the file path for the wave spectrum for the USER-
DEFINED spectrum
l x = param.get_source_x(): gets x coordinate of the wave generation source
l direction = param.get_direction(): sets the direction of wave propagation. BOTH_X is
only available for REGULAR spectrum

34.1.20 Numerical Model Parameters

l get_turb_scheme(): gets turbulence discretization scheme


l set_turb_scheme(scheme,level): sets turbulence discretization scheme. scheme is coded by a
number as follows:
1 - "UPWIND"
2 - "HYBRID"

649 FINE™/Marine 7.1 User Guide


3 - "CENTERED"
4 - "AVLSMART"
5 - "GDS"
6 - "BLENDED"
level specifies level of up-winding if discretization scheme is "BLENDED"
l get_momt_scheme(): gets momentum discretization scheme
l set_momt_scheme(scheme,level): sets momentum discretization scheme. scheme is coded by
a number as follows:
1 - "UPWIND"
2 - "HYBRID"
3 - "CENTERED"
4 - "AVLSMART"
5 - "GDS"
6 - "BLENDED"
level specifies level of up-winding if discretization scheme is "BLENDED"
l get_multi_scheme(): gets multi-fluid discretization scheme
l set_ multi_ scheme(scheme): sets multi-fluid discretization scheme. scheme is coded by a
number as follows:
1 - "GDS"
2 - "IGDS"
3 - "MGDS"
4 - "AVLSMART"
5 - "BICS"
6 - "HRIC"
7 - "CICSAM"
8 - "BRICS"
l get_cavitation_scheme(): gets cavitation discretization scheme
l set_cavitation_scheme(scheme): sets cavitation discretization scheme. scheme is coded by a
number as follows:
1 - "BRICS_GDS"
2 - "UPWIND"
3 - "BRICS"
4 - "GDS"

650 FINE™/Marine 7.1 User Guide


5 - "AVLSMART"
l set_passive_scalar_scheme(scheme): management of passive scalar numerical scheme. The
scheme can be set to 4 (AVLSMART) or 1 (GDS).
l get_passive_scalar_scheme(): gets the passive scalar scheme (4 for AVLSMART or 1 for
GDS).
l get_urex_velocity(): gets under-relaxation velocity
l set_urex_velocity(x,y,z): sets under-relaxation velocity for x, y, z components.
l get_urex_pressure(): sets under-relaxation value for pressure
l set_urex_pressure(value): sets under-relaxation value for pressure.
l get_urex_velocity_flux(): gets under-relaxation velocity flux value
l set_urex_velocity_flux(value): sets under-relaxation velocity flux value.
l get_urex_correction(): gets under-relaxation correction value
l set_urex_correction(value): sets under-relaxation correction value.
l get_urex_turb_params(): gets under-relaxation turbulence and mass fraction values
l set_ urex_ turb_ params (kinetic_ energy,frequency,diss,viscosity,mass_ fraction): sets
under- relaxation turbulence kinetic energy, frequency, dissipation, viscosity and mass
fraction.
l get_urex_cavitation(): gets under-relaxation parameter for cavitation
l set_ urex_ cavitation (value): sets under- relaxation parameter for the equation of the
vapour/liquid fraction.

34.1.21 Adaptive Grid Refinement Parameters

l get_refinement_usage(): gets adaptive grid refinement status.


l set_refinement_usage(mode): sets adaptive grid refinement status. mode can be 0 or 1. 1
means grid refinement is activated.
l get_refinement_threshold(): gets refinement criterion threshold
l set_refinement_threshold (value, value, value): sets refinement criterion threshold. value
specifies the intensity of the refinement. The smaller value causes a large part of the grid to be
refined. Two values are presented to control 2 refinement tresholds for combined criterions,
such as Multisurface + Pressure Hessian, which has threshold values for Free surface and
Cavity surface. Third value corresponds to Hessian threshold for Combined criteria. If there is
no value set, it will be considered as 0 for the combined criterion.
l get_criterion_type(): gets refinement criterion type.
l set_criterion_type(value): sets refinement criterion type. value can have the following:

651 FINE™/Marine 7.1 User Guide


"Free surface (directional)"
"Free surface (isotropic)"
"Pressure gradient (isotropic)"
"Velocity gradient (isotropic)"
"Vorticity (isotropic)"
"Free surface (tensor)"
"Pressure Hessian (tensor)"
"Pressure Hessian (isotropic)"
"Free surface + pressure Hessian"
"Flux component Hessian
"Multisurface + flux component Hessian"
"Overset continuity only"

Note that if Overset is not activated for "Overset grid management" (p. 423) and Overset
continuity only criterion is set, it will be switched to Pressure Hessian (isotropic)
automatically, since Overset continuity only is applicable only for Overset type of projects.

l get_max_n_generations(): gets maximum number of refinements of initial cells.


l set_max_n_generations(value): sets maximum number of refinements of initial cells.
l get_buff_layers_full(): gets the number of layers copying full criterion value.
l set_buff_layers_full(value): sets the number of layers copying full criterion value.
l get_buff_layers_fraction(): gets the number of layers copying fraction of value
l set_buff_layers_fraction(value): sets the number of layers copying fraction of value.
l get_fraction(): gets fraction value for criterion diffusion.
l set_fraction(value): sets fraction value for criterion diffusion.
l get_bound_layer_protection(): gets bound layer protection type
l set_bound_layer_protection(value): sets bound layer protection type. value can have the
following possibilities:
"Longitudinal direction only"
"Any refinement"
"Ignore boundary layers"
"No refinement"
l get_refinement_only_in_box_iso(): gets box status for isotropic/directional refinement.

652 FINE™/Marine 7.1 User Guide


l set_refinement_only_in_box_iso(mode): sets box status for isotropic/directional refinement
mode. mode can be 0 or 1. 1 means all refinements are restricted to a box.
l get_only_in_box_iso(): gets coordinates for isotropic/directional refinement.
l set_only_in_box_iso(x_min,x_max,y_min,y_max,z_min,z_max): defines coordinates for
isotropic/directional refinement. x_ min, x_ max, y_ min, y_ max, z_ min, z_ max specify
minimum and maximum coordinates in x, y, and z-direction.
l get_refinement_only_in_box_dir(): gets box status for directional refinement only.
l set_refinement_only_in_box_dir(mode): sets box status for directional refinement. In this
mode different boxes can be specified for each direction. mode can be 0 or 1.
l get_only_in_box_dir(): gets coordinates for directional refinement.
l set_ only_ in_ box_ dir (x_ x_ min,x_ x_ max,x_ y_ min,x_ y_ max,x_ z_ min,x_ z_ max, y_ x_
min,y_x_max,y_y_min,y_y_max,y_z_min,y_z_max, z_x_min,z_x_max,z_y_min,z_y_
max,z_z_min,z_z_max):
defines coordinates for directional refinement. Different boxes may be set for each of the three
components of the criterion. 6 real values for each axis.
l get_ steps_ before_ first_ refinement (): gets the number of steps before the first call to
refinement procedure.
l set_steps_before_first_refinement(value): sets the number of steps before the first call to
refinement procedure.
l get_steps_between_refinements(): gets the number of steps between two calls to the adaptive
grid refinement procedure.
l set_steps_between_refinements(value): sets the number of steps between two calls to the
adaptive grid refinement procedure.
l get_min_cell_size(): gets minimum size limit for refined cells
l set_min_cell_size(value): sets minimum size limit for refined cells.
l get_reinit_after_first_step(): gets the status to reinitialize solution after the first refinement
l set_reinit_after_first_step(flag): sets status to reinitialize solution after the first refinement.
flag can be 0 or 1 (1 active and 0 not active).
l get_projection_surface(): gets status to project refined grid onto body surfaces
l set_projection_surface(flag): sets status to project refined grid onto body surfaces. flag can
be 0 (not active) or 1 (active).
l get_free_surface_criterion_smooth_mass(): gets status for the base free surface criterion on
smoothed mass fraction.
l set_free_surface_criterion_smooth_mass(flag): sets status for the base free surface criterion
on smoothed mass fraction. flag can be 0 (not active) or 1 (active).
l get_convection_buffer(): gets usage criterion diffusion by convection

653 FINE™/Marine 7.1 User Guide


l set_convection_buffer(flag): sets usage criterion diffusion by convection. flag can be 0 (not
active) or 1 (active).
l get_scalar_product_zone(): gets the status of the possibility to limit scalar product check to
zone where criterion is non-zero.
l set_scalar_product_zone(flag): sets a flag that limits scalar product check to zone where
criterion is non-zero. flag can be 0 (not active) or 1 (active)
l get_conditional_factor(): gets conditional refinement factor value.
l set_ conditional_ factor (value): sets conditional refinement factor. value affects the grid
smoothness. It should be always bigger than 1.0.
l get_repetitions(): gets the number of repetitions during one refinement step.
l set_repetitions(value): sets the number of repetitions. value specifies how many times the
refinement procedure is called during one refinement step.
l get_hessian_eval(): returns "Least-squares" if the least-squares pressure Hessian evaluation is
used, "Smoothed Gauss" if Smoothed Gauss
l set_hessian_eval(approach): sets pressure Hessian approach. Values "Least-squares" and
"Smoothed Gauss" for approach are supported.
l get_directional_derefinement(): gets 1 if the direction derefinement is enabled, 0 otherwise
l set_directional_derefinement(use): enable the directional derefinement: if use = 1, disables
otherwise.

34.1.22 Overset grid management

l get_overset_activation(): returns 1 when overset grid approach is active, 0 in other cases.


l set_overset_activation(active): Enables Overset Grids if active = 1, disables Overset Grids if
active = 0.

Domain number blockID is starting its numbering from 0.

l get_ overset_ domain_ type (blockID): returns type of the domain: OVERLAPPING = 1,
BACKGROUND = 2 or LINKED = 3.
l set_ overset_ domain_ type (blockID, site): sets the type of thedomain: OVERLAPPING,
BACKGROUND or LINKED.
Example: FM.set_overset_domain_type(0, FM.BACKGROUND)

654 FINE™/Marine 7.1 User Guide


l get_ overset_ domain_ physical_ BC (blockID) : returns 1 if the domain has a physical
boundary condition, 0 in other cases.
l set_overset_domain_physical_BC(blockID, has_bc): sets the physical boundary condition
for the domain blockID: has_bc = 1 , 0 otherwise.
l get_overset_domain_distance(blockID): returns distance parameter of the physical domain.
l set_overset_domain_distance(blockID, distance): sets the distance parameter of the physical
domain.
l get_overset_parent_domain(blockID): returns an index of the domain, to which domain
blockID is linked.
l set_overset_parent_domain(blockID, outerID): sets the domain blockID as Linked to the
domain outerID.
l get_body_of_overset_domain_boundary(bodyID): returns 1 if the bodyID was defined as
belonging to the domain boundary.
l set_body_of_overset_domain_boundary(bodyID, bound): sets the body as belonging to
the domain boundary when bound = 1, and resets bodyID status if bound = 0.

34.1.23 Projection

l get_projection(): gets projection status and related file


l set_projection(flag,file): sets projection status and related file (".its"). flag is "1" to activate
the projection (otherwise set to "0" and related file set to "-").

34.1.24 Modal approach

l is_ modal_ approach_ available (): returns 1 if GUI has detected modal approach license
feature, 0 otherwise.
l get_ modal_ approach_ usage () : returns 1 if the modal approach is enabled for the
computation, 0 otherwise.
l set_modal_approach_usage(usage): sets the usage of modal approach for the computation:
usage 1 enables Modal approach;usage 0 disables.
l get_coupling_activation(bodyID): returns 1 if the body with given index has active coupling,
0 otherwise. bodyID should be greater than 0.
l set_coupling_activation (bodyID, active): sets/unsets coupling for a body with the given
index: active = 1 sets coupling active;active = 0 disables coupling; bodyID should be greater

655 FINE™/Marine 7.1 User Guide


than 0.
Class ModalStructure is used to control modal structures by the following methods:
l ModalStructure(structID): this constructor creates a new instance of the class, initialized
with the given structure index > 0. This function is used primarily when recording in GUI.
l get_file(): returns absolute path to the structure definition file. The returned path is always
absolute even if set_file() has been called with the relative path.
l set_file(filename): sets the path to the structure definition file. Note that this value will be
saved in the project without any changes. It can be relative to the computation folder.
Additionally after set_file() call, the current number of modes is set to the value specified in the
structure definition file (i.e. maximum value).
l get_modes_nb(): returns number of modal modes.
l set_modes_nb(nb): sets the number of modal modes.
l get_name(): returns the modal structure name. Note that the Modal Structure name isn't used
in the solver.
l set_name(name): Sets the new name of the Modal Structure.
l set_modal_mode(mode_no, damping, init_ampl, AMC_estimode, AMC_value, AMC_
iter): Sets the parameters of modal mode with the given index mode_no > 0 (modes are
numbered from 1 as in the GUI): damping is the damping coefficient; init_ampl is the initial
amplitude; AMC_ estimode is added mass coefficient estimation mode (can be "User-
defined", "Approximate" and "Accurate"); AMC_value is the added mass coefficient value
(used only for "User-defined" mode); AMC_iter is the added mass coefficient estimation
frequency (used for "Approximate" and "Accurate" modes).
l get_modal_mode(mode_no): returns parameters of the modal mode with index mode_no >
0. See set_modal_mode for the description of returned values.
The following functions support the class but do not belong to it:
l get_body_modal_structure(bodyID): returns Modal Structure which is selected for body
with given index.
l set_body_modal_structure(bodyID, struct): sets Modal Structure for the body with given
index.
l get_modal_structures(): returns list of all Modal Structure's in the computation.
l add_modal_structure(structID, name): creates a new modal structure with the given name
and index, then returns corresponding Modal Structure instance.
l remove_modal_structure(structID): removes the modal structure with the given index.
The following functions control expert parameter:

656 FINE™/Marine 7.1 User Guide


l get_ map_ loads_ on_ init_ shape (bodyID): returns 1 if option "Map loads on the non-
deformed configuration" is active for the body, 0 otherwise.
l set_ map_ loads_ on_ init_ shape (bodyID, map_ loads): activates/deactivates option "Map
loads on the non-deformed configuration" for the body.

34.1.25 Transition model

l set_ transition_ model_ usage (active): enables the transition model if active is non- zero,
disables otherwise.
l get_transition_model_usage(): get 1 if the transition model is activated, 0 otherwise.
l set_transition_scheme(scheme, upwindc): sets the turbulence discretization scheme;
1 - "UPWIND"
2 - "HYBRID"
3 - "CENTERED"
4 - "AVLSMART"
5 - "GDS"
6 - "BLENDED"
7 - "SOU"
l upwindc specifies the level of up-winding.
l get_transition_scheme(): gets the transition discretization scheme.
l set_urex_intermittency(urex): sets the under-relaxation value for the intermittency.
l get_urex_intermittency(): gets the under-relaxation value for the intermittency.

34.1.26 Results Analysis

Members of the class FM.ResultsAnalyzer():


l get_quantities(): gets a list of selected quantities.
l set_quantities(list):sets a list of selected quantities.
To manage the quantity selection list:
l Forces and moments: names as in GUI "Fx", "FyP" and etc.
l Motion: "Tx0", "Ax", "d2Rz0", "Q1" and etc.
l Courant number: "CourantN"

657 FINE™/Marine 7.1 User Guide


l Number of cells: "cells"
l Actuator disk thrust and torque: "thrust_torque"
l Wetted surface area: "wetted_area"
l Y+ distance: "Y+"
l set_resistance_curve(usage): sets resistance curve usage:usage can be 0 or 1.
l get_resistance_curve(): sets resistance curve usage: can be 0 or 1.
l get_ self_ propulsion () : it returns None if the self- propulsion analysis is not activated.
Otherwise a FM.SelfPropAnalysis instance with the self-propulsion parameters.
l set_self_propulsion(sp): if sp is None, it disables the self-propulsion analysis. Otherwise sp
should be a FM.SelfPropAnalysis instance with the self-propulsion parameters.
l track_averaging_on(efforts, motions): controls quantities to average: efforts and motions
can be 0 or 1. In case of 1, the corresponding quantities will be averaged. (get_averaging_
tracking returns two values.)
l get_averaging_tracking(): returns quantities to average efforts and motions can be 0 or 1.
l set_averaging_options(use_last_percent, conv_crit): sets the last times steps number per
cent and convergence criterion per cent. returns these two values.
l get_averaging_options(): gets the last times steps number per cent and convergence criterion
per cent.
l set_median_filter(use, window_width): sets median filtering: use can be 0 or 1. If 1, the filter
will be used with the specified window_width
l get_median_filter(): gets median filtering: use can be 0 or 1. If 1, the filter will be used with
the specified window_width
l set_moving_average(use, window_width): sets moving average filtering: use can be 0 or 1.
If 1, the filter will be used with the specified window_width
l get_moving_average(): gets moving average filtering: use can be 0 or 1. If 1, the filter will be
used with the specified window_width
l set_ plot_ options (joint_ quantities, joint_ computations) : sets plotting options. If joint_
quantities is 1, quantities will drawn on the same plot when possible, if joint_computations
is 1, quantities from different computations with the same name will be drawn on the same plot
when possible. joint_quantities and joint_computations can be 1 simultaneously.
l get_plot_options(): gets plotting options.
l analyze(foldername = 'Convergence_report'): runs the results analysis with current options.
Results are stored to the folder with specified foldername. Selected computations are the
currently active computations. If foldername isn't specified, it will take value 'Convergence_
report'. The tool will not delete the report folder if it exists already.
l set_axis_limits(xmin, xmax, ymin, ymax): sets axis limits for current analysis. If an argument

658 FINE™/Marine 7.1 User Guide


is None, the corresponding limit will be disabled.
l xmin, xmax, ymin, ymax = get_axis_limits(): returns current axis limits. If a return value is
None, the corresponding limit is not set.
l set_Fx_doubling(double_Fx): doubles drag force Fx (for a half body simulation). Enabled if
double_Fx = 1, disabled if double_Fx = 0.
l get_Fx_doubling(): returns current Fx doubling activation (1 if active, 0 if not).
l set_abs_plot(enable): if enable = 1, all quantity values will be absolute.
l get_abs_plot(): returns 1 if only absolute quantity values will be used.
l set_dimensionless_coeff(enable, name, value): controls dimensionless coefficient activation.
If enable = 1, all quantity values will be divided by a given value and name. The name is
needed to correctly label the plots. If enable = 0, the dimensionless coefficient will not be
applied. In this case, name and value can be arbitrary.
l enabled, name, value = get_dimensionless_coeff(): returns current dimensionless coefficient
parameters. enabled = 1 if quantity values will be divided by a given value, 0 otherwise. name
and value define name and value of the denominator.
Members of the class FM.SelfPropAnalysis():
l Rttow: ship drag [N] in resistance conditions.
l SFC: carriage towing force [N] if any.
l open_ water_ file : path of the file containing the open water performance curve of the
propeller, including the name and extension of the file. It can be relative to the computation
directory.
l ship: name of the body ship
l propeller: name of the body propeller if it is physically present in the computation.
l D: diameter [m] of the propeller if it is physically present in the computation.
l n: rotational speed [rps] of the propeller if it is modeled with an actuator disk.

Example of a typical convergence analysis for a resistance


simulation with solved trim and sink

a = FM.ResultsAnalyzer()
a.set_quantities(["Fx","Fz","Tz0","Rz0"])
a.track_averaging_on(1,0)
a.set_averaging_options(10,1)
a.set_Fx_doubling(1)
a.analyze("Convergence_report_21-06-2016_10h-49m-20s")

659 FINE™/Marine 7.1 User Guide


Example of a typical self-propulsion analysis

a = FM.ResultsAnalyzer()
a.track_averaging_on(1,1)
a.set_averaging_options(10,1)
sp = FM.SelfPropAnalysis()
sp.Rttow = 34.98
sp.SFC = 18.2
sp.open_water_file = '/home/user/open_water_file.dat'
sp.ship = ¨ship¨
sp.propeller = ¨propeller¨
sp.D = 0.23
a.set_self_propulsion(sp)
a.analyze("Convergence_report_19-04-2017_12h-09m-35s")

34.1.27 Outputs

l get_probe_parameter(number): gets probe parameters.


l get_probe_on_walls_para(): gets probe on wall parameters
l set_ probe_ on_ walls_ para (flag,frequency,start,end,flowQuantOnly): sets probe on wall
parameters (see corresponding expert parameter for the complete description).
l get_probe_para(iQuant,iProbe): gets probe parameter
l get_probe_interval(): gets interval for both volume and surface probes.
l set_ probe_ interval(value,units): sets interval for both volume and surface probes. This
parameter is global, i.e. the same for all probes. value specifies the interval. units can be
"seconds", "timesteps" or "iterations".
l get_volume_probe(number): gets volume probe parameters.
l set_volume_probe(number,flag): sets volume probe parameters. The parameter is associated
with a number:
2 - Velocity
3 - Pressure
4 - Pressure gradient
5 - Vorticity

660 FINE™/Marine 7.1 User Guide


6 - Helicity
7 - Second invariant
8 - Courant number
11 - Correlation-R11
12 - Correlation-R12
13 - Correlation-R13
14 - Correlation-R22
15 - Correlation-R23
16 - Correlation-R33
17 - Turbulent viscosity
21 - Turbulent viscosity~ (for Spallart-Allmaras computation only)
31 - Turbulent dissipation
32 - Turbulent kinetic energy
33 - Turbulent frequency
101 - Mass fraction
102 - Hydrodynamic pressure
201 - Cavitation fraction
211- Blanking
212 - Passive scalar
flag can be either 0 or 1. 1 means that corresponding probe is set up.
l get_volume_probe_interval(): gets interval for volume probes.
l set_volume_probe_interval(value,units): sets interval for all volume probes. value specifies
the interval. units can be "seconds", "timesteps" or "iterations".
l get_surface_probe_wall_forces(): gets the wall force probe.
l set_ surface_ probe_ wall_ forces (filename): sets the wall forces probe. If the probe is
activated, the associated file will contain some definite value. filename specifies the name of
the file. Some restrictions on the name and extension might be applied.
l get_surface_probe_free(): gets the free surface probe.
l set_surface_probe_free(filename): sets the free surface probe. If the probe is activated, the
associated file will contain some definite value. filename specifies the name of the file. Some
restrictions on the name and extension might be applied.
l get_surface_probe_wall(): gets the wall surface probe.

661 FINE™/Marine 7.1 User Guide


l set_ surface_ probe_ wall(filename, nQuantities, quantities): sets the wall surface probe.
Currently up to 9 wall probes are allowed. filename specifies the name of the file. Some
restrictions on the name and extension might be applied. nQuantities specifies the number of
wall probes. quantities is an array of selected values.
Example:
set_surface_probe_wall("wall.xdr", 3, "PRESSURE", "HYDRODYNAMIC
PRESSURE", "VELOCITY")
l get_surface_probe_iso(id): gets iso-surface probe.
l set_ surface_ probe_ iso (id, filename, iso_ variable, iso_ value, probe_ variable): sets iso-
surface probe. Currently up to 99 probes are allowed.
id specifies the probe identifier, which is an integer starting from 1.
filename specifies the name of the file. Some restrictions on the name and extension might be
applied.
iso_ variable specifies the variable used to create the iso- surface. It can be "MASS
FRACTION", "VELOCITY", "PRESSURE", "HYDRODYNAMIC PRESSURE",
"TURBULENT VISCOSITY", "TURBULENT DISSIPATION", "TURBULENT
KINETIC ENERGY", "TURBULENT FREQUENCY", "HELICITY", "SECOND
INVARIANT", "COURANT NUMBER", "CAVITATION FRACTION" or "PASSIVE
SCALAR".
iso_value specifies the iso-surface value.
probe_ variable specifies the probe variable: "-", "MASS FRACTION", "VELOCITY",
"VORTICITY", "PRESSURE", "HYDRODYNAMIC PRESSURE", "TURBULENT
VISCOSITY", "TURBULENT DISSIPATION", "TURBULENT KINETIC ENERGY",
"TURBULENT FREQUENCY", "HELICITY", "SECOND INVARIANT", "COURANT
NUMBER", "CAVITATION FRACTION" or "PASSIVE SCALAR".
l set_surface_probe_cut_plane(id, filename, quantity, body_id, x, y, z, n_x, n_y, n_z,cut_
type, dim1, dim2): sets the cut plane surface probe. Currently up to 99 probes are allowed.
id specifies the probe identifier, which is an integer starting from 1.
filename specifies the name of the file. Some restrictions on the name and extension might be
applied.
quantity can be set to "MASS FRACTION", "VELOCITY", "VORTICITY",
"PRESSURE", "HYDRODYNAMIC PRESSURE", "TURBULENT VISCOSITY",
"TURBULENT DISSIPATION", "TURBULENT KINETIC ENERGY", "TURBULENT
FREQUENCY", "HELICITY", "SECOND INVARIANT", "COURANT NUMBER",
"CAVITATION FRACTION" or "PASSIVE SCALAR".
body_id specifies the body to follow. If no body is chosen, it is set to 0.
x, y, z specify the plane origin coordinates.
n_x, n_y, n_z specify the plane normal vector.

662 FINE™/Marine 7.1 User Guide


type – denotes cut type:
l "PLANE" for cut planes,
l "ELLIPSOID" for cut ellipsoid,
l "CYLINDER" for cut cylinder,
dim1 and dim2 – depends on type:
l "PLANE": can be arbitrary,
l "CYLINDER": dim1 is height, dim2 is radius,
l "ELLIPSOID": dim1 is main axis radius, dim2 is perpendicular axis radius.

To delete existing cut probe, specify "-" as a filename .

l get_surface_probe_cut(id): gets the surface probe.


l get_surface_probe_interval(): gets interval for surface probes.
l set_surface_probe_interval(value,units): sets interval for all surface probes. value specifies
the interval. units can be set to "seconds", "timesteps" or "iterations".
l get_ mean_ parameter (number): gets mean flow parameter by checking if a mean flow
variable is enabled. Command returns 0 or 1, where 1 means that the variable is set up. The
parameter is associated number as follows:
1 – Velocity
2 – Pressure
6 – Second invariant
7 – Helicity
8 – Vorticity
11 – Correlation-R11
12 – Correlation-R12
13 – Correlation-R13
14 – Correlation-R22
15 – Correlation-R23
16 – Correlation-R33
17 – Turbulent viscosity
18 – Turbulent viscosity ~
19 – Turbulent kinetic energy
20 – Turbulent frequency

663 FINE™/Marine 7.1 User Guide


21 – Turbulent dissipation
101 – Mass fraction
102 – Hydrodynamic pressure
103 – Viscous stress (fluid to wall)
22 - Cavitation fraction
212 - Passive scalar
l set_mean_parameter(number,flag): sets mean flow parameter. Flag can be either 0 or 1. 1
means that corresponding optional output variable is active.The parameter is associated with
number as follows:
1 – Velocity
2 – Pressure
6 – Second invariant
7 – Helicity
8 – Vorticity
11 – Correlation-R11
12 – Correlation-R12
13 – Correlation-R13
14 – Correlation-R22
15 – Correlation-R23
16 – Correlation-R33
17 – Turbulent viscosity
18 – Turbulent viscosity ~
19 – Turbulent kinetic energy
20 – Turbulent frequency
21 – Turbulent dissipation
101 – Mass fraction
102 – Hydrodynamic pressure
103 – Viscous stress (fluid to wall)
22 - Cavitation fraction
212 - Passive scalar
l get_point_probe(): sets the Point probe.

664 FINE™/Marine 7.1 User Guide


l set_point_probe(id, quantity, body_id, x, y, z): sets the Point probe. Here id - unique
identification for the probe; quantity - one of the probe variables; body_id - body to which
the probe is attached; 0 if no body attached; x, y, z - coordinate components for the probe
position
Example:
to set flow point probe for pressure positioned at (0.1, 0.2, 0.3):
set_point_probe(10, "PRESSURE", 0, 0.1, 0.2, 0.3)
to disable probe:
set_point_probe(10, "-", 0, 0, 0, 0)
l get_optional_parameter(number): gets optional output parameter.
l set_ optional_ parameter (number,flag): sets optional output parameter. The parameter is
associated with number as follows:
1 - Second invariant
2 - Courant number
101 - Correlation-R11
102 - Correlation-R12
103 - Correlation-R13
104 - Correlation-R22
105 - Correlation-R23
106 - Correlation-R33
107 - Vorticity
108 - Helicity
109 - Y+
201 - Hydrodynamic pressure
301 - Residuals
401 - Viscous stress (fluid to wall)
501 - Grid quality: non-orthogonality
601- DES blending function
flag can be either 0 or 1. 1 means that corresponding optional output variable is active.
Note that if the turbulence model is not DES, the variable will not appear in '.sim' and
'isis2cfview.input' files even if set_optional_parameter(601, 1) was called.
l get_traveling_shot_parameters(): gets traveling shot parameters for a given body
l set_traveling_shot_parameters(body,Tx,Ty,Tz,Rx,Ry,Rz): sets traveling shot parameters
Tx,Ty,Tz,Rx,Ry,Rz for a given body. "1" to active and "0 to deactivate.

665 FINE™/Marine 7.1 User Guide


34.1.28 Control Variables

l get_control_variables(): gets control variables


l set_control_variables(max_iterations,order,time_step,freq_saving): sets control variables:
max_iterations - maximum number of non linear iterations
order - convergence criteria
time_step - number of time steps
freq_saving - solution saving frequency
l get_timelaw(): gets time law
l set_timelaw(tlaw,a,b,c,d): sets time law:
tlaw=1: "UNIFORM":
a - time step value, b=c=d=0;
tlaw=2: "LINEAR";
a - initial time step, b - final time step, c - initial time of the linear initialization,
d - final time of the linear initialization;
tlaw=3: "SINUSOIDAL":
a - average of the time step, b - amplitude, c - period, d - starting time;
tlaw=4: "HYPERBOLIC TANGENT":
a - initial time step, b - final time step, c - initial time of the linear initialization,
d - final time of the linear initialization;
tlaw=5: "ADAPTED TO COURANT NB":
a - number of time steps, b - courant number, c - maximum time step,
d - time of the simulation.
l get_timesplit_active(): gets sub-cycling acceleration status
l set_ timesplit_ active (toggle): sets sub- cycling acceleration status. Toggle NO when
deactivated and YES when activated.
l get_timesplit_maxstep(): gets sub-cycling acceleration maximum number
l set_timesplit_maxstep(value): sets sub-cycling acceleration maximum number.
l get_timesplit_courant_number(): gets sub-cycling acceleration target Courant number.
l set_timesplit_courant_number(value): sets sub-cycling acceleration target Courant number.
l get_expert_integer_parameters(name): gets expert integer parameters for a given name
l set_ psolver_ method (methodID) : sets the active pressure solver method, available are:

666 FINE™/Marine 7.1 User Guide


DYNAMIC_SWITCH, PCGSTAB_MB and BOOMER_AMG.
set_psolver_method_params(methodID, method_params): sets pressure solver parameters
for the given pressure solver method.
A class PSolverMethodParams defines two attributes: convergenceCrit and maxIter .
convergenceCrit is the convergence criteria in orders, maxIter is the maximum number of
iterations. The constructor of this class takes two arguments, convergence criteria orders and
number of iterations.
method_params = FM.get_psolver_method_params(methodID)
Requests pressure solver parameters for the given pressure solver method. The returned value
is an instance of a class FM.PSolverMethodParams.

Example 1

Enable BoomerAMG with 4 orders of convergence and 150 max iterations


FM.set_psolver_method(FM.BOOMER_AMG)
method_params = FM.PSolverMethodParams(4, 150)
FM.set_psolver_method_params(FM.BOOMER_AMG, method_params)

Example 2

Enable Dynamic switch, 4 orders of convergence and 150 max iterations for BoomerAMG, 3
orders of convergence and 500 max iterations for PCGSTAB_MB
FM.set_psolver_method(FM.DYNAMIC_SWITCH)
boomer_params = FM.PSolverMethodParams(4, 150)
FM.set_psolver_method_params(FM.BOOMER_AMG, boomer_params)
pcg_params = FM.PSolverMethodParams(3, 500)
FM.set_psolver_method_params(FM.PCGSTAB_MB, pcg_params)

Example 3

Enable PCGSTAB_MB and change the number of orders to 5 while keeping the same max
number of iterations
FM.set_psolver_method(FM.PCGSTAB_MB)
pcg_params = FM.get_psolver_method_params(FM.PCGSTAB_MB)
pcg_params.convergenceCrit = 5
FM.set_psolver_method_params(FM.PCGSTAB_MB, pcg_params)

667 FINE™/Marine 7.1 User Guide


The pressure solver method DYNAMIC_SWITCH has no own parameters and thus get_psolver_
method_params does not support this pressure solver method.

l get_psolver_method(): returns the active pressure solver method.


l set_expert_integer_parameters(name,length,num,value): sets expert integer parameters for
a given name. length is corresponding to the number of inputs needed for this parameter; num
is the position of the input in the list (starting from 0), value is the parameter value.
For parameters with only one input, it should be set as :length=1 and num=0.
Example: FM.set_expert_integer_parameters('ComputationMaxTime_',2000)
For parameters with several inputs, the command should be called for each input the User
tends to modify, by changing num and value.
Example: Changing the two first values of the MultifluidsSmoothingDefX_ parameter (which
requires 4 inputs):
Default: -100000.0 -100000.0 100000.0 100000.0
FM.set_expert_integer_parameters('MultifluidsSmoothingDefX_',4,0,-10)
FM.set_expert_integer_parameters('MultifluidsSmoothingDefX_',4,1,-1)
Example: -10.0 -1.0 100000.0 100000.0
l get_expert_real_parameters(name): gets expert real parameters for a given name
l set_ expert_ real_ parameters (name,length,num,value): sets expert real parameters for a
given name. length is corresponding to the number of inputs needed for this parameter; num is
the position of the input in the list (starting from 0), value is the parameter value.
For parameters with only one input, it should be set as :length=1 and num=0.
Example: FM.set_expert_real_parameters('raffCritMinCi_',1,0,0.15)
For parameters with several inputs, the command should be called for each input the User
tends to modify, by changing num and value.
Example: Changing the two first values of the MultifluidsSmoothingDefX_ parameter (which
requires 4 inputs):
Default: -100000.0 -100000.0 100000.0 100000.0
FM.set_expert_real_parameters('MultifluidsSmoothingDefX_',4,0,-10)
FM.set_expert_real_parameters('MultifluidsSmoothingDefX_',4,1,-1)
New value: -10.0 -1.0 100000.0 100000.0
l get_expert_string_parameters(name): gets expert string parameters.

668 FINE™/Marine 7.1 User Guide


l set_ expert_ string_ parameters (name,length,num,value): sets expert string parameters.
length is corresponding to the number of inputs needed for this parameter with the given
name; num is the position of the input in the list (starting from 0), value is the parameter
value.
For parameters with only one input, it should be set as :length=1 and num=0.
Example: FM.set_expert_string_parameters('turbModelRotCorrection_',1,0,"YES")
For parameters with several inputs, the command should be called for each input the User
tends to modify, by changing num and value.
Example: Changing the two first values of the MultifluidsSmoothingDefX_ parameter (which
requires 4 inputs):
Default: -100000.0 -100000.0 100000.0 100000.0
FM.set_expert_string_parameters('MultifluidsSmoothingDefX_',4,0,-10)
FM.set_expert_string_parameters('MultifluidsSmoothingDefX_',4,1,-1)
New value: -10.0 -1.0 100000.0 100000.0
l get_expert_cv(): gets evaluation of the gradient value.
l set_expert_cv(value): sets evaluation of the gradient. value can be:
1 - "GAUSS METHOD + CORRECTIONS";
2 - "STANDARD LEAST SQUARE";
3 - "LEAST SQUARE + PONDERATION";
4 - "GAUSS METHOD - CORRECTIONS";
5 - "LEAST SQUARE + PONDERATION + GAUSS".

34.2 DIALOG BOX CREATION

The wording and options used throughout this section are directly taken from Tcl/Tk. The reader
is supposed to know basics of Tcl/Tk concepts. The following widgets can currently be
constructed from a python scripts:
l Entry
l Button
l CheckButton
l List
l ComboBox
l Label

669 FINE™/Marine 7.1 User Guide


l The following container widgets (widgets that can contain other widgets) can be created:
l Frame
l LabelFrame
l NoteBook
l PanedWindow
l DialogueBox
l Each widget comes with an associated class with a (reduced) number of functions to modify or
access the value of the widgets.

These functions and classes aims at mimicking some functionalities of the Tcl/Tk toolkit. It is not
meant to provide extensive functionalities for creating advanced dialog boxes. Only a reduced subset
of features is provided. Any feature not described in the above commands is not available.

34.2.1 Classes

Variable Class

These objects are mostly used with RadioButton widgets to set and query the state of the buttons.
l Variable(value) constructs a variable with the specified initial value.
l setValue(value) sets the value of the variable.
l getValue() returns the value of the variable, as a string.

Command Class

Commands are typically assigned to buttons, entries, lists, etc... and are used to execute an action
when the user presses a button, types enter in the field,... Two constructors are provided:
l Command(function) constructs a command which takes a function as argument
l Command(object, member_function) constructs a command which takes an object and a
member function of its class. The member function must have no argument in its signature.

Example

class MyClass:
def __init__(self):

670 FINE™/Marine 7.1 User Guide


... python code ...
def myfunc(self):
... python code ...
a = MyClass()
c = Command( a, MyClass.myfunc ) # creates the Command

DialogueBox Class

l DialogueBox(title) constructs a new dialog box. title is an optional argument to specify a title
in the banner of the dialog box.
l show() displays the dialog box.
l close() closes and destroys the dialog box.
l showUnderMouse() shows the dialog box at the current mouse location.

Frame Class

l Frame(parent) constructs a frame aimed at containing other widgets. parent is the parent of
the frame and must be of type: DialogueBox, Frame, LabelFrame, NoteBook or
PanedWindow.

LabelFrame Class

l LabelFrame (parent,label) constructs a label frame in parent aimed at containing other


widgets. label is the text appearing at the top of the label frame.

PanedWindow Class

A PanedWindow is a window that is divided into two vertically, with a separator that can be
moved by the user to resize the left or right area.
l PanedWindow(parent) constructs a paned windows in parent.
l getLeftFrame() returns the left frame of the window. The returned object is of type Frame.
l getRightFrame() returns the left frame of the window. The returned object is of type Frame.

NoteBook Class

NoteBooks allow to organise a dialog box in pages that can themselves contain widgets.

671 FINE™/Marine 7.1 User Guide


l NoteBook(parent) constructs a NoteBook in parent.
l addPage(label) adds a new page to the notebook with name label. Two pages may not have
the same label. The returned value is a frame (class Frame) that can be filled with other
widgets.

Label Class

l Label(parent, text) constructs a simple label displaying text.

Button Class

l Button (parent, text, command) constructs a button in parent with text appearing in the
button.
parent must be a container widget (see above)
command is an optional argument that can be either a function that requires no argument or an
object of type Command . Upon pressing the button, the command will be called
automatically.

CheckButton Class

CheckButton are buttons that can have two state: 0 (disabled) or 1 (enabled).
l CheckButton(parent,text,initValue,command) constructs a check button in parent.
parent must be a container widget.
text is the text at the right of the button.
initValue is the initial value of the button and can have the value 0 or 1
command is an optional argument that can be either a function that requires no argument or an
object of type Command. Upon pressing the button, the command will be called automatically.

RadioButton Class

l RadioButton(parent,text,variable,value,command) creates a radio button in parent.


parent must be a container widget.
text is the text at the right of the button.
variable is an object of type Variable. it is common that two or more radio buttons share the
same variable so that when one radiobutton is selected, the other one gets unselected,
according the value of the radiobutton.

672 FINE™/Marine 7.1 User Guide


value is the value to which variable will be set when pressing the button
command is an optional argument that can be either a function that requires no argument or an
object of type Command. Upon pressing the button, the command will be called automatically.

Example

dialog = DialogueBox()
dialog.var = Variable(1) # create a variable with initial value 1
dialog.radio1 = dialog.radiobutton("Value 1", dialog.var, 0 )
dialog.radio2 = dialog.radiobutton("Value 2", dialog.var, 1 )
dialog.radio1.pack()
dialog.radio2.pack()

Entry Class

l Entry (parent,label,command,value,width,unit,labelwidth,focus) constructs a new entry


widget in parent allowing the user to enter values (string, float(s), int(s),...).
parent must be a container widget.
label is a text appearing in front of the entry. This input is optional.
command is a function or object of class Command called when pressing the Enter key. This
input is optional.
value is the value of the entry (string, float, integer,...).
width specifies the default width of the entry. This input is optional.
unit is a string that will appear next to the entry to indicate the entry units. This input is
optional. Note that if the text for the units uses [], it must be backslashed "\[m\]".
labelwidth is the width of the entry label. This input is optional.
focus forces the focus on the entry.
l enable(state) changes the state of the entry (enabled or disabled). state is a boolean value.
l getStringValue() returns the value in the entry as a string.
l getFloatValue() returns the float value in the entry. An exception is raised (ValueError) if the
input is not a float.

List Class

l List(parent,items) constructs a list in parent that displays a list of items.


parent must be a container widget.

673 FINE™/Marine 7.1 User Guide


items is a tuple containing the names of the item that will appear in the list.
l appendItem(itemName) adds an item to the list and returns its id. itemName is the text
appearing in the list.
l removeItem(itemId) removes the item from the list. itemId is the id identifying the item.
l getSelection() returns a tuple containing the ids of the selected items.
l getItemFromId(id) returns the name of the item from its id in the list.

ComboBox Class

l ComboBox (parent,label,items,command) constructs a combo box in parent that allows to


select one item between a list of items.
parent must be a container widget.
label is a text appearing in front of the combo box.
items is a tuple containing the names of the item that will appear in the combo list.
command is a function or object of class Command called when pressing the selecting a item
in the list. This input is optional.
l setValue(value) specifies the value of the selected item.
l getValue() returns the value of the selected item

34.2.2 Additional commands for all widgets

All widget classes can have the following commands:


l pack( side="left",fill = "x", expand = "no" , anchor = "", padx = 1, pady = 1) member
function which displays the widget in its parent according to the input parameters.
side specifies which side of the parent the widget will be packed against. Possible values are
"top", "bottom", "left", "right".
fill specifies how the widget should stretch with regards to the available space in its parent.
Possible values are: "", "x" , "y" or "both". For example "x" specifies that the widget must
stretch horizontally to fill the entire width of the parent.
expand specifies whether the widget should resize when its parent resizes itself.
anchor specifies where to position each widget in its parent. Possible values are: n, e, w or s.
Default is center.
padx specifies how much horizontal external padding to leave on each side of the widget.
pady specifies how much horizontal external padding to leave on each side of the widget.
l unpack() hides the widget from the screen.

674 FINE™/Marine 7.1 User Guide


34.2.3 Additional commands for container widgets

All the Container widgets have additionally the following functions:


l button(text,command) creates and returns a Button widget, passing all the arguments to the
object.
l checkbutton(text,initValue,command) creates and returns a CheckButton widget, passing all
the arguments to the object.
l radiobutton (text,variable,value,command) creates and returns a RadioButton widget,
passing all the arguments to the object. See RadioButton class.
l entry(label,command,width) creates and returns an Entry widget, passing all the arguments
to the object.
l list(items) creates and returns a List widget, passing all the arguments to the object.
l label(text) creates and returns a Label widget. See Label class.
l combobox(label,items,command) creates and returns a ComboBox widget, passing all the
arguments to the object. See ComboBox class.
l labelframe(text) creates and returns a LabelFrame widget, passing all the arguments to the
object. See LabelFrame class.

34.2.4 Example: Z-constant internal surface

The "Marine" module in HEXPRESS™ comes with various plugins including one to
automatically create an internal surface at a Z- constant coordinate. One can open the
corresponding python script in "NUMECA_ INSTALLATION/_ python/_ hexpress_
plugins/Marine/" to see how the script is build. Here is a description of the example (comments
are added and marked by a symbol "#").
Import required libraries: "Tk" for dialog boxes, "string" is dedicated to Python management and
"HXP" to enable HEXPRESS™ macro commands.
from Tk import *
import string
import HXP
The dialog box is defined in a dedicated class. This class will contain 2 separate functions "__
init__" and "apply". The first one defines the dialog box design whereas the second one gives
what the Apply button will do in HEXPRESS™.
class ZConstantDialog(DialogueBox):
def __init__(self):

675 FINE™/Marine 7.1 User Guide


DialogueBox.__init__(self, "Internal surface" ) #definition of the dialog box title
self.show() #the dialog box appears immediately

content = self.labelframe(label="Z constant surface") #definition of a frame with the title


"Z constant surface"
buttonsFrame = self.frame() #definition of a frame for buttons
content.pack(side="top",fill="x",padx=10,pady=10)
buttonsFrame.pack(side="top",anchor = "se" , expand = "yes" )

self.entry = content.entry(label="Z = " , width = 20 , command = Command


(self,ZConstantDialog.apply) ) #definition of an entry with the title "Z=". The entry
has a width of 20
self.entry.pack( side = "left" , fill = "x" , expand = "yes", padx = 10 ) #the action
"pack" will show the entry in the dialog box

apply = buttonsFrame.button(text="Apply",command = Command


(self,ZConstantDialog.apply ) ) #location and definition of the button "Apply"
close = buttonsFrame.button(text="Close",command = Command
(self,DialogueBox.close) ) #location and definition of the button "Close"

close.pack(side="right") #the action "pack" will show the button and put it on the right
of the dialog box
apply.pack(side="right")

def apply(self):

Z = self.entry.getFloatValue() #"getFloatValue" gets the value entered for the entry "Z"
as a float

try:
domain = HXP.get_active_domain() #defines "domain" which contains a list of the
active domain
except Exception, value:
Warning(value.args[0])

676 FINE™/Marine 7.1 User Guide


return #goes out of the function "apply"

b = domain.get_xyz_box() #returns the box containing the domain and stores the
information in the variable "b"

if Z < b.zmin or Z > b.zmax:


Warning("The entered value lies outside the limits of the bounding box")
return #goes out of the function "apply"

c1 = new_polyline("c1") # creates first polyline called "c1"


c1.insert_point( 1, Point(b.xmin,b.ymin,Z) ) # inserts point
c1.insert_point( 2, Point(b.xmin,b.ymax,Z) )
c2 = new_cspline("c2") # creates second polyline called "c2"
c2.insert_point( 1, Point(b.xmax,b.ymin,Z) )
c2.insert_point( 2, Point(b.xmax,b.ymax,Z) )

lofted_surface([c1,c2],"ISurface_Z=" + str(Z)) #creates a lofted surface based on the


points previously inserted

z = ZConstantDialog() #instantiates the dialog box "ZconstantDialog"

677 FINE™/Marine 7.1 User Guide


CHAPTER 35.

LIST OF EXPERT PARAMETERS

Under the Expert parameters tab of the Computation control/Control Variables page is a list of
non-interfaced expert parameters. As stated in the interface, these parameters should not be modified
unless explicitly stated in this manual. This chapter contains a list of all non- interfaced expert
parameters that are described in this manual. To get more information, please contact NUMECA
Support.

In this section
35.1 Actuator Disk 679
35.2 Adaptive Grid Refinement 679
35.3 Sliding grids 681
35.4 Computation Control 682
35.5 Roughness 683
35.6 Impose Velocity Ramp at Far Field 683
35.7 Information shown in the Task Manager (written in .std file) 684
35.8 Mesh Deformation Technique 686
35.9 Numerical Corrections 688
35.10 Coupling Parameters 690
35.11 Multi-fluid Smoothing 691
35.12 Output Data Management 692
35.13 Projection 693
35.14 Specific Numerical Parameters 693
35.15 Regular and Irregular waves 697
35.16 Modal approach 698

678 FINE™/Marine 7.1 User Guide


35.1 ACTUATOR DISK

ActuatorDiskInternMeshDim_ Virtual mesh dimensions (Nz, Nr, Nt) used by the Wake_flow_
pp tool to setup automatically the number of cells used in the Actuator disk
Default: 25 35 97
ActuatorDiskResearchCoef_ Parameter to help the searching algorithm.
Default: 5
ActuatorDiskLegacyApproach_ Parameter to use the former version of the actuator disk
approach. This old version should not be used anymore.
Default: NO

35.2 ADAPTIVE GRID REFINEMENT

raffBlockAvg_ Displays average information over all blocks (if NO selected, the information will
be shown per block).
Default: YES
Modified: NO
raffCheckGrid_ Activates the check of the refined grid for the consistency of its connectivities
and the correctness of the interface and internode files. If the computation stops at this check,
please contact your local Support team sending the output file of the computation.
Default: NO
Modified: YES
raffConvBufferMax_ During the generation of convection buffer layers, the maximum number
of layers created is limited to this number.
Default: 12
>raffCritCiSmooth_ In principle, the criterion is calculated from the real volume fraction field,
which is nearly a discontinuity. However for the choice between directional and isotropic
refinement, the orientation of the water surface is needed and this orientation is calculated from a
smoothed volume fraction field. The number of smoothing steps can be specified, although the
default value of 2 is satisfactory. It is also possible to base even the criterion itself on the smoothed
field. This Eexpert parameter can be also applied with the default value through the
FINE™/Marine interface through the Adaptive grid refinement menu on the Control page by
activating the option Base free surface criterion on smoothed mass fraction.
Default: 2

679 FINE™/Marine 7.1 User Guide


raffCritMaxCi_ Upper limit for the mass fraction range, where the criterion refines cells.
Default: 0.9
raffCritMinCi_ Lower limit for the mass fraction range, where the criterion refines cells.
Default: 0.1
raffMemBoundaryFactor_ Memory factor for boundary faces. If the tables for boundary faces
and wall faces are full (close to 100%), one should increase this parameter using the same order as
the table for cells/faces/nodes.
Default: 1.0
raffMinScalProd_ Difficulties are encountered when angles between the face normal vectors
and the lines face centre - cell centre are too large. It is possible to refine extra cells, when this
angle in a refined cell exceeds a specified threshold. The minimum scalar product between the
two normalised vectors (face normal / cell centre - face centre) is specified, this value should be
chosen between 0.1 and 0.3 (Note: a higher value does not necessarily give better grid quality, as
it leads to irregular, local extra refinement).
Default: 0.1
Range: [0,1]
raffParmetisItr_ For lower values, ParMETIS limits the number of cells displaced between
blocks. Above the default value, this parameter has no influence at all.
Default: 1000
raffParmetisOptions_ Options to control ParMETIS.
Default: 0
raffParmetisUbvec_ Controls the emphasis that ParMETIS puts on equidistribution of the cells
over the blocs, versus the number of interface faces. It must always be greater than 1.0. A low
value can be chosen to get a better equidistribution, but this strongly increases the number of
interface faces for a small improvement in the distribution only.
Default: 1.01
raffPowerCriterion_ For the Hessian criteria, the criterion can be modified using a power law.
Default: 1.0
raffSaveAfter_ Saves the mesh immediately after each refinement.
Default: NO
Modified: YES
raffSFCRenumbering_ Perform a renumbering operation during the adaptive grid refinement
call to accelerate the procedure.
Default: YES
Modified: NO

680 FINE™/Marine 7.1 User Guide


raffTargetCellMaxit_ Sets the maximum number of iterations for the threshold adjustment
procedure in one refinement step, when the number of cells is used as refinement target.
Default: 1e-3
raffThresholdRatio_ When the refinement criterion in a cell drops below another, lower
threshold, the refinement of the cell is removed. The ratio refinement threshold / coarsening
threshold can be given; this ratio must be high enough (at least greater than 2.0), otherwise
recently refinements will be removed at once, only to be refined again in the next refinement step.
This parameter is not mandatory, the default value specified by each refinement criterion can be
kept unchanged.
Default: 2.5
raffWriteCrit_ The refinement criterion, including buffer layers, can be written to an output file
"refcr.cpr". This file is written for the old grid, a copy of this grid must therefore be saved in order
to visualise the refinement criterion.
Default: NO
Modified: YES
raffTargetCellTol_ When the specified tolerance is reached (((number of estimated cells)-
(number of target cells))/(number of target cells) < tolerance), the refinement iterative process
stops.
Default: 0.001
raffSFCRenumbering_By default the grid adaptation algorithm includes a full renumbering of
all cells and faces after each grid refinement step. The new numbers for each object (cell or face)
are chosen according to a space-filling curve algorithm based on their position. This renumbering
reduces the bandwidth of the pressure linear system and it limits out-of-cache operations, which
means that the algorithm shows higher performance.
Default: YES
Modified: NO

35.3 SLIDING GRIDS

_SLI_info_debug Minimal extra information are written for sliding grids.


Default: NO
Modified: YES
_SLI_info_com_debug Maximum extra information are written for sliding grids.
Default: NO
Modified: YES

681 FINE™/Marine 7.1 User Guide


_SLI_int_bcs_discF The integer gives the index of the boundary condition to be used in case of
disconnected sliding faces (as it can occur for the crossing of two ships for instance). Index 28
corresponds to the flag associated with the "Zero Pressure Gradient" boundary condition (see the
identifiers list in the Identifier section)
Default: 28
_SLI_prohib_discP If YES, the solver stops as soon as a left of right cell of a sliding interface is
not connected to a sliding face. Ships crossing project is not possible.
Default: NO
Modified: YES
_SLI_prohib_discF If YES, the solver stops as soon as a sliding face has no left or right cell
connected to it. Ships crossing project is not possible.
Default: NO
Modified: YES
_SLI_search_algo This expert parameter is used to distinguish between two algorithms for the
search of the connected left and right cells to the sliding faces. When a ship crossing like
simulation is considered, then the search algorithm must be "DOMAIN" in order to allow for
possible connections/disonnections of the sliding interfaces. In standard cases (propeller, rudder,
...) when no disconnected faces are expected, the default "BLOCK" algorithm has to be used.
The more the number of partitions, the less CPU time spent with the BLOCK algorithm.
Default: BLOCK
Modified: DOMAIN
_SLI_implicit_dom_coupling This parameter control coupling inside the pressure linear solver.
When the convergence problem or unphysical solution (discontinuity at the sliding grid interface,
for instance) are observed, this parameter will support solution improvement. Although, the user
should be aware of possible noise in the convergence history.
Default: NO
Modified: YES
_SLI_update_each_nl_iter It is recommended to activate the second parameter to "YES" only
when the body inside the sliding domain is a body with resolved motion.
Default: NO
Modified: YES

35.4 COMPUTATION CONTROL

ComputationMaxTime_ Maximum time of the computation (minutes).

682 FINE™/Marine 7.1 User Guide


Default: 525600
LinearSolversComm_ Communication between the blocks for the linear solver.
Default: YES
Modified: NO

35.5 ROUGHNESS

This approach will model the roughness or the fouling on the hull as a sand grain. See also the
section "Roughness" in the Theoretical Manual for more detailed information.
SandGrainHeight_: height of the sand grain, [m].
Default: 0.001
WallRoughness_Activates the roughness on solid walls.
Default: NO
Modified: YES

35.6 IMPOSE VELOCITY RAMP AT FAR FIELD

DurationToTargetVelocity_ Velocity imposed on External patches is abruptly applied in the


flow solver. This can lead to a shock when the computation starts and resulting transition state
may not be desirable. This expert parameter allows to impose a velocity ramp in seconds (for
unsteady simulations) or non linear iterations (for steady simulations).
Default: 0.0
Best practice:
This parameter is applied to all far field boundaries. Only 1/4 sinusoidal law is implemented. It is
not recommended to a free-surface computation with fixed boat and a ramp for inflow velocity,
since the velocity imposed at far field will take a certain time to travel through the computational
domain before it can affect the boat.

683 FINE™/Marine 7.1 User Guide


For a restart computation, there will be two different behaviors, a continuous ramp or a new ramp.
If the current velocity at far field and the target velocity have the same sign, and the absolute value
of current velocity is smaller than the absolute value of the target velocity, a continuous ramp will
be performed. The performed action is to accomplish the task "increase the far field velocity from
zero to target velocity within the prescribed duration". Otherwise, the flow solver will start a new
ramp. The performed action is to accomplish the task "increase the far field velocity from the
current value to target velocity within the prescribed duration starting from now".
Remark: if a user-Fortran program was used to initialize a velocity ramp at the boundary condition
in a previous computation, using this feature (with a non-0 value) will overwrite the information
from the Fortran program.
This expert parameter is not recommended with free surface simulations since it can become
unstable.

35.7 INFORMATION SHOWN IN THE TASK


MANAGER (WRITTEN IN .STD FILE)

BodyMvtInfo_ Displays information about body movement.


Default: NO
Modified: YES
FacesInfo_ Displays information about faces file.
Default: NO
Modified: YES
ForcesInfo_ Displays information about global forces.
Default: NO
Modified: YES
MultifluidsInfo_ Displays information about the mass fraction.
Default: YES:COMPLETE
Modified: YES, NO
MultifluidsWettedSurf_ Displays the evolution of the wet surface for all bodies and save the
information in the file called "body_wettedsf.dat".
Default: NO
Modified: TOTAL, YZ

684 FINE™/Marine 7.1 User Guide


Remark: TOTAL is identical to YES keyword in the previous versions of the Software. If
TOTAL is used as a keyword, the following summary will be applied and recorded: Sw =SXf² +
SYf² + SZf²
For YZ keyword the following sum will be applied: S w = S Yf² + S Zf² and recorded into the file
called "body_wettedsf.dat".
NodesInfo_ Displays information about nodes file.
Default: NO
Modified: YES
ProbesInfo_ Displays information about probes saving.
Default: NO
Modified: YES
RSWFilesInfo_ Displays more information about read and saved files.
Default: NO
Modified: YES
ScanMode_ Activation of the scanner mode (corresponds at "-scan=1" in the command line
argument).
Default: NO
Modified: YES
SmallestDistToWallInfo_ Displays information about the wall distance.
Default: NO
Modified: YES
StatusInfo_ Displays reading and writing information in status.dat file.
Default: NO
Modified: YES
YplusInfo_ Displays extrema of the Y+ value on the solid body.
Default: YES
Modified: NO
nonLinearityInfo_ Displays more information about the non-linear iterations.
Default: YES
Modified: NO
presSolverInfo_ Displays informations about residuals in the pressure solver.
Default: NO
Modified: YES
AddedMassInfo_ Displays information about added mass calculations.

685 FINE™/Marine 7.1 User Guide


Default: NO
Modified: YES
WeightingCoeffsInfo_ Displays information about weighting coefficients for the mesh
deformation of Modal approach calculations.
Default: NO
Modified: YES
WeightingCoeffsSolverInfo_ Displays information from the solver about weighting coefficients
for the mesh deformation of Modal approach calculations.
Default: NO
Modified: YES

35.8 MESH DEFORMATION TECHNIQUE

Weighted mesh deformation

WeightCoefInterpCN_ Order of the interpolation cells/nodes for the weighting coefficient.


Default: 1ST ORDER
Modified: 2ND ORDER
WeightCoefModifLaw_ Law of modification of the nodal weighting coefficient. The expert
parameter is WeightCoefModifLaw_= (p,cmax). The deformation law is:
Weighting coefficient(i) = min(location_from_body(i)^p/cmax,1) with "i" being the cell and the
location_ from_ body running from 0 to 1. 1 corresponds to the body and 0 to the external
boundary conditions. When the weighting coefficient is equal to 1, the entire rigid deformation of
the solid body is applied to the cell. On the contrary, for a value of 0, the cell does not move.
Within this range, the cell will move according to the formula: "rigid deformation of the solid
body * weighting coefficient".
Default: 1.6 0.85

686 FINE™/Marine 7.1 User Guide


WeightCoefStartUseCoef_ Allows to avoid the calculation of the weighting coefficients and use
the ones from a previous computation.
Default: NO
Modified: YES

Shallow water configuration

According to ITTC formula, shallow water is defined by:

with H the height of the water surface compared to the bottom and D the draught.
ShallowWater_ Allows to activate the mesh deformation technique for shallow water.
Default: NO
Modified: YES
ShallowWaterParam_ The first parameter is the fraction of the space below the ship (UKC)
where mesh compression will take place. A value of 0.9 means that mesh up to 0.9 of UKC
(measured in the original mesh) will be compressed, UKC being the Under Keel Clearance. The
second parameter is a power law correction coefficient. A low value result in a better compression
below the ship, but will increase the mesh deformation elsewhere.
Default: 0.9 0.2

687 FINE™/Marine 7.1 User Guide


35.9 NUMERICAL CORRECTIONS

CIFarField_ Updates the mass fraction at far field boundaries. Advised for free surface
simulation of a body moving up or down with a rigid mesh deformation.
Default: NO
Modified: YES
CIStaticPressure_ Updates the static pressure at far field boundaries. Advised for free surface
simulation of a body moving up or down with a rigid mesh deformation.
Default: NO
Modified: YES
CIStreakCorrection_ Corrects the mass fraction in case of streaking problem.
Default: NO
Modified: YES
CIAggressiveStreakCorrection_ Corrects the mass fraction in case of specific streaking
problem. For instance, Planing regimes on configurations where the bow is not immersed, the
wetted area should be predicted more accurate. CIAggressiveStreakCorrection_ should be
activated together with the CIStreakCorrection_.
Default: NO
Modified: YES
CorrectCIInVL_ Corrects the mass fraction in viscous layers.
Default: YES
Modified: NO
FaceReconsGQNORT_ To increase the robustness of the code, a local criteria based on
geometrical considerations only will control the accuracy of the reconstruction on faces for the
computation of the gradient of any quantity. Explicit corrective terms coming from non-
orthogonality and misalignment of the grid will not be taken into account as soon as misalignment
and loss of orthogonality is detected below the threshold given by this expert parameter. The
proposed criteria is representative of the ratio between explicit and implicit terms. If used, the local
criteria will be taken into account as soon as the grid is modified (mesh deformation and/or grid
refinement). Implementation is done accordingly to the Theoretical Manual in detailed section
1.2.2.1 about considerations relatively to the norm of the "explicit vectors". Note: this criteria is
always active.
Default: 50.0
MaxAffectLayer_ Maximum number of viscous layers affected when the correction of the mass
fraction in viscous layer is active.
Default: 1000

688 FINE™/Marine 7.1 User Guide


AutoMaxAffectLayer_ This parameter is defining when to calculate MaxAffectLayer_
automatically. When it’s YES, value of the Expert parameter MaxAffectLayer_ will be ignored
and maximum number of inserted viscous layers per patch + 1 will be written into the .sim file
instead.
Default: YES
Modified: NO

If no viscous layers have been inserted, automatic computation will give MaxAffectLayer_ = 1.

uwCIcorrection_ Activates the under water correction (not advised in presence of spray and
suggested for bubbles of air, well below the free surface). It corrects the mass fraction according
to the pressure (normal stress) value: if

the mass fraction is supposed to be water. "c" is the under water coefficient described below and
"Zmean" is the mean value for Z computed on the wetted area of the body.
Default: NO
Modified: YES
uwCoefCorrection_ Under water correction coefficient (range [0,1]). A negative value can be
used to prescribe the exact value of pressure threshold. In other words, all cells above this
threshold will be considered as water.
Default: 0.3
Range: [0,1] or any negative value
VelocityClip_ Velocity clipping is available by switching this parameter to YES. In this case, the
solver will limit the velocity in all cells to the reference velocity (defined in the Flow model menu)
times the velocity clipping factor defined below.
Default: NO
VelocityClipFactor_ This parameter defines how many times the reference velocity can be
exceeded.
Default: 3

689 FINE™/Marine 7.1 User Guide


35.10 COUPLING PARAMETERS

FullAddedMassMatrixUse_ The added mass matrix is in general a 6x6 full matrix. Some terms
can be null if the body has any symmetry plane. In such case, when an added mass coefficient is
specified for one D.O.F. it is similar to specifying only the diagonal terms of the matrix
corresponding to this D.O.F. All the coefficients can be used to relax the different D.O.F. together
in a coupled way, although testing have shown that considering only the diagonal term can be
sufficient fur such cases.
Default: NO
Modified: YES
AddedMassFactor_ Introduces the multiplicative factor to the computed added mass coefficients
matrix.
Default: 1.0
AddedMassMaxNonLinearIters_:Impose the maximum number of non-linear iterations for the
linear system resolution which contains explicit source terms. Can be applied for an Accurate
estimation mode only.
Default: 10
AddedMassMaxNonLinearGain_ Maximum convergence criteria in the non- linear system
resolution while solving the pressure field for the added-mass coefficients calculation.
Default: 0.001
AddedMassUnderRelax_Impose the under relaxation factor while solving the pressure field for
the added-mass coefficients calculation.Can be applied for an Accurate estimation mode only.
Default: 0.7
AddedMassMaxIters_ Maximum number of iterations in the linear system while solving the
pressure field for the added-mass coefficients calculation.
Default: 200
AddedMassMaxGain_ Maximum convergence criteria in the pressure linear system while
solving the pressure field for the added-mass coefficients calculation.
Default: 0.001
AddedMassIluLevel_ ILU level in the pressure solver while solving the pressure field for the
added-mass coefficients calculation.
Default: 1
AddedMassPressureFieldFile_ Saving the pressure field solved for the added-mass coefficients
calculation for each D.O.F.
Default: -
AddedMassConvergenceFile_ Saving the convergence file of the added mass calculations.

690 FINE™/Marine 7.1 User Guide


Default: -

35.11 MULTI-FLUID SMOOTHING

Starting from version 6.1 the Multi-fluid smoothing is interfaced in Additional models/Wave
damping.
MultifluidsSmoothingDefX_ X-coordinates of the damping region (XGmin, XSmin, XSmax
and XGmax on the following figure).
Default: -100000.0 -100000.0 100000.0 100000.0
MultifluidsSmoothingDefY_ Y-coordinates of the damping region (YGmin, YSmin, YSmax
and YGmax on the following figure).
Default: -100000.0 -100000.0 100000.0 100000.0
MultifluidsSmoothing_ Activates smoothing to prevent from reflection and to damp possible
instabilities in the far field. The grayed zone corresponds to the smoothing region on the following
figure. In the X-direction, XGmin and XGmax (respectively YGmin and YGmax in the Y-
direction) must be inside the domain or at the boundary condition location so that the smoothing
can be as effective as possible.
Default: NO
Modified: YES

MultifluidsSmoothingMethod_ Specifies the method used for smoothing. Default value: 1


corresponds to legacy frozen mass fraction approach; 2 - to momentum damping approach.

691 FINE™/Marine 7.1 User Guide


.
Default: 2
Modified: 1

35.12 OUTPUT DATA MANAGEMENT

thirdPartyPostProc_ Creates output file for Tecplot and CGNS format.


Default: NO
Modified: YES
SurfaceProbeFormat_ Defines the surface probe format. Possible choice: CGNS_sp (single
precision), CGNS_dp (double precision), STL and Tecplot. It can also be set as CGNS and
stored as single precision then.
Default: CGNS_sp
Modified: STL, TECPLOT, CGNS_SP, CGNS_DP and FINE™/Marine flow solver (native
format)
ProbeOnWallsForces_ Activates the probe on walls. The results will be saved in the file named
wall_ data.bin in the computation directory (or in each bxxx sub folder in case of parallel
computation). The expert parameters are still present for backward compatibility purpose. Please
use the probe on walls from Output parameters/Probes variables Surface/Volume menu.
Default: NO
ProbeOnWallsForcesEnd_ Defines the end time of the probing.
Default: 100.0
ProbeOnWallsForcesFlowQuantOnly_ When setting the parameter to YES, the output
quantities are: Fxv, Fyv, Fzv, P, Ci, where Fxv, Fyv and Fzv are frictional force per unit area in
X, Y and Z direction respectively; P is the total pressure; Ci is the mass fraction (0 in air, 1 in
water). Otherwise, the following output quantities are also computed: Xf, Yf, Zf, SXf, SYf, SZf,
where Xf, Yf and Zf are the coordinates of the centre of the face, (SXf, SYf, SZf) is the face area
normal vector such that: Surf=sqrt(Sxf**2+Syf**2+Szf**2) is the area of the face, and (Sxf/Surf,
Syf/Surf, Szf/Surf) is a unit outward normal vector to the face. In a computation with a moving or
deformed grid, (Xf, Yf, Zf) and (SXf, SYf, SZf) change with time.
Default: NO
ProbeOnWallsForcesFreq_ Defines the frequency of probing.
Default: 10
ProbeOnWallsForcesStart_ Defines the beginning of the probing.
Default: 0.0

692 FINE™/Marine 7.1 User Guide


SaveOutputList_ Allows to skip the writing of the output.list files in the partition folders when
set to NO. It minimizes the disk access and hence the load on the head node when writing
information simultaneously for many running computations accessing the same disk.
Default: NO
Modified: YES
SaveConvEfforts_ The convergence of the efforts can be saved for all the nonlinear iterations in
the eff_* files. The time value takes a negative sign to distinguish the line from the other values.
Default: NO
Modified: YES
3dOutputSaving_Allows to control saving of 3D outputs. When the parameter value is set to
NO, GUI will not save any volume outputs to .sim file. Classic outputs are covered including the
Volume probes, Optional output variables and Mean output variables.
Default: YES
Modified: NO

35.13 PROJECTION

itsProjectionDeactivateCBFP_ Deactivates the acceleration algorithm ("YES") which speeds


up the projection by default. Deactivating this method makes the method more robust (to be
changed to "YES" after trying with itsProjectionDeactivateCBFS_ to "YES")
Default: NO
Modified: YES
itsProjectionDeactivateCBFS_ Deactivates the acceleration algorithm ("YES") which speeds up
the projection by default. Deactivating this method makes the method more robust.
Default: NO
Modified: YES

35.14 SPECIFIC NUMERICAL PARAMETERS

ExpInterpCont_ Interpolation scheme for continuity equation.


Default: WEIGHTED MEAN
Modified: STANDARD MEAN

693 FINE™/Marine 7.1 User Guide


ExpInterpMoment_ Interpolation scheme for momentum equation.
Default: WEIGHTED MEAN
Modified: STANDARD MEAN
ExpInterpPresGrad_ Interpolation scheme for pressure gradient.
Default: WEIGHTED MEAN
Modified: STANDARD MEAN
ExpInterpPressure_ Interpolation scheme for pressure.
Default: WEIGHTED MEAN
Modified: STANDARD MEAN
FaceReconstGradPresLimiter_ 0D means no limiter. With 1D limiter, if the interpolated
pressure on the interface is outside the range between the left and the right cell values, it will be
corrected such that the interpolated value is equal to left or right cell value depending on the case.
2D limiter (dedicated to multi-dimensional limiter) is not implemented yet. Using a limiter can
improve the robustness of the solver, but may affect its accuracy. However, when grid quality
issues are present, this option may lead to the divergence of computation. In such case, switching
to 1D limiter can make the computation converge but can have an impact on accuracy. The
recommendation is to first try to improve the mesh quality and if such attempt is not possible, then
1D limiter can be used.
Default: 0D
Modified: 1D
FaceReconstGradScalarLimiter_ Limiter for the scalar gradient for the reconstruction on the
face.
Default: 1D
Modified: 0D, 2D
FaceReconstGradVectorLimiter_ Limiter for the vector gradient for the reconstruction on the
face.
Default: 1D
Modified: 0D, 2D
MinAROfVL_ Minimum aspect ratio of viscous layer when the correction of the mass fraction in
viscous layer is activated.
Default: 3
MultifluidsDefectCorr_ Activates the defect correction for multi-fluid simulations.
Default: YES
Modified: NO
MultifluidsFaceCorrectAngle_Activates the correction angle between the interface and faces for
multi-fluid simulations.

694 FINE™/Marine 7.1 User Guide


Default: YES
Modified: NO
MultifluidsPlanarBox_ Initialization of the mass fraction field in X and Y directions (Xmin,
Xmax, Ymin, Ymax).
Default: -1e+30 1e+30 -1e+30 1e+30
RegMutLimModel_ Limiter of turbulent viscosity.
Default: NO
Modified: YES
RelaxModeExpGradFluxes_ Relaxation mode of explicit gradient fluxes.
Default: OVER-RELAXATION
Modified: UNDER-RELAXATION, NO RELAXATION
RhoNormalisation_ Normalisation of momentum equations by ρ.
Default: NO
Modified: YES
UHatEval_ Evaluation of U_hat. To represent the velocity at the cell center the discretized vector
U_hat is used. It is homogeneous to gravity acceleration, includes part of the diffusion, convection
and source terms. DIRECT MODE will consider the source term containing all explicit remaining
contributions and external force fields except gravity and pressure.
Default: DIRECT MODE
Modified: INDIRECT MODE
addUnsteady_ Add unsteady terms in source term of U_hat if NO, or treat it more explicitly if
YES.
Default: YES
Modified: NO
diaDomCi_ Diagonal dominance of the mass fraction equation.
Default: 0
Range: [0,100]
diaDomTurb_ Diagonal dominance of the turbulence equations.
Default: 50
Range: [0,100]
diaDomVel_ Diagonal dominance of the momentum equations.
Default: 50
Range: [0,100]
disCiBetam_ Coefficient used in mutli-fluids for the discretization scheme GDS.

695 FINE™/Marine 7.1 User Guide


Default: 0.101
disMomForm_ Form of the momentum equations.
Default: CONSERVATIVE
disTurbBetam_ Coefficient used in turbulence for the discretization scheme GDS.
Default: 0.101
disTurbLimit_ Limiter in the turbulence discretization.
Default: TRUE
Modified: FALSE
disTurbOrder_ Order of the turbulence discretization.
Default: 2
Modified: 1
disVelBetam_ Coefficient used in momentum equations for the discretization scheme GDS.
Default: 0.101
disVelLimit_ Limiter in the momentum discretization.
Default: TRUE
Modified: FALSE
disVelOrder_ Order in the momentum discretization.
Default: 2
Modified: 1
gravAddStarPress_ Add the gravity to starred pressure.
Default: NO
Modified: YES
presIlu_ ILU level in the pressure solver.
Default: 1
presPreCond_ Choice of the preconditioning in the pressure linear system.
Default: ILUK
reverseRenumbering_ Activates the Cuthil McKey renumbering for the pressure solver.
Interesting to accelerate the computation after an adaptive grid refinement step.
Default: NO
turbModelRotCorrection_ Activates the rotation correction. Unusable with Spalart-Allmaras
model and recommended with EASM model ("On the prediction of swirling induced
recirculation", 3rd International Symposium on Turbulence and Shear Flow Phenomena, Sendai,
Japan, June 2003).
Default: NO

696 FINE™/Marine 7.1 User Guide


Modified: YES
turbProductionCorrection_ Decreases the turbulence production far from the solid bodies but
does not disturb the turbulence close to them. It is advised for simulations involving a wave
generator to ensure a better wave shape, especially for steep waves generation.
Default: NO
Modified: YES
OversetMinInterCoeff_ At some locations (when mesh sizes are quite different between
overlapping and background domains for instance), the default second order interpolation scheme
may make the computation unstable. In such case, it is necessary to switch the interpolation
scheme to a more stable distance weighted interpolation scheme. This expert parameter is
designed for this purpose. When the minimum interpolation coefficient of the second order
interpolation scheme is smaller than this threshold value, the flow solver switches to distance
weighted interpolation scheme. The default value is -0.1. Using small value (closer to 0) means
less formal accuracy but better numerical stability.
Default: -0.1
disTransOrder_ Laminar to turbulent transition equation discretization scheme order.
Default: 2
disTransLimit_ Limiter in the laminar to turbulent transition discretization.
Default: TRUE
Modified: FALSE
diaDomTrans_ Diagonal dominance of the laminar to turbulent transition equations.
Default: 50
TransitionInfo_ Save the solver output for the laminar to turbulent transition computation into
the .std file.
Default: NO
Modified: YES

35.15 REGULAR AND IRREGULAR WAVES

WaveInit_ Initializes the wave field before the first time step for both regular and irregular waves.
Helps to decrease the time of computation run due to the faster waves development.Regarding the
body motion, this parameter is very efficient when the body has fixed or imposed motions only.
Otherwise, one could observe initial high trim and sinkage for instance which will add some extra
time for convergence.
Default: No

697 FINE™/Marine 7.1 User Guide


irrFreqNo_ Constant number of frequencies in the wave generator. If left the default value, will
generate 991 number of frequencies.
Default: 0
irrMinMaxFreq_ Minimum and maximum frequency of the wave generator.
Default: 0.0 0.0
irrRandSeed_ Produce random initial phases for the waves. First value can be chosen between
2.0 and 20.0; second is between 1.5 and 2.0.
Default: 5.0 2.0
irrSaveSpectrum_ For all spectra other than the User-defined, the wave component data can be
saved to an output file "spectrumname_output.dat", the spectrum name is defined automatically.
Default: No

35.16 MODAL APPROACH

RBF_ function_ controls the Radial Basis Function (RBF) interpolation used to handle the
computational domain deformation according to the solid body displacement.
Default: 4
WeightingModalCoeffsModifLaw_ Law of modification of the nodal weighting coefficient for
the mesh deformation for the fluid-structure interaction. When the weighting coefficient is equal to
1, the entire rigid deformation of the solid body is applied to the cell. On the contrary, for a value
of 0, the cell does not move.
Default: 0.8 .07

698 FINE™/Marine 7.1 User Guide


CHAPTER 36.

EXTERNAL TOOLS

This chapter describes the external tools available in the FINE™/Marine package. They are all available
in the FINE™/Marine installation folder.

Launching on Linux
On LINUX OS, they can be launched directly by typing the following command, thanks to the
NUMECA start script:
tool_name -niversion marine71 -print OR tool_namemarine71 -print
with # being the patch number.

Launching on Windows
On Windows OS, the user should specify the full path of the tool:
NUMECA_INSTALLATION_DIR/bin/isis64/tool_name.exe -print

A -local argument can be added to work with local files. The current working directory will be checked for
the necessary files. Please make sure that the tool can use this functionality by reading the list of available
arguments in this Chapter.

A -relative argument can be added to work with a relative path instead of the full path. Please make sure that
the tool can use this functionality by reading the list of available arguments in this Chapter.

Specifying the -auto option alone will work only when launching the tools from the computation folder
directly. Everything will be treated automatically with no input required. If it is important to launch the tool
from the directory other than the computation folder using the -auto option, the simulation file (.sim) directory
should be specified with the -sim= option.

In this section
36.1 introduction 700

699 FINE™/Marine 7.1 User Guide


36.2 Simulation Setup 709
36.3 Pre-processing Tools 721
36.4 Boundary Conditions Manipulation 724
36.5 Mesh Manipulations 724
36.6 Conversions 726
36.7 Mesh Partitioning 727
36.8 Post-processing Tools 729

36.1 INTRODUCTION

Rhinoceros® is a powerful CAD software widely used in the Marine industry. The FINE™/Marine
plug-in is designed to ease the export of geometries from Rhinoceros® to HEXPRESS™ using a STL
format (stereo- lithography). It makes your geometry ready for HEXPRESS™ and even for the
automated setup prepared by the C- Wizard. As an example, the patch naming process is perfectly
adapted for the use of the Refinement dictionary .
This export process is directly embedded in the Rhinoceros® interface through a new FINE™/Marine
menu. Three tools are proposed and documented in the following sub-sections:
l Export STL only
l Export and open HEXPRESS™
l Export and launch the C-Wizard

The plug-in is available under license. To upgrade your license, please contact your local software provider or
the NUMECA support office.

The license server version should be at least v11.14 . It is available in the FINE™/Marine package starting
from v7 or as a standalone in the Customer area.

700 FINE™/Marine 7.1 User Guide


Rhinoceros® 5 (64-bits) should be used.

The following requirements need to be fulfilled before launching the plug-in:


l The plug-in must be started from an existing Rhinoceros® project (the .3DM file needs to be created).
l The input geometry needs to be a Closed poly-surface: no naked edges.
l The input geometry needs to be oriented from transom to bow along the positive X-axis, thus the Y-axis is
going port-side.
l The input geometry needs to be centered in Y = 0.

Important information is written in the Rhinoceros® console, please widen it. Information written by the plug-
in starts with " > ".

Current limitations:
l The plug-in is limited to one single body as an input.
Monohull with appendages need to be merged into one single closed poly-surface.
Multihulls can only be treated in two configurations:
l If the deck joining the two hulls is modeled.
l If the starboard hull (with Y-negative) is deleted and the plug-in is set for a Half-body
computation.
l Thin surfaces in the geometry definition cannot be managed by the plug-in.
l The Export and launch the C- Wizard mode can only be used with the latest
modifications in the C-Wizard, hence with the last FINE™/Marine v7 package.

36.1.1 installation

The installation process of the plug-in is simple. Just follow the procedure:
l Close Rhinoceros®.
l Double click on the FINEMarine_Plugin.rhi file from the FINE™/Marine package (located
in _data\Script\), the installation process starts.
l Complete the installation process.

701 FINE™/Marine 7.1 User Guide


l Start Rhinoceros®, the FINE™/Marine menu is now available on the top bar of the
Rhinoceros® interface.

FIGURE 36.1
FINE™/Marine menu in Rhinoceros®

The plug-in is available under license. The license server version should be v11.14. It is available in
the FINE™/Marine package starting from v7 or as a standalone in the Customer area.

To appreciate all the plug-in modes, the last FINE™/Marine package should be installed.

36.1.2 Export STL only

This mode helps exporting a clean geometry from Rhinoceros® to HEXPRESS™ using the STL
format in few minutes.
The export process performs the following steps:
l Checking the geometry quality;
l Preparing the domain for half or full body computation;
l Triangulating the geometry;
l Naming the patches;
l Exporting in a single STL file.

If an export has already been performed, a new export will not overwrite the former file. The former
file will be incremented with a suffix _#.

702 FINE™/Marine 7.1 User Guide


A. Requirements

The following requirements need to be fulfilled before launching the plug-in:


l The plug- in must be started from an existing Rhinoceros® project (the .3DM file needs to be
created).
l The input geometry needs to be a Closed poly-surface: no naked edges.
l The input geometry needs to be oriented from transom to bow along the positive X-axis, thus the
Y-axis is going port-side.
l The input geometry needs to be centered in Y = 0.

Important information is written in the Rhinoceros® console, please widen it. Information written by
the plug in starts with " > ".

Current limitations:
l The plug-in is limited to one single body as an input.
Monohull with appendages need to be merged into one single closed poly-surface.
Multihulls can only be treated in two configurations:
l If the deck joining the two hulls is modeled.
l If the starboard hull (with Y negative) is deleted and the plug-in is set for a Half-body
computation.
l Thin surfaces in the geometry definition cannot be managed by the plug-in.

B. Domain creation

The plug-in is applying the FINE™/Marine guidelines concerning the recommended domain size
(see What are the best dimensions for the computational domain?) using the answers provided at
the two following questions:
1. Will the domain be in Half or Full body configuration?

This information will then be kept in the name of the created STL file with _hb for half body
configuration and _fb for full body configuration.

703 FINE™/Marine 7.1 User Guide


2. What is the maximum ship speed?

If the future computation will be performed on several speeds, taking the highest one allows to be
more conservative.

The geometry is scaled to meters to meet the requirements of FINE™/Marine.

C. Boolean operation

In case of Half body configuration, the next operation to perform is the Boolean difference. In
case of Full body configuration, this operation is not performed. As the Boolean operations can be
difficult to perform in Rhinoceros®, two semi automated methods have been implemented and are
tightly coupled with the triangulation step.
l The first method is using the MeshBooleanDifference command, to first mesh the geometry
and then perform the Boolean difference on the mesh. In this method the plug-in is trying to
find the correct triangulation by itself. To overcome the instabilities of the Rhinoceros®
commands, the user is regularly asked if the Boolean operation has been correctly performed,
and also if the triangulation is fine enough to advance to the next step.
l The second method is using the BooleanDifference command and then the Mesh command.
This method is used if the first one fails. The drawback of this method is that it can require to
slightly move the geometry (around E-6 m) to make the Boolean operation work [2].

If a displacement has been performed, the information is reported in the Rhinoceros® console.

If none of the methods can achieve the Boolean operation, one should reconsider the input geometry.

D. Triangulation of the geometry

In case of a Half body computation, this step is embedded in the previous one.
In case of a Full body computation, the following window will pop-up.

704 FINE™/Marine 7.1 User Guide


FIGURE 36.2
Mesh settings in full body configuration

The meaning of each parameter is given in the Rhinoceros® meshing FAQ [  3 ]. The most
efficient values to control the meshing are:
l density,
l minimum edge length,
l maximum distance, edge to surface.

The Preview button allows to visualize the mesh without moving to the next step. Press OK only
when the triangulation is satisfactory.

The values given for the meshing step are in meters.

E. Patch naming

One of the main advantages of the plug-in is to be able to export a colored STL (with names).
After properly defining the triangulation, the patches need to be named. An initial list of names
following the refinement dictionary standards from the C-Wizard are proposed (see "Refinement
dictionary" (p. 125)). When two different selections have the same name (e.g. Deck), the recorded
name will get an incremented index _# (e.g. Deck_1 and Deck_2).

705 FINE™/Marine 7.1 User Guide


If two patches are selected at the same time, they will be merged together, which lead to few rules
to follow:
l One should not allow two non-tangent surfaces in the same layer as the edge between them
will be lost to control the mesh in the HEXPRESS™ step.
l One should not put two non-connected surfaces in the same selection.

Pay attention if two patches are separated with a very thin patch!

Custom names can be entered by typing them. They are then recorded in the proposed list for an
easier use.

Do not click on another button in the Rhinoceros® interface during the patch naming. The name of
the command will mistakenly be taken as a patch name.

Once the last patch is entered, the following step is automatically starting.

If the export process doesn't start, it means that one or more (tiny) mesh part (s) have not been
entered. They can be found using the Rhinoceros® tools. Be careful if the tiny patches are not
connected.

F. Export and use

The export process will now begin. At the end, a single file will be created. Depending on the
configuration (half or full body), the file will be named as follow:
l filename_hb.stl
l filename_fb.stl
The created STL file can now be properly imported in HEXPRESS™. While the process is fully
integrated when using the Export and open HEXPRESS™ or Export and launch the C-
Wizard mode, it is also possible to use the STL file outside the scope of the plug-in.

Import in the C-Wizard

Select the STL option in the Input Geometry section:

706 FINE™/Marine 7.1 User Guide


FIGURE 36.3
Import of the STL inside the C-Wizard

Import in HEXPRESS™

To fully use the features of the plug-in, it is important to import the STL using the names already
set in Rhinoceros®: activate the Use existing groups option in the STL import (STL Group
Tool):

FIGURE 36.4
Import procedure in HEXPRESS™ keeping the names

G. References

[1] https://www.rhino3d.com/
[2] https://wiki.mcneel.com/rhino/booleanfaq

707 FINE™/Marine 7.1 User Guide


[3] https://wiki.mcneel.com/rhino/meshfaq

36.1.3 Export and open HEXPRESS™

This mode will perform the following steps:


1. The Export step as explained in the "Export STL only" (p. 702) topic.
2. Creating a FINE™/Marine project.
3. Switching to HEXPRESS™.
4. Importing the STL file previously created and creating the domain.

FINE™/Marine and HEXPRESS™ needs to be installed on the same machine to use this mode.

If an export has already been performed and the STL file hasn't been moved or renamed, the plug-in
will detect it. It is then proposed to proceed to HEXPRESS™ using the existing file or to perform a
new export.

Performing a new export will not overwrite the former file. The former file will be incremented with
an _#.

36.1.4 Export and launch C-Wizard

This mode will perform the following steps:


1. The Export step , as explained in the "Export STL only" (p. 702) section.
2. Creating a FINE™/Marine project.
3. Launching the C-Wizard. Some input from the C-Wizard will already be filled in.

FINE™/Marine and HEXPRESS™ needs to be installed on the same machine to use this mode.

708 FINE™/Marine 7.1 User Guide


FINE™/Marine v7 at least need to be installed to use this mode.

If an export has already been performed and the STL file hasn't been moved or renamed, the plug-in
will detect it. It is then proposed to proceed to the C-Wizard using the existing file or to perform a
new export.

Performing a new export will not overwrite the former file. The former file will be incremented with
an _#.

36.2 SIMULATION SETUP

36.2.1 Domhydro

The aim of "domhydro" is to provide a tool which can solve the hydrostatic problem of a body
using the domain and boundary conditions files from HEXPRESS™. This tool replaces the
'setup_ info_ hydrostatic' and 'draft' tools which were only used after the mesh generation.
"Domhydro" as a specific tool supports two general modes of working (h2p & p2h) and extended
function '-hip', which details and functionality are described in the following Chapter.

from HEXPRESS™ Plugins menu Domhydro tool can be started directly, though the '-hip' function
will not be available in this mode

A. Assumptions

l Horizontal positions of center of gravity and the center of buoyancy are equal.
l If the vertical position of the center of gravity is not known by the user, the tool can estimate it.
In such case, the vertical position of the center of gravity is approximated considering that the
mass is equally distributed on the shell (the triangulation of the solid patches) below the free
surface using a uniform distribution of the mass on the wetted surface. The same distribution of
mass is used to estimate the inertia matrix.

709 FINE™/Marine 7.1 User Guide


For instance, this should be taken into account especially for superstructures where the mass in the air
part can be important.

l This tool provides parameters based on geometric considerations. Hence, it is advised to


compare the results with real values if they are known (given by the naval architect for
instance).
l In 3D, the body is assumed to be aligned along the X-axis. If it is not the case (for instance the
body has an initial yaw angle), one should specify it in the Cardan angles.
l In 2D, the roll motion of a boat section is defined by the rotation around z0, i.e. the "yaw Rz0"
rotation.
l When using an additional external effort, only the final Z-axis resultant and the moment along
X and Y-axis are taken into account the equilibrium position (the others components cannot be
counterbalanced by hydrostatic forces).
l The body should not be in a bucket shape (the body is not close by a flat deck and it is
"empty" inside), otherwise if its ground is below the free surface location, water will be
considered inside.

FIGURE 36.5
Illustration of a problematic case where water is considered inside the body

l For a simple cube in 2D, "domhydro" cannot distinguish a 2D from a 3D configuration. In this
case, one can force the check with the argument -dim=2 or -dim=3.
l For a 3D cube, adding a vertex to each edge of the cube makes it possible for "domhydro" to
recognize the 3D configuration.
domhydro can be launched with a geometry non-aligned with the Cartesian axis as long as this
configuration is in hydrostatic equilibrium. In addition, domhydro can consider these initial angles
as Cardan angles to provide the user with the inertia matrix in that reference frame.

710 FINE™/Marine 7.1 User Guide


B. Modes Description

Two modes are implemented in this tool: h2p and p2h. Each one has its own objective described
below:
l h2p: in this mode, the body is assumed to be at the hydrostatic position. As a result, the tool
provides extra information on the body's characteristics. They are listed below:
l Wetted surface: total and projected (on the XZ-plane)
l Water plane area
l Total volume
l Immersed volume
l Volume in the air
l Mass
l Center of buoyancy: X(CoB), Y(CoB), Z(CoB)
l Center of gravity: X(CoG) Y(CoG) Z(CoG)
l Estimated center of gravity with respect to the wetted body surface
l Estimated center of gravity with respect to the entire body surface
l Estimated Inertia tensor with respect to the wetted body surface: I(CoG)|(x,y,z)
l Estimated inertia tensor with respect to the entire body surface: I(CoG)|(x,y,z)
l p2h: in this mode, the parameters of the body are known (mass, position of the center of
gravity), and the tool computes iteratively the hydrostatic and the equilibrium positions.

The equilibrium position corresponds to the hydrostatic position with all the degrees of freedom
free. Indeed, one can decide to freeze one or several degrees of freedom to compute the
hydrostatic position.

In p2h mode, the tool computes the following information, including the rotation and the
translation to apply on the domain in HEXPRESS™ if necessary (one can use the 'Move Part'
feature, see HEXPRESS™ User Manual to know more about it):
l Rotation axis
l Rotation angle
l Point of rotation (gravity center)
l Vertical translation
l New position of the gravity center
l Cardan angles (Yaw Rz0, Pitch Ry1, Roll Rx2 in final position (deg.))

711 FINE™/Marine 7.1 User Guide


l Wetted surface: total and projected (on the XZ-plane) for the final position
l Water plane area (final position)
l Center of buoyancy (final position)
l Cardan angles (Yaw Rz0, Pitch Ry1, Roll Rx2 in equilibrium position (deg.))
l Wetted surface: total and projected (on the XZ-plane)
l Water plane area (equilibrium position)
l Total volume (equilibrium position)
l Immersed volume (equilibrium configuration)
l Volume in the air (equilibrium configuration)
l Estimated Inertia tensor with respect to the wetted body surface: I(CoG)|(x,y,z)
l Estimated inertia tensor with respect to the entire body surface: I(CoG)|(x,y,z)

In both modes, the outputs are written in a file called 'domainfilename _domhydro_ mode _b#.out'.
The template is always the same and "domhydro" writes NA in case the parameters were not
computed by the selected mode and "b#" indicates the index of the body.

l Domhydro tool also allows to determine the forces and moments applied to a body for a user-
specified additional modification of orientation (e.g. it calculates the forces and moments
associated with a roll angle of 2 degrees). This can be done by employing the '-hip' function:

This function can only be called in the batch mode, by adding '-hip'.

The Output file generated will contain the following info:


l Wetted surface: total projected (final position)
l Hydrostatic resultant (force components in X, Y, Z)
l Hydrostatic moment at reference point
l Water plane area
l Total volume
l Immersed volume
l Volume in air
l Center of buoyancy

712 FINE™/Marine 7.1 User Guide


C. How to use the tool?

"domhydro" is based on the domain and boundary conditions files from HEXPRESS™. Hence,
once the domain is created, cleaned and saved, domhydro can be launched. Manual hints should
be given to the tool: it should know how many bodies are present and their location. For this
purpose, the boundary conditions names should be adapted. For this purpose:
l go to the boundary conditions menu,
l add the suffix _b# behind each solid surface name of each body (where "#" represents the
body's ID),
l save the HEXPRESS™ project,
l launch domhydro from the mesh folder typing the command in the shell.

The use of non-standard characters in the project name (other than English letters, Arabic numerals,
and underscore symbol "_") is not recommended.

D. How to launch the tool?

The tool must be launched from the shell and some inputs are requested. All these information are
required and must be given to the tool. However, default values are automatically chosen for the
specific mass of the fluids and the gravity intensity. They can be overwritten using arguments,
given in the list below. Furthermore, arguments can also be used to run the tool in a script. For
instance,
In Linux:
domhydro -niversion marine71 -print <-arg1=> ... <-arg2=> ...
In Windows OS:
C:\...\finemarine71\bin\isis64\domhydro.exe -print <-arg1=> ... <-arg2=> ...
The units to be used in domhydro are: length in m; angle in deg.; mass in kg; density in kg/m3 ;
gravity in m/s2; force in N; moment in N•m.
The complete list of inputs and their respective arguments are given below. If the arguments are
not given when typing the command, questions will be prompted in the shell.

713 FINE™/Marine 7.1 User Guide


General inputs

Reference files for the HEXPRESS™ mesh

-fdom= : domain file name


-fbcs= : bcs file name

Project configuration

-dim=2 : to force 2D mode or -dim=3 to force 3D mode

Points tolerance

-epsp= : collapsed points tolerance (real), default = 1.000000E-06 m

This tolerance should have the higher order when the fine domain triangulation has been applied.

Fluids characteristics (imposed by default)

-rho_w= : specific mass of water (real), default = 9.984000E+02 Kg/m^3


-rho_a= : specific mass of air (real), default = 1.200000E+00 Kg/m^3
-gz= : Z-component of the gravity (real), default = -9.810000E+00 m/s^2

Body configuration

-idb= : body index (integer) - the index corresponds to the "#" from all the "_b#" added in the
boundary condition menu
-geom= : eb (entire body) or hb (half body)

Cardan angles (see Cardan Angles section for their description)

-init_roll= : Roll angle (X2-rotation) (real)


-init_pitch=: Pitch angle (Y1-rotation) (real)
-init_yaw= : Yaw angle (Z0-rotation) (real)
-extra_roll= : Roll angle (X2-rotation) (real)
-extra_pitch= : Pitch angle (Y1-rotation) (real)
-extra_yaw= : Yaw angle (Z0-rotation) (real)

714 FINE™/Marine 7.1 User Guide


Mode selection

-h2p : hydrostatic to parameters or -p2h n: parameters to hydrostatic

Inputs for -h2p

-vfs= : free surface location (real), default = 0.000000E+00 m


-zcog= : Z coordinate of the center of gravity (real)

Inputs for -p2h

Additional rotations (for instance, one can add extra rotations in order to calculate the
hydrostatic positions for several roll angles, starting from the same domain file)
-extra_roll=: Roll angle (X2-rotation) (real)
-extra_pitch=: Pitch angle (Y1-rotation) (real)
-extra_yaw= : Yaw angle (Z0-rotation) (real)

Freeze degrees of freedom

-noroll : to freeze roll (X2-rotation) or -roll : to release roll (X2-rotation)


-nopitch : to freeze pitch (Y1-rotation) or -pitch : to release pitch (Y1-rotation)

Characteristics of the body

-mass= : mass of the body (real)


-cog= : Xcog,Ycog,Zcog (reals)

External force

It is possible to add an external force (resultant and moment) to compute the hydrostatic position,
taking into consideration a wind effect on a sail for instance. This force can be a follower force
(default) or a non-follower force (add -eff_noFollowerForce). With the non-follower force, the
direction of the force does not change when the body moves: this is the case an extra mass is
attached onto a body. To summarize:
l follower force: the force direction does change according to the body motion
l non-follower force: the direction of the force remains fixed (like gravity)
-eff_F= : Fx,Fy,Fz Resultant (reals), default = (0.000000E+00 0.000000E+00 0.000000E+00) N
-eff_M=: Mx,My,Mz Moment (reals), default = ( 0.000000E+00 0.000000E+00 0.000000E+00)
N.m

715 FINE™/Marine 7.1 User Guide


- eff_ AP= : Xapp,Yapp,Zapp coordinates of the application point (reals), default =
(0.000000E+00 0.000000E+00 1.000000E-06) m
-eff_ noFollowerForce : if present, forces are NOT follower forces. Only available if -eff_
M=0,0,0 (null moment)

Expert parameters

-itermax= : maximum of iterations (int), default = 1000

Inputs for '-hip' function

Function application will require from the user the following information.

Body configuration

l body index (integer) - the index corresponds to the "#" from all the "_ b#" added in the
boundary condition menu
l entire body (eb) or half body (hb) geometry

When modeling a half body, the roll motion will be deactivated.

Cardan angles

l Roll angle (X2-rotation) (real)


l Pitch angle (Y1-rotation) (real)
l Yaw angle (Z0-rotation) (real)

Additional modification of orientation to apply (deg.)

l Additional Yaw angle (D_Yaw Rz0) (real)


l Additional Pitch angle D_Pitch Ry1 (real)
l Additional Roll angle (D_Roll Rx2) (real)

Geometry configuration

l Vertical free surface location (m)


l Vertical displacement (m)
l Coordinates of the reference point (resulting Forces and Moments) (m)

716 FINE™/Marine 7.1 User Guide


The output info will be stored in a file with the name of 'projectname_domhydro_hip_b#.out'.

E. Examples

Inertia Matrix is unknown

A classic situation is when the geometry is received in its hydrostatic position and all the boat's
characteristics are known except the inertia matrix. The inertia matrix is mandatory when solving
the motion thanks to the Newton's laws (but not required with the quasi-static approach, please
read the Solved Law of Motion section to know the different ways of solving motions in
FINE™/Marine). In this case, one can use "domhydro" in h2p mode to calculate the inertia
matrix.

Sailing boat

Let's consider the following situation:


l several roll angles of a sailing boat should be simulated (let's say 2, 5 and 7 deg.),
l the mass and the initial gravity center location are known,

if it is not the case, "domhydro" should be first run in h2p mode.

l the geometry is in its primary configuration.


This procedure should be followed:
1. Launch "domhydro" in p2h mode entering the basic inputs and in particular:
l Cardan angles of the configuration (deg.): 0 0 0,

In case the boat is not in its primary configuration, values different from 0 should be entered for
the initial Cardan angles.

l additional modification of the orientation (deg.): D_Rz0 D_Ry1 D_Rx2, with D_Rz0=0
D_Ry1=0 D_Rx2=2, which corresponds to the new orientation of the boat.
2. "domhydro" returns the new hydrostatic position of the boat and the domain transformation to
apply in HEXPRESS™ to put the boat in its new position, including the new Cardan angles.

717 FINE™/Marine 7.1 User Guide


3. Go back to HEXPRESS™ and use the 'Move Part' feature to move the body (or the CAD
software)
4. Start meshing with the new domain (equilibrium configuration).
5. In the menu Body Motion of the FINE™/Marine interface, the Cardan angles should be set to
their new values.
6. Repeat these actions for the roll angles: 5 and 7 degrees.

Roll decay test

Let's consider the following situation:


l the idea is to simulate a roll decay test starting from an initial angle of rotation (let's say 5 deg.),
l the mass and the initial gravity center location are known,

if it is not the case, "domhydro" should be first run in h2p mode.

l the geometry is in its primary configuration.


This procedure should be followed:
l Run 'domhydro' in p2h mode entering the following information:
l Cardan angles of the configuration (deg.): 0 0 0

In case the boat is not in its primary configuration, the corresponding values should be entered
for the initial Cardan angles.

l additional modification of the orientation (deg.) : 0 0 0 corresponding the primary


configuration
l "domhydro" returns the new position of the boat to get the hydrostatic position.
l Go back to HEXPRESS™ and use the 'Move Part' feature to prepare the domain in
hydrostatic position.
l Run 'domhydro' in p2h mode with the new domain, entering the following information:
l Cardan angles of the configuration (deg.): 0 0 0
l additional modification of the orientation (deg.): D_Rz0 D_Ry1 D_Rx2, with D_Rz0=0,
D_Ry1=0, D_Rx2=5 corresponding the future initial orientation of the boat.
l Keep the roll angle fixed.

718 FINE™/Marine 7.1 User Guide


l "domhydro" returns the new hydrostatic position of the boat.
l Go back to HEXPRESS™.
l Start meshing with the previous domain (it is not necessary to use the 'Move Part' now).
l In the menu Body Motion of the FINE™/Marine interface, the Cardan angles should be set to
0 0 0 but in the Initial Conditions tab (see Initial Conditions section) the initial rotation angles
should be changed to deltaRx2=5, deltaRy1=0, deltaRz0=0 and initial vertical position of the
gravity center to its new location, found from the last run of "domhydro".

Follower and non-follower forces

Here is an example of a computation of a hydrostatic position. The case is a cube with the
following characteristics:
l center of gravity coordinates: (0,-1,-3), mass: 2000 kg, dimensions: 2x2x2m, centered on point
(0,0,0).
l gravity: -10 m/s², water density: 1000 kg/m³, air density: 0 kg/m³
l follower force with intensity (0,14142.136,-14142.136) N is applied on the application
point with coordinates (0.,3.,1). The result is illustrated below:

FIGURE 36.6
Follower force

l non-follower force with intensity (0,14142.136,-14142.136) N is applied on the application


point with coordinates (0.,3.,1). The result is illustrated below:

719 FINE™/Marine 7.1 User Guide


FIGURE 36.7
Non-follower force

36.2.2 setup_infos

This tool provides useful information to setup the computation:


l Reynolds and Froude numbers,
l Maximum time step suggested (with and without free motion),
l Grid spacing from the free surface,
l Y+,
l First layer thickness (y).
It also possible to have an estimation of the number of viscous layers.

36.2.3 setup_info_hydrostatic

With this tool, it is possible to find numerical parameters (mass, horizontal position of the
buoyancy center,...) and evaluate inertia matrix, which can help for free surface computation with
motion, see theSolved Law of Motion section. This tool provides also other pieces of information,
like wetted surface and water plane area. It should be launched from the computation folder, once
the mesh generation, the computation set-up and the pre-processing have been performed.

This tool is still present for backward compatibility reasons. We strongly recommend to use
"domhydro" tool instead since it only makes use of the domain file of HEXPRESS™.

720 FINE™/Marine 7.1 User Guide


In a configuration with a boat and a propeller, neither the boat, nor the propeller is a closed body. It
is the union of both that forms a closed body. Yet, they have to be defined as two separate bodies in
the project. "setup_info_hydrostatic" cannot be used directly to determine the required parameters.
There will be no warning but the result will be wrong if the user uses this tool directly in such
configuration. There are two ways to obtain the required parameters correctly. The first one is to use
"domhydro" and define manually with _B1 in the .bcs file of HEXPRESS™ such that the boat and
the propeller forms a unique body. The second way is to modify the body index manually the .bcs file
of FINE™/Marine flow solver so that the boat and the propeller forms a unique body, then launch
"setup_info_hydrostatic".

36.2.4 draft

The "draft" tool computes the numerical draft of the body. For this purpose, the tool will give the
relative position of the free surface according to the body position and its displacement.

This tool is still present for backward compatibility reasons. Please use the "domhydro" tool instead.

36.2.5 setup_for_wave_generation

This Open Office sheet, stored in "_data/isis/Src" of the installation folder, is dedicated to the
setup of a wave generation project. The idea is to give information which are recommended for
the mesh generation (special refinement box around the free surface) and for the computation
settings (time step, wave length or wave period). As extra information, this sheet computes the
wave steepness, the wave celerity and different frequencies.

36.3 PRE-PROCESSING TOOLS

dom2its

"dom2its" converts the domain file of HEXPRESS™ into an triangulated surface file, with the
extension ".its". This tool is run automatically by "hexpress2isis" (see next section below) any

721 FINE™/Marine 7.1 User Guide


time.

hexpress2isis

"hexpress2isis" allows to convert an HEXPRESS™ topology to FINE™/Marine flow solver


mesh files (nodes & faces). Available arguments can be employed:
-help : to display this help information
-p= : path for working folder
-local : to work in current folder
-relative : to work with relative path
-sim= : to specify the .sim input data file
-mesh= : to specify HEXPRESS™ mesh file
-bcs= : to specify FINE™/Marine flow solver boundary condition file
-auto : for default actions only
-ymirror : for symmetric cases with a Y-mirror plane, the tool checks the mean (noted Ymean) of
the Y-faces coordinates on the Y-mirror plane. It sets Y-mean to 0 if abs(Ymean)<1.0d-4*Dy, Dy
being the domain size in Y-direction. One can use the argument "-ymirror=" to change the default
value "1.0d-4"

Starting from v2.3, - sim= can be omitted for batch scripting, even if it still works with -sim= option
as well. The designed behavior is the following:
1. Use the ".sim" file specified by the -sim= option when this option is given,
2. If the -sim= option is not given, then check the existence of "Current_Folder.sim" file. If this
".sim" file exists, then use it. Otherwise, ask the user to give the ".sim" file interactively.

FINE™/Marine flow solver is reading a boundary condition file " projectname_


computationname.bcs". For users working in batch, they should create it manually: it can be
copied from the boundary condition file of HEXPRESS™ (".bcs") from "_mesh" folder adding
the identifier (see Identifier) at the front of each patch name:
Version 2.1
NUMBER_OF_BLOCKS 1
body_name
000
1
Unknown

722 FINE™/Marine 7.1 User Guide


NONE
NUMBER_OF_FACES 1
9
29 0 0 zmax MIR 0 0 0 0
10 0 0 ymin MIR 0 0 0 0
45 0 0 xin MIR 0 0 0 0
10 0 0 ymax MIR 0 0 0 0
29 0 0 zmin MIR 0 0 0 0
10 0 0 xout MIR 0 0 0 0
3 1 0 hull SOL 0 0 0 0
3 1 0 keel SOL 0 0 0 0
3 1 1 deck SOL 0 0 0 0
0

An equivalent tool exists for batch scripting. It performs all the default operations automatically
(which means that no question are prompted to users). Its name is "hxp2isis_ no_ interactive" and
should be launched from the computation folder. However, the project and the computation must
have been saved first. This tool is automatically executed when launching the computation (and so the
pre-processing) through the interface.

fluent2isis

This tool provides the pre-processing data in Fluent V5 ASCII format.


This format is very close to FINE™/Marine flow solver format. The Fluent V5 ASCII format
defines the nodes of the grid and the grid connectivity. The face is defined by these nodes and the
adjacent cells. The type of face can be linear, triangular or quadrilateral. The dimensionality of the
grid can be two-dimensional or three-dimensional.
It is recommended to give a specific name to the boundary conditions to ease their management
when using the tool.

These mesh files cannot be loaded in the FINE™/Marine interface (HEXPRESS™ meshes only).

723 FINE™/Marine 7.1 User Guide


36.4 BOUNDARY CONDITIONS MANIPULATION

A tool called "change_face_flag" is provided in the FINE™/Marine package to list or change the
boundary conditions face flags after the creation of the mesh files ("nodes_ original.cpr" and
"faces_original.cpr" in the "_mesh" folder) for FINE™/Marine flow solver. This tool offers the
possibility to check or change the boundary conditions without opening and saving the project
again.

The changes will not be taken into account by the interface when the project will be opened again.

36.5 MESH MANIPULATIONS

3dto2d

The FINE™/Marine flow solver has the capability to do a computation on a 2D mesh. However,
HEXPRESS™ always generates a 3D mesh with one cell in Z-direction. This tool offers the
possibility to transform the "false" 2D mesh from HEXPRESS™ into a "true" 2D mesh (no cell
in the Z-direction) by applying a transformation on the nodes and faces files (grid files for
FINE™/Marine flow solver created by "hexpress2isis"). The computation will be then much
faster.

This tool is still present for backward compatibility and does no action by default. If one still wants to
impose the 3D to 2D conversion, the "-FORCE" option should be used. In that case, the 2D mesh files
will be stored in the "_mesh" folder.

Indeed, starting from v2.3-0 of the package, the conversion is automatically performed by the
flow solver when a pseudo-2D configuration is detected and when adaptive grid refinement
method is not active. Consequently, 2D mesh files are never saved in "_mesh" folder anymore.

724 FINE™/Marine 7.1 User Guide


To make a 3D computation consistent with a 2D computation, mesh thickness in the Z-direction
is rescaled to unity automatically, although the output mesh keeps the initial thickness of the
original mesh. The 'setup_ info_ hydrostatic' tool and the 'domhydro' tool also perform such
scaling. Consequently, output forces and moments are always per unit length whatever the
thickness of the original mesh is. Hence, mass and moment inertial should be given for a body
with unit thickness if 'setup_info_hydrostatic' or 'domhydro' tool is not used.
Limitation: With a pseudo-2D HEXPRESS™ mesh, if a mirror boundary condition in the Z-X
or Z-Y plane is present, the conversion will not be performed by FINE™/Marine flow solver. It is
necessary to impose the 3D to 2D conversion by launching the '3dto2d' tool with -FORCE
option.

Important : if a computation from an old project is launched using the interface, 3D mesh will be
saved in the _ mesh folder, overwriting the previous 2D meshes. Consequently, previous
computational results found in other computation folders for the same project are not coherent
anymore with the mesh files. But those results are still compatible with the flow solver. It is only
necessary to do a restart for few iterations to make the result validated for post-processing.

rotategrid3d

It is possible to rotate a mesh around a Cartesian axis (nodes_original.cpr only)

If a different name for the nodes file is used, it has to be changed manually in the ".sim" file before
launching the simulation.

We recommend to use the rotation feature available through the HEXPRESS™ interface, otherwise
the changes will not be taken into account by the interface when the project will be opened again, see
HEXPRESS™ User Manual for more details.

scalegrid3d

The tool allows to apply a scale factor on a mesh (nodes_original.cpr only)

725 FINE™/Marine 7.1 User Guide


If a different name for the nodes file is used, it has to be changed manually in the ".sim" file before
launching the simulation.

We recommend to use the scaling factor available through the HEXPRESS™ interface, otherwise the
changes will not be taken into account by the interface when the project will be opened again, see
HEXPRESS™ User Manual for more details.

translategrid3d

This tool has been created to translate a mesh from an initial base point to a target point (nodes_
original.cpr only)

If a different name for the nodes file is used, it has to be changed manually in the ".sim" file before
launching the simulation.

We recommend to use the translation feature available through the HEXPRESS™ interface, otherwise
the changes will not be taken into account by the interface when the project will be opened again, see
HEXPRESS™ User Manual for more details.

36.6 CONVERSIONS

formatf

This tool converts the connectivity file (faces) in different formats:


l ".for" (text ASCII format)
l ".bin" (binary format)
l ".cpr" (compressed format)
l ".xdr" (xdr format)

726 FINE™/Marine 7.1 User Guide


The ".cpr" format is strongly recommended to ensure the compatibility between different platforms.

cvrfmt

This tool converts other data files (except connectivity file) in the different formats:
l ".for" (text ASCII format)
l ".bin" (binary format)
l ".cpr" (compressed format)
l ".xdr" (xdr format)

The ".cpr" format is strongly recommended (see the tool "formatf" for more information).

gen_gridcc

This tool converts the mesh files into cell centered mesh files.

36.7 MESH PARTITIONING

premetis

This tool partitions sequentially FINE™/Marine flow solver grid files (nodes & faces) and restart
files (pressure, velocity,...) into the number of required partitions to perform computations in
parallel. Several files and folders are created:
l wall_surface_grid.bin
l input.isismb (contains the name of the ".sim" file)
l graph.dat.part.x ("x" is the total number of partitions)
l current_part_number.dat
l bxxx : sub-directories ("xxx" corresponds to the partition number)
Each "bxxx" sub-folder contains:

727 FINE™/Marine 7.1 User Guide


l interface.dat
l internode.dat
l nodes and faces files
l quantities (for restart only)

The domain decomposition will require 500MB of RAM per million cells.

User interactive setting for data file is no longer necessary starting v2.3-0 release. It can however be
activated again with "-noauto" option.

Available options for premetis are:


-help : Display this help information
-npar= : Set partition number
-local : Work in current folder
-relative : To work with relative path
-sim= : Specify the .sim input data file
-noauto : To specify additional decompositions
-mapping : Create mapping files (dedicated to coupling with INSEAN propeller code)
- FORCE : Force the domain decomposition, even for a restart with the same number of
partitions.
-nodep : No boundary layer displacement (for a computation with adaptive grid refinement, cells
belonging to the same boundary layer are moved to the same block. This can lead to a none-
uniform distribution. This argument can be used for a computation without adaptive mesh
refinement, to get a uniform distribution).

Starting from v2.3, - sim= can be omitted for batch scripting, even if it still works with -sim= option
as well. The designed behavior is the following:

1. Use the ".sim" file specified by the -sim= option when this option is given,
2. If -sim= option is not given, then check the existence of "Current_Folder.sim" file. If this
".sim" file exists, then use it. Otherwise, ask the user to give the ".sim" file interactively.

728 FINE™/Marine 7.1 User Guide


postmetis

This tool reconstructs FINE™/Marine flow solver partitioned files. This tool is mandatory for
visualization, repartitioning, storage,... Available options for postmetis are:
-help : Display this help information
-local : Work in current folder
-relative : Work with relative path
-sim= : Specify the .sim input data file
-auto : Default actions only
-visu : Post-processing for the last time step computed and mean flow variables if available
-mean : Post-processing for mean flow only
-probe : Post-processing for probe files only
-isis_mesh= : Specify FINE™/Marine flow solver mesh file (probe only)
-isis_face= : Specify FINE™/Marine flow solver faces file (probe only)
-isis_fsister= : Specify FINE™/Marine flow solver face sister pointers file (probe only)

This step is done automatically by " isis2cfview".

Starting from v2.3, - sim= can be omitted for batch scripting, even if it still works with -sim= option
as well. The designed behavior is the following:

1. Use the ".sim" file specified by the -sim= option when this option is given,
2. If -sim= option is not given, then check the existence of "Current_Folder.sim" file. If this
".sim" file exists, then use it. Otherwise, ask the user to give the ".sim" file interactively.

36.8 POST-PROCESSING TOOLS

36.8.1 extract_wall_surface_grid

This tool extracts the data from the wall surface grid from the wall_data.bin file. It can be used to
extract the friction force from the solid walls.

729 FINE™/Marine 7.1 User Guide


36.8.2 forces_by_section

This tool computes forces and moments by section on a body. The body marching is assumed to
be in the X-direction by default but one can change it using -cut=y or -cut=z arguments. The body
is then divided into N sections, from Xmin to Xmax (minimum and maximum X-coordinates
respectively) along X-direction, separated by a ΔX computed by the formula:

To avoid singularities, the first section will be computed at:

Two output files "forces_by_section.dat" and "moments_by_section.dat" are written as output.


They contain the total force and moment contribution from each section and their decomposition
in viscous and pressure components, along each direction. The force unit is N.m-1 and moment
unit N.m/m. The first column of the file gives the X-coordinate of the section.
The total force is the force over all the sections. It is then computed using the formula:

The "forces_by_section" tool can also be run separately on a particular body if several exist. To
do so, the argument -body= body identifier should be added when typing the command. The same
can be done on a sub-body, adding the argument -sb= sub-body identifier.
When the body is moving, the argument -body_ts = body index for traveling shot should be
specified in the command:
l if -body_ts=x is specified, the integer value x will be used as the body index for traveling shot.
l if -body_ts=x is not given, but -body=y is given, the integer value y will be used as the body
index for traveling shot.
if none of the two above arguments is given, "1" will be used as the body index for the traveling
shot.
The complete list of available arguments is:
-help: display tool information
-surf= : Specify name of wall forces file
-sim= : Specify the .sim input data file
-body= : Specify body index

730 FINE™/Marine 7.1 User Guide


-sb= : Specify sub-body index
-body_ts= : Specify body index for traveling shot
-cut=y : Cut with y=constant (to change the default x-direction into y-direction)
-cut=z : Cut with z=constant (to change the default x-direction into z-direction)
-ncut: Specify the number of cuts
-dof_ts= Specify the travelling shot option to define the output coordinate system (only DOF for
rotation are taken into account)
Possible values for dof_ts:
1,1,1,0,0,0 Earth frame
1,1,1,0,0,1 Carriage frame
1,1,1,1,1,1 Ship frame
- frame_ ts : Specify the frame for the traveling shot to define the output coordinate system
(=reference for or =primary, see "Reference Frame" (p. 223) for more information)
-m_ref_pt= : Specify the reference point for moment computation

The 'forces_ by_ section' tool can be launched only on the same platform as the one used for the
computation.

The following data files are required for the tool: "current_part_number.dat" (in case of a parallel
computation), "wall_surface_grid.bin" (in case of a parallel computation, see Wall Surface Grid for
more information), the file "wall_data.bin" or "wall_data.cpr" (found in the bxxx partition folders in
case of parallel computation, see Output Data for more information) and the computation ".sim" file.

The number of sections available in this tool is limited by the maximum cell size of the target body
or sub-body. Any cell can not be cut by more than one time. As big cells are usually can be placed on
the deck area, creating a sub-body without the deck will allow to increase the number of sections.

36.8.3 isis2cfview

This tool converts FINE™/Marine flow solver results to CFView™ format. Available options for
"isis2cfview" are:
-help : Display this help information

731 FINE™/Marine 7.1 User Guide


-local : Work in current folder
-relative : Work with relative path
-sim= : Specify the .sim input data file
-mesh= : Specify HEXPRESS™ mesh file
-bcs= : Specify HEXPRESS™ boundary condition file
-cfv= : Specify CFView™ project file
-auto : Default actions only
-mean : Post-processing for mean flow only
-probe : Post-processing for probe files only
-hex_mesh= : Specify HEXPRESS™ mesh file (probe only)
-isis_mesh= : Specify FINE™/Marine flow solver mesh file (probe only)
-isis_face= : Specify FINE™/Marine flow solver faces file (probe only)
-isis_fsister= : Specify FINE™/Marine flow solver face sister pointers file (probe only)
-average : Use simple average interpolation
-body_ts= : Identifier of the traveling shot body (0 in case there is no body for traveling shot)
-dof_ts= : Activated degrees of freedom for the traveling shot with format Tx,Ty,Tz,Rx,Ry,Rz
where 1 means active, 0 inactive.
-FORCE : force the creation of the CFView™ project file

The tool is launched automatically by the interface when CFView™ is launched through the interface
for computation without probes.

"isis2cfview" concatenates the results of a parallel computation (it actually calls if necessary
"postmetis" and "isis2hexpress" to ease the post-processing step). For this purpose, "isis2cfview"
is checking the current status of the computation chronology. The status is stored in the file called
status.dat
Starting from v2.2-2, a least squared interpolation based on linear base function is employed to
preserve linearity of the solution. However, as for any high order interpolation scheme, under-shot
and over-shot may happen. When such behavior is observed, "isis2cfview" switches back to
simple average except for the pressure field. Also, when the grid aspect ratio is too high (grid
aspect ratio > 50), simple average is used except for the pressure.
At the wall, the solution is interpolated using the value defined at the wall as well as the value
defined in the cell center position next to the wall. Hence, for low Reynolds number model,
velocity at the wall is not equal to zero.

732 FINE™/Marine 7.1 User Guide


When using wall function, as the velocity field is discontinuous, interpolated velocity field at the
wall is used.

If there is any strange behavior observed on the pressure field near the solid wall, especially at the
edge of a surface, this may due to the new unbounded interpolation. In this case, use "- average"
argument.

Starting from v2.3, - sim= can be omitted for batch scripting, even if it still works with -sim= option
as well. The designed behavior is the following:

1. Use the ".sim" file specified by the -sim= option when this option is given,
2. If -sim= option is not given, then check the existence of "Current_Folder.sim" file. If this
".sim" file exists, then use it. Otherwise, ask the user to give the ".sim" file interactively.

For users working in batch, an equivalent tool exists. It performs all the default operations
automatically (which means that no question are prompted to users). Its name is "isis2cfv_ no_
interactive" and should be launched from the computation folder when the computation is over.

To gain time, "isis2cfview" now is not calling "isis2hexpress" when it is not needed (no mesh
motion/deformation: no motion imposed, no Adaptive grid reginement applied, for instance). For
the reconstruction a .cfv file is created with the relative path to the HEXPRESS™ mesh:
"project_folder/_mesh/mesh_name.hex"
Since this, it is recommended to store the mesh always inside the "project_ folder/_ mesh"
directory, otherwise the path should be defined manually.

Use - keep_hex option to skip the "isis2hexpress" mesh conversion with the limitation that the
hexpress mesh needs to be found in the "project_name/_mesh" folder.

36.8.4 isis2cgns

This tool converts FINE™/Marine flow solver results to unstructured CGNS binary format
containing information about the mesh, surface and volume data. The data are node centred.
Available options are:

733 FINE™/Marine 7.1 User Guide


-help : Display this help information
-local : Work in current folder
-sim= : Specify the .sim input data file
-cgns= : Specify CGNS project file
-auto : Default actions only
-mean : Post-processing for mean flow only
-probe : Post-processing for probe files only
-isis_mesh= : Specify FINE™/Marine flow solver mesh file (probe only)
-isis_face= : Specify FINE™/Marine flow solver faces file (probe only)
-isis_fsister= : Specify FINE™/Marine flow solver face sister pointers file (probe only)
-body_ts= : Identifier of the traveling shot body (0 in case there is no body for traveling shot)
-dof_ts= : Activated degrees of freedom for the traveling shot (Tx Ty Tz Rx Ry Rz), 1 means
active, 0 inactive.
-average : Use simple average interpolation
"isis2cgns" concatenates the results of a parallel computation if necessary.

This tool uses the files "Hexa_ Cell_ Topology.bin" and "faces_ 4tecplot.cpr" generated by
"hexpress2isis" if the mesh has been generated by HEXPRESS™. For this purpose, the expert
parameter called thirdPartyPostProc_, should be set to "YES" in the interface.

36.8.5 isis2ensight

This tool provides the post-processing data in Ensight 6 binary format. Please use "postmetis" first
to concatenate the results of parallel computations.
As polyhedron element is not supported by Ensight 6, special face connectivity file ("faces_
4tecplot.cpr" for instance) needs to be generated during the mesh conversion step using the tool
"hexpress2isis". The data file "Hexa_ Cell_ Topology.bin" generated by "hexpress2isis" is
mandatory for "isis2ensight"and it must be located in the current folder. The data are node
centered.

734 FINE™/Marine 7.1 User Guide


Surface data and 2D data conversions are not available. However, there is a workaround which
consists in writing the solution data in Tecplot ascii data format, then use Ensight Tecplot data reader
to import them in.

This tool uses the files "Hexa_ Cell_ Topology.bin" and "faces_ 4tecplot.cpr" generated by
"hexpress2isis" if the mesh has been generated by HEXPRESS™. For this purpose, the expert
parameter called thirdPartyPostProc_, should be set to "YES" in the interface.

In case of grid refinement, please use "faces24tecplot" tool instead.

36.8.6 isis2fv

This tool provides the post-processing data in FieldView 11 binary format. Please use "postmetis"
first to concatenate the results of parallel computations.
It is possible to use polyhedron elements. Besides, both volume and surface data are supported.
Surface data are the exact surface data used in the computation except at the solid wall where the
value close to the wall is applied. The data are cell centred for the surfaces and node centred for
the volume.

2D data conversion is not available.

36.8.7 isis2hexpress

This tool converts FINE™/Marine flow solver mesh to HEXPRESS™ format in case of moving
grid. Available options are:
-help : Display this help information
-local : Work in current folder
-relative : Work with relative path
-sim= : Specify the .sim input data file
-mesh= : Specify HEXPRESS™ mesh file

735 FINE™/Marine 7.1 User Guide


-new_mesh= : Specify the new HEXPRESS™ mesh file
-isis_mesh= : Specify FINE™/Marine flow solver mesh file (probe only)
-isis_face= : Specify FINE™/Marine flow solver faces file (probe only)
-isis_fsister= : Specify FINE™/Marine flow solver face sister pointers file (probe only)
-body_ts= : Identifier of the traveling shot body (0 in case there is no body for traveling shot)
-dof_ts= : Activated degrees of freedom for the traveling shot (Tx Ty Tz Rx Ry Rz), 1 means
active, 0 inactive.

This step can is done automatically during " isis2cfview".

36.8.8 isis2hexpress_concat

This tool is used automatically by "isis2cfview" to reconstruct a ".hex" file in case of adaptive
grid refinement. But it can also be used to reconstruct a ".hex" file based on FINE™/Marine flow
solver mesh files only. It can be useful for users who want to reconstruct the final ".hex" even if
they have lost their original ".hex" files for instance. Available options are:
-help : Display this help information
-local : Work in current folder
-relative : Work with relative path
-sim= : Specify the .sim input data file
-mesh= : Specify HEXPRESS™ mesh file
-new_mesh= : Specify the new HEXPRESS™ mesh file
-isis_mesh= : Specify FINE™/Marine flow solver mesh file (probe only)
-isis_face= : Specify FINE™/Marine flow solver faces file (probe only)
-isis_fsister= : Specify FINE™/Marine flow solver face sister pointers file (probe only)
-body_ts= : Identifier of the traveling shot body (0 in case there is no body for traveling shot)
-dof_ts= : Activated degrees of freedom for the traveling shot (Tx Ty Tz Rx Ry Rz), 1 means
active, 0 inactive.

736 FINE™/Marine 7.1 User Guide


36.8.9 isis2tec

This tool is still present for backward compatibility purpose. Please check "isis2tec360" tool for the
newest version.

This tool provides the post-processing data in Tecplot 7 ASCII format. Please use "postmetis"
first to concatenate the results of parallel computations.
As polyhedron element is not supported by Tecplot 7, successful conversion is not always
ensured. Hence, a special face connectivity file ("faces_ 4tecplot.cpr" for example) has to be
generated during the mesh conversion step using "hexpress2isis".
"isis2tec" searches in the current folder a file called "Hexa_Cell_Topology.bin" generated by
"hexpress2isis". If this file is found, output post- processing data contains only hexahedron
elements. Is this file is not found, non-conform element is splitted into tetrahedron element.
Surface data and 2D data are supported. However, surface data are not exactly the surface data
employed in the computation, but the extrapolated value from inside the domain.

To create the files "faces_ 4tecplot.cpr" and "Hexa_ Cell_ Topology.bin" automatically, the expert
parameter called thirdPartyPostProc_, should be set to "YES" in the interface.

Starting from v2.2-2, a least squared interpolation based on linear base function is employed to
preserve linearity of the solution. However, as for any high order interpolation scheme, under-shot
and over-shot may happen. When such behavior is observed, "isis2tec" switches back to simple
average except for the pressure field. Also, when the grid aspect ratio is too high (grid aspect ratio
> 50), simple average is used except for the pressure.
At the wall, the solution is interpolated using the value defined at the wall as well as the value
defined in the cell center position next to the wall. Hence, for low Reynolds number model,
velocity at the wall is not equal to zero.
When using wall function, as the velocity field is discontinuous, interpolated velocity field at the
wall is used.

At the edge of the mesh, as numerical solution is not defined in the edge, extrapolation is used and the
result may be not correct. Hence, if one performs Pdyn=P+ρgz and visualize Pdyn, there can be some
kinks. This is not an interpolation problem but a boundary condition itself. To visualize the dynamic
pressure (Pdyn), it is better to output this quantity directly from the code.

737 FINE™/Marine 7.1 User Guide


36.8.10 isis2tec360

This tool provides the latest compatibility with Tecplot360 post-processing software.
This tools uses the FINE™/Marine flow solver mesh files (nodes and faces generated by
"hexpress2isis" or nodes and faces generated by the flow solver when the refinement is checked).
"isis2tec360" does not use a special connectivity file, as "faces_4tecplot.cpr" for example. And, it
is not necessary to check the expert parameter called thirdPartyPostProc_ in the interface.
The flow quantities in the flow solver are stored at the center of cells. "isis2tec360" used a least
squared interpolation to write the flow quantities at the nodes of the mesh. At the wall, the
solution is interpolated using the value defined at the wall as well as the value defined in the cell
center next to the wall. Hence, for low Reynolds number model, velocity at the wall is not equal
to zero.
"isis2tec360" write the data into Tecplot's binary format if the suffix of the files is ".plt" and in
Tecplot's ASCII format is the suffix of the files is ".dat". The volume and surface files can have a
different suffix.
Before to use "isis2tec360", please use "postmetis" first to concatenate the results of parallel
computations. Otherwise, please use the "-auto mode" (recommended). Here is the complete list
of arguments:
-help= : Display the help information
-local= : Work in current folder
-sim= : Specify the .sim input data file
-tec_vol= : Specify the Tecplot volume file
-tec_surf= : Specify the Tecplot surface file
-auto : Default actions only
-mean : Post-processing for mean flow only
-probe= : Post-processing for probe files only
-isis_mesh= : Specify FINE™/Marine flow solver mesh (probe only)
-isis_face= : Specify FINE™/Marine flow solver faces file (probe only)
-isis_fsister= : Specify FINE™/Marine flow solver face sister pointers file (probe only)
-average : Use simple average interpolation
-body_ts= : Identifier of the traveling shot body (0 in case there is no body for traveling shot)
-dof_ts= : Activated degrees of freedom for the traveling shot (Tx Ty Tz Rx Ry Rz), 1 means
active, 0 inactive.

738 FINE™/Marine 7.1 User Guide


To post- process the probes for unsteady computations, a script called "probes2tecplot360.py," is
available in the installation folder in "_data/Script/". This script creates a volume and surface Tecplot
files for each probe.

By default, launching "isis2tec360" with the option -auto provides the following outputs:
l velocity,
l pressure,
l Y+
l turbulence quantity variables.
To add other outputs "isis2tec360" should be used without the option -auto.

Wall shear stress is added in the list starting from the FINE™/Marine v5.1 release.

36.8.11 isis2vtk

This tool converts FINE™/Marine flow solver results in the VTK(Visualization ToolKit) Binary
Appended .vtu Format. VTK supports a wide variety of visualization algorithms including: scalar,
vector, tensor, texture, and volumetric methods; and advanced modeling techniques such as:
implicit modeling, polygon reduction, mesh smoothing, cutting, contouring, and Delaunay
triangulation.
The "-auto" mode is recommended to be applied for this tool. Below is the complete list of
arguments provided:
Available options
-help : Display this help information
-local : Work in current folder
-sim= : Specify the .sim input data file
-vtk_vol= : Specify the volume VTK file
-vtk_surf= : Specify the surface VTK file
-vtk_format= : Specify the file format (ASCII or BINARY)
-vtk_standard= : Specify the VTK standard (LEGACY or XML)
-local_vtm: Save the VTM files in the current folder in the case of XML
VTK standard

739 FINE™/Marine 7.1 User Guide


-auto: Default actions only
-mean: Post-processing for mean flow only
-probe: Post-processing for probe files only
-isis_mesh= : Specify ISIS mesh file (probe only)
-isis_face=: Specify ISIS faces file (probe only)
-isis_fsister=: Specify ISIS face sister pointers file (probe only)
-average: Use simple average interpolation
-body_ts=: Information about the body for the traveling shot
-dof_ts=: Activated dof for the traveling shot
-frame_ts=: Specify the frame for the traveling shot.The choice is reference ou primary.
Results of the conversion will be stored in the folder with the name "Vtk" inside of the
computation folder.

36.8.12 post_surface

Post-treatment of the surface probe files (for both serial and parallel computations) is done with
the tool "post_surface". This tool gives global surface files as output, in different possible formats.
Currently available formats are CGNS, Tecplot and STL. This tool is used during the automatic
reconstruction of an unsteady computation with surface probe. It can also be used manually to
reconstruct the "wall_data.cpr "file.

36.8.13 probes2cfview

probes2cfview is the reconstruction tool available in serial mode starting from v2.3-0 and in
parallel mode starting from v3.1-3. It allows to reconstruct an unsteady solution within CFView™
starting from all intermediately saved probes computed by the FINE™/Marine flow solver into
readable solution files for CFView™. The tool is automatically launched by GUI with the settings
defined by the user in the post-processing management window (see Post-Processing) but can be
also used in batch.

Parallel mode for probes reconstruction is available only in batch.

740 FINE™/Marine 7.1 User Guide


Requirement

FINE™/Marine should be installed and available through numeca_start script (it corresponds to
the default installation, see Installation Note for more information).

How to launch it on Windows

On Windows OS, the user should specify the full path of the tool:
Create a text file containing the command line and save it with extension ".bat". Copy it to the
computation folder where it needs to be used and double click on it to execute it. The "pause"
command can be added to keep the command line window open after execution showing any
error messages that may occur.
l Example content for .bat file to launch isis2cfview:
NUMECA_INSTALLATION_DIR\bin\isis64\isis2cfview.exe -print
pause
l Example of content for '.bat' file to launch probes2cfview:
python NUMECA_INSTALLATION_DIR\bin64\probes2cfview.py
pause

How to use it in batch?

The required settings are created by the interface when the button OK is pressed from the post-
processing window management. These settings are recorded in a file called
"reconstruction.input". This reconstruction file is stored in the directory of the corresponding
computation. Here is an example of the "reconstruction.input" file:
# Probe definition file
SIM FILE: /usr/local/project/project_computation_1/project_computation_1.sim (simulation file of
the computation)
HEX FILE: /usr/local/project/_mesh/mesh.hex (.hex file from the _mesh folder)
BCS FILE: /usr/local/project/project_ computation_ 1/project_ computation_ 1.bcs (the boundary
conditions file from the computation folder)
COMPUTATION: computation_1 (name of the computation)
COMPUTATION PATH: /usr/local/project/project_computation_1/ (path of the computation)
PROBE: VELOCITY
PROBE: MASS FRACTION

741 FINE™/Marine 7.1 User Guide


(the line "PROBE: ..." defines the probe to reconstruct. It should be taken from the following list
for volume probes: VELOCITY, MASS FRACTION, PRESSURE, HYDRODYNAMIC
PRESSURE, PRESSURE GRADIENT, VELOCITY, TURBULENT VISCOSITY,
TURBULENT DISSIPATION, TURBULENT KINETIC ENERGY, TURBULENT
FREQUENCY, CORRELATION R11, CORRELATION R12, CORRELATION R13,
CORRELATION R22, CORRELATION R23, CORRELATION R33, SECOND
INVARIANT, VORTICITY, HELICITY, COURANT NUMBER. For surface probe, the list
is: FREE SURFACE, CUT PLANE #, ISO-SURFACE # (# being the number of the surface),
WALL FORCES, WALL PROBE)
FORMAT: defines the format of the probe output with the given number.
Available formats:
0: CGNS (single precision)
1: CGNS (double precision)
2: STL
3: Tecplot
4: ISIS-CFD (native format of the solver)
SKIP INTERVAL: 1 (allows to skip the reconstruction for some probes in a sequence of interval:
"1" means that all probes are going to be reconstructed, "2" means that 1 probe over 2 will
reconstructed, etc...)
START PROBE: 1 (defines the first probe to be reconstructed)
FINISH PROBE: 100 (defines the last probe to be reconstructed)
PROBE NUMBER: 1 (possibility to have different probe sets, to be present but not used in this
current version)
MODE: VOLUME (defines the type of probe data: VOLUME or SURFACE)
TRAVELING SHOT BODY: 1 (body identifier - equal to zero if the body is not set)
TRAVELING SHOT MODE: 1 0 0 0 0 0 (define the traveling shot state: 0 not active, 1 active;
for Tx0 Ty0 Tz0 Rx0 Ry0 Rz0)

The script creates a log file, running from GUI or in batch. The default name of this file is
"reconstruction_script.log".

Arguments and "reconstruction.input" file:


By default the script looks for the "reconstruction.input" file in the current directory. But if the
script is not launched from the working directory, the argument –auto /usr/local/project/project_
computation_1/reconstruction.input, can be used to precise it.

742 FINE™/Marine 7.1 User Guide


In case the specified reconstruction.input file is still not found, the script looks for this file in the
current directory.

If this file is not found in the current directory, the script uses a manual mode to set parameters
and so questions will be prompted to the user to know the inputs described above.

To force the manual mode, option -manual can be used.

Option -last_probe_only allows to reconstruct only the last found volume or surface probe. The
question about the range of probes will not be asked in the interactive mode anymore.

How to use it in parallel?

To launch probes reconstruction in parallel the same probes2cfview tool should be used, but from
now on the hosts definition file and the launcher should be defined. Using the parallel option
decreases the time used for the reconstruction and will depend on the OS profile and the hardware
configuration. Please note, that in case of a machine network, performance of the parallel
reconstruction can also dependent on the speed of the connections within the network.
Steps to follow:
1. Create the machines file (for instance, "machines_ reconstruction.txt") in the computation
directory consisting machines host names that will be used for the probes reconstruction. File
should have the same structure as "machines.txt" file for parallel computation management.
Please see Launch FINE™/Marine flow solver in Parallel using Scripts for more details.
2. Launch the tool specifying machines file and the launcher type, for instance as follows:
probes2cfview -niversion marine# -print -machines machine_reconstruction.txt -launcher
openssh

If -niversion was not specified, the tool will define the version based on the directory structure of
the FINE™/Marine installation.

743 FINE™/Marine 7.1 User Guide


An argument -install_root allows to launch the reconstruction even if probes2cfview.py has been
copied out of the FINE™/Marine installation folder. In this case it is necessary to specify -install_
root NUMECA_MULTIVERSION_DIR -niversion marine#.

If no machines file was specified probes2cfview will be launched in a serial mode.

If no launcher type was specified probes2cfview will use nirsh as included in the
FINE™/Marine installation.

As long as OpenSSH is installed on machine and ssh public/private key authentication is


done, openssh launcher can be considered as the most reliable connection method, while
nirsh type is selected as a default type since it is already provided with the installation (.../bin
where the .../ is the NUMECA Software installation directory); same for the mpi with less
control opportunities on it.

It should be guaranteed that the selected launcher can perform the paswordless connection: for rsh
it means setting up ''.rhosts''/''rhosts.txt'' (UNIX OS/Windows OS); for ssh - setting up the public/
private keys. Details on machine connection settings and troubleshooting can be found in the Task
Manager chapter.

3. Information required for the reconstruction will be displayed in the shell and it is the same for
the serial and parallel modes. Input information will be stored into the "reconstruction.input"
file of which the description is given above here.
It is possible to stop the parallel reconstruction before it's finished as for the serial mode by
creating the file "stop_postprocessing.now" inside the computation folder. This file will be
deleted at the end of the procedure automatically.

Currently cluster systems are not supported for the parallel mode of probes reconstruction.

744 FINE™/Marine 7.1 User Guide


36.8.14 Wake_flow_pp

A. Description

This tool is essentially dedicated to be used as post-processing data into CFView™ but also for
potential codes for extra computations using the wake flow. It allows to interpolate the
computational result to a propeller inflow plane in the wake.

When applied to a configuration with half domain, it is assumed that the y-mirror plane is y=0.

Output data are available in three different formats:


1. "wake_ flow.txt": the components of the velocity relative to the ship displacement in the
cylindrical coordinates system based on the propeller axis and center. All quantities are
normalized with ship speed and propeller diameter in form of tables.
l Axial velocity component is the projection of the velocity vector to the normal direction of
the wake plane.
l Tangential velocity component is positive in counter clockwise direction.
l Radial velocity component is positive in outward direction.
2. "wake_ flow.g", "wake_ flow.f" and "wake_ flow.name": the components of the velocity
relative to the ship displacement in the wake plane in Cartesian coordinates system in plot3D
format data that can be imported within CFView™. The following data will be available:
l "Va": axial component of the velocity relative to the ship displacement and propeller axis.
l "Vtheta": tangential component of the velocity relative to the ship displacement and
propeller axis.
l "Vr": radial component of the velocity relative to the ship displacement and propeller axis.
l "Vxyz": velocity components in Cartesian coordinates of the velocity relative to the ship
displacement.
3. "wake_flow.dat": the velocity components in the wake plane in the Cartesian coordinates
system that can be imported within Tecplot

See CFView™ User Manual for details about Plot3D format import.

745 FINE™/Marine 7.1 User Guide


B. How To Use it?

Where to find it

The tool can be directly launched from CFView™ interface under the Macros menu. In that case,
you can refer to Wake Flow Tool.
It can also launched in batch as described here below.

Launching the tool

Computational results (radial, tangential and azimuthal velocities) will be calculated in a


predefined circular cut, typically in a propeller wake. It can be used in any project, with or
without actuator disks defined. This tool uses non-uniform mesh to add more points in desired
locations.
Starting the tool in batch with the " --help" argument will provide the description of available
options as follows:
-help : Display this help information
-local : Work in current folder
-relative : Work with relative path
-sim= : Specify the .sim input data file
-auto : Default actions only
-D= : Specify propeller diameter
-V= : Specify velocity for normalization
-cc : Counter clockwise is positive
-s6 : Starting point at 6 O'clock
-h= : Specify mesh stretching factor (0..1)
-disk= : Specify propeller index
-cpp= : Specify center of propeller plane
-wnv= : Specify wake normal vector
-rin= : Specify inner radius
-rout= : Specify outer radius
-dist= : Specify distance to propeller plane
-nr= : Number of point in radial direction
-nt= : Number of point in tangential direction
-rp1= : Specify the first refinement location (0-12 O'clock)

746 FINE™/Marine 7.1 User Guide


-rp2= : Specify the second refinement location (0-12 O'clock)
-sym : Apply symmetric refinement
The following functionality added:
l It is possible to specify the positive tangential direction (clockwise or counter clockwise). This
can be changed to counter-clockwise by using the '-cc' option.
Default: clockwise
l It is possible to specify the starting point of the actuator disk at 6 o'clock. This is done by using
the '-s6' option.
Default: 12 o'clock position
l It is possible to use a non-uniform mesh in the circumferential direction, defining the stretching
factor with the '-h=xxx' option. E.g., with "-h=0.5", the mesh size at the starting point in the
circumferential direction will have half the size of the average size.
l It is possible to specify 1 or 2 points around which refinement will be applied by using the '-
rp1=xxx'and '-rp2=xxx' arguments.
l To make refinements going the same way both directions from the specified location the '-sym'
argument can be used.
Example 1: results obtained with the "wake_flow_pp" tool represented using the CFView GUI
with mesh concentration around one and two points applying different stretching factors

FIGURE 36.8
Arguments 1: -rp1=0 -h=0

747 FINE™/Marine 7.1 User Guide


FIGURE 36.9
Arguments 2: -rp1=1 -rp2=10 -h=0.1

FIGURE 36.10
Arguments 3: -rp1=3 -rp2=6 -h=0.4

l It is possible to output the data in preferred format using the user-defined dynamic libraries.
E.g., the following Fortran code will output an *.AWESOME file:

748 FINE™/Marine 7.1 User Guide


subroutine output_wake_flow(nr,nt,xo,yo,zo,uo,vo,wo,u_a,u_t,u_r,r_1d,angle_1d,D_
propeller,xd,yd,zd,v_ship)
implicit double precision(a-h,o-z)
dimension xo(nr,nt),yo(nr,nt),zo(nr,nt),&
uo(nr,nt),vo(nr,nt),wo(nr,nt),&
u_a(nr,nt),u_t(nr,nt),u_r(nr,nt)
dimension r_1d(*),angle_1d(*)

iunit=20
open(UNIT=iunit,FILE='wake_flow.AWESOME',STATUS='unknown')
write(iunit,*)'Zone I=',nt,'J=',nr

do i=1,nr
do j = 1,nr
write(iunit,'(9e15.6)')&
xo(i,j),yo(i,j),zo(i,j),&
uo(i,j),vo(i,j),wo(i,j),&
u_a(i,j),u_t(i,j),u_r(i,j)
end do
end do

close(iunit)

end subroutine output_wake_flow

Arguments of this user defined program is described below:


nr: Number of points in radial direction (Integer).
nt: Number of points in tangential direction (Integer).
xo,yo,zo: Double precision array. Cartesian coordinates of the wake flow plane (Double precision
array).
uo,vo,wo: Cartesian velocity field (2D array).
u_a,u_t,u_r: Normalized cylindrical velocity field (2D array).
r_1d: Normalized mesh distribution in radial direction (2D array).

749 FINE™/Marine 7.1 User Guide


angle_1d: Angle distribution in tangential direction (0-360°) (2D array).
D_propeller: Propeller diameter used for normalization (2D array).
xd,yd,zd: Center of wake flow plane (2D array).
v_ship: Ship velocity used for normalization (2D array).

All double precision arrays except r_1d and angle_1d are 2D arrays with ( nr,nt) as dimension. All
arguments are of (Int) type.

To use this dynamic library copy the text into a '*.f90' file and modify it to have the desired
output. You will find the step by step procedure on how to compile it in the Procedure section.
Once you have the compiled library "isis_dynamic_lib.so", copy it into the computation directory.
When launching the wake flow tool from a shell or from the CFView GUI the library will be
detected and the user-defined output ('wake_flow.AWESOME' in this example) will be written.
The "Wake_flow_pp" tool imports the necessary data from the '.sim' file:
1. Imposing the default values by using the "-auto" option:
In this conditions, the ship's speed is used as a referenced velocity and the propeller diameter is
set to twice the outer radius. For a Fixed Body computation, the specified in the '.sim' file
reference velocity will be used for normalization.

Propeller diameter and ship speed can be specified by the "- D=xxx " and "- V=xxx " options
respectively.

E.g., to obtain the wake flow without any normalization, the User can launch the "wake_flow_
pp" tool with the "-D=1 -V=1" parameters set. Other data will be imported directly from the
'.sim' file.
2. If no actuator disk is defined in the '.sim' file, the tool will ask for the following input:
l Center of the wake flow plan: X, Y and Z coordinates of the actuator disk center. It will be
the center of the wake flow plane;
l Inner and outer radius of the propeller: inner and outer radius of the wake flow plane;
l Propeller diameter
l Normal vector of the wake flow plan (pointed towards the wake): X, Y and Z components
of the normal vector of the wake flow plane;
l Distance of the wake flow plane to the propeller: distance between the center of the
actuator disk and the wake flow plane;

750 FINE™/Marine 7.1 User Guide


l Number of points in radial direction
l Number of points in tangential direction

These two parameters (Number of points in radial and tangential directions) define the
cylindrical mesh that will be used to interpolate and represent the results. Their default values
correspond to the minimum mesh size recommended in HEXPRESS™ for an actuator disk.

l Reference velocity used for normalization


3. If actuator disk is defined in the '.sim' file, only required parameters are:
l Propeller diameter
l Reference velocity
4. The case of multiple actuator disks:
l Actuator disk index (the User can also use the "- disk=xxx" option)
l Propeller diameter
l Reference velocity

Propeller diameter and the reference velocity are used in this case for normalization only.

"PROPELLER CODE" option can be also specified in the '.sim' file (see the "Propeller code
coupling" (p. 306) section for details).
For this case, the wake flow will be interpolated in front of the propeller at the distance
prescribed in the '.sim' file. Otherwise, the wake flow is interpolated at the propeller plane.

ActuatorDiskInternMeshDim_ expert parameter will control the virtual mesh dimensions in


the axial, radial and tangential directions (25 35 97 by default)

36.8.15 Reconstruction script: FM_UCR_v2.2-3.py

This tool's description is still present for backward compatibility. Since the post- processing
management has been completely revisited, a new tool has been created, called "probes2cfview".

751 FINE™/Marine 7.1 User Guide


Introduction

This python script, stored in "_ data/cfview/" folder from the installation directory, allows to
reconstruct an unsteady solution, readable within CFView™ starting from all intermediately
saved probes computed by the FINE™/Marine flow solver into readable solution files for
CFView™. The key features are listed below:
l Easy reconstruction launched with few inputs,
l All available probes from FINE™/Marine v2 are selectable for reconstruction,
l The computation can be done in sequential or parallel mode, with fixed, imposed or solved
motion, as well as grid adaptation,
l The user can choose to work with the "-local" option if required to work locally.

Limitations

l All the probes should be saved at the same interval (both iteration and time intervals are
supported),
l "Time Label" in CFView™ will give you the index of the probes list and not the actual value
of the time step,
l A restart in a different computation cannot be postprocessed. As a possible workaround, one
can restart in the same computation folder (the duplicate option can also used to keep an
intermediate backup).

Requirements

l Python v2.4 or higher should be installed on the LINUX or Windows platform.


l FINE™/Marine v2 should be installed and available through numeca_ start script (it
corresponds to the default installation, see Installation Note for more information).

How to use it?

l Copy the script FM_UCR_v2.2-3.py into the computation folder,


l Launch the script with the following command: "python FM_UCR_v2.2-3.py" (one should
specify the whole path of the python executable on Windows platforms)
l Follow the instructions given by the tool.

By pressing <Enter>, the default choice is selected.

752 FINE™/Marine 7.1 User Guide


...
> Specify computation path:
1: Path: /user/local/project/project_computation_1/ (default)
2: Other
Enter choice:
Path is set to: /user/local/project/project_computation_1/
The path is set to the current folder by default but it can also be set to any location.
> Do you want to append -local option? (y|n)(n default):
The "-local" option can be added to the post-processing tools. This option allows to use all the
files present in the current folder only. Default is no.
Selected sim file: /user/local/project/project_computation_1/todel_computation_1.sim
Selected mesh file: /user/local/project/_mesh/mesh.hex
Selected boundary condition file: /user/local/project/_mesh/mesh.bcs
The script prints the selected files by default.
Are these entries correct? (y|n)(y default):
One can specify other file paths if needed.
> A serial computation has been detected.
The script detects if the computation has been performed in a serial or parallel mode.
> Available Probes to convert:
MESH probe saved with fixed time interval
MASS FRACTION probe saved with fixed time interval
The script detects which probes should be post-processed and check their consistency (time
interval). No interaction with the user is possible.
> The mesh is deformed: using mesh probe saved by user.
The script checks if the computation includes mesh deformation or grid adaptation. No
interaction with the user is possible.
-----------------------------------------------------------------------------
START OF CONSTRUCTION
-----------------------------------------------------------------------------
> 10 probes found
In this example, the script has found 10 intermediate probes.
> Conversion started...
> PROGRAM ENDED

753 FINE™/Marine 7.1 User Guide


The script has been successfully performed. Open CFView™, click on the partial loader ("Solid
Data" icon) and go to the simulation directory. Look for the file "Unsteady_simulationname.cfv"
(no time index) and open it to see the unsteady results. Please read the CFView™ User Manual
to know more about unsteady data management.

754 FINE™/Marine 7.1 User Guide


© NUMECA International, all rights reserved
EN201804031701

You might also like