0% found this document useful (0 votes)
122 views1,041 pages

FINEMarine User Guide

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
0% found this document useful (0 votes)
122 views1,041 pages

FINEMarine User Guide

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/ 1041

USER GUIDE

Fine™ Marine 12.1

www.cadence.com
CONTENTS
CHAPTER 1. GETTING STARTED
1.1 Introduction 14
1.2 How To Use This Manual 16
1.3 First Time Use 18
1.3.1 Basic Installation 18
1.3.2 Advanced Graphics Options 18
A. Graphics Driver 18
B. Background Color 19
1.3.3 How to start the Fine Marine Interface 20
1.3.4 How to enable Python environments for Fine Marine on cloud containers 20
1.4 Required Licenses 20

CHAPTER 2. INTERFACE
2.1 Project Selection 25
2.1.1 Create New Project 25
2.1.2 Open Existing Project 26
2.2 Main Menu Bar 27
2.2.1 Project Menu 27
2.2.2 Mesh Menu 32
2.2.3 Solver Menu 34
2.2.4 Plugins 35
A. How to activate them 35
2.3 Icon Bar 36
2.4 Computations Management 41
2.5 Graphical Management 44
2.5.1 Project Parameters 44
2.5.2 View Area 44
2.5.3 Mesh Information 55
2.5.4 Graphics Area 55
2.5.5 Viewing Buttons 56
2.6 File Chooser 61

CHAPTER 3. C-WIZARD
3.1 Resistance application 65
3.2 Seakeeping application 93
3.3 Open water application 117
3.4 Planing regime application 134
3.5 Refinement dictionary 162
3.6 Launching C-Wizard in batch mode 166
3.7 C-Wizard computation matrix 169
3.8 Extended applications 177
3.9 Grid convergence study 195

2 Fine™ Marine 12.1 User Guide


CHAPTER 4. DYNAMIC VPP
4.1 Dynamic VPP workflow 214
4.1.1 General workflow 214
4.1.2 Workflow for restarts 217
4.1.3 Convergence check methodology 217
4.2 Dynamic VPP GUI and parameters 218
4.2.1 Case data 218
4.2.2 Ship data 219
4.2.3 Sails data 220
4.2.4 Windage data 221
4.2.5 Polars 222
4.2.6 VPP parameters 222
4.2.7 Advanced 224

CHAPTER 5. SELF-PROPULSION
5.1 Introduction 226
5.2 Computation procedures 227
5.3 Input 233
5.4 Output 237
5.5 Recommendations 239
5.5.1 Best practices 239
5.5.2 Self-propulsion plug-in 239

CHAPTER 6. GENERAL PARAMETERS


6.1 Unsteady Computation Interface 243
6.2 Best Practice on Time Accurate Computations 243

CHAPTER 7. FLOW MODEL


7.1 Mathematical Model 248
7.1.1 Laminar Navier-Stokes 248
7.1.2 Turbulent Navier-Stokes 248
7.1.3 Best Practice for Turbulence Modeling 249
A. Introduction to Turbulence 249
B. First Step: Choosing a Turbulence Model 249
C. Second Step: Generating an Appropriate Grid 250
D. Best practice for DES models 254
E. How about turbulence modeling when the Euler type of equations are to be solved? 256
7.2 Gravity Intensity 257
7.3 Reynolds and Froude Numbers 257

CHAPTER 8. FLUID MODEL


8.1 Mono-Fluid Project 260
8.2 Multi-Fluid Project 261
8.3 Passive scalar 263

3 Fine™ Marine 12.1 User Guide


CHAPTER 9. BOUNDARY CONDITIONS
9.1 Solid Wall Boundary Condition 268
9.2 External Condition 276
9.3 Mirror Condition 301
9.4 Non Conformal Interface 302
9.5 Periodic Condition 302

CHAPTER 10. BODY DEFINITION


10.1 Definition 310
10.2 Identifier 311
10.3 Group 312

CHAPTER 11. BODY MOTION


11.1 Coordinate Frame 316
11.2 Degrees of Freedom 319
11.2.1 Fixed Motion type 320
11.2.2 Imposed Motion type 322
11.2.3 Solved Motion type 338
A. Quasi-Static Approach 339
B. Dynamic Parameters 344
11.3 Initial conditions 358
11.4 Multibody definition 359
11.5 Virtual body 371
11.6 Frame body 372

CHAPTER 12. MESH MANAGEMENT


12.1 Multidomain definition 377
12.2 Sliding Patch Motion 378
12.3 Domain Mesh Management 382
12.3.1 Rotating frame method 386
12.3.2 Boundary conditions for grid deformation 387
12.4 Independent domain motion 389

CHAPTER 13. INITIAL SOLUTION


13.1 Uniform Values 393
13.2 Restart from a Previous Computation 397
13.2.1 From the same project 397
13.2.2 From a different project (grid-to-grid interpolation needed) 398
A. Best practices 400
13.2.3 Files required to perform a restart 404

CHAPTER 14. ACTUATOR DISK


14.1 Definition 407
14.1.1 Global parameters 408

4 Fine™ Marine 12.1 User Guide


14.2 Properties 416
14.3 Best Practice on Actuator Disk Capabilities 419
14.3.1 How to Set up the Parameters 419
14.3.2 How to Manage Computations with Actuator Disk 420
14.3.3 Computation with Cardan angles 421
14.3.4 How to rotate the actuator disk during the computation 421
14.3.5 Important remarks 421
14.4 Basic Equations 422
14.5 User-defined force distribution (ad_forces.f90) 423
14.5.1 Fortran code 426
A. Main variables 426
B. Handling multiple actuator disks 427
14.5.2 Understanding the output in the .std file 428
14.5.3 Compilation 429
14.6 Propeller code coupling (ad_propeller_code.f90) 429
14.6.1 Definitions 429
A. Definition of the cylindrical grid 430
B. Force definition 430
C. Propeller axis alignment 432
D. Extension to multiple propellers 433
14.6.2 Use cases 433
A. Self-propulsion computations 434
14.6.3 Fortran code 434
A. Code variables 435
B. Code skeleton 436
C. Including itnl and itt in the propeller_code.f90 437
D. Code variables 438
E. Code skeleton 440
14.6.4 Understanding the output in the .std file 445
14.6.5 Compilation 446

CHAPTER 15. LINES


15.1 Mooring 448
15.1.1 General Parameters 448
15.1.2 Special Characteristics 449
15.1.3 Computation with Cardan angles 451
15.1.4 Forces Definition 451
15.2 Tugging 452
15.2.1 General Parameters 452
15.2.2 Special Characteristics 453
15.2.3 Computation with Cardan angles 454
15.2.4 Forces Definition 454
15.3 Catenary approach using the Catway module 455
15.3.1 General Parameters 456
15.3.2 Special characteristics 457
15.3.3 Forces definition 461
15.3.4 Communication between the solvers 461

5 Fine™ Marine 12.1 User Guide


15.3.5 Best Practices 462

CHAPTER 16. CAVITATION


16.1 Parameters 465
16.1.1 Introduction 465
16.1.2 Parameters 465
A. Fluid model 466
B. Flow properties 467
C. Cavitation parameter 467
D. Cavitation models 469
16.2 Best practices 470
16.2.1 Parameters 470
16.2.2 Recommendations 473

CHAPTER 17. TEMPERATURE


17.1 Introduction 478
17.2 Parameters 479
17.3 Best practices 482
17.3.1 Workflow 482
17.3.2 Inputs 482
17.3.3 Advices 482

CHAPTER 18. UNCERTAINTY QUANTIFICATION


18.1 Parameters 486
18.2 Results 492
18.3 Report file 497
18.4 Recommendations 498

CHAPTER 19. INTERNAL WAVE GENERATOR

CHAPTER 20. WAVE DAMPING

CHAPTER 21. MODAL APPROACH


21.1 Parameters 516
21.2 Structure file 521
21.3 Outputs 523

CHAPTER 22. LAMINAR TRANSITION MODEL


22.1 Available models 526
22.2 Procedure 527
22.3 Best practices 535

6 Fine™ Marine 12.1 User Guide


CHAPTER 23. NUMERICAL MODELS
23.1 Numerical Schemes 540
23.2 Under-Relaxation Parameters 543
23.3 Additional parameters 544

CHAPTER 24. ADAPTIVE GRID REFINEMENT


24.1 Introduction 547
24.2 Refinement Criteria 549
24.2.1 Surface capturing criteria 553
24.2.2 Criteria based on second spatial derivatives 557
24.2.3 Combined criteria 561
24.2.4 Gradient criterion 567
24.2.5 Overset continuity only criterion 567
24.2.6 Systematic refinement criteria 570
24.3 Grid Quality 573
24.4 Limiting Box 577
24.5 Refinement Control 582
24.6 Best practices 587
24.6.1 Free surface criterion 587
24.6.2 Hessian criterion 589
24.6.3 Free surface + pressure Hessian criterion 592
24.6.4 Gradient criterion 593
24.6.5 Systematic refinement criteria 594
24.6.6 Remarks in case of Restarts 598
24.6.7 Analysis of the refinements 598

CHAPTER 25. OVERSET GRID MANAGEMENT


25.1 Introduction 603
25.1.1 General recommendations 606
25.2 GUI and Parameters 607
25.3 Best practices 610
25.4 Examples 616

CHAPTER 26. PROJECTION


26.1 Workflow 622
26.2 Projection Strategy 622
26.3 Examples 623
26.4 General Parameters 624
26.5 Expert Parameters 624

CHAPTER 27. CONTROL VARIABLES


27.1 General Parameters 626
27.2 List of Available Time Laws 635
27.3 Sub-cycling Acceleration 642

7 Fine™ Marine 12.1 User Guide


27.4 Expert Parameters 646

CHAPTER 28. OUTPUT


28.1 Automatically computed variables 652
28.2 Output 653
28.2.1 Motion and Force Variables 653
28.2.2 Probe Variables 658
A. Surface Probes 660
B. Volume Probes 666
C. Specific point probes 668
28.2.3 Optional Output Variables 672
28.2.4 Mean Flow Variables 675
28.3 Backups 677

CHAPTER 29. MONITORING AND LAUNCHING MODE


29.1 Launching Mode 680
29.2 Computation End 682
29.3 Monitoring 683
29.3.1 Residual file 685
29.3.2 Display options and Units 686
29.3.3 Structure of bodies 687
29.3.4 Quantities to display 688

CHAPTER 30. TASK MANAGER


30.1 Getting Started 700
30.2 The Task Manager Interface 704
30.2.1 Hosts Definition 704
30.2.2 Tasks Definition 706
30.3 Parallel Computations 710
30.3.1 Management of Inter-block Communication 711
30.3.2 How to Run a Parallel Computation through the Interface 712
A. Direct Submission 712
B. Queuing System 712
30.3.3 How to run simulations on a remote machine? 716
A. Introduction 716
B. Project preparation on local Windows machine 717
C. Transfer the files to the cluster 717
D. Preprocessing 718
E. Launching the computation 718
F. Reconstruction 718
G. Files to recover on the local Windows machine 720
30.3.4 Concept to Run a Parallel Computation in Batch Mode 720
30.3.5 Customized choice of MPI version 723
30.3.6 Troubleshooting 725
30.3.7 Limitations 726

8 Fine™ Marine 12.1 User Guide


30.4 Task Management Using Scripts 726
30.4.1 Launch Hexpress using Scripts 727
30.4.2 Launch Pre-Processing Step using Scripts 727
30.4.3 Launch Fine Marine flow solver in Sequential mode using Scripts 728
30.4.4 Launch Fine Marine flow solver in Parallel using Scripts 729
30.4.5 Launch Post-Processing Step using Scripts 735
30.4.6 Launch Cfview Using Scripts 735

CHAPTER 31. POST-PROCESSING


31.1 Open the last saved result 739
31.2 Open unsteady results 740
31.3 Traveling Shot 744
31.4 Results Analysis 746
31.4.1 Requirements 747
31.4.2 Application selection 747
31.4.3 Specific quantities 752
31.4.4 Analysis options 757
31.4.5 plot options 760
31.4.6 Report folder structure 762

CHAPTER 32. FILE FORMATS


32.1 Files Produced by Hexpress 767
32.2 Files Produced by Fine Marine 767
32.3 Files Produced by the Fine Marine flow solver 772
32.4 Preference file for the windows sizing 783
32.5 External user input file: stop.now 784
32.6 Triangulated surface file 784
32.7 Wall Surface Data Description 785
32.7.1 Wall Surface Grid 786
32.7.2 Output Data 788
32.7.3 How to extract the data 790
32.8 Resource Files 790

CHAPTER 33. USER-DEFINED PROGRAMS


33.1 Flow Field Initialization Program 792
33.1.1 Introduction 792
33.1.2 Workflow 792
33.1.3 Examples 797
33.2 Dynamic libraries 799
33.2.1 Custom External efforts 800
33.2.2 Kinematic control 801
33.2.3 Zig-zag maneuver 801
33.2.4 Computation control 804
33.2.5 Momentum equation source term definition 804
A. Force application 804

9 Fine™ Marine 12.1 User Guide


B. Writing to the .std file 805
C. Call frequency 805
33.2.6 User-defined wall function 807
A. User_Defined_DLL_WF.f90 808
B. User_Defined_DLL_WF_k.f90 809
33.2.7 Unsteady boundary condition 810
33.2.8 Synthetic jet control 811
33.2.9 Convergence checker 812
33.2.10 Porous media 814
33.3 Procedure 816
33.4 Examples 823

CHAPTER 34. PYTHON & PLUGINS


34.1 Macro Commands 827
34.1.1 Project Commands 827
34.1.2 Computation Management 828
34.1.3 Job management 830
34.1.4 Domain Management 835
34.1.5 General Parameters 835
34.1.6 Fluid Model 835
34.1.7 Flow Model 837
34.1.8 Boundary Conditions 837
34.1.9 BCPatch Class 846
34.1.10 Body Definition 847
34.1.11 Body Motion 848
34.1.12 Mesh Management Boundary Conditions 857
34.1.13 Initial Solution 859
34.1.14 Actuator Disks 860
34.1.15 Mooring 862
34.1.16 Tugging 863
34.1.17 Catenary approach 864
34.1.18 Cavitation 866
34.1.19 Temperature model 868
34.1.20 Uncertainty Quantification 869
34.1.21 Internal wave generator 875
34.1.22 Wave damping 876
34.1.23 Numerical Model Parameters 877
34.1.24 Adaptive Grid Refinement Parameters 881
34.1.25 Overset grid management 886
34.1.26 Projection 887
34.1.27 Modal approach 887
34.1.28 Transition model 894
34.1.29 Results Analysis 894
34.1.30 Outputs 902
34.1.31 Control Variables 908
34.2 Dialog Box Creation 914
34.2.1 Classes 915

10 Fine™ Marine 12.1 User Guide


34.2.2 Additional commands for all widgets 919
34.2.3 Additional commands for container widgets 920
34.2.4 Example: Z-constant internal surface 920

CHAPTER 35. LIST OF EXPERT PARAMETERS


35.1 Actuator Disk 924
35.2 Catenary approach 924
35.3 Adaptive Grid Refinement 924
35.4 Sliding grids 930
35.5 Computation Control 931
35.6 Impose Velocity Ramp at Far Field 932
35.7 Information shown in the Task Manager (written in .std file) 933
35.8 Mesh Deformation Technique 935
35.9 Numerical Corrections 937
35.10 Coupling Parameters 939
35.11 Multi-fluid Smoothing 940
35.12 Output Data Management 941
35.13 Projection 944
35.14 Specific Numerical Parameters 945
35.15 Regular and Irregular waves 950
35.16 Modal approach 953
35.17 Temperature and solutal models 953
35.18 Overset grids 954
35.19 Roughness 954

CHAPTER 36. EXTERNAL TOOLS


36.1 Export from Rhinoceros® 957
36.1.1 Installation 958
36.1.2 Export STL only 959
A. General requirements 960
B. Patch naming 960
C. Export and use 963
D. Input file 964
E. References 966
F. Export for hull 966
G. Export for propeller 970
H. Export hull and propeller 973
36.1.3 Export and open Hexpress 979
36.1.4 Export and launch C-Wizard 980
36.1.5 Geometry analysis 981
36.2 Simulation Setup 982
36.2.1 Domhydro 982
A. Assumptions 982
B. Modes Description 983
C. How to use the tool? 986
D. How to launch the tool? 987

11 Fine™ Marine 12.1 User Guide


E. Examples 990
36.2.2 setup_infos 993
36.2.3 setup_info_hydrostatic 993
36.2.4 draft 994
36.2.5 setup_for_wave_generation 994
36.2.6 WaveReg_FSD 994
36.3 Pre-processing Tools 998
36.4 Boundary Conditions Manipulation 1000
36.5 Mesh Manipulations 1000
36.6 Conversions 1002
36.7 Mesh Partitioning 1003
36.8 Post-processing Tools 1006
36.8.1 eff_change_frame.py 1006
36.8.2 extract_wall_surface_grid 1007
36.8.3 forces_by_section 1007
36.8.4 FM_irregularWaveSpectralComparison.py 1010
36.8.5 FM_dampingCoefficients.py 1011
36.8.6 isis2cfview 1015
36.8.7 isis2cgns 1017
36.8.8 isis2ensight 1018
36.8.9 isis2fv 1019
36.8.10 isis2hexpress 1019
36.8.11 isis2hexpress_concat 1020
36.8.12 isis2tec 1020
36.8.13 isis2tec360 1021
36.8.14 isis2vtk 1023
36.8.15 post_surface 1024
36.8.16 post_node_modal_approach 1024
36.8.17 probes2cfview 1026
36.8.18 probes2tec360 1030
36.8.19 Wake_flow_pp 1031
A. Description 1031
B. How To Use it? 1032
36.8.20 Reconstruction script: FM_UCR_v2.2-3.py 1038

12 Fine™ Marine 12.1 User Guide


CHAPTER 1.

GETTING STARTED

Welcome to the Fine Marine's Guide, a presentation of this 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 14
1.2 How To Use This Manual 16
1.3 First Time Use 18
1.4 Required Licenses 20

13 Fine™ Marine 12.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.

14 Fine™ Marine 12.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).

15 Fine™ Marine 12.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. 406),

16 Fine™ Marine 12.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.

17 Fine™ Marine 12.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 thatFine 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" (p. 20).

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

18 Fine™ Marine 12.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/FineMarine121 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.

19 Fine™ Marine 12.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" (p. 18) section and where # stands for the release version number (i.e. 41 for
instance).

1.3.4 How to enable Python environments for Fine Marine on


cloud containers

On Linux-based cloud containers where no separate python versions are installed, the Python
package included in Fine Marine can be used. User-defined modules can simply be placed
somewhere on the disk and then used with the Python 2.7 environment from Fine Marine. The
PYTHONPATH variable should point to the location. If a single, or multiple Python installations
are available, it is better to point the PATH to the standalone Python installation, as this avoids
updating the PATH variable after each new Fine Marine installation. The following lines should
be added in the .bashrc file in order to use the included Python distribution with user-defined
modules:
export PATH=/home/hpcuser/NUMECA/finemarine111/LINUX/_
python/bin/:/home/hpcuser/NUMECA/finemarine111/LINUX/_ mpi/_
ompi4.1.4/bin:${PATH}
export PYTHONPATH=$PYTHONPATH:/home/hpcuser/<path_to_module_location>

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:

20 Fine™ Marine 12.1 User Guide


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)
l Coupling with Optimization suite (Projection feature),
l Compatibility with dynamic libraries,
l Coupling with BEM propeller code for actuator disk,

Additional Licenses

Within Fine Marine, the following supported features are available but require an upgrade or a
separate license:
l CATIA v5 import (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 Non Deterministic module for the uncertainty quantification features.
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 Design3d,
Autoblade User Manuals),
l Fine Open (Flow INtegrated Environment using unstructured hexahedral mesh technology,
see Fine Open User Manuals).

21 Fine™ Marine 12.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
"Preference file for the windows sizing" (p. 783)
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.

22 Fine™ Marine 12.1 User Guide


FIGURE 2.1
Fine Marine Interface

23 Fine™ Marine 12.1 User Guide


FIGURE 2.2
Complete overview of the Fine Marine interface

In this section
2.1 Project Selection 25
2.2 Main Menu Bar 27
2.3 Icon Bar 36
2.4 Computations Management 41
2.5 Graphical Management 44
2.6 File Chooser 61

24 Fine™ Marine 12.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

25 Fine™ Marine 12.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:

26 Fine™ Marine 12.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.

27 Fine™ Marine 12.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.

28 Fine™ Marine 12.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.

29 Fine™ Marine 12.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 ).

30 Fine™ Marine 12.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.

31 Fine™ Marine 12.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 area of the Fine
Marine window.

32 Fine™ Marine 12.1 User Guide


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.

33 Fine™ Marine 12.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
Solver/Suspend or to kill the computation some iterations after the writing operations.

34 Fine™ Marine 12.1 User Guide


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 Plugins menu.

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".

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/

35 Fine™ Marine 12.1 User Guide


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: finemarine121 -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.

2.3 ICON BAR

The icon bar contains project management buttons which are shortcuts to specific parts of the Fine
Marine GUI.

File Buttons

These buttons 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.

36 Fine™ Marine 12.1 User Guide


Solver Buttons

These 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

These buttons 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.

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

The Start Monitor icon is used to open the "Monitoring" (p. 683).

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

Plugin Buttons

All these plugins are developed in Python and made available inside the installation package.
They can be edited, extended or replaced by a user-defined script as long as the name of the script
remains the same.

Self-propulsion

This plugin is used 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. 225).

37 Fine™ Marine 12.1 User Guide


Units converter

The units 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.

FIGURE 2.6
Units converter

Wave generation info calculator

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 12.1 User Guide


FIGURE 2.7
Wave generation calculator

Porous media

Known Limitations
The properties of the porous media don't follow the mesh. As a consequence, if the domain
rotates the properties will remain the same in the cartesian grid.

This tool offers the possibility to define a domain of the project as a porous media. A porous
media can be used to mimic the presence of a material with pores (voids), like a net, an engine etc.

39 Fine™ Marine 12.1 User Guide


FIGURE 2.8
Porous media GUI pop-up window.

When clicking on the Save button, the following actions will be performed:
l if the computation folder doesn't exist, it will be created,
l the dynamic library will be compiled and moved to the simulation folder,
l the PMinput.dat file will be created.

Governing equations of the porous media model

The behavior of the porous media is defined by the Ergun law, which is given by the following
relation:

40 Fine™ Marine 12.1 User Guide


The porous media can be treated in two different ways:
l Homogeneous: the coefficients and ' are defined as constant, and are taken aligned
with cartesian axis;
l Non- homogeneous: the coefficients and are defined by specifying their three
components:
l ( , , )

l ( , , )

in the local coordinate system ( ).

The two directions and are defined and then is computed automatically to produce an
orthonormal frame; if and are not orthogonal, takes the value ; these
vectors are non-dimensionalized so that the properties of the porous media are only defined by
and .

Recommendations

Porous medias are defined at a domain level, not at a body level. Only one domain can be
selected as porous media.

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.

41 Fine™ Marine 12.1 User Guide


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. 869) studies the set of dependent computations can be
reset as well by activating: Reset non-deterministic runs too.

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).

42 Fine™ Marine 12.1 User Guide


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

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.

43 Fine™ Marine 12.1 User Guide


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

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.

44 Fine™ Marine 12.1 User Guide


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.

45 Fine™ Marine 12.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.

l displays the faces as opaque surfaces (shaded).

46 Fine™ Marine 12.1 User Guide


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:

47 Fine™ Marine 12.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.

48 Fine™ Marine 12.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.

49 Fine™ Marine 12.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.

50 Fine™ Marine 12.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.

51 Fine™ Marine 12.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

52 Fine™ Marine 12.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:


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)

53 Fine™ Marine 12.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:

54 Fine™ Marine 12.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.

55 Fine™ Marine 12.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.

56 Fine™ Marine 12.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.

57 Fine™ Marine 12.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

58 Fine™ Marine 12.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,

59 Fine™ Marine 12.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.

60 Fine™ Marine 12.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.

61 Fine™ Marine 12.1 User Guide


FIGURE 2.24
Typical layout of a File Chooser window

62 Fine™ Marine 12.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 (from batch mode only):
l Hydrofoil resistance
l Sailing yacht resistance
l Trim optimization
l PMM maneuvers
Start of the C-Wizard can be directly done from the Welcome box while starting a new project.

63 Fine™ Marine 12.1 User Guide


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

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

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. In addition, a
cwizard.log file is also created in the project directory for later analysis.

Current limitations:
l The wizard cannot handle multiple bodies, domains, meshes.
l 2D configurations are not supported.
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.

In this section
3.1 Resistance application 65
3.2 Seakeeping application 93
3.3 Open water application 117
3.4 Planing regime application 134
3.5 Refinement dictionary 162
3.6 Launching C-Wizard in batch mode 166
3.7 C-Wizard computation matrix 169
3.8 Extended applications 177
3.9 Grid convergence study 195

64 Fine™ Marine 12.1 User Guide


3.1 RESISTANCE APPLICATION

This application is dedicated to the analysis of hull resistance. It can be used to prepare a single
speed computation or a complete resistance curve.
The simulation setup can be multi-fluid, mono-fluid double body or for underwater body.
A self-propulsion computation can be prepared by setting the surge (Tx) to solved and activating
a constant external force or actuator disk.

Beginner Tutorial 3 offers step by step instructions to set up a resistance case using the C-Wizard.

Limitations:
l The setup is designed for displacement and semi- displacement hulls and underwater
vehicles. For high-speed crafts, the planing regime mode can also be interesting in case the
geometry is compliant with a user-defined or Savitsky estimated final position.

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.

65 Fine™ Marine 12.1 User Guide


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

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

Mono-fluid double body

If a mono-fluid double body computation is chosen the domain will be cut at the free surface
level and only the under water part of the body will be simulated. This approach can be used
when the effect of free surface deformation does not need to be considered.

66 Fine™ Marine 12.1 User Guide


Mono-fluid underwater

In a mono-fluid underwater computation, it is assumed that the body is far enough from the free
surface to not consider its effects. Therefore, the body will be located at the halfway point of the
height of the domain.

Body configuration

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

67 Fine™ Marine 12.1 User Guide


FIGURE 3.2
Body configuration menu.

Input geometry

The following formats can be imported into the C-Wizard: Parasolid/CATPart, STL/Domain or
Existing mesh.
l Parasolid/CATPart format can be modified by the C-Wizard: it can be cut at the mirror plane
to create a half body simulation or at the free surface to build a mono-fluid simulation. The
geometry should not have a bounding box already included since the script will create it
automatically.
l STL/Domain format cannot be modified except to scale and translate parts. Therefore the file
needs to already include the domain box and have the desired configuration.

For mono-fluid double body computations the top of the domain should cut the body at the free
surface location.

l Existing mesh will not be modified.


Once an input file is imported the user needs to specify if it contains Half body or an Entire
body.

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

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.

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.

68 Fine™ Marine 12.1 User Guide


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

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.

Body configuration

If the Input geometry is a Parasolid/CATPart with an entire body 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.
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.
However, if the input is an STL, Domain or an Existing mesh with half body, it must have the
mirror placed at Y=0.0.

Body orientation

l CoG to bow: body advances in +X or -X direction.


l CoG to side: for half body simulations +Y or -Y side to be simulated.

Is the body aligned with the Cartesian axis?

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 Angles is 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.

Body reference length

l Automatic: the C-Wizard will measure the body length in X direction


l User-defined
This choice will influence the size of the domain created and initial mesh cell sizes.

69 Fine™ Marine 12.1 User Guide


Initial free surface, body mass, center of gravity and hydrostatic pitch

The hydrostatics of the body can be defined in four ways:


l User-defined Initial free surface position with automatic Body mass and Center of Gravity:
Domhydro will be used to estimate the displacement and CoG based on the free surface
position.
l Automatic Initial free surface position with user defined Body mass and Center of Gravity:
Domhydro will be used to estimate the free surface position. In that configuration, the
hydrostatic trim can also be solved by clicking on Free in Adjust pitch for hydrostatic
equilibrium?. If solved, the trim of the ship will be adjusted to its hydrostatic position before
meshing.
l User-defined Body mass with automatic Initial free surface position and Center of Gravity:
Domhydro will be used to estimate the free surface position and CoG. In that configuration,
the hydrostatic trim is frozen.
l All values user-defined: the user should make sure the values are consistent.
Body mass: it should be given for the entire body even when running a half body simulation
Center of Gravity: this point will be used as center for all body rotations and as reference point
to compute the moments of the fluid forces on the body.

When Center of Gravity is set to Automatic (based on the free surface) , the user can still
impose the vertical position of the Center of Gravity by checking Specify zCoG, and entering the
value.

When Adjust pitch for hydrostatic equilibrium? is set to Free , the value of the hydrostatic trim
can be retrieved in the Fine Marine shell.

70 Fine™ Marine 12.1 User Guide


Mono-fluid computations

In case of mono-fluid double body computations, the Initial free surface position and Body
mass settings appear only for Input geometry: Parasolid/CATPart. For other input formats the
hydrostatics will not be computed and the user is only asked to input Body reference length and
the Center of gravity: User defined.

FIGURE 3.3
Body configuration menu for mono-fluid computation.

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

Body motions to solve

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 computations.

71 Fine™ Marine 12.1 User Guide


If the surge is solved in mono-fluid underwater mode, a user-defined value of the mass will be
required since no hydrostatic computation will be performed in this mode.

Flow definition

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

FIGURE 3.4
Flow definition menu.

Speed definition

Single speed and Resistance curve.

72 Fine™ Marine 12.1 User Guide


FIGURE 3.5
Resistance curve parameters.

If Resistance curve is chosen the C-Wizard will prepare one computation per speed.
If the resistance curve has a constant speed increment it can be defined by entering the minimum
speed Vmin , the maximum speed Vmax and Speed Increment . The list of speeds is
automatically generated by pressing Enter after the Speed Increment definition.
Otherwise the user can directly enter a list of speeds separated by spaces or commas.

73 Fine™ Marine 12.1 User Guide


If Successive restarts is activated the result of each speed will be used as initial solution for the
next one (Initial solution menu of Fine Marine interface). This option should not be used if more
than one computation will be run at the same time. With Independent computations each
computation will be run without any dependence on previous speeds.

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

In case of successive restarts, the surge motion (Tx0) of the restart computations will be defined using
relative time . This is a powerful feature in combination with the Convergence checker which can be
activated in the Additional inputs page of the C-Wizard.

Scale input data (Froude number similarity):

This option will scale the input geometry with the scaling factor specified. All input data will be
scaled accordingly to maintain Froude number.

The geometry and all input should be given in the original scale.

A scaling factor smaller than 1 will reduce the geometry size.

If the input geometry is an existing mesh the complete mesh is scaled. Viscous layers are not
recomputed for the new scaled velocity.

Fluid properties

Water and Air dynamic viscosity and density need to be defined. A database with ITTC
standards for fresh water and salt water is available based on temperature.
If default values are kept, the C-Wizard will use the data for fresh water at 15 degrees.
In case of mono-fluid computations, only Water database is available here.

Shallow water

This option 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:

74 Fine™ Marine 12.1 User Guide


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

FIGURE 3.6
Shallow water activation.

If the configuration can be considered as a shallow water case, the Depth value should be defined
as the distance between the free surface level and the bottom location.
The following modifications are made to the project setup when shallow water is active:
l Bottom patch treatment:
The bottom patch is solid in shallow water cases. To minimize the mesh size it is split in two
parts:
zmin_FWD: from upstream boundary to approximately 0.5*LOA behind the body. Viscous
layers are inserted in this patch with a target y+ of 300 to accurately capture the velocity
gradients between body and bottom.
zmin_BWD: slip wall condition, no viscous layers inserted.
The boundary condition for mesh deformation Bottom (shallow water) (see "Boundary
conditions for grid deformation" (p. 387) is applied to both bottom patches.
l Refinement boxes:
In X and Y directions the boxes cover the body bounding box.
Box1: from bottom patch to free surface. 4 refinement levels in Z direction, 3 refinement levels
in X and Y directions.
Box2: from bottom patch to body lowest point. It ensures at least 10 cells in the Z direction,
cells will have an aspect ratio of 8.
l The body is moved down by 0.5*under keel clearance for meshing:
Under keel clearance is defined as the distance between the lowest point in the body and the
bottom patch. This technique means we mesh in a "worst case scenario" with the mesh very
compressed. During the computation the body will move up, stretching the mesh instead of
compressing it and making mesh deformation more robust.

75 Fine™ Marine 12.1 User Guide


The Richardson extrapolation is not guaranteed here since the domain size is customized in the Z-
direction.

l Quasi static parameters:


l Tz release time (T1): at 80% of acceleration time.
l Ry release time (T1) at 100% of acceleration time.
l Under-relaxation parameters for Tz and Ry: 0.05.
These settings ensure a progressive motion that will make the computation more robust.

Additional inputs

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

76 Fine™ Marine 12.1 User Guide


FIGURE 3.7
Additional inputs menu.

Actuator disk

The actuator disk simulates the effect of a propeller without the need to mesh its geometry.

77 Fine™ Marine 12.1 User Guide


Geometric definition: it should be as close as possible to the real propulsion system.
l Thickness, Inner radius and Outer radius [m, ft]
l Center coordinates [m, ft]
l Shaft direction (pointed to the wake). If the shaft is horizontal: Dir_X = -1.0, Dir_Y = 0.0,
Dir_Z = 0.0. If the shaft has an angle epsilon downward compared to horizontal axis: Dir_X =
-cos(epsilon), Dir_Y = 0.0, Dir_Z = -sin(epsilon).
Force definition:
l Thrust [N]
l Activate tangential force: Torque [N.m]

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

l Activate body self update: Frequency [Time Steps]. It defines how often the actuator disk
force will be updated.
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. If Tangential force is active the Thrust/Torque ratio defined here will be
kept throughout the computation.

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. 406) 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:

78 Fine™ Marine 12.1 User Guide


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.

If the body is not aligned with Cartesian axis the actuator disk coordinates and shaft direction need to
be given before rotation. The C-Wizard will take care of rotating it. For example if the hull has a
pitch angle of 2 degrees the actuator disk needs to be defined in the hull with pitch = 0.0. All
rotations are done around the center of gravity.

External force

l Constant wrench: the force magnitude is constant during the simulation.


l Drag-based wrench: the force is equal to body drag at each time step to simulate a propulsion
system.
The Non-follower option can be used to define a force that keeps a constant direction and does
not follow the body rotations.

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

Adaptive grid refinement on free surface

With this option activated the mesh will be refined during the simulation to accurately capture the
free surface. It is recommended for high speed hulls causing a large free surface deformations. For
low speed hulls the default HEXPRESSTM mesh is sufficient.
Depending on the chosen option, the C-Wizard applies the Free surface (tensor) criterion or the
Free surface + Pressure Hessian criterion for Initial base refinement + AGR and AGR only
respectively. Parameters are defined automatically. Criterion description and more details can be
found in the Criterion section.
Two options are available in the resistance mode:

79 Fine™ Marine 12.1 User Guide


l Initial base refinement + AGR: the free surface is refined in the HEXPRESS TM mesh to
have a cell size in Z direction of LOA/500. AGR is first called at the end of the acceleration
and then every 25 time steps during the computation.
l AGR only: the free surface is NOT refined in HEXPRESSTM. AGR is first called before the
first time step and then every 10 time steps during the computation.

Wall roughness

With this option the user can define the roughness of the body surfaces. A uniform roughness will
be applied to all patches with wall function boundary condition: all solid patches except the ones
containing 'deck' in their name.
The user can choose among the proposed values or define its own equivalent sand grain height in
micrometers.
The Value description button opens a window with the details of each roughness level. The
second column in the table corresponds to the Equivalent sand grain height in micrometers.

FIGURE 3.8
Wall roughness values available in the C-Wizard.

From Schultz, Michael P. (2007) 'Effects of coating roughness and biofouling on ship resistance
and powering', Biofouling, 23:5, 331 - 341

Convergence checker

This option activates the convergence checker for the computations of the current project. The
following parameters are used:
l Stability interval: 50%
l Average last: 50%
l Tolerance: 1%
l Check after: acceleration ramp
l Quantities: Fx and Solved motions

80 Fine™ Marine 12.1 User Guide


When the Convergence checker is activated, the Maximum number of time steps that is usually
defined will be doubled to let the Convergence checker operate.

Coarse mesh initialization (BETA)

l This functionality is included in Fine Marine but requires additional calibration. The
corresponding version is set to Beta.
l Coarse mesh initialization cannot be used in combination with successive restarts in case a
resistance curve is being simulated.

This option allows activating the coarse grid initialization for resistance computations allowing a
reduction in total computation time of up to 75%. This entails setting up a two-step project with a
coarse initial mesh which is used to get through the initial transient (the acceleration of the vessel)
in the first computation. The second computation then restarts from this initial solution and uses
systematic refinement to obtain the converged result on a fine grid. The systematic refinement is
done using the dedicated "Systematic refinement criteria" (p. 570) available through the Adaptive
Grid Refinement menu.
If the previously detailed option Adaptive grid refinement (AGR) on free surface during the
simulation is turned on during the C-Wizard set-up, the Multisurface + Systematic criterion is
used. Otherwise, the Systematic refinement criterion is activated.
The coarse mesh is generated starting from the Medium mesh density (see the Mesh setup page),
but using half the number of initial mesh refinements in each direction. The resulting base mesh
therefore ends up with a cell count which is three to five times lower than a standard Medium
mesh density mesh. This means that the Mesh density cannot be changed if the Coarse mesh
initialization is activated. Using a custom refinement dictionary remains possible.

FIGURE 3.9
Coarse mesh initialization (currently in Beta mode).

The refinement dictionary contains an additional field Freeze cell size. The value of this field (0
for inactive, 1 for active) determines if the same cell size with coarse grid initialization is
maintained the same as without. This is achieved by adding an additional refinement for these
patches and ensures that the snapping procedure is successful even on coarse meshes. It is
recommended to activate the freeze for small surfaces that would get at most 4 cells across their
smallest dimension with the Medium refinement level.

81 Fine™ Marine 12.1 User Guide


By default, the following patch names have the Freeze cell size activated: Chine, Thin, Small,
Tip, Cap, Leading_edge, Trailing_edge, Anti_singing_edge, End
.
Best practices:
l The mesh that is generated on the coarse grid should be checked for quality, particularly for
any incorrect snapping of the mesh to the geometry. If necessary, the number of refinements
should be locally increased.
l The largest time saving can be obtained when combining the Coarse mesh initialization with
the Adaptive grid refinement setting AGR only. This setting also ensured the best mesh
quality on the coarse grid and on the systematically refined grid.
l It is strongly encouraged to activate both the Convergence checker and Convergence booster
options, as this will ensure that a minimal amount of time is spent on the initialization of the
solution on the coarse grid. The Convergence booster is only applied to the first computation,
not to the restart.
l Despite the listed limitation of combining Coarse mesh initialization with Successive
restarts, the procedure with Independent restarts remains up to three times faster despite
requiring twice as many computations.

82 Fine™ Marine 12.1 User Guide


FIGURE 3.10
Evolution of the solution from coarse grid initialization to the final solution on the fine grid.

Computation resources

If activated, the C-Wizard will automatically add the computations to the task manager with the
specified number of cores per computation. This option is activated by default.

FIGURE 3.11
Computation resources activation.

The dependencies between multiple computations are automatically set in the task manager if the
Successive restarts option was activated in the Flow definition menu. These computations will
start automatically once the dependency has been fulfilled.

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.

83 Fine™ Marine 12.1 User Guide


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

84 Fine™ Marine 12.1 User Guide


Mesh density

Coarse, Medium or Fine.


The selected option creates meshes respecting the chosen density level. The initial cell size will be
modified to change the refinement in the whole domain. Available refinement decisions are
summarized in the "Refinement dictionary" (p. 162).

Extra refinement of the wave field


If Yes is selected, an additional refinement sector will be defined in order to accurately capture the
wave system generated by the ship (within the Kelvin angle).
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, but ensures that the wave-
making resistance is accurately calculated at lower Froude numbers (below 0.20). Longer and
flatter waves are generated at these Froude numbers, which benefit from a finer mesh for the
accuracy of their numerical representation.
The sector is defined in the following way:

Ship wave length:

Kelvin angle:

85 Fine™ Marine 12.1 User Guide


l L1 is the maximum of the body width or 5% of LOA.
l L2 is 4 ship wave lengths, limited by a minimum distance to the outlet of 1 LOA.
l If the body is a catamaran (it does not cross the mirror plane) the sector will be centered in the
body Y center.
l Inside the sector, the target cell size in Z-direction is LOA/1024, and the cells should have an
aspect ratio of 8.

This option is not compatible with Place body in overset domain.

Merge faces with the same name

It merges faces which have the same name. It supposes that the faces are correctly named with a
Computation Aided-Design software, with Hexpress or using the "Export from Rhinoceros®" (p.
957) tool for instance. Therefore, names should be defined carefully in the CAD software to
avoid that too many faces being merged.
The faces will only be merged if the names are identical. A face called shaft1 will be merged with
another shaft1 but not with shaft2. This way suffixes can be used to have the required mesh setup
defined in the refinement dictionary for faces containing "shaft" in their name but avoid merging
the faces.
At the end of the merging process the main edges defining the geometry should still be there to
allow HEXPRESSTM to capture the geometry correctly.

Merge tangential faces

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 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.

86 Fine™ Marine 12.1 User Guide


Overset

Thanks to this option, the C-Wizard will automatically create two domains:
l the Background domain, respecting the standard Resistance Domain size guidelines;
l the Overlapping domain, containing the ship, respecting the overset guidelines.
The initial cells in the Overlapping domain have 4 refinement levels compared to the Background
domain. The initial cell size (ICS):

ICSbackground = ICSoverlapping 24

Hence refinement levels defined in the dictionary will be decreased by 4 to reach the same final
cell size.
Example: the user requests hull patches to have 7 refinements. In the Overlapping domain
they will have 7 - 4 = 3 refinements.
When this option is active two extra refinement areas are added in the Background domain:
l a refinement box at the Overlapping domain location.
l overset internal surfaces where the free surface crosses the domains interface to have cells with
a maximum aspect ratio of 4.
Compared to the approach without overset, this option provides more robustness for the
computation (avoiding weighted mesh deformation), but increases CPU time by 2 on average.
Hence, it is recommended to activate this option in case large motions are expected.

By default Explicit coupling is active in the Overset menu. But this option is deactivated for
Resistance cases with Froude > 1.0, as the computations will have a more unsteady behavior.

Simplify sharp angles

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
degrees. 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.

87 Fine™ Marine 12.1 User Guide


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

Domain size

l Automatic: it is assumed that the domain size can be defined for this application according to
the Froude number (Fn) and the Body reference length (Length over all LOA of the ship).
Hence default numbers are specified as:
l LOABefore = 1.5
l LOABelow = 1.5
l LOABehind = 3 (Fn≤1), 4 (1<Fn<1.5) or 5 (Fn≥1.5)
l LOAAbove = 1.0
l LOASide = 2.0

The C-Wizard will not precisely respect this number of LOA: the domain size is adjusted to:
l exactly have LOA/1024 for the free surface refinements,
l have a number of initial cells multiple of 4 in the Medium mesh to fit the Grid Convergence
study requirements.

88 Fine™ Marine 12.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.

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


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

If 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.

Triangulation density

Coarse, Medium or 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.

Y+ value

Automatic or User-defined.
The automatic Y+ value is based on the assumption that the wall function will be used during the
computation and computed in the following way:

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:

89 Fine™ Marine 12.1 User Guide


where:
l HEuler: size of the Euler mesh cell;
l Hinit: size of the initial mesh cell;
l N: 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.

To deactivate the viscous layer insertion and make a fast analysis, a big Y+ value (let's say 10000) can
be put as a user-defined value.

Refinement dictionary

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. 162) that will be used by the
C-Wizard mode.

Mesh setup

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.
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.

90 Fine™ Marine 12.1 User Guide


FIGURE 3.14
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 with the Y
plane.

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.

Project setup

When meshing procedures have been finalized, the project will be automatically created
respecting the previously defined parameters.
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]

91 Fine™ Marine 12.1 User Guide


FIGURE 3.15
C-Wizard report: Interface input parameters for a 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.16
C-Wizard report: 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 cN_X.X names, where N is the computation
number and X.X is the speed value.
The acceleration time of the body is defined differently for independent computations and
successive restarts.
When working in batch mode these values can be modified in the input file.

Low Froude number

A computation with Froude number below 0.1 requires a finer timestep value to account for the
smaller scale physics that occurs. As such, the timestep value must be divided by two in this
case. To compensate for this change, the following durations are multiplied by two:
l acceleration ramp
l computation duration
l Quasi-static DT2 and DT3 values

Independent computations

Froude number Acceleration ramp duration Computation duration


All computations in range 0.1 < Fr < 0.4 Reference velocity / 0.2 m/s2 4*acceleration time
Others 200 time steps 1500 time steps

92 Fine™ Marine 12.1 User Guide


In a resistance curve project if any speed has Fr ≥ 0.4 all speeds will have an acceleration of 200
time steps.

Successive restarts

In the case of successive restarts, the duration of the acceleration ramp is defined by an
empirical formula that takes the block coefficient into account:

This formula is valid for all block coefficients larger than 0.16. For block coefficients below this
value, the settings for independent restarts are used.

Computation duration: 4*acceleration time.


If Trim (Ry) and/or Sinkage (Tz) are solved the Quasi-static approach will be used to solve them
during the computation. To ensure the stability of the computation trim under-relaxation parameter
will be adjusted as follows:
Froude number Ry under-relaxation
Fr < 0.5 0.2
0.5 ≤ Fr < 1.0 0.1
Fr ≥ 1.0 0.05

Streaking correction will be activated to avoid any numerical ventilation at higher Froude
numbers. It will have no impact on the results.

3.2 SEAKEEPING APPLICATION

This application is dedicated to the analysis of bodies in waves. A single wave will be used and
several advancing speeds for the body can be prepared.
A special setup with Internal wave generator will be prepared for cases where the body has zero
advancing speed.

Limitations:
l Following waves (encounter angle lower than 90 degrees) are not supported.

93 Fine™ Marine 12.1 User Guide


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 Seakeeping will provide access
to the specific parameters in accordance to this application.

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

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

Body configuration

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

94 Fine™ Marine 12.1 User Guide


FIGURE 3.18
Body configuration menu.

Input geometry

The following formats can be imported into the C-Wizard: Parasolid/CATPart, STL/Domain or
Existing mesh.
l Parasolid/CATPart format can be modified by the C-Wizard: it can be cut at the mirror plane
to create a half body simulation or at the free surface to build a mono-fluid simulation. The
geometry should not have a bounding box already included since the script will create it
automatically.
l STL/Domain format cannot be modified except to scale and translate parts. Therefore the file
needs to already include the domain box and have the desired configuration.
Existing mesh will not be modified.
Once an input file is imported the user needs to specify if it contains Half body or an Entire
body.

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

95 Fine™ Marine 12.1 User Guide


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.

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

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.

Body configuration

If the Input geometry is a Parasolid/CATPart with an entire body 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.
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.
However, if the input is an STL, Domain or an Existing mesh with half body, it must have the
mirror placed at Y=0.0.

Body orientation

l CoG to bow: body advances in +X or -X direction.


l CoG to side: for half body simulations +Y or -Y side to be simulated.

96 Fine™ Marine 12.1 User Guide


Is the body aligned with the Cartesian axis?

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 Angles is 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.

Body reference length

l Automatic: the C-Wizard will measure the body length in X direction


l User-defined
This choice will influence the size of the domain created and initial mesh cell sizes.

Initial free surface, body mass, center of gravity and hydrostatic pitch

The hydrostatics of the body can be defined in four ways:


l User-defined Initial free surface position with automatic Body mass and Center of Gravity:
Domhydro will be used to estimate the displacement and CoG based on the free surface
position.
l Automatic Initial free surface position with user defined Body mass and Center of Gravity:
Domhydro will be used to estimate the free surface position. In that configuration, the
hydrostatic trim can also be solved by clicking on Free in Adjust pitch for hydrostatic
equilibrium?. If solved, the trim of the ship will be adjusted to its hydrostatic position before
meshing.
l User-defined Body mass with automatic Initial free surface position and Center of Gravity:
Domhydro will be used to estimate the free surface position and CoG. In that configuration,
the hydrostatic trim is frozen.
l All values user-defined: the user should make sure the values are consistent.
Body mass: it should be given for the entire body even when running a half body simulation
Center of Gravity: this point will be used as center for all body rotations and as reference point
to compute the moments of the fluid forces on the body.

When Center of Gravity is set to Automatic (based on the free surface) , the user can still
impose the vertical position of the Center of Gravity by checking Specify zCoG, and entering the
value.

97 Fine™ Marine 12.1 User Guide


When Adjust pitch for hydrostatic equilibrium? is set to Free , the value of the hydrostatic trim
can be retrieved in the Fine Marine shell.

Body motions to solve

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.

Inertia matrix

Two possibilities are given for the estimation of the inertia matrix:
l Uniform mass distribution using Domhydro
l Regression law using ITTC formula
More information can be found in "Estimate inertial data" (p. 347). The coefficient used by the C-
Wizard for cx, cy, cz are the default values: 0.37, 0.25, 0.25.

Flow definition

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

98 Fine™ Marine 12.1 User Guide


FIGURE 3.19
Flow definition menu.

Speed definition

Single speed and Resistance curve.

99 Fine™ Marine 12.1 User Guide


FIGURE 3.20
Resistance curve parameters.

If Resistance curve is chosen the C-Wizard will prepare one computation per speed.
If the resistance curve has a constant speed increment it can be defined by entering the minimum
speed Vmin , the maximum speed Vmax and Speed Increment . The list of speeds is
automatically generated by pressing Enter after the Speed Increment definition.
Otherwise the user can directly enter a list of speeds separated by spaces or commas.
If Successive restarts is activated the result of each speed will be used as initial solution for the
next one (Initial solution menu of Fine Marine interface). This option should not be used if more
than one computation will be run at the same time. With Independent computations each
computation will be run without any dependence on previous speeds.

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

In case of successive restarts, the surge motion (Tx0) of the restart computations will be defined using
the relative time .

Scale input data (Froude number similarity):

This option will scale the input geometry with the scaling factor specified. All input data will be
scaled accordingly to maintain Froude number.

The geometry and all input should be given in the original scale.

100 Fine™ Marine 12.1 User Guide


A scaling factor smaller than 1 will reduce the geometry size.

If the input geometry is an existing mesh the complete mesh is scaled. Viscous layers are not
recomputed for the new scaled velocity.

Fluid properties

Water and Air dynamic viscosity and density need to be defined. A database with ITTC
standards for fresh water and salt water is available based on temperature.
If default values are kept, the C-Wizard will use the data for fresh water at 15 degrees.

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.

FIGURE 3.21
Resistance curve parameters.

l Number of Lref resolved behind the body : defines the length of the domain in X
direction and takes Lref =max(LOA, wave length).
l Number of time steps per encounter period: defines the value of the time step based on
the encounter period between the ship and the wave.

101 Fine™ Marine 12.1 User Guide


l 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

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 calculator" (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 application guidelines for seakeeping
simulations. 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.

102 Fine™ Marine 12.1 User Guide


Shallow water

This option 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.22
Shallow water activation.

If the configuration can be considered as a shallow water case, the Depth value should be defined
as the distance between the free surface level and the bottom location.
The following modifications are made to the project setup when shallow water is active:
l Bottom patch treatment:
The bottom patch is solid in shallow water cases. To minimize the mesh size it is split in two
parts:
zmin_FWD: from upstream boundary to approximately 0.5*LOA behind the body. Viscous
layers are inserted in this patch with a target y+ of 300 to accurately capture the velocity
gradients between body and bottom.
zmin_BWD: slip wall condition, no viscous layers inserted.
The boundary condition for mesh deformation Bottom (shallow water) (see "Boundary
conditions for grid deformation" (p. 387) is applied to both bottom patches.
l Refinement boxes:
In X and Y directions the boxes cover the body bounding box.
Box1: from bottom patch to free surface. 4 refinement levels in Z direction, 3 refinement levels
in X and Y directions.
Box2: from bottom patch to body lowest point. It ensures at least 10 cells in the Z direction,
cells will have an aspect ratio of 8.

103 Fine™ Marine 12.1 User Guide


l The body is moved down by 0.5*under keel clearance for meshing:
Under keel clearance is defined as the distance between the lowest point in the body and the
bottom patch. This technique means we mesh in a "worst case scenario" with the mesh very
compressed. During the computation the body will move up, stretching the mesh instead of
compressing it and making mesh deformation more robust.

The Richardson extrapolation is not guaranteed here since the domain size is customized in the Z-
direction.

In Seakeeping application with shallow water the wave length depends on the water depth. The
Wave generator infos tool can be used to compute it.

Additional input

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

104 Fine™ Marine 12.1 User Guide


FIGURE 3.23
Additional inputs menu.

Actuator disk

The actuator disk simulates the effect of a propeller without the need to mesh its geometry.
Geometric definition: it should be as close as possible to the real propulsion system.
l Thickness, Inner radius and Outer radius [m, ft]
l Center coordinates [m, ft]
l Shaft direction (pointed to the wake). If the shaft is horizontal: Dir_X = -1.0, Dir_Y = 0.0,
Dir_Z = 0.0. If the shaft has an angle epsilon downward compared to horizontal axis: Dir_X =
-cos(epsilon), Dir_Y = 0.0, Dir_Z = -sin(epsilon).
Force definition:

105 Fine™ Marine 12.1 User Guide


l Thrust [N]
l Activate tangential force: Torque [N.m]

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

l Activate body self update: Frequency [Time Steps]. It defines how often the actuator disk
force will be updated.
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. If Tangential force is active the Thrust/Torque ratio defined here will be
kept throughout the computation.

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. 406) 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.

106 Fine™ Marine 12.1 User Guide


If the body is not aligned with Cartesian axis the actuator disk coordinates and shaft direction need to
be given before rotation. The C-Wizard will take care of rotating it. For example if the hull has a
pitch angle of 2 degrees the actuator disk needs to be defined in the hull with pitch = 0.0. All
rotations are done around the center of gravity.

External force

l Constant wrench: the force magnitude is constant during the simulation.


l Drag-based wrench: the force is equal to body drag at each time step to simulate a propulsion
system.
The Non-follower option can be used to define a force that keeps a constant direction and does
not follow the body rotations.

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

Adaptive grid refinement on free surface

With this option activated the mesh will be refined during the simulation to accurately capture the
free surface. It is recommended for high speed hulls causing a large free surface deformations. For
low speed hulls the default HEXPRESSTM mesh is sufficient.
Depending on the chosen option, the C-Wizard applies the Free surface (tensor) criterion or the
Free surface + Pressure Hessian criterion for Initial base refinement + AGR and AGR only
respectively. Parameters are defined automatically. Criterion description and more details can be
found in the Criterion section.

Wall roughness

With this option the user can define the roughness of the body surfaces. A uniform roughness will
be applied to all patches with wall function boundary condition: all solid patches except the ones
containing 'deck' in their name.
The user can choose among the proposed values or define its own equivalent sand grain height in
micrometers.
The Value description button opens a window with the details of each roughness level. The
second column in the table corresponds to the Equivalent sand grain height in micrometers.

107 Fine™ Marine 12.1 User Guide


FIGURE 3.24
Wall roughness values available in the C-Wizard.

From Schultz, Michael P. (2007) 'Effects of coating roughness and biofouling on ship resistance
and powering', Biofouling, 23:5, 331 - 341

Computation resources

If activated, the C-Wizard will automatically add the computations to the task manager with the
specified number of cores per computation. This option is activated by default.

FIGURE 3.25
Computation resources activation.

The dependencies between multiple computations are automatically set in the task manager if the
Successive restarts option was activated in the Flow definition menu. These computations will
start automatically once the dependency has been fulfilled.

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.

108 Fine™ Marine 12.1 User Guide


FIGURE 3.26
Domain Constructor and Mesh Setup menu of the C-Wizard for seakeeping computations.

109 Fine™ Marine 12.1 User Guide


Mesh density

High fidelity setup or Light setup.


Meshes for seakeeping computations can be set up using either the high fidelity setup (default) or
a light setup . The light setup follows the procedure and settings described in Seakeeping
computations 'light'. This means that:
l mesh refinement diffusion is reduced,
l no viscous layers are inserted,
l the wave refinement boxes apply one less refinement compared to the high fidelity setup and
l adaptive grid refinement is applied to ensure the accurate discretization of the free surface. The
combined "Free surface + Pressure Hessian " (p. 562) is used.
The high fidelity approach is still advised to obtain the most accurate results. This additional 5%
of accuracy comes at the cost of a much increased computation time (up to 80%) compared to the
light approach. This makes the latter ideal for initial design estimates. The achieved reduction in
computation time depends on the simulated wave conditions.

FIGURE 3.27
Case 1 and 2 of Demo Case 12: Seakeeping demonstrated the achievable reductions in
computation time when using the light setup.

If the light approach is selected, the mesh density is fixed to Medium.

110 Fine™ Marine 12.1 User Guide


FIGURE 3.28
The light approach starts from a medium mesh density.

Coarse, Medium or Fine.


The selected option creates meshes respecting the chosen density level. The initial cell size will be
modified to change the refinement in the whole domain. Available refinement decisions are
summarized in the "Refinement dictionary" (p. 162).

Merge faces with the same name

It merges faces which have the same name. It supposes that the faces are correctly named with a
Computation Aided-Design software, with Hexpress or using the "Export from Rhinoceros®" (p.
957) tool for instance. Therefore, names should be defined carefully in the CAD software to
avoid that too many faces being merged.
The faces will only be merged if the names are identical. A face called shaft1 will be merged with
another shaft1 but not with shaft2. This way suffixes can be used to have the required mesh setup
defined in the refinement dictionary for faces containing "shaft" in their name but avoid merging
the faces.
At the end of the merging process the main edges defining the geometry should still be there to
allow HEXPRESSTM to capture the geometry correctly.

Merge tangential faces

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 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.

Overset

Thanks to this option, the C-Wizard will automatically create two domains:

111 Fine™ Marine 12.1 User Guide


l the Background domain, respecting the standard Resistance Domain size guidelines;
l the Overlapping domain, containing the ship, respecting the overset guidelines.
The initial cells in the Overlapping domain have 4 refinement levels compared to the Background
domain. The initial cell size (ICS):

ICSbackground = ICSoverlapping 24

Hence refinement levels defined in the dictionary will be decreased by 4 to reach the same final
cell size.
Example: the user requests hull patches to have 7 refinements. In the Overlapping domain
they will have 7 - 4 = 3 refinements.
When this option is active two extra refinement areas are added in the Background domain:
l a refinement box at the Overlapping domain location.
l overset internal surfaces where the free surface crosses the domains interface to have cells with
a maximum aspect ratio of 4.
Compared to the approach without overset, this option provides more robustness for the
computation (avoiding weighted mesh deformation), but increases CPU time by 2 on average.
Hence, it is recommended to activate this option in case large motions are expected.

Simplify sharp angles

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
degrees. 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.

112 Fine™ Marine 12.1 User Guide


FIGURE 3.29
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 to the application guidelines for seakeeping simulations. 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.
If 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.

Triangulation density

Coarse, Medium or Fine.

113 Fine™ Marine 12.1 User Guide


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.

Y+ value

Automatic or User-defined.
The automatic Y+ value is based on the assumption that the wall function will be used during the
computation and computed in the following way:

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:
l HEuler: size of the Euler mesh cell;
l Hinit: size of the initial mesh cell;
l N: 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.

To deactivate the viscous layer insertion and make a fast analysis, a big Y+ value (let's say 10000) can
be put as a user-defined value.

114 Fine™ Marine 12.1 User Guide


Refinement dictionary

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. 162) that will be used by the
C-Wizard mode.

Mesh setup

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.30
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 with the Y
plane.

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.

Project setup

When meshing procedures have been finalized, the project will be automatically created
respecting the previously defined parameters.

115 Fine™ Marine 12.1 User Guide


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]
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²]

FIGURE 3.31
C-Wizard report: 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.32
C-Wizard report: Interface input parameters for an automatic estimation of the free surface
location.

116 Fine™ Marine 12.1 User Guide


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 cN_X.X names, where N is the computation
number and X.X is the speed value.

3.3 OPEN WATER APPLICATION

This application is dedicated to the analysis of propeller performance in open water. It can be used
to prepare a single advance ratio or a complete performance curve.
Bollard pull configuration is supported with an automatically modified setup.

Beginner Tutorial 4 offers step by step instructions to set up an open water case using the C-Wizard.

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 Open water will provide access
to the specific parameters in accordance to this application.
For this application, only Mono-fluid model is available as only the propeller is modeled during
an open water simulation.

117 Fine™ Marine 12.1 User Guide


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

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

Body configuration

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

118 Fine™ Marine 12.1 User Guide


FIGURE 3.34
Body configuration menu.

Input geometry

The following formats can be imported into the C-Wizard: Parasolid/CATPart, STL/Domain or
Existing mesh.
l Parasolid/CATPart format can be modified by the C-Wizard.
l STL/Domain format cannot be modified except to scale and translate parts. Therefore the file
needs to already include the domain box and have the desired configuration.
l Existing mesh will not be modified.

119 Fine™ Marine 12.1 User Guide


For an open water computation the shaft must be included into the geometry unless a STL/Domain or
an Existing mesh is imported. The recommended shaft length is 4 propeller radius or more to have
sufficient distance between the external boundary and the propeller.

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

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.

If an Existing mesh is chosen, the mesh can have been built with Hexpress, Hexpress/Hybrid or
Autogrid5. 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.
l Autogrid5: *.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

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.

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.

In case of Autogrid5 mesh as input, the flow is aligned with the Z-axis.

120 Fine™ Marine 12.1 User Guide


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 or the opposite 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.

In case of Autogrid5 mesh as input, the flow is aligned with the Z-axis so the propeller rotation can
be defined from X-axis to Y-axis or the opposite direction.

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.

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:

In case of Autogrid5 mesh as input, the body alignment is forced along the Z-axis.

Reference length definition

Automatic (= Radius)/User-defined

121 Fine™ Marine 12.1 User Guide


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

Flow definition

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

122 Fine™ Marine 12.1 User Guide


123 Fine™ Marine 12.1 User Guide
FIGURE 3.35
Flow definition menu.

Advance ratio / Performance curve

J or Define speeds
Fix flow speed or Fix rotational speed
List of computational points
Fixed speed definition

FIGURE 3.36
Speed selection parameters.

The computations to run can be defined either by prescribing the Advance ratio J or by defining
the speeds.
In each case, to perform a performance curve, the choice is given either to fix the flow speed or
the rotational speed.
To prescribe a performance curve with a constant increment:

124 Fine™ Marine 12.1 User Guide


1. prescribe the lower boundary
2. prescribe the higher boundary
3. prescribe the increment
4. press Enter
The list of speeds is automatically generated.
Otherwise, directly enter a list of computational points separated by spaces or commas.

Bollard pull configurations:


l a project cannot have both bollard and non-bollard configurations
l if J is defined as input, the fixed speed (flow speed or rotational speed) cannot be 0

Restart type

Successive restarts or Independent computations in case of performance curve

Successive restarts are only possible if the flow speed is fixed.

Scale input data (Reynolds number similarity)

This option will scale the input geometry with the scaling factor specified. All input data will be
scaled accordingly to maintain Reynolds number.
The geometry and all input should be given in the original scale.
A scaling factor smaller than 1 will reduce the geometry size.

Fluid properties

Water dynamic viscosity and density need to be defined. A database with ITTC standards for
fresh water and salt water is available based on temperature.
If default values are kept, the C-Wizard will use the data for fresh water at 15 degrees.
Open water computation implies the mono- fluid flow model thus only Water database is
available here.

Additional inputs

Clicking the Next button will switch to the page of the Additional inputs menu.

125 Fine™ Marine 12.1 User Guide


FIGURE 3.37
Additional inputs menu.

Wall roughness

With this option the user can define the roughness of the body surfaces. A uniform roughness will
be applied to all patches with wall function boundary condition: all solid patches except the ones
containing 'deck' in their name.
The user can choose among the proposed values or define its own equivalent sand grain height in
micrometers.
The Value description button opens a window with the details of each roughness level. The
second column in the table corresponds to the Equivalent sand grain height in micrometers.

FIGURE 3.38
Wall roughness values available in the C-Wizard.

126 Fine™ Marine 12.1 User Guide


From Schultz, Michael P. (2007) 'Effects of coating roughness and biofouling on ship resistance
and powering', Biofouling, 23:5, 331 - 341

Convergence checker

This option activates the convergence checker for the computations of the current project. The
following parameters are used:
l Stability interval: 50%
l Average last: 50%
l Tolerance: 1%
l Check after: acceleration ramp
l Quantities: Fx, Mx

When the Convergence checker is activated, the Maximum number of time steps that is usually
defined will be doubled to let the Convergence checker operate.

Computation resources

If activated, the C-Wizard will automatically add the computations to the task manager with the
specified number of cores per computation. This option is activated by default.

FIGURE 3.39
Computation resources activation.

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, etc.). All the settings are driven by the type of simulation and input provided earlier.

127 Fine™ Marine 12.1 User Guide


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

Mesh density

Coarse, Medium or Fine.


The selected option creates meshes respecting the chosen density level. The initial cell size will be
modified to change the refinement in the whole domain. Available refinement decisions are
summarized in the "Refinement dictionary" (p. 162).

128 Fine™ Marine 12.1 User Guide


Extra refinement of the wake field

If Yes is selected, an additional refinement sector capturing the wake flow field behind the
propeller will be defined, with the following logic:
The maximum number of refinements is set to 8, with an isotropic target cell size of D/48to limit
the number of cells. The refinement sector in itself is defined as:
l Sector length: D/6 upstream, 4D downstream
l Sector radius: 0.6D
where D is the propeller diameter.
This option does add a considerable amount of cells and should therefore be used with care.

Merge faces with the same name

It merges faces which have the same name. It supposes that the faces are correctly named with a
Computation Aided-Design software, with Hexpress or using the "Export from Rhinoceros®" (p.
957) tool for instance. Therefore, names should be defined carefully in the CAD software to
avoid that too many faces being merged.
The faces will only be merged if the names are identical. A face called shaft1 will be merged with
another shaft1 but not with shaft2. This way suffixes can be used to have the required mesh setup
defined in the refinement dictionary for faces containing "shaft" in their name but avoid merging
the faces.
At the end of the merging process the main edges defining the geometry should still be there to
allow HEXPRESSTM to capture the geometry correctly.

Merge tangential faces

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: hub, duct,
shaft, blade, etc.

129 Fine™ Marine 12.1 User Guide


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.

Simplify sharp angles

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
degrees. 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.

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

Domain size

l Automatic: it is assumed that the domain size can be defined for this application according to
the propeller radius R (R is automatically computed by the C-Wizard). Hence default numbers
are specified as:

130 Fine™ Marine 12.1 User Guide


l L upstream = 4R: number of propeller radius applied upstream the flow direction (in front of
the propeller).
l L downstream = 12R: number of propeller radius applied downstream the flow direction
(behind the propeller).
l Lside = 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.

l 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.
If 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.

Triangulation density

Coarse, Medium or 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.

Y+ value

Automatic or User-defined.
The automatic Y+ value is based on the assumption that the wall function will be used during the
computation and computed in the following way:

131 Fine™ Marine 12.1 User Guide


If the user selects Y+ <= 1 a check will be made on the Reynolds number to see if laminar to
turbulent transition may occur.
If Re < 106:

l The transition model is activated


l The turbulence model is changed to K-w SST Menter - 2003
l Solid boundary conditions are set to No-slip (wall resolved turbulence model)
Model scale propellers tend to work on the transition region and capturing it is important for the
accuracy of the results.

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:
l HEuler: size of the Euler mesh cell;
l Hinit: size of the initial mesh cell;
l N: 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.

To deactivate the viscous layer insertion and make a fast analysis, a big Y+ value (let's say 10000) can
be put as a user-defined value.

Refinement dictionary

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. 162) that will be used by the
C-Wizard mode.

132 Fine™ Marine 12.1 User Guide


Mesh setup

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.42
C-Wizard report window: Switch to the automated mesh generation.

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.

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 cN_X.X names, where N is the computation
number and X.X is the speed value.
The flow reference velocity used to define the Time step value parameter is computed considering
not only the Flow speed V flow 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.
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.

133 Fine™ Marine 12.1 User Guide


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

This application is dedicated to the analysis of planing hulls. A specific treatment is applied to
deal with important changes in trim angle compared to hydrostatic position.
The computation will be initialized by placing the hull in an estimated planing position. This
position can be predicted with the Savitsky method if the hull shape is compliant with it or with a
user-defined prediction.
A resistance curve is available with Savitsky prediction of the planing position. Initial conditions
are used to place the hull for each speed and Adaptive Grid refinement takes care of the free
surface refinement.

Beginner Tutorial 5 offers step by step instructions to set up a planing hull case using the C-Wizard.

Limitations:
l Importing an existing mesh is not available.
l The "C-Wizard computation matrix" (p. 169) 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.

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 Planing Regime will provide
access to the specific parameters in accordance to this application.

134 Fine™ Marine 12.1 User Guide


The Planing Regime application will allow to estimate the final position of the hull using the
Savitsky prediction method or to prescribe a User-defined estimated position, in addition to a
classic Resistance application.

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

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

Body configuration

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

135 Fine™ Marine 12.1 User Guide


FIGURE 3.44
Body configuration menu.

136 Fine™ Marine 12.1 User Guide


Input geometry

The following formats can be imported into the C-Wizard: Parasolid/CATPart, STL/Domain or
Existing mesh.
l Parasolid/CATPart format can be modified by the C-Wizard: it can be cut at the mirror plane
to create a half body simulation or at the free surface to build a mono-fluid simulation. The
geometry should not have a bounding box already included since the script will create it
automatically.
l STL/Domain format cannot be modified except to scale and translate parts. Therefore the file
needs to already include the domain box and have the desired configuration.

Import an Existing mesh is not available for this application.

Once an input file is imported the user needs to specify if it contains Half body or an Entire
body.

The planing regime 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.

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

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.

Body configuration

If the Input geometry is a Parasolid/CATPart with an entire body 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.
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.
However, if the input is an STL or a Domain with half body, it must have the mirror placed at
Y=0.0.

137 Fine™ Marine 12.1 User Guide


Body orientation

l CoG to bow: body advances in +X or -X direction.


l CoG to side: for half body simulations +Y or -Y side to be simulated.

Is the body aligned with the Cartesian axis?

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 Angles is 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.

Body reference length

l Automatic: the C-Wizard will measure the body length in X direction


l User-defined
This choice will influence the size of the domain created and initial mesh cell sizes.

Initial free surface, body mass, center of gravity and hydrostatic pitch

The hydrostatics of the body can be defined in four ways:


l User-defined Initial free surface position with automatic Body mass and Center of Gravity:
Domhydro will be used to estimate the displacement and CoG based on the free surface
position.
l Automatic Initial free surface position with user defined Body mass and Center of Gravity:
Domhydro will be used to estimate the free surface position. In that configuration, the
hydrostatic trim can also be solved by clicking on Free in Adjust pitch for hydrostatic
equilibrium?. If solved, the trim of the ship will be adjusted to its hydrostatic position before
meshing.
l User-defined Body mass with automatic Initial free surface position and Center of Gravity:
Domhydro will be used to estimate the free surface position and CoG. In that configuration,
the hydrostatic trim is frozen.
l All values user-defined: the user should make sure the values are consistent.
Body mass: it should be given for the entire body even when running a half body simulation
Center of Gravity: this point will be used as center for all body rotations and as reference point
to compute the moments of the fluid forces on the body.

When Center of Gravity is set to Automatic (based on the free surface) , the user can still

138 Fine™ Marine 12.1 User Guide


impose the vertical position of the Center of Gravity by checking Specify zCoG, and entering the
value.

When Adjust pitch for hydrostatic equilibrium? is set to Free , the value of the hydrostatic trim
can be retrieved in the Fine Marine shell.

Body motions to solve

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.

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. The C-Wizard uses
the same settings regarding body motion as detailed in the application guidelines for High-speed
vessels.

139 Fine™ Marine 12.1 User Guide


FIGURE 3.45
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.
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:

140 Fine™ Marine 12.1 User Guide


FIGURE 3.46
Savitsky parameter illustration

More details can be also found in:


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

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.

141 Fine™ Marine 12.1 User Guide


FIGURE 3.47
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).

Flow definition

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

142 Fine™ Marine 12.1 User Guide


FIGURE 3.48
Flow definition menu.

Speed definition

Single speed and Resistance curve.

FIGURE 3.49
Resistance curve parameters.

143 Fine™ Marine 12.1 User Guide


If Resistance curve is chosen the C-Wizard will prepare one computation per speed.
If the resistance curve has a constant speed increment it can be defined by entering the minimum
speed Vmin , the maximum speed Vmax and Speed Increment . The list of speeds is
automatically generated by pressing Enter after the Speed Increment definition.
Otherwise the user can directly enter a list of speeds separated by spaces or commas.
If Resistance curve is chosen the Savitsky prediction will be run for each speed giving one
predicted trim angle and sinkage per speed. If Place body in overset domain is not active, 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
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.

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

Scale input data (Froude number similarity):

This option will scale the input geometry with the scaling factor specified. All input data will be
scaled accordingly to maintain Froude number.

144 Fine™ Marine 12.1 User Guide


The geometry and all input should be given in the original scale.

A scaling factor smaller than 1 will reduce the geometry size.

If the input geometry is an existing mesh the complete mesh is scaled. Viscous layers are not
recomputed for the new scaled velocity.

Fluid properties

Water and Air dynamic viscosity and density need to be defined. A database with ITTC
standards for fresh water and salt water is available based on temperature.
If default values are kept, the C-Wizard will use the data for fresh water at 15 degrees.

Shallow water

This option 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.50
Shallow water activation.

If the configuration can be considered as a shallow water case, the Depth value should be defined
as the distance between the free surface level and the bottom location.
The following modifications are made to the project setup when shallow water is active:
l Bottom patch treatment:
The bottom patch is solid in shallow water cases. To minimize the mesh size it is split in two
parts:

145 Fine™ Marine 12.1 User Guide


zmin_FWD: from upstream boundary to approximately 0.5*LOA behind the body. Viscous
layers are inserted in this patch with a target y+ of 300 to accurately capture the velocity
gradients between body and bottom.
zmin_BWD: slip wall condition, no viscous layers inserted.
The boundary condition for mesh deformation Bottom (shallow water) (see "Boundary
conditions for grid deformation" (p. 387) is applied to both bottom patches.
l Refinement boxes:
In X and Y directions the boxes cover the body bounding box.
Box1: from bottom patch to free surface. 4 refinement levels in Z direction, 3 refinement levels
in X and Y directions.
Box2: from bottom patch to body lowest point. It ensures at least 10 cells in the Z direction,
cells will have an aspect ratio of 8.
l The body is moved down by 0.5*under keel clearance for meshing:
Under keel clearance is defined as the distance between the lowest point in the body and the
bottom patch. This technique means we mesh in a "worst case scenario" with the mesh very
compressed. During the computation the body will move up, stretching the mesh instead of
compressing it and making mesh deformation more robust.

The Richardson extrapolation is not guaranteed here since the domain size is customized in the Z-
direction.

l Quasi static parameters:


l Tz release time (T1): at 80% of acceleration time.
l Ry release time (T1) at 100% of acceleration time.
l Under-relaxation parameters for Tz and Ry: 0.05.
These settings ensure a progressive motion that will make the computation more robust.

Additional inputs

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

146 Fine™ Marine 12.1 User Guide


FIGURE 3.51
Additional inputs menu.

Actuator disk

The actuator disk simulates the effect of a propeller without the need to mesh its geometry.

147 Fine™ Marine 12.1 User Guide


Geometric definition: it should be as close as possible to the real propulsion system.
l Thickness, Inner radius and Outer radius [m, ft]
l Center coordinates [m, ft]
l Shaft direction (pointed to the wake). If the shaft is horizontal: Dir_X = -1.0, Dir_Y = 0.0,
Dir_Z = 0.0. If the shaft has an angle epsilon downward compared to horizontal axis: Dir_X =
-cos(epsilon), Dir_Y = 0.0, Dir_Z = -sin(epsilon).
Force definition:
l Thrust [N]
l Activate tangential force: Torque [N.m]

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

l Activate body self update: Frequency [Time Steps]. It defines how often the actuator disk
force will be updated.
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. If Tangential force is active the Thrust/Torque ratio defined here will be
kept throughout the computation.

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. 406) 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:

148 Fine™ Marine 12.1 User Guide


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.

If the body is not aligned with Cartesian axis the actuator disk coordinates and shaft direction need to
be given before rotation. The C-Wizard will take care of rotating it. For example if the hull has a
pitch angle of 2 degrees the actuator disk needs to be defined in the hull with pitch = 0.0. All
rotations are done around the center of gravity.

External force

l Constant wrench: the force magnitude is constant during the simulation.


l Drag-based wrench: the force is equal to body drag at each time step to simulate a propulsion
system.
The Non-follower option can be used to define a force that keeps a constant direction and does
not follow the body rotations.

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

Adaptive grid refinement on free surface

With this option activated the mesh will be refined during the simulation to accurately capture the
free surface. It is recommended for high speed hulls causing a large free surface deformations. For
low speed hulls the default HEXPRESSTM mesh is sufficient.
Depending on the chosen option, the C-Wizard applies the Free surface (tensor) criterion or the
Free surface + Pressure Hessian criterion for Initial base refinement + AGR and AGR only
respectively. Parameters are defined automatically. Criterion description and more details can be
found in the Criterion section.

Wall roughness

With this option the user can define the roughness of the body surfaces. A uniform roughness will
be applied to all patches with wall function boundary condition: all solid patches except the ones
containing 'deck' in their name.
The user can choose among the proposed values or define its own equivalent sand grain height in
micrometers.

149 Fine™ Marine 12.1 User Guide


The Value description button opens a window with the details of each roughness level. The
second column in the table corresponds to the Equivalent sand grain height in micrometers.

FIGURE 3.52
Wall roughness values available in the C-Wizard.

From Schultz, Michael P. (2007) 'Effects of coating roughness and biofouling on ship resistance
and powering', Biofouling, 23:5, 331 - 341

Convergence checker

This option activates the convergence checker for the computations of the current project. The
following parameters are used:
l Stability interval: 50%
l Average last: 50%
l Tolerance: 1%
l Check after: acceleration ramp
l Quantities: Fx and Solved motions

When the Convergence checker is activated, the Maximum number of time steps that is usually
defined will be doubled to let the Convergence checker operate.

Computation resources

If activated, the C-Wizard will automatically add the computations to the task manager with the
specified number of cores per computation. This option is activated by default.

150 Fine™ Marine 12.1 User Guide


FIGURE 3.53
Computation resources activation.

Mesh setup

The C-Wizard Mesh-Setup menu provides settings to configure the domain and the mesh.
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.

151 Fine™ Marine 12.1 User Guide


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

152 Fine™ Marine 12.1 User Guide


Mesh density

Coarse, Medium or Fine.


The selected option creates meshes respecting the chosen density level. The initial cell size will be
modified to change the refinement in the whole domain. Available refinement decisions are
summarized in the "Refinement dictionary" (p. 162).

Extra refinement of the wave field

Automatic wake refinement


When moving at high speed, the ship generates a deep wake, so a refinement box 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
Optional wake refinement
If Yes is selected, an additional refinement sector will be defined in order to accurately capture the
wave system generated by the ship (within the Kelvin angle).
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, but ensures that the wave-
making resistance is accurately calculated at lower Froude numbers (below 0.20). Longer and
flatter waves are generated at these Froude numbers, which benefit from a finer mesh for the
accuracy of their numerical representation.
The sector is defined in the following way:

153 Fine™ Marine 12.1 User Guide


Ship wave length:

Kelvin angle:

l L1 is the maximum of the body width or 5% of LOA.


l L2 is 4 ship wave lengths, limited by a minimum distance to the outlet of 1 LOA.
l If the body is a catamaran (it does not cross the mirror plane) the sector will be centered in the
body Y center.
l Inside the sector, the target cell size in Z-direction is LOA/1024, and the cells should have an
aspect ratio of 8.

This option is not compatible with Place body in overset domain.

Merge faces with the same name

It merges faces which have the same name. It supposes that the faces are correctly named with a
Computation Aided-Design software, with Hexpress or using the "Export from Rhinoceros®" (p.
957) tool for instance. Therefore, names should be defined carefully in the CAD software to
avoid that too many faces being merged.
The faces will only be merged if the names are identical. A face called shaft1 will be merged with
another shaft1 but not with shaft2. This way suffixes can be used to have the required mesh setup
defined in the refinement dictionary for faces containing "shaft" in their name but avoid merging
the faces.
At the end of the merging process the main edges defining the geometry should still be there to
allow HEXPRESSTM to capture the geometry correctly.

Merge tangential faces

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.

154 Fine™ Marine 12.1 User Guide


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.

Overset

Thanks to this option, the C-Wizard will automatically create two domains:
l the Background domain, respecting the standard Resistance Domain size guidelines;
l the Overlapping domain, containing the ship, respecting the overset guidelines.
The initial cells in the Overlapping domain have 4 refinement levels compared to the Background
domain. The initial cell size (ICS):

ICSbackground = ICSoverlapping 24

Hence refinement levels defined in the dictionary will be decreased by 4 to reach the same final
cell size.
Example: the user requests hull patches to have 7 refinements. In the Overlapping domain
they will have 7 - 4 = 3 refinements.
When this option is active two extra refinement areas are added in the Background domain:
l a refinement box at the Overlapping domain location.
l overset internal surfaces where the free surface crosses the domains interface to have cells with
a maximum aspect ratio of 4.
Compared to the approach without overset, this option provides more robustness for the
computation (avoiding weighted mesh deformation), but increases CPU time by 2 on average.
Hence, it is recommended to activate this option in case large motions are expected.

Simplify sharp angles

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
degrees. 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.

155 Fine™ Marine 12.1 User Guide


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

Domain size

l Automatic: it is assumed that the domain size can be defined for this application according to
the Froude number (Fn) and the Body reference length (Length over all LOA of the ship).
Hence default numbers are specified as:
l LOABefore = 1.5
l LOABelow = 1.5
l LOABehind = 3 (Fn≤1), 4 (1<Fn<1.5) or 5 (Fn≥1.5)
l LOAAbove = 1.0
l LOASide = 2.0
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.
If 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.

156 Fine™ Marine 12.1 User Guide


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.

Triangulation density

Coarse, Medium or 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.

Y+ value

Automatic or User-defined.
The automatic Y+ value is based on the assumption that the wall function will be used during the
computation and computed in the following way:

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:
l HEuler: size of the Euler mesh cell;
l Hinit: size of the initial mesh cell;
l N: 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.

157 Fine™ Marine 12.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.

To deactivate the viscous layer insertion and make a fast analysis, a big Y+ value (let's say 10000) can
be put as a user-defined value.

Refinement dictionary

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. 162) that will be used by the
C-Wizard mode.

Mesh setup

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.
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.56
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 with the Y
plane.

158 Fine™ Marine 12.1 User Guide


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.

Project setup

When meshing procedures have been finalized, the project will be automatically created
respecting the previously defined parameters.
The hydrostatic properties of the body will be displayed:
l Displacement: [kg]
l Coordinates of the Center of Gravity: [m, ft]
Estimation of the inertia matrix values will be automatically done by "Domhydro" (p. 982) tool
but the user can still edit the values since they have to be as accurate as possible for a good
resistance and motion calculation.
l Estimated inertia matrix: [kg/m²]

FIGURE 3.57
C-Wizard report: Interface input parameters for an user defined 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.

159 Fine™ Marine 12.1 User Guide


After confirming the estimation of inertial values , the settings of the computations will be
automatically defined.
The predicted planing position is applied in different ways depending on the project
configuration:
l Single speed: the hull is already rotated and translated to the predicted final planing position.

If the project includes several speeds and Savitsky is chosen for the final position estimation, there
is one predicted position per speed. The savitsky.output file with the complete Savitsky
prediction information is stored in the project folder.

l Several speeds with overset active (recommended): the Body motion initial conditions are used
to place each speed to the corresponding predicted planing position.
l Several speed in a single domain: the body is placed in the median trim and sinkage of all the
predicted positions. The body motion initial conditions are then used to go from the mean
value to the predicted position for each speed. The aim of this method is minimizing mesh
deformation.
The Computations menu will be updated with the cN_X.X names, where N is the computation
number and X.X is the speed value.

The streaking correction expert parameters CIStreakCorrection_ and


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

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.

160 Fine™ Marine 12.1 User Guide


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. 162). 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.

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.

161 Fine™ Marine 12.1 User Guide


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/_cwizard/templates/. 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.

FIGURE 3.58
Example of vocabulary and refinement settings.

If names have been defined in accordance with this vocabulary, the C-Wizard will be able to
recognize them and to define mesh settings accordingly. They can be defined with a CAD
software, with Hexpress or using the "Export from Rhinoceros®" (p. 957) tool for instance.
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.

162 Fine™ Marine 12.1 User Guide


The initial cell size is varied systematically between grid levels as described in the Grid convergence
study page . Therefore, the default dictionary has the same refinement levels for Coarse , Medium ,
and Fine levels. As the initial cell becomes smaller, the final cell size will be smaller for the same
number of refinements.

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. 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 ',';
l Diffusion (coarse;medium;fine): Refinement diffusion level can be specified as 'global' or
with the integers, 2;4;2 for instance.

163 Fine™ Marine 12.1 User Guide


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" and "Pressure_side", 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.

164 Fine™ Marine 12.1 User Guide


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

Particular mesh settings for edges based on patch names

Some edges such as propeller blade leading edges or the hull-transom intersection need extra
refinement because of the complex flow physics happening in the area.
Three automatic edge refinements are defined in the C-Wizard if the edge joins two patches
whose names include the following keywords:
l Propeller leading and trailing edges: "blade", "suction_ side" or "pressure_ side". Edges
between patches including these keywords will have 8 refinements.
l Foil leading and trailing edges: a refinement level of 12 will be applied to edges between 2
patches with "foil" in their name.
l Hull-transom: when a common edge is found between patches including the keywords "hull"
and "transom" or "aft", a refinement level of 7 will be applied to the edge.

To avoid the refinement, the user can give the exact same name to the two patches and activate
"Merge faces by name" to merge the patches and remove the edge.

Examples of edges that will be refined:

165 Fine™ Marine 12.1 User Guide


l edge between "blade" and "pressure_side"
l edge between "foil1" and "foil_small"
l edge between "hull2" and "transom"

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.

Launching command

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
Where the # is the version number, for instance 121 and application_type.input is the name of
the input file containing the settings for the simulation.
An additional and optional argument can be added, named -nomesh. This argument allows the
perform the complete mesh generation setup and computations setup but without generating the
mesh itself. This is made to be able to quickly verify what the C-Wizard has created in terms of
files structure or in terms of settings.

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

.input files from Fine Marine version 6.0 or earlier are not supported.

166 Fine™ Marine 12.1 User Guide


C-Wizard templates

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/_cwizard/templates/
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,
l trim optimization: cwizard_resistanceTrimOpt.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. 117), "Resistance application" (p. 65), "Seakeeping application" (p.
93), "Planing regime application" (p. 134) 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. 169).

Minimal output saving

In the ADVANCED PARAMETERS of the .input, the user can control the solver outputs:

By setting 1 in the template, the expert parameter 3dOutputSaving_ will be modified from YES
to NO .

When the 3dOutputSaving_ parameter value is set to NO, GUI will not save any volume outputs.
Classic outputs are covered including the Volume probes, Optional output variables and Mean output

167 Fine™ Marine 12.1 User Guide


variables.
For more information, please refer to the "Output Data Management" (p. 941) section in the user
guide.

Activating Save minimal output, the C-Wizard will clean the cache folder from the _mesh
directory after the mesh generation.
All 3D outputs are removed and only surface probes can be used for the post-processing. The
type of surface probes, per application, is defined as followed:

Multi-fluid computation

For a resistance application:


l Wall probes (mass fraction, hydrodynamic pressure and Y+).
l Free surface probe.
For a seakeeping application, 24 probes is saved per second:
l Wall probes (mass fraction, hydrodynamic pressure and Y+).
l Free surface probe.

Mono-fluid computation

For a resistance application:


l Wall probes (pressure and Y+).
For an open water application:
l Wall probes (pressure and Y+).
l Cut plane probes centered on the propeller axis (velocity and pressure).

For more information about the surface probes, please refer to the "Surface Probes" (p. 660) section
in the user guide.

Add Fine Marine comments from the .input file

Expert usage

168 Fine™ Marine 12.1 User Guide


The Comment section of Fine Marine allows adding information in the header of the SIM file and
doing so passing information directly to the solver. Provided that the SIM chain is know, it is
possible to prescribe this information directly from the C- Wizard .input file by adding the
following section. In the specified file, add the SIM chains to pass on to the flow solver.

Input file chains

*** SET COMMENTS IN THE SIM FILE


* 0/1: activation ; path to file
1 /path/to/file/containing/comments/in/SIMfile/format
*

Example of comments

*** VELOCITY CLIPPING


*
YES
*
*** CLIP FACTOR FOR VELOCITY
*
14
*

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" (p. 177).

169 Fine™ Marine 12.1 User Guide


FIGURE 3.60
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/_cwizard/templates/ 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 modes

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

170 Fine™ Marine 12.1 User Guide


shown in "Matrix project structure." (p. 170).
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, draughts
and mass 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/_
cwizard/templates/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. Also, the file should not contain
blank lines.
l The file can have draughts defined - mass and center of gravity will be computed. Or it can
have mass and center of gravity defined and free surface position will be computed.
l The following column titles are available: "yaw", "pitch", "roll", "draught", "speed" or
"mass", "cog", "speed", "transition" and "cavitation".
l The "speed" column is compulsory, the rest are optional.

171 Fine™ Marine 12.1 User Guide


l The three center of gravity components need to be separated by one space.
l If a column is not present its value will be assumed to be zero.
l For transition and cavitation, the entry is a logical: for a value of 1, the feature is turned on,
while for a value of 0, the feature is not modeled.
l Units are as defined in the input file.
#Example of matrix.csv file
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.61
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.

#Example of matrix.csv file with mass and CoG as inputs

172 Fine™ Marine 12.1 User Guide


speed,mass,CoG
15.0,5550000,46.4638 0 7.356
16.5,5550000,46.4638 0 7.356
15.0,4690000,47.0586 0 6.804
16.5,4690000,47.0586 0 6.804

FIGURE 3.62
Computation list in a project created with the matrix.csv above and single mesh approach. "M"
stands for mass and "V" for velocity. Center of gravity is not included in the computation name.

Depending on the selected mode of matrix calculation, the body motion setup will be adapted.
Domhydro workflow:
l For each different draught the mass, CG and inertia matrix will be computed.
l For each different mass and CG, the free surface position and angles are computed.
l If there are angles (yaw, pitch or roll) the mass, CG and inertia of the draught will be kept. The
sinkage (Tz) needed 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.

173 Fine™ Marine 12.1 User Guide


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.
l If the mass is given, the CG must be given, but the draught must be omitted.

The matrix of mass and CG is only compatible with the single mesh approach.

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.

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.

174 Fine™ Marine 12.1 User Guide


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.
For the domain construction, the initial vertical position of the free surface is used:
*** INITIAL FREE SURFACE
* 0 = User-defined / 1= Automatic (computed from body mass); Z-coordinate
0 0.0
*
In the Fine Marine GUI, The Z-coordinate value will be used as Initial solution for the interface
position.

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. 170). If more than one speed is given, each speed will have a separate computation.
When this approach is used a text output file single_mesh_setup_summary.dat is created in the
project folder. It contains a summary of the setup for each computation to help the user verify the
settings easily.
The following values are written in the file for each computation: Speed, Free surface Z position,
Initial Tz0, Initial Rz0, Initial Ry1, Initial Rx2, Mass, CoG.

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.

175 Fine™ Marine 12.1 User Guide


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 If the option Initial base refinement + AGR is chosen, the following settings will be applied:
l Criterion: Free surface tensor
l Target grid spacing normal to free surface: 1.3*Lref/1024
l If the option AGR only is chosen, the following settings will be applied:
l Criterion: Free surface + Pressure Hessian
l Target grid spacing normal to free surface: 1.3*Lref/1024
l Hessian criterion threshold: 0.1 Lref

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. 769).

176 Fine™ Marine 12.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 disk automated refinements only transformed with pitch, but not yaw and roll.

3.8 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.
65), "Seakeeping application" (p. 93), "Open water application" (p. 117), and "Planing regime
application" (p. 134). 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, extended applications are also provided.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
l PMM maneuvers
l Cavitation and transition

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

Hydrofoil resistance

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

177 Fine™ Marine 12.1 User Guide


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/_cwizard/_templates/
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.
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.

178 Fine™ Marine 12.1 User Guide


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.

Reference length and domain size

Two domain generation modes are possible. They are related to the two reference lengths existing
in an hydrofoil case:
l the hull reference length (LOA)
l the foil reference length (the chord)
Hull-based
In this case, the hull reference length is used to calculate the domain dimensions whereas the foil
reference length is used to insert proper viscous layers.

The objective of this method is to allow an easy comparison between a simulation with only the hull
and one with only the foil.

Foil-based
In this case, the domain size is based on the foil reference length. With this mode

The hull reference length is used for the triangulation and to define the Initial Cell Size of the
domain, which will have implications on the free-surface target cell size.

Mesh

(This is the Drop-down text)


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".

179 Fine™ Marine 12.1 User Guide


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.
Also, some particular expert parameters are automatically added to the setup in "Expert
Parameters" (p. 646) menu:
l The streaking correction is activated (see "Activate streaking correction" (p. 544)).
l The velocity clipping is activated to avoid any local and temporary divergence (see "Activate
velocity clipping" (p. 544)).

Cavitation

In foil mode, the cavitation model can be activated either for all computations (full matrix), or for
specific simulations (sparse matrix). The specifics are:
l The SAUER model is used.
l A two-simulation setup is created with an initialization computation and a true cavitation run.
l The water vapor pressure must be prescribed.
l The initial sigma value can be user-defined or computed automatically as 1.3*sigma.
l The vapor density value can be user- defined (default value: 0.02kg/m3) or computed
automatically using the ideal gas law and a salinity of 35ppm in case of salt water (density
above 1000kg/m3).

Input file chains

*** CAVITATION
* No=0/Yes=1; water vapor pressure
0 2000.0
*
*** INITIAL SIGMA
* Automatic=0/User-defined=1; value
0 1.0
*
*** VAPOR DENSITY
* Automatic=0/User-defined=1; water vapor density; temperature (Celsius)
0 0.02 15
*

180 Fine™ Marine 12.1 User Guide


Transition

In foil mode, the transition model can be activated either for the full matrix (full matrix), or for
specific simulations (sparse matrix).

Input file chains

*** TRANSITION MODEL


* No=0/Yes=1
0
*

Sailing yacht resistance

This extended application is based on the "Resistance application" (p. 65) and on the "C-Wizard
computation matrix" (p. 169). We invite the users to first read these two chapters as well as
"Launching C-Wizard in batch mode" (p. 166) before continuing.
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/_cwizard/_templates
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.

181 Fine™ Marine 12.1 User Guide


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.
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. 646) menu:
l The streaking correction is activated (see "Activate streaking correction" (p. 544)).
l The velocity clipping is activated to avoid any local and temporary divergence (see "Activate
velocity clipping" (p. 544)).

182 Fine™ Marine 12.1 User Guide


The user defined "Refinement dictionary" (p. 162) 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. 65) and on the "C-Wizard
computation matrix" (p. 169). We invite the users to first read these two chapters as well as
"Launching C-Wizard in batch mode" (p. 166) 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/_cwizard/_templates

Workflow

Inputs
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)
Specifics
l 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.
l 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.
l The center of rotation used to apply trim angle is the CoG computed by Domhydro.

183 Fine™ Marine 12.1 User Guide


The Z- coordinate of the center of gravity can be prescribed in the input file instead of being
computed by Domhydro.

l Trim and sink motions are always solved.


l 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.
Outputs
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
* 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.

184 Fine™ Marine 12.1 User Guide


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.
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.

185 Fine™ Marine 12.1 User Guide


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.

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.

186 Fine™ Marine 12.1 User Guide


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 If the option Initial base refinement + AGR is chosen, the following settings will be applied:
l Criterion: Free surface tensor
l Target grid spacing normal to free surface: 1.3*Lref/1024
l If the option AGR only is chosen, the following settings will be applied:
l Criterion: Free surface + Pressure Hessian
l Target grid spacing normal to free surface: 1.3*Lref/1024
l Hessian criterion threshold: 0.1 Lref

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):

187 Fine™ Marine 12.1 User Guide


l Single screw propeller: d = 0.75D
l Twin screws propellers:
l If Dapp < D: d = 0.75D
l If Dapp ≥ D: d = D
Two refinement sectors centered at the application point of the drag based propeller wrench are
defined:

FIGURE 3.63
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.

188 Fine™ Marine 12.1 User Guide


Ship geometry must be aligned with the X Cartesian axis.

PMM maneuvers

This extended application is based on the "Resistance application" (p. 65) and on the "C-Wizard
computation matrix" (p. 169). We invite the users to first read these two chapters as well as
"Launching C-Wizard in batch mode" (p. 166) before continuing.
This extension for PMM maneuver has been developed in the frame of the development of the
Digital Twin technology. The main goal is to feed a maneuvering model with CFD-based PMM
maneuvers results. As a result, this extended application is only available in matrix mode and
therefore only in batch mode.
The following maneuvers are available:
l Static drift
l Pure sway
l Pure yaw
l Yaw and drift
l Roll decay

FIGURE 3.64
Illustration of available maneuvers

Static drift , Pure sway, Pure yaw and Yaw and drift maneuvers are compatible in mono-fluid

189 Fine™ Marine 12.1 User Guide


and multi-fluid.
Roll decay is only compatible with multi-fluid.

In the input file the following parameters must be set:


l *** MATRIX INPUT FILE
* 1 = YES /0 = NO ; *.csv path & name (If YES, leave all MATRIX PARAMETERS and
List of speeds to 0.0)
1 /path_to_matrix_definition/maneuver.csv
*
l *** SINGLE MESH
* One project for all matrix points 1= YES/0 = NO
1
*
l *** TIME STEP PARAMETERS
* Number of time steps; Number of time steps for successive restarts (type of computation =
1); Number of PMM oscillations
1500 750 6
*

This parameter defines the number of periods that are repeated in case of oscillatory maneuver.

The different maneuvers to prepare are prescribed in a matrix.csv input file which can be written
as follows. Two distinct maneuver files can be written, the relevant parameters by maneuver are
described in the table bellow.

Maneuver U Beta v_max r_max w roll_init


/ Relevant
variable
Static drift X X
Pure yaw X X X
Pure sway X X X
Yaw and X X X X
drift

190 Fine™ Marine 12.1 User Guide


Roll decay X X

For all maneuvers except Roll decay, with U the ship's forward speed, Beta (β) the drift angle, v_
max the maximum sway velocity, r_max the maximum yaw rate and w (ω) the angular frequency:
# The first uncommented line will contain the parameter names
# “maneuver” and “U” are compulsory (not case sensitive)
Maneuver, U, Beta, v_max, r_max, w
Static drift, 12.350137, 0.000000, 0.000000, 0.000000, 0.000000
Static drift, 12.350137, -0.500000, 0.000000, 0.000000, 0.000000
Static drift, 12.350137, -1.000000, 0.000000, 0.000000, 0.000000
Pure sway, 12.350137, 0.000000, 2.544128, 0.000000, 0.471239
Pure sway, 9.547606, 0.000000, 0.334166, 0.000000, 0.471239
Pure sway, 9.547606, 0.000000, 0.668332, 0.000000, 0.471239
Pure yaw, 9.547606, 0.000000, 0.000000, 0.012453, 0.471239
Pure yaw, 9.547606, 0.000000, 0.000000, 0.008302, 0.471239
Pure yaw, 7.410082, 0.000000, 0.000000, 0.019685, 0.481732
Yaw-drift, 12.350137, -8.000000, 0.000000, 0.010847, 0.471239
Yaw-drift, 12.350137, -12.000000, 0.000000, 0.010847, 0.471239
Yaw-drift, 12.350137, -16.000000, 0.000000, 0.010847, 0.471239
Yaw-drift, 9.547606, -20.000000, 0.000000, 0.016812, 0.471239

Roll decay with U the ship's forward speed and roll_init the initial roll angle:
# The first uncommented line will contain the parameter names
# “maneuver” and “U” are compulsory (not case sensitive)
Maneuver, U, roll_init
Roll decay, 0.0, 10.9
Roll decay, 1.021, 10.8
Roll decay, 1.701, 3.6

Roll decay cases are using the overset methodology in order to handle large motions. Hence, they
must be defined in a separate maneuver.csv file. If the file contains the Roll decay maneuver mixed
with other maneuvers, the user is asked which project to prepare.

The use of the input values for


The list here below provides the list of assumptions proposed by this mode:

191 Fine™ Marine 12.1 User Guide


l The input geometry must be an entire body;
l If there are any solved motions, in order to respect the towing tank conventions, the Center of
Gravity (CoG) will be defined as the mid-ship, and it is where the PMM motion will be
applied. An external moment will be applied to mimic the impact of the weight of the ship at
its real CoG location;
l The time step value for Pure yaw, Pure sway and Yaw and drift is defined as: Motion_
period / 400;
l The Roll decay will be set as an overset case;
l The Roll decay will be set in two computations if a forward speed is prescribed:
1. Initialization ramp for speed and roll angle
2. Roll resolution
l The time step law for a Roll decay test is Adapted to Courant number for Overset grids
relative motions with:
l Co = 1
l Maximum time step = Estimated_period / 100
l T max = Initialization_computation + 20*Estimated_period

Cavitation and transition

The C-Wizard enables the automatic set-up of a large matrix of computations with cavitation and
or transition. Both features can be combined or assessed separately, depending on the specified
combination in the Matrix input file or the C-Wizard input file. The cavitation and transition
settings are intended for foils and accessible through the foil VPP template cwizard_
foilVPP.input. The set-up in itself is based on the one for Hydrofoil resistance detailed at the
start of this topic and previous knowledge about such a set- up is strongly recommended.
Additionally, prior knowledge of "Cavitation" (p. 464) and "Laminar transition model" (p. 524)
modeling with Fine Marine is expected.

This matrix-based set-up is only available for multifluid projects.

Workflow

Next to the inputs required for the Hydrofoil resistance (VPP), only the vapor pressure needs to
be specified by the user.
The vapor pressure value is required to determine the correct set-up of the target and initial values
for the cavitation parameter σ. The value of σ is determined based on the following formula:

192 Fine™ Marine 12.1 User Guide


In this equation, the reference pressure pref is assumed to be equal to 1013.25 hPa. The reference
velocity vref and density ρ are obtained from the standard inputs in the C-Wizard or matrix input
file.
Cavitation and transition can also be activated through the matrix.csv input file, which will
override the settings in the C-Wizard input file. Only the vapor pressure value is then still taken
into account from the C-Wizard input file.
An additional initialization computation will be created in the background for computations inside
the matrix where cavitation is activated. This flow initialization is mandatory and should not be
removed a posteriori. In case both transition and cavitation are activated, transition will be
activated in the initialization computation as well.
Computations are labeled according to the activated settings, to clearly distinguish between the
different computations:
l CAV_init: The initialization computation for cavitation. Cavitation model is not activated.
l CAV: The main computation for cavitation. Cavitation model is activated.
l TRANS: Computation with transition model activated.
l TRANS_CAV: Computation with both transition and cavitation activated.
l TRANS_CAV_init: Initialization computation for cavitation, with transition. Only transition
model activated.
When using the matrix input file, computations will be created in Fine Marine based on the order
of the entries. This order is only overwritten in order to place initialization computations before
the main computations when cavitation is enabled.

Input definition

In the C-Wizard input file, the first value should be changed to 1, to enable cavitation and
transition:
*** CAVITATION
* No=0/Yes=1; water vapor pressure
0 2000.0
*
*** TRANSITION MODEL
* No=0/Yes=1
0
*

193 Fine™ Marine 12.1 User Guide


Two reference lengths are required: the foil reference length is used both to determine the correct
viscous layer height and the AGR refinement box, while the hull reference length is used to
determine the domain size.

It is strongly encouraged to use the AGR Only setting for the Adaptive Grid Refinement setting.
This is done through the following lines:
*** ADAPTIVE GRID REFINEMENT
* No=0/Initial base refinement+AGR=1/AGR only=2
2

Solver settings

Time configuration

A steady time configuration is used for all cases.

Turbulence model

The k-omega (SST-Menter-2003) model is used for all cases.

Body motion

The body is always accelerated from standstill. Requested translations and rotations are handled
through the linear and angular position modification laws for the affected degrees of freedom.
These modifications are immediately performed at the start of the computation (t=0s). Given that
no degrees of freedom are solved, the quasi-static approach is not necessary.

Cavitation model

The Schnerr-Sauer cavitation model is used, with default parameters.


The initial value of the cavitation parameter σ is defined as 1.3 times the target value, which is
calculated using the provided value of the vapor pressure and assuming that the atmospheric
reference pressure patm is equal to 1013.25 hPa.

Transition model

The Gamma model is used as transition model.

194 Fine™ Marine 12.1 User Guide


Adaptive grid refinement (if active)

The Multisurface+Flux-Component Hessian criterion is used to allow for the most accurate
capturing of the flow when the cavitation/transition models are activated. This model refines
regions where either velocity or pressure gradients are large. The target cell sizes, minimum cell
size and Hessian threshold values are based on the boat reference length during initialization,
while the foil reference length is used for the restart with activated cavitation model.
During initialization, the Free surface + Pressure Hessian criterion is used instead, as this
consumes slightly less overhead resources. More information on both Hessian criterion types can
be found in the "Hessian criterion" (p. 589).
The refinement is limited in X- and Y-direction to 1 chord length behind the foil to limit the
number of cells created by the AGR criterion. In any case, the flow behind this limit does not
influence the results on the foil.

3.9 GRID CONVERGENCE STUDY

FIGURE 3.65
Example of grid convergence curve

195 Fine™ Marine 12.1 User Guide


The examination of the spatial convergence of a simulation is a tool for determining the
discretization error in a CFD simulation. The method involves performing the simulation on three
or more successively finer grids. As the grid is refined (grid cells become smaller and the number
of cells in the flow domain increase) the spatial discretization errors should asymptotically
approaches zero, excluding computer round-off error.
This analysis gives us an estimation of the error and uncertainty interval of the results produced by
a given CFD project.

The C-Wizard contains the possibility to create a grid convergence study. This feature is separated
in different steps:
l Project architecture
l Mesh setup
l Post-processing

The grid convergence mode is not available for


l Seakeeping
l All applications with shallow water option active.

Methodology

The method we propose systematically refines the initial mesh used by Hexpress while keeping
the same surface refinements in all meshes using the C-Wizard tools. This ensures the whole
volume being refined systematically and not only the area around the Solid patches.
The C-Wizard is able to generate from 3 up to 5 grid levels: Coarse, Medium, Fine, Very fine,
Ultra fine. The relation between those levels is described below.

It is recommended to us a minimum of 4 grids for a reliable error and uncertainty estimation.

Initial mesh

Considering that the initial meshes contain a number of cells N in each direction (X, Y, Z), the
following relationships can be established starting from the Medium mesh:
l Ncoarse = 3/4*Nmedium
l Nmedium
l Nfine = 5/4*Nmedium

196 Fine™ Marine 12.1 User Guide


l Nvery fine = 6/4*Nmedium
l Nultra fine = 7/4*Nmedium

The refinement ratios between meshes are therefore:


l rmedium = 1.333
l rfine = 1.250
l rvery fine= 1.2
l rultra fine = 1.167

Due to the fact that the number of initial cells in Hexpress needs to be integer value it is not possible
to have a constant refinement ratio r . It is kept as close to constant as possible. Constant refinement
ratios can be achieved in structured meshes.

Adaptation step

The Initial mesh changes, but not the surface refinements in order to keep the relationship
between the different grid levels. To perform this:
l the cwizard_refinement_dictionary.csv is read (default or user-defined)
l the Maximum number of refinements of the Medium grid is read
l a new internal refinement dictionary is created to ensure the same surface refinement in all grid
levels
In addition to that, the Diffusion is also adapted for each grid level:
l Coarse: 2
l Medium: 3
l Fine: 4
l Very fine: 5
l Ultra fine: 6
The goal is to keep the overall "shape" of the octree mesh intact: the cell size changes are done at
the same location.

197 Fine™ Marine 12.1 User Guide


FIGURE 3.66
Example of generated meshes: Coarse to Ultra fine.

Considering this, the C-wizard is able to generate a series of nested meshes that are closely related
and can be used in the frame of a grid dependence study.

In order to preserve the validity of this methodology, Adaptive Grid Refinement should not be
used.

Usage

The Grid Convergence study is only available in batch mode, hence the page "Launching C-Wizard
in batch mode" (p. 166) should be read carefully.

Activation

The activation of the Grid convergence study is made in the C-Wizard .input file in the following
lines. The first digit set to -1 activates the Grid convergence, the second digit set the number of
grids, between 3 and 5:
*** SELECT MESH DENSITY
* 0=Coarse/1=Medium/2=Fine/-1=Grid convergence; number of grid levels
-1 4
*

Refinement dictionary

To define the number of surface refinements to apply on the geometry patches for all grid levels,
the cwizard_ refinement_ dictionary.csv must be up-to-date for the geometry of interest. The
refinement of the Medium level is used to apply the refinements for each grid level.

198 Fine™ Marine 12.1 User Guide


The default dictionary located in the installation directory (see "Refinement dictionary" (p. 162)
page) or a user-defined one can be chosen in the following section of the .input file:
*** REFINEMENT DICTIONARY PATH & NAME

Post-processing

With this feature, a post processing tool is provided in the installation package. The goal of this
tool is to:
l Retrieve the necessary outputs of the computations ran in the frame of the grid convergence
study,
l Compute the estimated exact value based on the Richardson extrapolation of the results in
different grid levels,
l Compute an uncertainty interval where the exact solution is placed with 95% confidence
l Create a report and graphs summarizing the analysis results.

Outputs:
l Report with analysis steps and summary
l Data summary garph
l Richardson extrapolation and GCI graph
l Least squares fit and uncertainty graph
All outputs will be stored in a folder named Grid_convergence_report_Date_Time.

Execution

To execute the post-processing, the following command should be used:


l On Linux:
finemarine# - print - batch - script INSTALLATION_ DIRECTORY/finemarine#/_
data/Script/GC_get_results.py
l On Windows, to put in a .bat file:
INSTALLATION_DIRECTORY\finemarine#\bin64\fine_marinex86_64.exe -print -batch -
script INSTALLATION_DIRECTORY\finemarine#\_data\Script\GC_get_results.py

199 Fine™ Marine 12.1 User Guide


Inputs definition

FIGURE 3.67
Post-processing tool: user inputs​

The inputs are the following:


l How to retrieve the CFD results?
The tool takes in input a .csv file (see FIGURE 3.68). This file can either be generated by hand
or the tool can generate it from Fine Marine results given that the project architecture has not
been tempered with.
Default: From Fine Marine results
l Path to the grid convergence project
The path to prescribe refers to the folder just above all the projects containing the different grid
levels.
Default: Current directory
l Analysis type
The analysis can be either 1D or 3D. 1D means that the normalization of the grid is based on
the initial mesh size in the X-direction. 3D means that the total number of cells is taken instead.

1D analysis is advised.

Default: 1D
l Quantities to analyze

200 Fine™ Marine 12.1 User Guide


The convergence will be analyzed for the prescribed quantities. Forces, moments and its
pressure and viscous decomposition, translations, rotations and its derivatives can be selected.
Default: Fx, FxV, FxP

FIGURE 3.68
Example of .csv input file

The argument -auto can be added to perform all the default actions.

Workflow and quantities computed

A detailed description of the post-processing procedure can be found in [1].


The normalized grid size is used to identify each mesh during the post-processing:

The index i goes from 1 to n g , being n g the number of meshes used. h = 1.0 corresponds to the
finest mesh.

Data summary
The first output is a data summary for the user to check.

201 Fine™ Marine 12.1 User Guide


FIGURE 3.69
C-Wizard grid convergence output: data summary for all grid levels

Richardson extrapolation
The behavior of the solution error is defined as the difference between the discrete solution and
the exact solution, and depends on the order of convergence p:

where f is any flow or integral quantity computed by the CFD code, f0 is the value at an infinitely
refined mesh (h=0), and p is the order of convergence shown by the results. Higher order terms
are considered negligible.
Requirements for this method to be applicable:
l Results are in the "asymptotic range of convergence".
l The grids are geometrically similar (have a constant refinement ratio).
If p > 0.0 for the data set, the post-processing scripts proceeds to compute the value of f0 , p and
Grid Convergence Index. Otherwise it prints a message explaining the data shows an oscillating
behavior.

202 Fine™ Marine 12.1 User Guide


The error in each grid level i is then estimated as its difference with f0:

Grid convergence index (GCI) is a measure of the percentage the computed value is away from
the value of the asymptotic numerical value. It indicates an error band on how far the solution is
from the asymptotic value. It indicates how much the solution would change with a further
refinement of the grid.

Where Fs is a safety factor: Fs = 1.25 if p is in the expected range for a 2nd order CFD code [0.5,
2.1] and Fs = 3.0 if p is outside this range.
r is the mean refinement ratio between all the meshes used.

A small value of GCI indicates that the computation is within the asymptotic range.

The data with the function interpolation, the estimated exact solution and the GCI shown as an
error bar are plotted in a graph:

203 Fine™ Marine 12.1 User Guide


FIGURE 3.70
C-Wizard grid convergence output: Richardson extrapolation and GCI on the finest grid.

Least squares error and uncertainty estimation


The Richardson extrapolation has a number of limitations that can prevent it from being used in
data obtained from complex flow simulations. The next step in the post-processing is a procedure
to estimate errors and uncertainties for which the exact solution is unknown. This procedure can
be used even if the data show some scatter.
The outcome of the least square interpolation is an Uncertainty band where the exact solution is
placed with a 95% confidence.
The following functions are considered for error estimation: in the post-processing they are
referred to as "Richardson extrapolation", "first order", "second order" and "first+second order".

204 Fine™ Marine 12.1 User Guide


Each function is fit to the data using a weighted and non-weighted approach: the weighted
approach gives more weight to the finer meshes results, which are expected to be more accurate.
The weight wi is proportional to the normalized grid size and the sum of the weights of all meshes
is 1.0. For non-weighted fits all weights are set to 1.0.

The least-squares fit is obtained by minimizing the weighted residual of the function, for example
for Richardson extrapolation:

From the solution the function parameters obtained, and the standard deviation of the fit (which
takes the weights into account) is computed. See [1] for the complete formulation.
Procedure:
1. The Richardson extrapolation (RE) and RE weighted functions are fit to the data in least
squares sense. The order of convergence (p) is obtained.
2. Depending on the data behavior an error estimator is chosen:
l p in the expected range [0.5, 2.1]: the function for error estimation is chosen as the best fit
function (lowest standard deviation) among RE and RE weighted.
l p > 2: RE would cause too small error estimates. The function for error estimation is chosen as
the best fit function (lowest standard deviation) among 1st and 2nd order functions weighted
and non-weighted.
l p < 0.5: RE would cause a too conservative error estimation. The function for error estimation
is chosen as the best fit function (lowest standard deviation) among 1st, 2nd and 1st +2nd
order functions weighted and non-weighted.
Then the factor of safety is determined based on the quality of the fit:
Data range:

where ng is the number of grids used.


Factor of safety:
l If 0.5 < p < 2.1 and σ < Δf: Fs = 1.25
l Otherwise: Fs = 3.0

205 Fine™ Marine 12.1 User Guide


Uncertainty estimation: interval that contains the exact solution with 95% coverage,

The quality of the fit is evaluated based on how the standard deviation of the fit (σ) compares to
the data range (Δf).
The error estimation is considered reliable if σ < Δf, and uncertainy is defined as:

Otherwise if σ ≥ Δf:

For a grid refinement study with monotonically convergent smooth data this method reduces to
the above mentioned GCI.
The data, least squares function fit and uncertainty interval are plotted in a graph:

206 Fine™ Marine 12.1 User Guide


FIGURE 3.71
C-Wizard grid convergence output: function fit and uncertainty on the finest grid.

Guidelines and examples

l Before running the grid convergence study, it is recommended to run a serial project using the
C-Wizard Coarse grid level. Make sure the mesh is sufficient to snap the geometry and mesh
quality allows to run the computation, even if the geometry capturing is not great.
l It is strongly recommended to use 4 grid levels or more.
l If the data do not show monotonic convergence the Richardson extrapolation will not be
computed.

Examples
1. Data show monotonic convergence:

207 Fine™ Marine 12.1 User Guide


208 Fine™ Marine 12.1 User Guide
2. Data show oscillatory behavior:

209 Fine™ Marine 12.1 User Guide


As the computed order of convergence is too low, Richardson extrapolation is not computed.

210 Fine™ Marine 12.1 User Guide


This behavior translates into a higher uncertainty value.

References

[1] Eça, Luís & Hoekstra, M. (2014). A procedure for the estimation of the numerical uncertainty
of CFD calculations based on grid refinement studies. Journal of Computational Physics. 262.
104–130. 10.1016/j.jcp.2014.01.006.

211 Fine™ Marine 12.1 User Guide


CHAPTER 4.

DYNAMIC VPP

Establishing the performance map of a sailing yacht in all kinds of wind conditions and angles is
essential to get the maximum out of a boat. To do so, Velocity Prediction Programs were developed to
retrieve this performance map based on large matrices of aero and hydro data in an iterative process.
The introduction of CFD simulations has drastically improved the accuracy of the hydro model, but the
costs are non-negligeable. The Dynamic VPP feature developed in partnership with Finot-Conq gets rid
of many of the classical “static” VPP flaws. In one single computation a 5 degrees of freedom speed
optimization is performed.
The key elements of the Dynamic VPP are:
l Objective: 5DoF boat speed optimization.
l The yaw angle is considered fixed and the rudder position is adjusted to keep equilibrium of the
yawing moment.
l Inputs: True wind speed and angle.
l Parameter: sail power.
l Result: boat speed, optimal sail power control, efforts and motions.
The VPP is dynamic in the sense that it allows computing successive converged states for different sail
power values, but it does not simulate dynamic conditions like wind gusts or maneuvers.

212 Fine™ Marine 12.1 User Guide


Demo case 14 is available for download. It includes a complete project setup with the dynamic VPP ready to
run.

Current limitations:
l The free surface is assumed to be placed at Z=0.0m.
l All cases must be setup for starboard tack (wind coming from starboard).
l The sail power optimization algorithm requires reaching a steady equilibrium to detect the
convergence and switch to the next sail power iteration. The signal oscillations must be
within convergence tolerance criteria.
l Only one rudder is considered. In case of a twin rudder boat the user should enter the data
for the leeward rudder.
l The rudder must not be meshed as it is represented analytically. The rudder is always
considered fully submerged.
l A power law is considered for the wind profile. The user does not need to impose a wind
profile in the CFD simulation.
l The value for Number of time steps to stabilize the solution after last convergence
needs to be below the value for Convergence check frequency.

In this section
4.1 Dynamic VPP workflow 214
4.2 Dynamic VPP GUI and parameters 218

213 Fine™ Marine 12.1 User Guide


4.1 DYNAMIC VPP WORKFLOW

4.1.1 General workflow

1. Prepare your geometry:


a. Give names to the surfaces for an automatic C-Wizard mesh setup.

The rudder should not be included in the geometry, it is modeled analytically.

b. The ship must be oriented along the global X-axis. If desired, apply an estimated heel angle
to the hull.
a. If the geometry is in Parasolid or CATPart formats use CAD manipulation >
Transform > Rotate
b. If the geometry is a domain or STL use Domain manipulation > Move part > Rotate
2. Prepare a resistance project setup manually or using the C-Wizard. If the C-Wizard is used,
the following options need to be active:
a. Full body
b. Is the body aligned with the Cartesian axis? If a heel angle was applied in the previous step,
select No and specify the heel angle in Roll (Rx2).
c. The free surface needs to be placed at Z=0.
d. The Surge needs to be solved.
e. Speed: estimated speed.
f. Adaptive grid refinement
g. Place body in overset domain: if the heel angle range allowed is small, overset will not be
needed. A single domain with mesh deformation can be used.

A power law is considered for the wind profile. The user should not impose a wind profile in
the CFD simulation.

3. Start the Dynamic VPP plugin and enter all data required, see the GUI and parameters
section for detailed information. Click Apply to run the plugin and the following modifications

214 Fine™ Marine 12.1 User Guide


will be automatically applied:
a. Input values will be checked for validity.
b. The following files will be copied into the computation folder:
l Dynamic_VPP.input containing all input data
l isis_dynamic_lib.so (Linux) or isis_dynamic_lib.dll (Windows) containing the dynamic
VPP controller.

The dynamic library is also available in the installation folder under:


_data\isis\dynamic_lib\Dynamic_VPP\<OS>

c. Set the degrees of freedom Tx0, Ty0, Tz0, Rx2 and Ry1 to solved.
d. During the computation the dynamic VPP controller will:
a. Compute the drag/lift coefficient of the non-simulated elements using polars
b. Compute the aero forces and moments
c. Retrieve the ship motions, hydro forces and moments from the CFD computation
d. Compute windage forces and moments
e. Compute propeller drag
f. Control the rudder
g. Sum all the efforts
h. Regulate the power value
i. Check convergence of iteration (more details in "Convergence check methodology" (p.
217))
j. Estimate next iteration's power parameter
Until a converged state is reached for all forces and motions. For the next iteration the
sail power setting is modified to explore another area of the design space, and the
process is repeated.

215 Fine™ Marine 12.1 User Guide


FIGURE 4.1
Iterations 2, 3 and 4 of a dynamic VPP run: evolution of heel, trim and speed. The green
dashed lines show the end of each iteration.

If after 3 iterations an optimum is found in one of the extreme cases, the computation will
stop, regardless of the number of iterations requested.

4. The following output files will be created in the computation folder:


a. DynamicVPP_history.dat: it contains the values for each parameter at each time step.
b. DynamicVPP_ convergence.dat: once a converged state is reached the values for the
following parameters are stored in this file: Time step, Time, Reef, Power, Vmax, Heel,
VMG (velocity made good).

l If the optimum is found within the first three iterations, no extra line will be written.
The user should check the results for the maximum speed value.
l Otherwise, once all iterations have been computed, the final optimized value for Power
and Vmax is written, as in line 6 in the image below.

FIGURE 4.2
Content of the DynamicVPP_convergence.dat file at the end of an optimization with 4
iterations.

216 Fine™ Marine 12.1 User Guide


4.1.2 Workflow for restarts

If for any reason a computation with the dynamic VPP is stopped there are two options to
continue the dynamic VPP optimization in a restart:
1. From the GUI
a. Create new computation and define it as a restart.
b. Run the VPP GUI, enter all inputs again.
The DynamicVPP_history.dat, DynamicVPP_convergence.dat are correctly copied from the
previous computation.
DynamicVPP.input and isis_dynamic_lib.so are also stored in the restart folder.
2. Manually
a. Create a new computation
b. Copy DynamicVPP.input, DynamicVPP_history.dat, DynamicVPP_convergence.dat and
isis_dynamic_lib.so from the first computation into the restart computation folder.

4.1.3 Convergence check methodology

After X seconds of physical time, convergence tests will be performed every Y seconds of
physical time on values collected during a period of Z seconds.
Convergence parameters:
l X: Convergence check start after
l Y: Frequency of convergence check
l Z: Data collection duration for convergence calculation
The convergence check is a two-steps check:
1. Check that the absolute mean deviation is within target, i.e. verify the trend is converging
2. If the first point is valid, check that the maximal absolute deviation is within target, i.e. verify
the oscillations are within expectations

217 Fine™ Marine 12.1 User Guide


4.2 DYNAMIC VPP GUI AND PARAMETERS

The plugin is started from the button in the icon bar. An initial project setup should be
prepared before running the plugin, check the Workflow page for details.

4.2.1 Case data

l Speed units: m/s or kt


l True wind speed (TWS)
l TWS reference height: reference height for the power law wind profile.
l True wind angle: angle between the yacht advancing direction and wind direction. 0.0 would
correspond to head wind.
l Estimated ship speed: it will be used to initialize the ship speed optimization.

218 Fine™ Marine 12.1 User Guide


l Sail setup
l Reef: percentage of sail up. 0.75 would correspond to 75% of sail up, 25% reefed. Note
that here reef is an input, unlike in classical VPPs it is not optimized.
l Initial power: initial combined flat/twist parameter. It will also act as a maximum power.
Its maximum value is 1 and it should be above the Minimum possible power defined in
VPP parameters > Heel control.
l Flat coefficient: it represents the percentage of sail lift that is obtained by trimming the
sails.
l Twist function: it represents the lowering of the center of efforts when de-powering the
sail.

4.2.2 Ship data

l Ship characteristics
l Body name: select the physical body as defined in the Body Definition menu.
l Center of gravity in upright position.
l LOA: ship length over all.
l Hull beam: excluding foils and appendages.
l Ship freeboard at Bow, Midship and Aft: distance between free surface and deck at the
three locations.
l Air draft: distance from the surface of the water to the highest point on the ship.
l Ship mode : Archimedean or foiler, the added mass coefficients will be recomputed
depending on the mode selected.
l Rudder characteristics
l Rudder area
l Rudder geometric center
l Rudder inclination (around ship axis X): rudder inclination from the vertical, when the
ship is upright (0° heel).
l Propeller characteristics
l Propeller Installed Projected Area as per ORC or IMS measurements.

219 Fine™ Marine 12.1 User Guide


4.2.3 Sails data

l Main sail
l Mainsail area
l Mainsail geometric center
l Mainsail sections: text file with .dat extension with the list of section areas and their
corresponding height. Text after “#” will be ignored.
Example mainsail_sections.dat:
# Sail sections
# Section_Area Height_of_Section_Center (one line per sail section)
11.44 16.49
17.91 12.66
20.61 8.52
20.72 4.54
l Foresail
l Foresail type: Jib/Genoa, asymmetric spinnaker or Gennaker/Code0
l Foresail area
l Foresail geometric center
l Fractionality: mast percentage location for foresail head
l Foresail sections: only if Jib/Genoa is selected as foresail type. Text file with .dat extension
with the list of section areas and their corresponding height. Text after “#” will be ignored.
Example genoa_sections.dat
# Sail sections
# Section_Area Height_of_Section_Center (one line per sail section)
2.74 14.24
8.32 10.88
14.12 7.19
20.02 3.47
l General
l Height of boom above waterline
l Sails highest point
l Height of Spinnaker Hoist (ISP)

220 Fine™ Marine 12.1 User Guide


The aero model used in the dynamic VPP is similar to ORC 2020 formulation with specific Finot-
Conq developments.

4.2.4 Windage data

l Take into account extra windage?: consider additional elements in the aero computation.
l Windage section file: text file with .dat extension with the list of element types, their front area
and side area. Text after “#” will be ignored.
Example windage_elements.dat:
# Windage sections (Element name case sensitive - Do not use capitals)
# Element_type Front_area(0°) Side_Area(90°) Z_CoE (one line per element)
mast 2.1 4.5 10.985
mast 0.0 1.1 2.67 #boom
cable 0.12 0.12 8.685 #D1x2
hull 4.8 14.3 1.53 #hull
hull 1.2 2.0 1.81 #roof
crew 0.25 0.5 3.65

The user can add other element types than mast , cable hull or crew . In that case a polar file
including the new elements needs to be provided.

l Windage drag coefficient: default or user-defined (upload windage 0/90deg drag coefficients
file). The windage polar file should be a text file with .dat extension with the list of element
types and drag coefficients at 0.0 and 90 degree angle of attack. Text after “#” will be ignored.
Example Windage polar file:
# Element_type, Cd(0deg), Cd(90deg)
mast 0.05 0.4
...
where Cd stands for drag coefficient and Cl for lift coefficient.

221 Fine™ Marine 12.1 User Guide


4.2.5 Polars

l Rudder polar
l Upload the rudder polar: if user-defined, import a .dat file with the format below.
Example rudder_polar.dat:
# Rudder polar
# AoA Cd Cl
0 0.007502 0.0
1 0.007909 0.0810135
2 0.00913 0.162027
...
where AoA stands for angle of attack, Cd for drag coefficient and Cl for lift coefficient.
l Mainsail polar: default or user-defined with the format below.
l Foresail polar: default or user-defined with the format below.
Example sail_polar.dat file:
# beta, Cd, Cl
0 0.00962 0.0
1 0.00913 0.162027
where beta stands for the apparent wind angle, Cd for drag coefficient and Cl for lift
coefficient.

4.2.6 VPP parameters

l Number of iterations to perform: number of successive equilibrium states the dynamic VPP
should compute.

At least 3 iterations are required to evaluate the optimum power. If the optimum is found to be in
one of the extreme cases tested in the first 3 iterations, the computation will stop, regardless of the
number of iterations requested.

222 Fine™ Marine 12.1 User Guide


l Heel control
l Minimum possible power: minimum combined flat/twist parameter as defined in the Case
data page.
l Heel boundaries: minimum and maximum heel angles allowed.
l Convergence
l Frequency of convergence check
l Data collection duration for convergence calculation: the window used to verify the
convergence.
l Convergence check start after: the convergence will not be monitored before a certain
time to evacuate the transient state.
l Convergence criteria: split between Translations, Rotations, Forces, and Moments.
The following quantities can be monitored:
l Translations: Vx, Vy, Vz, Ax, Ay, Az
l Rotations : Rx, Ry, dRx, dRy (the Z- component is fixed in all Dynamic VPP
computations)
l Forces: Fx, Fy, Fz, dFx, dFy, dFz
l Moments: Mx, My, Mz, dMx, dMy, dMz
Each quantity can be monitored or not depending on its activation status. For each quantity,
two criterion values must be set:
l Average of the deviation from the mean value: mean absolute deviation of the signal
from the mean value of the given quantity
l Max. of the deviation from the mean value: if the mean absolute deviation is within
criteria, the maximal absolute deviation is verified to detect if signal oscillations are
within criteria

Once the variation of all quantities is below the criteria specified, the iteration will be
considered converged.

The convergence inputs are stored in the convergence.now file in the computation folder. The
file is dynamically read during the simulation allowing on-the-fly adaptation by the user.

223 Fine™ Marine 12.1 User Guide


4.2.7 Advanced

This page contains the controller settings.


l General
l Number of time steps to stabilize the solution after last convergence
l Heel control
l Heel control start
l Heel control frequency
l Heel control evaluation interval
l Power feedback ratio
l Rudder control
l Rudder control frequency
l Rudder angle feedback ratio
l Rudder stall angle: if the rudder angel goes above this value the iteration is stopped.
l Motions stabilization
l Duration: number of time steps where the added mass is applied to dampen motions.
l Added mass factor: used during the acceleration phase to minimize oscillations.
l Release duration: number of time steps where the added mass is decreased from Added
mass factor to 1.

224 Fine™ Marine 12.1 User Guide


CHAPTER 5.

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
5.1 Introduction 226
5.2 Computation procedures 227
5.3 Input 233
5.4 Output 237
5.5 Recommendations 239

225 Fine™ Marine 12.1 User Guide


5.1 INTRODUCTION

Four types of computations are available depending on the known/ unknown variables and how
the propulsion system is modeled:
With the real propeller geometry in a rotating domain:
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];
One or two propellers can be present in this type of computation. With two propellers the
following configurations can be used:
l Full body with two propellers
l Half body with mirror plane to simulate a 4 propeller configuration.
With Actuator disk:
l Type IV: fixed thrust horsepower (THP) [W] and computed ship advancing speed [m/s].
See the next section Computation procedures for the step by step setup of a project.
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 For computations of Type I, II and III: the maximum number of propellers in the domain is
2. When using a mirror boundary condition this allows to simulate up to 4 propellers.

226 Fine™ Marine 12.1 User Guide


l For computations of Type IV with activated tangential force, the initial ratio torque/ thrust
will be kept constant during the simulation.

5.2 COMPUTATION PROCEDURES

This section goes through the steps to set up a self-propulsion computation using the controller
dynamic library.

Define computation set up

Before launching the self-propulsion plugin, the user must set up 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.
The body motion laws for ship and propeller need to be defined as follows:

Ship Tx Imposed motion Propeller Rn Imposed motion

Type I Acceleration ramp Dynamic library

Type II Dynamic library Acceleration ramp

Type III Dynamic library Dynamic library

Type IV Dynamic library -

For type IV where the propeller is considered into the computation through an actuator disk
model, in the Actuator disk parameters menu the user must activate Body force update of type
PROPELLER CODE.

Define self-propulsion parameters

Once the computation is set up launch the self-propulsion plugin using the icon

227 Fine™ Marine 12.1 User Guide


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 automatically 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.
Launch the self-propulsion plugin and fill in the requested parameters or manually complete the
SPinputs.dat file.

Types I, II and III

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

This option is only available if all degrees of freedom except surge (Tx0) are fixed. If at least one
other degree of freedom is solved, then the wrench should be prescribed in the Body forces >
Dynamic parameters menu under "Constant Wrench" (p. 354).

l Thrust is positive when omega is positive: define clockwise or counter-clockiwise propeller


rotation.
l Diameter of the propeller(s) [m]

228 Fine™ Marine 12.1 User Guide


FIGURE 5.1
User inputs for Type I self-propulsion

229 Fine™ Marine 12.1 User Guide


FIGURE 5.2
User inputs for Type III self-propulsion

When two propellers are present in the computation the following extra inputs will appear:
l Propellers position: identify starboard and port propellers.
l Propellers revolution rate ratio: it defines the revolution rate of the propellers in Type I self-
propulsion. The starboard propeller revolution rate will be this ratio times the starboard
propeller revolution ratio.
Examples:
-1: both propellers have the same revolution ratio and rotate in opposite directions.
1: both propellers have the same revolution ratio and rotate in the same direction.
0.5: the starboard propeller rotates at half the revolution ratio of the port one. Both rotate in
the same direction.

230 Fine™ Marine 12.1 User Guide


Type IV

FIGURE 5.3
User inputs for Type IV self-propulsion

l Power of the propeller [W]: THP


l Estimated propeller rotational speed at operating point [rad/s]
l Outer diameter of the actuator disk [m]

Advanced

Common to all Types


l Estimated thrust coefficient of the propeller at operating point : Kt=Thrust/
(rho*Omega**2*D**4) [-] Thrust in [N] and Omega in [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.

231 Fine™ Marine 12.1 User Guide


l Number of time steps before the limiter is activated: 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.
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.

Number of time steps before the controller is activated : this parameter will control
activation of the dynamic library after the given number of time steps.
Specific parameters
l Maximum variation of Omega between two consecutive time steps when limiter is
activated: controls the limiter behavior. Expressed in percentage of the value of omega at time
step n.
l Maximum variation of vessel speed between two consecutive time steps when limiter is
activated: controls the limiter behavior. Expressed in percentage of the value of vessel speed
at the current time step.
l Estimated advance coefficient at operating point: J=Vship/(Omega*D) [-] Vship in [m/s]
and Omega in [rps].

Computation and outputs

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.

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

At the first time step the input data will be printed to the .std file for the user to check. The outputs
will be stored in the SPResults.dat file in the computation directory and information will be
printed to the .std file.

232 Fine™ Marine 12.1 User Guide


5.3 INPUT

The input file SPinputs.dat contains all the inputs needed by the self-propulsion dynamic library.
It will be created by the self-propulsion plugin.
If the user wishes to modify it manually template SPinputs.dat files can be found together with the
compiled dynamic libraries in:
1. For 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. For 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.

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].
*** Number of propellers: integer
Possible values: 1 or 2
*** Name of the propeller: string
Required only if number of propellers is 1. Otherwise it will not be used.
*** Name of the port side propeller: string
*** Name of the starboard side propeller: string
Required only if number of propellers is 2. Otherwise it will not be used.

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

233 Fine™ Marine 12.1 User Guide


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].
Options: 1 = true, -1=false
*** Propellers revolution rate ratio
It defines the revolution rate of the propellers in Type I self-propulsion. The starboard propeller
revolution rate will be this ratio times the starboard propeller revolution ratio. The value needs to
be in the range [-1, 1].
Example: 1.0: same revolution rate same direction, - 1.0: same revolution rate but opposite
direction (Mandatory in case of double screwed ship).
*** Additional constant wrench force along X-axis [N]: decimal number
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.

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 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]:

234 Fine™ Marine 12.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.

235 Fine™ Marine 12.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.

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.

*** 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

236 Fine™ Marine 12.1 User Guide


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
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.

5.4 OUTPUT

The SPResults.dat output file is created and updated at every time step when the dynamic library
for self-propulsion is used.
The SPResults.dat file 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,

237 Fine™ Marine 12.1 User Guide


l Flag limiter: if the limiter bounds n(tc), then the flag is set to 1 instead of 0.

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;

238 Fine™ Marine 12.1 User Guide


l If the limiter bounds both n(tc) and V(tc), the flag is set to 3.

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.

5.5 RECOMMENDATIONS

5.5.1 Best practices

The recommendations can be found under the Propulsion Best practices.

5.5.2 Self-propulsion plug-in

l 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.
l It is advised to activate the limiter at about ¾ of the velocity ramp (e.g. at 150 time steps if 200
time steps are used for the velocity ramp).

239 Fine™ Marine 12.1 User Guide


l The value of the propeller diameter should be specified within at most few percentages of the
physical size.
l When only using the dynamic library is only used during the restart and peaks are visible at the
restart, activating the dynamic library after at least 3 time steps can contribute to reducing such
peaks.
l The closer the computation converges to the operating point, the lower the estimated thrust
coefficient can be set to accelerate the convergence. Computation restarts could be a good
solution in order to reach the operating point faster.
l Check the 'SPResults.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, or 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.

240 Fine™ Marine 12.1 User Guide


CHAPTER 6.

GENERAL PARAMETERS

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

FIGURE 6.1
General parameters page

241 Fine™ Marine 12.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
6.1 Unsteady Computation Interface 243
6.2 Best Practice on Time Accurate Computations 243

242 Fine™ Marine 12.1 User Guide


6.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.

6.2 BEST PRACTICE ON TIME ACCURATE


COMPUTATIONS

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

243 Fine™ Marine 12.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.

244 Fine™ Marine 12.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.

245 Fine™ Marine 12.1 User Guide


CHAPTER 7.

FLOW MODEL

The Flow Model page, as shown in FIGURE 7.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.

246 Fine™ Marine 12.1 User Guide


FIGURE 7.1
Flow Model page

In this section
7.1 Mathematical Model 248
7.2 Gravity Intensity 257
7.3 Reynolds and Froude Numbers 257

247 Fine™ Marine 12.1 User Guide


7.1 MATHEMATICAL MODEL

7.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.
268)

7.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 k-omega (SST-Menter-2003),
l EASM (Explicit Algebraic Stress Model),
l EASM-BSL (BETA)
l EASM-SBSL (BETA)
l EASM-SSC (BETA)
l DES-SST,
l DES-SST-F1,
l DES-SST-F2,
l DDES-SST,
l IDDES-SST.

248 Fine™ Marine 12.1 User Guide


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.

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

l Spalart- Allmaras is not compatible with wall- function for the solid walls boundary
condition.
l k-ω (SST-Menter-2003), DDES-SST and IDDES-SST models need further testing to
formulate clear guidelines.
l EASM-BSL, EASM-SBSL and EASM-SSC have not been validated at an industrial level
yet and are flagged as BETA. They are not compatible with wall function boundary
condition and they can increase the CPU time up to three times.

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

7.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 main kinds of turbulence models present in FINETM/Marine are:

249 Fine™ Marine 12.1 User Guide


l One-equation models (Spalart-Allmaras)
l Two-equations models (k-ε, k-ω models)
l Explicit Reynolds stress models (EASM models)
l Detached Eddy Simulation models (DES, DDES and IDDES)

The Detached Eddy Simulation models can only be selected for 3D projects due to their
theoretical formulation.

k- ω (SST- Menter) is the default and represents the recommended turbulence model for all basic
hydrodynamic computations.

l EASM turbulence model demonstrates slightly better results for a reasonable extra CPU cost,
especially for ships with a large Cb generating large longitudinal vortices from the hull sides.
l Be careful in case of large flow separation - which can happen on a flat wet transom - EASM
will overestimate the turbulence. This problem does not appear with dry transoms since the
influence of the air is negligible in case of a multi-fluid computations, but it is not negligible for
wind studies.
l To use DES models see "Best practice for DES models" (p. 254).
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+:

250 Fine™ Marine 12.1 User Guide


where uτ is the friction velocity:

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

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

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-slip
(wall resolved turbulence model) should be preferred for y1+ below 1.

FIGURE 7.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:

251 Fine™ Marine 12.1 User Guide


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

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.

252 Fine™ Marine 12.1 User Guide


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:

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.

253 Fine™ Marine 12.1 User Guide


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.

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. In the list of
DES models, we can list: DES-SST, DES-SST-F1, DES-SST-F2, DDES-SST and IDDES-SST.
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.

254 Fine™ Marine 12.1 User Guide


2. How to use it
l (optional) run a first steady computation with k-ω (SST-Menter) model,
l restart with an unsteady simulation using a DES model until stability of the signal,
l restart the computation activating the mean variables from the output menu (see "Mean
Flow Variables" (p. 675)).
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 Switch the turbulence model to one of the DES models
l Numerical schemes for Turbulence and Momentum: BLENDED with a level of upwinding
of:
o 0.05 (5%) for mono-fluid simulations;
o 0.1 (10%) for multi-fluid simulations (can be increased up to 0.2 in ideal conditions with
high quality meshes for instance).

255 Fine™ Marine 12.1 User Guide


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.

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.

Recommended DES model:


l For all these models, the difference comes from the buffer zone (transition between RANS and
LES). DES models are very sensitive to that zone. Hence, DES variants are no longer in use,
in particular F1 and F2 variants.
l In theory, the IDDES model is less sensitive to that zone but accuracy suffers from that model
and/or from the mesh quality that should be excellent to avoid inaccuracies (this is where
surface to volume mesh generation with large viscous layers and uniform and well distributed,
will certainly lead to better results, but remain sometimes not easy to produce depending on the
case).
l For the moment, we could say that the models could be ordered in the follow way:
l 1) DDES
l 2) IDDES (or even placed in position 1) if the mesh is easy and very nice quality)
l 3) DES
l A correction for rotation is available for K-W RANS model. Since the hybrid LES models are
coded based on K-W model, this correction is applied to all DES models as well.

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.

256 Fine™ Marine 12.1 User Guide


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.

7.2 GRAVITY INTENSITY

When gravity is taken into account, the Gravity Intensity (FIGURE 7.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 7.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:

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.

7.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.

257 Fine™ Marine 12.1 User Guide


The Reynolds number is computed for Fluid-1 only.

258 Fine™ Marine 12.1 User Guide


CHAPTER 8.

FLUID MODEL

Every Fine Marine project contains at least one fluid with corresponding properties.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
8.1 Mono-Fluid Project 260
8.2 Multi-Fluid Project 261
8.3 Passive scalar 263

259 Fine™ Marine 12.1 User Guide


8.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 8.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.

260 Fine™ Marine 12.1 User Guide


FIGURE 8.2
Water properties table

8.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.

261 Fine™ Marine 12.1 User Guide


FIGURE 8.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 8.4
Interface position

262 Fine™ Marine 12.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 8.5
Discretization Scheme for Multi-Fluid Computation

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

8.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'.

263 Fine™ Marine 12.1 User Guide


FIGURE 8.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. 265)).
The type of numerical scheme to solve the transport equation is selectable in the "Numerical
Models" (p. 538) menu.
Passive scalar choice is also available for volume, surface and point probes (see "Probe
Variables" (p. 658)) to see the evolution in time of the scalar field. It is also present as a mean
output variable (see "Mean Flow Variables" (p. 675)).

264 Fine™ Marine 12.1 User Guide


CHAPTER 9.

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,
l Periodic.
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 following window appears:

265 Fine™ Marine 12.1 User Guide


FIGURE 9.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 patches by pressing the right-click button of the mouse on
the selected patch(es).

266 Fine™ Marine 12.1 User Guide


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 , Mirror and Periodic boundary condition are possible. These conditions
should be replaced directly in Hexpress as soon as the following warning message appears:

FIGURE 9.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 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.

9.1 Solid Wall Boundary Condition 268


9.2 External Condition 276
9.3 Mirror Condition 301
9.4 Non Conformal Interface 302
9.5 Periodic Condition 302

267 Fine™ Marine 12.1 User Guide


9.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 9.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.

268 Fine™ Marine 12.1 User Guide


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.

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 9.4
Warning message for the flow model page

Wall roughness

A wall roughness model (see Roughness in the Theory guide) is available on theSolid patches
where a Wall-functioncondition has been applied. There are two ways of defining it:
l Uniform roughness:same roughness for all wall-function patches
l Per-patch roughness:different roughness values for each wall-function patch
Once activated, this approach is automatically applied to all wall-function patches and requires the
input of aSand grain height value, defined in meters:

269 Fine™ Marine 12.1 User Guide


FIGURE 9.5
Wall roughness option with sand grain height definition for all wall-function patches

FIGURE 9.6
Wall roughness option with sand grain height definition for the currently selected patches only

If the roughness must be deactivated for specific patches, enter a sand grain height value of 0, these
patches will be considered as hydrodynamically smooth.

Reference values for sand grand height:

FIGURE 9.7
Wall roughness values available in the C-Wizard.

270 Fine™ Marine 12.1 User Guide


From Schultz, Michael P. (2007) 'Effects of coating roughness and biofouling on ship resistance
and powering', Biofouling, 23:5, 331 - 341

Wall roughness model is implemented only for turbulence models solving k-ω equations, such
as SST and EASM models. Sand grain height is a global parameter applied to all wall-
function surfaces except the ones with a sand grain height of 0.

Synthetic Jet

Synthetic jet boundary condition can be applied to Solid and External patches. This boundary
condition will be used when the aim is to define an input flow through a patch. When a patch is
defined as a Synthetic jet boundary condition, the Jets definition button appears in order to
define one or several jets:

FIGURE 9.8
Synthetic jet boundary condition

Jet definition

In this menu, all the jet patches, Solid or External, will appear:

271 Fine™ Marine 12.1 User Guide


FIGURE 9.9
Definition of 2 jets using SOL or EXT patches

Initially, these patches will be grouped into a single patch name " Jet". It is then possible to
Rename, Create or Merge different jets. The jet properties can be set in the Jet parameters
menu.

A maximum of 110 patches per jet can be defined.

272 Fine™ Marine 12.1 User Guide


Jet parameters

This menu gives access to the fluid to consider, its blowing direction and some velocity properties
of the selected jet:

FIGURE 9.10
Jet parameters menu

Jets have to be defined one by one, it is not possible to duplicate parameters from one jet to
another.

Fluid

The user is able to choose between Fluid-1 and Fluid-2 according to those defined in the Fluid
model menu.

In case of mono-fluid simulations, this section will not appear and the jet will automatically blow the
fluid defined in the Fluid model menu.

Normal direction

In this section, the user specifies the blowing direction of the jet. Three options are available:

273 Fine™ Marine 12.1 User Guide


l Local: the solver will consider each constitutive grid face of the jet patches.
l Averaged: the averaged normal among all the constitutive grid faces of the patches will be
computed and will be considered as the jet normal.
l User-defined: the user is asked to input the desired normal direction of the jet:

FIGURE 9.11
User-defined direction of blowing

Kinematic law

Two different velocity definitions are predefined, the parameters can be set directly in Fine
Marine interface.
l Constant law is defined with following parameters:
o Initial time [s]
o Blowing velocity [m/s]

FIGURE 9.12
Constant velocity definition

l Pulsed, a sinusoidal blowing law, requires following inputs:


o Initial time [s]
o Blowing velocity amplitude [m/s]
o Pulsation [rad/s]
o Phase [rad]

274 Fine™ Marine 12.1 User Guide


FIGURE 9.13
Pulsed law definition

In addition, a Dynamic library can also be used in order to set a user-defined kinematic law. The
dynamic library Update_ Jet_ Features.f90 can be found in _ data/isis/dynamic_ lib/ of the
installation folder. For further information, please refer to the "Dynamic libraries" (p. 799) section.

The solver will take Update_Jet_Features.f90 user-defined program into account only if the
kinematic law of the considered jet has been set to "Dynamic library".

Passive scalar value

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

FIGURE 9.14
Passive scalar value

Temperature

Once activated in the menu (see "Temperature" (p. 477)), the temperature and solute diffusion can
be activated on a given patch and their values defined individually.

275 Fine™ Marine 12.1 User Guide


FIGURE 9.15
Temperature and solute definition in the Boundary conditions menu

9.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. 601).

Far Field with Constant Values

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

276 Fine™ Marine 12.1 User Guide


FIGURE 9.16
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.

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.

277 Fine™ Marine 12.1 User Guide


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 9.17
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.

278 Fine™ Marine 12.1 User Guide


Profile manager

FIGURE 9.18
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 (see the format description).

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 and . In other words


. It should be defined in radians and goes from .

279 Fine™ Marine 12.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. 281)) 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.

280 Fine™ Marine 12.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 9.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.

281 Fine™ Marine 12.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. 660). 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 choose 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, is possible.

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.

A more extensive way of prescribing initial conditions at the boundaries using an initialization
program is described in "Flow Field Initialization Program" (p. 792).

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.

282 Fine™ Marine 12.1 User Guide


FIGURE 9.19
Prescribed pressure condition

Updated hydrostatic pressure

If the Z- axis is oriented along the gravity vector, the pressure value is set to
. This value will evolve 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 (using a Fortran
program, see Files Used as Initial Data Profile ) since the flow solver will overwrite this user-
defined pressure.

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).

283 Fine™ Marine 12.1 User Guide


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

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.

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.

284 Fine™ Marine 12.1 User Guide


Overset

This boundary condition is implemented for the "Overset Grid Management" (p. 601) 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.

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.

Wave Generator

Wave generation is integrated directly into the Navier-Stokes momentum equation through an
additional source term based on the potential solution of a wave. If the wave generation is done
using the boundary condition wave generator, the wave is generated at the specified boundary.
Alternatively, the Internal Wave Generator (see "Internal wave generator" (p. 499) for more info)
can be used, which generates waves from a point inside the domain.

The "WaveReg_FSD" (p. 994) tool can be used to evaluate the wave signal as generated by the flow
solver for the given set of parameters.

Regular waves

Regular wave generation requires information regarding the water depth, the wave height and
wave period through the user interface. The required parameters in the menu shown in FIGURE
9.20 are defined visually in FIGURE 9.21.

285 Fine™ Marine 12.1 User Guide


FIGURE 9.20
Wave Generator Menu

The water 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 in order to maintain V x =0
at the bottom boundary of the domain as shallow water changes the behavior of the wave.
Entering the water depth explicitly is therefore needed to distinguish various wave types and to
determine the set of Fourier coefficients (see below) that define the wave potential.
Wave types can be distinguished based on the water depth as:
1. D > L/2: deep water,
2. L/20 < D < L/2: intermediate,
3. D < L/20: shallow water.
The direction of propagation (displayed by a yellow arrow in the graphics area) points either in
positive or negative X-direction.
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. Alternatively, 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.

286 Fine™ Marine 12.1 User Guide


FIGURE 9.21
Wave parameters visualized

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 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...

287 Fine™ Marine 12.1 User Guide


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. Restarting computations while activating the wave generator is not recommended.

Using the default wave generation method, waves can be propagated in positive and negative X-
direction only. Generating oblique waves is discouraged, but possible using the legacy Stokes method
with the expert parameter waveGenerationMethod_ combined with the expert parameter
bcWaveObliquePropagation_, where the X- and Y- unit vector components can be specified.
The Wave generator settings are defined as global parameters. The corresponding patches cannot be
edited separately.

Regular wave discretisation

The discretisation of the nonlinear wave potential is based on the work by Fenton, see [1] and [2].
Based on the numerical solution for the coefficients of a Fourier series representation ([2]), this
method allows for accurate wave generation both for shallow water waves and nearly-breaking
waves, up to steep deep-water waves, see FIGURE 9.22. The discretisation of the wave using a
Fourier series is controlled through the number of Fourier coefficients (terms) and so-called height
steps, which are sometimes necessary to represent very high waves. The solver automatically
determines the suitable wave discretisation parameters, but they are also accessible through the
dedicated expert parameters FSDTerms_ and FSDSteps_.

288 Fine™ Marine 12.1 User Guide


FIGURE 9.22
Regions of validity for wave theories. "Water wave theories" by Kraaiennest is licensed under
CC BY-SA 3.0, modified with added axis label text

The wave potential Φ in the reference frame that's moving with the wave (X=ct and Y=y) is
defined as:

with the following definition for the X- and Y-velocity components:

where:

289 Fine™ Marine 12.1 User Guide


U(bar) is the mean fluid speed, c is the wave speed (celerity), d is the water depth and B j is the
set of coefficients that need to be determined iteratively.
The surface elevation is defined as:

where η is the wave elevation and E j is another set of coefficients to be determined iteratively.
More information can be found in the theory guide on the FSD wave generation method.

Stokes theory expansion up to 3rd order (legacy)

The legacy wave generation method is not suitable for shallow water waves, waves in the
breaking wave limit and high waves due to its theoretical basis in the Stokes expansion theory.
Stokes theory applies only to deep-water and intermediate-depth waves. This method is still
accessible through modifying the expert parameter waveGenerationMethod_ and setting it to
Stokes.
The Internal Wave Generator (IWG) only allows generating first-order Stokes waves.
Specifying a higher order through the expert parameter waveGenerationStokesOrder_ will
not have any effect for the IWG.

For this wave generation method first, second, or third order Stokes wave definitions can be used.
The order depends on the wave steepness that is required in the computation. A higher wave
order additionally increases the accuracy of the wave interface close to the solid boundary until
two wavelengths downstream. After that point, the difference between the different wave orders
will be negligible if the goal is only to increase precision.
The wave order should be 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.
246) 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):

290 Fine™ Marine 12.1 User Guide


FIGURE 9.23
Estimation of the wave order

The red line represents the limit of validity of the Stokes 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 using this method, taking into account that the upper limit of validity for a periodic and
propagating deep-water wave is a wave steepness (H/L) of 0.14.

The wave order can only be set through the expert parameter waveGenerationStokesOrder_, for
which the default wave order is set to 3.

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. Defining the wave order correctly as such improves the
accuracy of the computation.
More details can also be found here.
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.
The dispersion relation is:

291 Fine™ Marine 12.1 User Guide


where

is the wave number and ɷ is the angular frequency:

References

[1] Fenton, J.D., 1990. Nonlinear wave theories. Ocean Engineering Science, 9, pp.1-18.
[2] Fenton, J.D., 1999. Numerical methods for nonlinear waves. In Advances in coastal and
ocean engineering (pp. 241-324).

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.
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.

292 Fine™ Marine 12.1 User Guide


FIGURE 9.24
Irregular waves boundary condition

Available spectra

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


l JONSWAP: 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: additionally to the JONSWAP spectrum parameters, allows to
control the significant wave height

293 Fine™ Marine 12.1 User Guide


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

l Pierson-Moskowitz

Only the 1st order of irregular waves is implemented for the moment. All the spectrum equations are
detailed in the theory guide in the chapter for Irregular waves.

After the spectrum was selected, the following parameters will become available:

TABLE 9.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.

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

294 Fine™ Marine 12.1 User Guide


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 to 200 waves have traditionally been used (typically
0.5 to 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).
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.

295 Fine™ Marine 12.1 User Guide


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.

Synthetic Jet

Synthetic jet boundary condition can be applied to Solid and External patches. This boundary
condition will be used when the aim is to define an input flow through a patch. When a patch is
defined as a Synthetic jet boundary condition, the Jets definition button appears in order to
define one or several jets:

FIGURE 9.25
Synthetic jet boundary condition

Jet definition

In this menu, all the jet patches, Solid or External, will appear:

296 Fine™ Marine 12.1 User Guide


FIGURE 9.26
Definition of 2 jets using SOL or EXT patches

Initially, these patches will be grouped into a single patch name " Jet". It is then possible to
Rename, Create or Merge different jets. The jet properties can be set in the Jet parameters
menu.

A maximum of 110 patches per jet can be defined.

297 Fine™ Marine 12.1 User Guide


Jet parameters

This menu gives access to the fluid to consider, its blowing direction and some velocity properties
of the selected jet:

FIGURE 9.27
Jet parameters menu

Jets have to be defined one by one, it is not possible to duplicate parameters from one jet to
another.

Fluid

The user is able to choose between Fluid-1 and Fluid-2 according to those defined in the Fluid
model menu.

In case of mono-fluid simulations, this section will not appear and the jet will automatically blow the
fluid defined in the Fluid model menu.

Normal direction

In this section, the user specifies the blowing direction of the jet. Three options are available:

298 Fine™ Marine 12.1 User Guide


l Local: the solver will consider each constitutive grid face of the jet patches.
l Averaged: the averaged normal among all the constitutive grid faces of the patches will be
computed and will be considered as the jet normal.
l User-defined: the user is asked to input the desired normal direction of the jet:

FIGURE 9.28
User-defined direction of blowing

Kinematic law

Two different velocity definitions are predefined, the parameters can be set directly in Fine
Marine interface.
l Constant law is defined with following parameters:
o Initial time [s]
o Blowing velocity [m/s]

FIGURE 9.29
Constant velocity definition

l Pulsed, a sinusoidal blowing law, requires following inputs:


o Initial time [s]
o Blowing velocity amplitude [m/s]
o Pulsation [rad/s]
o Phase [rad]

299 Fine™ Marine 12.1 User Guide


FIGURE 9.30
Pulsed law definition

In addition, a Dynamic library can also be used in order to set a user-defined kinematic law. The
dynamic library Update_ Jet_ Features.f90 can be found in _ data/isis/dynamic_ lib/ of the
installation folder. For further information, please refer to the "Dynamic libraries" (p. 799) section.

The solver will take Update_Jet_Features.f90 user-defined program into account only if the
kinematic law of the considered jet has been set to "Dynamic library".

Passive scalar value

Once activated in the menu (see " Fluid Model" (p. 259)), 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 9.31
Passive scalar value

Temperature

Once activated in the menu (see "Temperature" (p. 477)), the temperature and solute diffusion can
be activated on a given patch and their values defined individually.

300 Fine™ Marine 12.1 User Guide


FIGURE 9.32
Temperature and solute definition in the Boundary conditions menu

Only the following conditions can accept temperature and solute:


l Far field
l Prescribed pressure
l Zero pressure gradient
l Synthetic jet

9.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.

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.

301 Fine™ Marine 12.1 User Guide


9.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. 930)).

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.

9.5 PERIODIC CONDITION

The periodic boundary condition assumes that the geometry of interest and the expected pattern of
the flow have a periodic nature. It therefore allows running the computation on a single
geometrical pattern and extrapolate to the entire geometry.
Two periodicity types are compatible with Fine Marine:
l rotation,
l translation.
In the case of a rotating machine, such as a marine propeller, the flow distribution features a
periodic characteristic. Hence only a part of the rotating machine can be computed and periodic
boundary conditions can be used.

Applications

Marine propellers
Offshore platform risers

302 Fine™ Marine 12.1 User Guide


FIGURE 9.33
Example of an open water propeller domain using periodic condition (in green)

Limitations
l The mesh on the periodic surfaces must be identical.
l Periodicity by rotation is only around Z-axis. If the mesh does not have the periodicity
along the z-axis, the following error message will pop up. The user is then requested to
rotate the mesh.

l The periodic condition is supported only for single-domain meshes.


l Not compatible with the C-Wizard Open water.
l Not compatible with the adaptive grid refinement.

Meshing

The Fine Marine solver supports only matching meshes for the periodic boundary conditions. To
create periodic meshes for:

303 Fine™ Marine 12.1 User Guide


l periodicity by rotation: Autogrid5 and Hexpress meshes can be used;
l periodicity by translation: Hexpress and Hexpress/Hybrid meshes can be used.

The periodic meshes from Autogrid5 are of higher quality and very quick to generate. They should be
preferred over Hexpress meshes.

How to create a periodic mesh by rotation in Hexpress

1. The rotation axis must be aligned with Z


2. The initial mesh must be a cylindrical mesh
3. Define the Periodicity in Grid/ Periodicity...
4. In the Boundary conditions menu, press Search Periodic BC

How to create a periodic mesh by translation in Hexpress

Option 1: For profiles that can be extruded (cylinders, NACA profiles with constant chord, ...)
1. Create a 2D mesh (one cell in the Z-direction and Mirror planes on the Z-planes) and generate
it;
2. In Grid > Mesh transformation: extrude one of the mirror face as many times as necessary to
create the mesh in the Z-direction. At this moment, Hexpress takes care of converting the Z-
planes from MIR to PER boundary conditions;
3. Define the Periodicity in Grid/ Periodicity...
Option 2: For patterns that can be mirrored (anchor chain type, ...)
1. Create a 3D mesh with a symmetry plane;
2. In Grid > Mesh transformation: mirror and copy the mesh;
3. Save the mesh;
4. Assign the PER boundary conditions manually in the BCS file.

304 Fine™ Marine 12.1 User Guide


Example
Version 2.2
NUMBER_OF_BLOCKS 1
DomainName
000
1
Periodicity_1
TRANSLATION 0 0 1
NUMBER_OF_FACES 1
7
cable SOL 0 0 0 0
MyPERcondition_1 PER 0 0 0 0 0 0 2 0 0 1 DomainName
MyPERcondition_2 PER 0 0 0 0 0 0 1 0 0 -1 DomainName
B2_face_1 EXT 0 0 0 0
B2_face_2 EXT 0 0 0 0
B2_face_3 EXT 0 0 0 0
B2_face_5 EXT 0 0 0 0
0

How to create a periodic mesh by translation or rotation in Hexpress/Hybrid

For geometries with periodic boundaries which cannot be handled with extrusion or mirroring
methods in Hexpress (see above sections),Hexpress/Hybrid has to be used.
The keywords are:
l PERIODICCONNECTIONROTATE
l PERIODICCONNECTIONTRANSLATE

Fluid setup

In the Boundary condition menu, the periodicity type is displayed.

The pressure solver BoomerAMG may have some convergence issue, PCGSTAB_MB should be
preferred.

305 Fine™ Marine 12.1 User Guide


Post-processing

The forces and moments, displayed on the monitor, are for a single computed geometry, as it is
done for half-body simulation, hence the efforts on the complete geometry must be computed by
multiplying by the number of patterns.
The post-processing in Cfview will be done on a single part, but can be repeated and displayed as
a full geometry, see Graphics Repetition for more details about the repetition capabilities of
Cfview.

306 Fine™ Marine 12.1 User Guide


CHAPTER 10.

BODY DEFINITION

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

307 Fine™ Marine 12.1 User Guide


FIGURE 10.1
Body definition menu

308 Fine™ Marine 12.1 User Guide


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.

When computing force and moment integrals on non-closed bodies or sub-bodies, it may be relevant to
activate the dedicated correction for "Motion and Force Variables" (p. 653).

In this section
10.1 Definition 310
10.2 Identifier 311
10.3 Group 312

309 Fine™ Marine 12.1 User Guide


10.1 DEFINITION

Body

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.

Sub-body

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.

Frame body

A frame body is a special body which is not associated with any patch. The motion of a frame
body can be fixed or imposed. One use of this tool is to ease the post-processing step by allowing
the projection of the forces applied on a body of interest onto this frame body. The frame bodies
can be created or deleted using the dedicated Create / Delete frame buttons. More information
can be found in the "Frame body" (p. 372) page.

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

310 Fine™ Marine 12.1 User Guide


A maximum of 99 bodies, including virtual bodies and frame bodies, and 99 sub- bodies can be
created.

10.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 10.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

311 Fine™ Marine 12.1 User Guide


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

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

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).

10.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.

312 Fine™ Marine 12.1 User Guide


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.

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 10.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.

313 Fine™ Marine 12.1 User Guide


FIGURE 10.4
Creation of the sub-body

The Rename button allows to rename the selected group.

314 Fine™ Marine 12.1 User Guide


CHAPTER 11.

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.

If a project contains several bodies , the parameters of this menu 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.

In this section
11.1 Coordinate Frame 316
11.2 Degrees of Freedom 319
11.3 Initial conditions 358
11.4 Multibody definition 359
11.5 Virtual body 371
11.6 Frame body 372

315 Fine™ Marine 12.1 User Guide


11.1 COORDINATE FRAME

In order to manage the highly mobile character of the marine applications, Fine Marine as the
capability to handle different coordinate frames:
l Global frame: Also called Galilean or Cartesian frame, it is aligned with the Earth reference
frame and never moves during the simulation.
l Body frame: Original frame of the geometry. It remains “attached” to the boat during the
simulation. When the boat is in its hydrostatic position, the body frame is the same as the
global frame. To define a Body frame, the "Cardan Angles" (p. 316) should be activated.
l "Frame body" (p. 372): Auxiliary virtual bodies used only to create a new user-defined
frame. The Frame body can follow some of the degrees of freedom of the real bodies.

Cardan Angles

Definition

To study the motions of a boat, a new parametric system is required to define the orientation of
the bodies. In Fine Marine, the rotation angles are defined by the Cardan angles. They consist in
the decomposition of three successive rotations (intrinsic) represented on FIGURE 11.1:
1. Yaw / Rz0: rotation around Z in the frame indexed 0 (i.e. the Global frame)
2. Pitch / Ry1: rotation around Y in the frame indexed 1 (i.e. after the rotation Rz0)
3. Roll / Rx2: rotation around X in the frame indexed 2 (i.e. after the rotation Ry1)

FIGURE 11.1
Orientation with Cardan Angles

316 Fine™ Marine 12.1 User Guide


FIGURE 11.2
Cardan Angles represented on the DTMB geometry

A bit of theory...

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 around the Reference point / Center of gravity of the
body Gi. In that case, the frame attached to the boat coincides with β0 and (ψp,θp,ϕp) = (0,0,0).

FIGURE 11.3
Configurations

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

317 Fine™ Marine 12.1 User Guide


To match with the Fine Marine notations : If the Initial Cardan angles are properly defined, then
the following frame definitions are identical:
l Reference frame ℛBi = Body frame
l Primary frame = Global Frame

Prescribe the initial Cardan angles

FIGURE 11.4
Cardan angles for motion reference axis section

The Cardan angles for motion reference axis have to be prescribed to align the Body frame
correctly with the position in which the body was meshed:
l If the boat is meshed at hydrostatics and is aligned with +X, the Cardan angles remain 0,0,0.
l If the boat is meshed in a dynamic position, the Cardan angles should be prescribed.

When the Cardan angles are correctly prescribed, the green frame in the graphical interface should
align with the boat.

Hint : The same angles can be used to prescribe a rotation with the sequence (roll, pitch, yaw) along
the Galilean axis X0 > Y0 > Z0 or with the sequence (yaw, pitch, roll) along the successive axis Z0 >
Y1 > X2.
Why? : The decomposition in 3 successive rotations (yaw pitch roll), a.k.a. Cardan angles, is a
particular case of Tait-Bryan angles. As such the two following rotation sequences are equivalent:
l Intrinsic rotation: z-y′-x″ (Z0 > Y1 > X2) sequence: the intermediate frames are used.
l Extrinsic rotation: x-y-z (X0 > Y0 > Z0) sequence: the rotations are made around the Cartesian
axis.

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.

318 Fine™ Marine 12.1 User Guide


D.O.F. for translations are not affected by the Cardan angles specification. They always refer to the
Global Frame.

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 for
mesh deformation types (weighted or rigid), are limited to the following triplets in the " Domain
Mesh Management" (p. 382) menu:

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

11.2 DEGREES OF FREEDOM

Fine Marine provides a 6 Degrees of Freedom (D.O.F) capability to handle the body motions:
l 3 translations: Tx, Ty, and Tz
l 3 rotations: Rx, Ry, Rz
The index following the D.O.F represents the coordinate frame in which the motion is represented
(see more details in the "Coordinate Frame" (p. 316) page).

319 Fine™ Marine 12.1 User Guide


Important note :
l The translations are always prescribed in the Global frame.
l The rotations are prescribed following the intermediate frames of the "Cardan Angles" (p. 316)
successive rotations.

Each D.O.F motion type can be either Fixed, Imposed or Solved, independently from the motion
type of the other D.O.Fs.

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

If a project contains several bodies , the parameters of this menu 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.

11.2.1 Fixed Motion type

The parameters must be described for each body.

Definition

When a degree of freedom is set to Fixed, it will not evolve during the simulation.

320 Fine™ Marine 12.1 User Guide


FIGURE 11.5
Fixed d.o.f.

The Dynamic Parameters tab is not available in case all D.O.Fs are set to Fixed or Imposed.

The Motion Variables tab in the Outputs menu is also not available in case all D.O.Fs are set to
Fixed, see Motion and Force Variables.

Inputs

If no other degree of freedom is set to Solved , the Reference point needs to be specified.
Otherwise, the Center of gravity will be used instead.
l Reference point: corresponds to the three coordinates (X,Y,Z) of the reference point in the
Cartesian frame. This point is used:
l to compute the resultant moment of the fluid forces on the body;
l as a rotation point in case "Initial conditions" (p. 358) have been applied or other degrees of
freedom are Imposed.

321 Fine™ Marine 12.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.

11.2.2 Imposed Motion type

The parameters must be described for each body.

Definition

When a degree of freedom is set to Imposed, a motion law can be chosen to dictate the evolution
of this D.O.F.

322 Fine™ Marine 12.1 User Guide


FIGURE 11.6
Imposed Motion

If a D.O.F is set to Imposed, the mesh deformation technique should be prescribed in the Domain
Mesh Management menu.

Inputs

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). The existing motion laws are described further down on this page.

The kinematic variables outputs are recorded in a file called Mvt_bodyname.dat.

If no other degree of freedom is set to Solved , the Reference point needs to be specified.
Otherwise, the Center of gravity will be used instead.

323 Fine™ Marine 12.1 User Guide


l Reference point: corresponds to the three coordinates (X,Y,Z) of the reference point in the
Cartesian frame. This point is used:
l to compute the resultant moment of the fluid forces on the body;
l as a rotation point in case "Initial conditions" (p. 358) have been applied or other degrees of
freedom are Imposed.

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.

Motion laws

All ramp and position modification motion laws include the choice between absolute or
relative time
l Absolute time: the time is based on the physical time of the computation. In other words, t =
0.0s refers to the first computation starting time and all motion laws are defined in that time
frame. Restart computation motion laws need to start at the final time of the previous
computation. This means that if the absolute time is chosen, the final simulated time of the
previous computation should be taken into account.
l Relative time: the time is defined relatively to the current computation. In other words, t = 0.0s
means the beginning of the current computation.
Example
In a resistance curve using successive restarts, each consequent computation can start
properly even if the previous computation stopped earlier due to manual intervention or the
use of the convergence checker.

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.

324 Fine™ Marine 12.1 User Guide


FIGURE 11.7
Constant speed

Classical ramp profile

For the classical ramp profile, with absolute time 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.
If relative time is chosen, V0 will be kept for the duration dt0 from the end of the previous
computation and then the linear ramp will start with a duration dt1 to reach V1.

FIGURE 11.8
Classical Ramp Profile with absolute or relative time

1/4 sinusoidal ramp profile

For the 1/4 sinusoidal ramp profile, with absolute time the initial velocity V 0 will be applied to

325 Fine™ Marine 12.1 User Guide


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.
If relative time is chosen, V0 will be kept for the duration dt0 from the end of the previous
computation and then the linear ramp will start with a duration dt1 to reach V1.

FIGURE 11.9
1/4 Sinusoidal Ramp Profile with absolute or relative time

1/2 sinusoidal ramp profile

For the 1/2 sinusoidal ramp profile, with absolute time 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.
If relative time is chosen, V0 will be kept for the duration dt0 from the end of the previous
computation and then the linear ramp will start with a duration dt1 to reach V1.

326 Fine™ Marine 12.1 User Guide


FIGURE 11.10
1/4 Sinusoidal Ramp Profile with absolute or relative time

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.

327 Fine™ Marine 12.1 User Guide


FIGURE 11.11
Sinusoidal Motion with 1/2 Sinusoidal Ramp Profile

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)

328 Fine™ Marine 12.1 User Guide


FIGURE 11.12
PMM Sway Motion

FIGURE 11.13
PMM Sway Motion Law Menu

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:

329 Fine™ Marine 12.1 User Guide


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 11.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.

FIGURE 11.15
PMM Yaw Motion Law Menu

330 Fine™ Marine 12.1 User Guide


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:

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.

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.

The gyration motion is represented in the graphical area.

331 Fine™ Marine 12.1 User Guide


FIGURE 11.16
1/4 Sinusoidal Ramp Profile for Z-axis Gyration

332 Fine™ Marine 12.1 User Guide


FIGURE 11.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.

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).
If relative time is chosen the initial position P0 will be kept for a duration dt0 after the end of the
previous computation and then move to P1 during dt1.

FIGURE 11.18
Relative or absolute modification of the DOF position

333 Fine™ Marine 12.1 User Guide


In relative, a position change (P1-P0) equal to 0 is not possible.

Relative time and relative position are not compatible to avoid unwanted motions if the first
computation stops before reaching the expected final position.

Copied from another body

This law copies the motion of one degree of freedom from another body during the computation.

FIGURE 11.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.
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.

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,...).

334 Fine™ Marine 12.1 User Guide


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.

FIGURE 11.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).

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

335 Fine™ Marine 12.1 User Guide


imported into the interface. The solver will interpolate the data using cubic splines, except near the
boundaries for initial and final times.

FIGURE 11.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 position relative to the initial
configuration, 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.

336 Fine™ Marine 12.1 User Guide


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 consists in 3 columns: one for the time, the second for the relative displacement (resp.
orientation change) of the DOF for the concerned body with respect to the reference
configuration. The third one is always 0 since the format comes from others concepts used in
others places of the software.
Format description is the following: the 1st line corresponds to the variable name, the 2nd line has
2 numbers with the type of variable (it is always "100" and it stands for "motions") and the
number of lines. The next lines correspond to the time (1st column) and the corresponding value
(2nd column).
0.0 0.0 0.0
1.0 0.1 0.0
2.0 0.2 0
3.0 0.3 0

The first time value must be strictly set to 0.

DOF of rotation has to be defined in radian as the other laws.

The motion profile law has to be smooth enough and the file has to be written in double precision
(ideally 14 decimal places) to avoid irregularities in the second derivatives. Irregularities in second
derivatives lead to irregularities in the pressure field that can show as noise in the computed forces
during the simulation.

If non-null initial Cardan angles for motion reference axis are defined, the second column of the file
gives the modification of Cardan angles with respect to these initial Cardan angles, since the primary
configuration is the starting point. Value for the relative motion can be non-null at a time t=0.

337 Fine™ Marine 12.1 User Guide


11.2.3 Solved Motion type

The parameters must be described for each body.

Definition

When a degree of freedom is set to Solved, the motion associated to this D.O.F will be resolved
by the solver based on the Dynamic parameters prescribed. The motion can either be solved by:
l solving the Newton's law based in inertial data, or
l using the Quasi-Static (QS) approach (see Quasi-Static Approach for more information) in
case of Steady simulation.
It is possible to solve one, several or all D.O.Fs 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.

If a D.O.F is set to Solved , the mesh deformation technique should be prescribed in the Domain
Mesh Management menu.

Inputs

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). The existing motion laws are described further down on this page.

The kinematic variables outputs are recorded in a file called Mvt_bodyname.dat.

l "Dynamic Parameters" (p. 344) have to be prescribed.

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.

338 Fine™ Marine 12.1 User Guide


A. Quasi-Static Approach

Introduction

When dealing with simulations to reach an equilibrium position for a hull (steady-state solution),
the first method is to use a fully unsteady approach, i.e. to couple the flow motion and the
Newton's law at each time step. As a consequence, for the stability of the numerical algorithm, the
required time step should be small enough.
To relax this condition and decrease the CPU time, the quasi-static (QS) method has been
developed. 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.
A second application for the quasi-static approach is to find the equilibrium position for a foil that
will give the desired lift and lateral forces. The forces become an input instead of an output, and
the solver iteratively finds the rake and yaw angles for the hydrofoil at a given speed.
This way the manual iterative process of running foil computations in a large number of positions
until the right forces are reached is avoided, saving a lot of computational time.
Both methods are explained in details for the graphical user interface and guidelines here below
but the theory is also developed in the chapter Acceleration algorithms.

Layout

The QS method is activated in the Body motion menu. By default, the it is not active. This
approach is only available for 3D configurations and the conditions to activate it are:
l Multi-fluid activated,
l Time configuration is steady.
The user needs to choose between hull and foil modes.

FIGURE 11.22
Quasi-Static approach activation

Hull mode

Only Tz0, Rx2 and Ry1 are concerned by the QS hull 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.:

339 Fine™ Marine 12.1 User Guide


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,

This method does not require the values for the Inertia matrix, the added mass and damping
coefficients. Defaults can be kept.

The Edit button allows to modify the parameters. When clicking on it, a separate window
appears.
l Linear or Smoothlaw shows the selected law for the QS approach.

FIGURE 11.23
Quasi-Static hull mode approach parameters

For the smooth law, a 1/2 sinusoidal ramp is used.

The time parameters define respectively:

340 Fine™ Marine 12.1 User Guide


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 Under-relaxation parameters: amount of motion prediction applied in one step. The default
0.2 means 20% of the prediction is applied. Lowering this value will mean a more
conservative approach, increasing stability and time to convergence.
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.
l The option Adjust intervals to the timestep allows to define dT2 and dT3 in terms of
number of timesteps instead of seconds.

FIGURE 11.24
Quasi-Static intervals in terms of number of timesteps.

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.

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.

341 Fine™ Marine 12.1 User Guide


Best Practice

It is recommended to use dT3 = dT2 to have a smooth convergence of solved motions and forces.
Different values for dT2 and dT3 lead to the same results but they create small peaks in the efforts
convergence.
The under-relaxation parameters should be decreased if the hull behavior is expected to have
some unsteadiness or an important dynamic component.
For typical ship resistance simulations it is recommended to:
l Release the ship motions from the beginning
l Define dT2 = dT3 = 20Δ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
l For shallow water simulations, it is also advised to use lower values like 0.05 to avoid
abrupt changes in motions, which would make the ship touching the ground during the
transient.
For more guidelines based on several applications, please read the Application Guidelines.

Foil mode

The QS foil mode should be used for an isolated hydrofoil. The rake (Ry1) and yaw (Rz0) angles
can be solved with this approach. Activate QS foil mode and set the d.o.f. to Solved to use QS.
The flow solver will adapt the rake and the yaw of the hydrofoil and check the target lift and side
forces iteratively. With this process the solver progressively determine the dynamic equilibrium
position for the foil at the imposed forward speed.

Current limitations:
l The procedure supposes that the body simulated is a hydrofoil. It will work incorrectly if it
is applied to bodies that do not have a wing-like shape. The surface and velocity of the foil
must be large enough for the requested forces. The hydrofoil must be able to generate the
requested forces, otherwise the imposed angles Rz and Ry will keep on increasing and the
computation will crash.

342 Fine™ Marine 12.1 User Guide


l A vertical foil cannot generate vertical forces, so Ry cannot be solved. Likewise, a solved
Rz cannot be used with a horizontal foil. For a flat foil, changing Rz and Ry has a similar
effect on the forces. Therefore, Fy and Fz cannot be imposed independently unless the foil
is curved or T-shaped.
l It is not available for the immersion Tz. The immersion is much more difficult to adjust
than the angle of attack Ry, since a change in immersion creates large variations in Fz
which take a long time to damp out.
l If the method is activated, all bodies with solved motion are supposed to be hydrofoils and
are solved with quasi-static.

FIGURE 11.25
Quasi-Static foil mode parameters.

l Target forces Fy and Fx: target foil side force and lift force to be reached at convergence.
Units are Newtons.

If only Ry is solved only Fz will be available to impose. If only Rz is solved only Fy will be
available to impose.

343 Fine™ Marine 12.1 User Guide


l The rest of parameters Release time (T1), Under-relaxation parameters, Adjust intervals
to the time step, dT2 and dT3 are the same as described in the previous section Hull mode.

Best practice

l Forward speed (Tx0) should be imposed with a sinusoidal law. The acceleration can be high
to reach quickly the target speed, e.g. 2 timesteps.
l It is recommended to fix Tz0, Ty0 and Rx2 when using QS foil.
l Release the foil motions from the beginning.
l Define dT2 = dT3 = 20Δt.
l Keep under-relaxation parameter to 1.
l The foil can be placed in an overset domain to allow it to move without limitations due to
mesh deformation.
l Adaptive grid refinement can be used to accurately capture the large wake created by
hydrofoils at high speed.

B. Dynamic Parameters

When one or more D.O.Fs are Solved for a specific body, the parameters required by the solver
to resolve the body motions must be prescribed.

The parameters must be described for each body.

Inertial Data

A solved body motion requires inertial parameters, such as mass, position of center of gravity, and
inertia components.

344 Fine™ Marine 12.1 User Guide


FIGURE 11.26
Inertial Data

Geometry configuration

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.
Important: If Half body is selected, the output forces will be given for the simulated half body.

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.

Center of gravity, Mass and Inertia matrix

Center of gravity and Mass must always be provided for the entire body, even if a half-body is
simulated. 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.

345 Fine™ Marine 12.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 of the
body. The first three components are related to the inertia momentum (A 0=Ixx, B0=Iyy, C0 = 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 inertia matrix should be positive definite. In particular, its determinant should be strictly
greater than 0.

For a 2D case, only the momentum inertia C0 is useful (the interface freezes the other components of
the matrix and defines the other components as 1).

For a linked body, the inertia matrix can be expressed its own primary frame if the option Align
primary axis with has been activated (see "Primary axis definition" (p. 362))

346 Fine™ Marine 12.1 User Guide


Estimate inertial data

This menu offers the possibility to estimate the inertial data if it is not known. It is only available
for multi-fluid simulations.
The mass and center of gravity will be computed by the "Domhydro" (p. 982) tool, also
available as a plugin in Hexpress. More information in Marine Plugins.
Domhydro assumes the body is in hydrostatic position and the mass is uniformly distributed on
the complete body.
User Inputs:
l Initial free surface position. This value will be initialized with the value in the Initial solution
menu.
l The Z coordinate of the center of gravity can be optionally imposed. By default it is
computed by Domhydro.

FIGURE 11.27
Estimate inertial data.

For the inertia matrix computations the user has two options:
l Uniform mass distribution: takes the same assumptions described above.
l Regression law (ITTC) uses the following formulas for the inertia matrix:
In 3D:

347 Fine™ Marine 12.1 User Guide


In 2D:

Where m is the mass. The gyration radii are defined as:

Where cx, cy, cz are regression coefficients that can be adjusted in the Advanced >> tab. Default
values are: cx = 0.37, cy = 0.25, cz = 0.25.
Lpp is the length between perpendiculars of the ship. When the body is aligned with the X axis,
Beam and Lpp are computed from the bounding box of the body
l Lpp along X;
l Beam along Y, doubled if it’s a half-body.
If the body is not aligned with the X axis the user will need to input the Lpp and Beam values.
l The mass is taken from the Domhydro results.

348 Fine™ Marine 12.1 User Guide


FIGURE 11.28
Regression law (ITTC).

The resulting estimation will be displayed in a pop- up menu. The user can choose which
parameters to apply in the computation setup.

349 Fine™ Marine 12.1 User Guide


FIGURE 11.29
Estimate inertial data results.

Coupling Parameters

This tab controls the coupling between the flow and the body motions.

Coupling parameters are not available for bodies with an Imposed motion type.

Added mass coefficients

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's law (the right-hand side being treated explicitly). These additional terms
have the same function as an under relaxation coefficient.

350 Fine™ Marine 12.1 User Guide


FIGURE 11.30
Coupling Parameters

The following options are available for estimation of the Added mass coefficient:
l Approximate: added mass is computed (Laplacian operator resolution) at the estimation
frequency, at the beginning of the time step.
l Accurate: similar to approximate, but added mass is recomputed for each non-linear iteration of
a calling time step.
l User defined: added mass is defined by the user to a fixed value throughout the simulation.
The input is non-dimensional, expressed as a fraction of the body mass.
The Estimation frequency for the first two modes can be set to 0 to only perform the estimation
once, at the beginning of the simulation. Any other value will set a periodic call for the
estimations.

An Approximate estimation mode together with a 0 value as estimation frequency are the default
values, since, in most cases, the added mass is not varying significantly.

The Accurate Estimation mode can allow to determine the matrix of added mass coefficients as
the potential code does, at the expense of simulation time, as it includes the resolution operator
inside each non-linear iteration. It is very rarely needed, as the motion amplitude between time
steps should be relatively small, leading to a negligible difference with the Approximate
estimation.

351 Fine™ Marine 12.1 User Guide


If the user defined added mass is set to a very high value (for instance, Tx=1000), the D.O.F. can be
considered as 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 another body
with a certain connection type, 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.

FIGURE 11.31
Activation of a linked body added mass estimation for the multiple body calculations

Damping coefficient

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.

352 Fine™ Marine 12.1 User Guide


A 0 value is imposed in case of an unsteady computation, as it should not be used.

If the damping coefficient is defined with a value higher than 1.0, the damping term will have
a stronger and reverse impact.

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

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. 860).

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.

353 Fine™ Marine 12.1 User Guide


FIGURE 11.32
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 application
point of this wrench. All this data has to be given in the initial reference frame.

354 Fine™ Marine 12.1 User Guide


For a half-body configuration, the external effort resulting from the constant wrench that the user
specifies in the GUI will always be replicated on the other side of the mirror plane. This is the case
whatever the location of the application point, being located on the mirror plane or away from it.

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 (respectively the Cartesian
components of the towing force orientation). The last are the Cartesian coordinates of the point
where the propeller (respectively 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.
.

l 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.
l The sign of the orientation vector has no influence here since the imposed force is always in the
opposite direction of the drag.
l 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.
l 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.
l The parameters Dir_z and Z are frozen in case of a 2D project.

355 Fine™ Marine 12.1 User Guide


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).

For a half- body configuration, the external effort resulting from the spring wrench that the user
specifies in the GUI will always be replicated on the other side of the mirror plane. This is the case
whatever the location of the application point, being located on the mirror plane or away from it.

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).

For a half-body configuration, the external effort resulting from the damping wrench that the user
specifies in the GUI will always be replicated on the other side of the mirror plane. This is the case
whatever the location of the application point, being located on the mirror plane or away from it.

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:
l Initial velocity
l Initial instantaneous rotating vector
l Initial translation
l Initial rotation

356 Fine™ Marine 12.1 User Guide


FIGURE 11.33
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.

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.

357 Fine™ Marine 12.1 User Guide


11.3 INITIAL CONDITIONS

The Initial conditions panel allows to impose an initial translation and/or rotation to the bodies
without solved DOF, for which it is not possible to access to the Dynamic parameters panel.
Such panel will not be visible if the selected body has at least one solved DOF.

FIGURE 11.34
Initial conditions panel

In case of restart , initial translation and rotation are not inherited from the previous computation:
thus, they should be re-imposed also in the restarting computation. For instance, in case of a wind
study simulation with an initial rotation, both the first computation using RANS and the second one
using DES should have the same initial angle of rotation.

Best Practices

This option is mainly thought for multi-domain mono-fluid simulations of ship superstructures for
wind study purposes. In this configuration, the ship can be placed in a rotating domain to easily
start the simulation with different wind angles.

358 Fine™ Marine 12.1 User Guide


FIGURE 11.35
Different initial rotations for a ship superstructure.

11.4 MULTIBODY DEFINITION

When multiple bodies have been created in the Body definition menu, in the Body motion
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.

359 Fine™ Marine 12.1 User Guide


Connection type

FIGURE 11.36
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

This connection is typically used to link a propeller or a rudder to a ship.

PIN definition

The axis and the center of the connection should be defined through the Edit button.

360 Fine™ Marine 12.1 User Guide


FIGURE 11.37
Edition of the PIN connection

Motion definition

One degree of freedom for rotation, named Rn should be defined. The "n" refers to the axis
defined with Edit button of the link. The motion can be fixed, imposed . Please refer to Imposed
Law of Motion for the definition of each imposed motion law.

FIGURE 11.38
Rn degree of freedom

361 Fine™ Marine 12.1 User Guide


For each PIN joint, an effort file named "eff_Pin_ParentBodyIndex_LinkedBodyIndex.dat" related to
this PIN connection is written during the simulation. In this file, the mechanical actions between the
considered bodies and the fluid forces applied on the linked body are reported in different frames (see
page "Files Produced by the Fine Marine flow solver" (p. 772) for further information).

PIN visualization

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.

FIGURE 11.39
PIN connection display

Primary axis definition

When a PIN connection is defined, the Cardan angles are hidden and the primary axis of the
attached body should be defined with the following menu:

362 Fine™ Marine 12.1 User Guide


FIGURE 11.40
Primary axis definition

Two modes are available:


l Use parent reference frame: the linked body parameters should be expressed in the parent
primary frame defined by the Cardan angles.
l Align primary axis with: the chosen axis defines the coordinates of the linked body in its
own primary configuration. For instance, if X-axis is chosen, all the inertial parameters should
be expressed in a frame where the axis of the PIN joint is aligned with X-axis. The results will
be computed in the PIN frame as well and will be displayed on the requested axis. More
information on the efforts outputs is given in the "Pin connection file description" (p. 777)
page.

A configuration where the primary axis is orthogonal to the pin axis (such as a pin axis on Z,
and a primary axis on X) can lead to a gimbal lock which crashes the solver.

Examples

Applications:
l Propeller not rotating along one of the cartesian axis
l Moving rudder on a zig-zag configuration
Workflow:
1. Define the PIN connection point at the mechanical connection (e.g: propeller center, rudder
connection, ...)
2. Define the PIN direction along the rotation axis
3. Define the reference point at the PIN connection point location (reference for the Moments)
4. Align the primary axis with a desired direction (e.g: X for a propeller, Z for a rudder, ...)

363 Fine™ Marine 12.1 User Guide


5. The efforts and moments are computed in the primary axis which is then re-aligned along -X.
The efforts can be monitored in the eff_Pin_ParentBodyIndex_LinkedBodyIndex.dat file
(see the "Pin connection file description" (p. 777) page).

Slider joint connection

This connection allows one body to translate in a predefined direction during the simulation. It is
typically used to test appendages in different locations within the same project.

Slider joint definition

The sliding axis should be defined through the Edit button.

The slider joint and thus the coordinate of its axis is defined based on the primary configuration
of the head of the kinematic chain.
This means that if the head body of the kinematic chain has non null Cardan angles, the axis of the
silder has to be defined with respect to this primary configuration and not to the reference
configuration given by the cartesian axis of the mesh.

FIGURE 11.41
Edition of the Slider joint connection

Motion definition

One degree of freedom for translation, named Tn should be defined. The "n" refers to the axis
defined with the Edit button of the link. The motion can be fixed, imposed or solved. Please
refer to Imposed Law of Motion for the definition of each imposed motion law.

364 Fine™ Marine 12.1 User Guide


FIGURE 11.42
Tn degree of freedom

A Linear position modification with initial and final times equal to zero can be used to change
the initial position of the body.

365 Fine™ Marine 12.1 User Guide


FIGURE 11.43
Linear position modification motion law

Slider joint visualization

The vectors represented in the graphics area originate at the reference point of the body and are
oriented in the direction of the translation.

366 Fine™ Marine 12.1 User Guide


FIGURE 11.44
Slider joint connection display

Examples

Application: test a fixed rudder at different positions with respect to the hull
Workflow:
l Place the rudder in an overset domain and refine the hull domain where the rudder will be
placed.
l In the Body motion menu, link the rudder to the hull with a Slider joint connection
l Edit the connection parameters and define the rudder translation direction
l Define the rudder motion law as Linear position modification . Change the Position
modification to Relative.
l Set initial and final times to zero, and the Position change (P1 - P0) to have the rudder at the
desired location.

367 Fine™ Marine 12.1 User Guide


Dynamic parameters

"Dynamic Parameters" (p. 344) 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. If the Align primary axis with
option is activated, the inertia matrix of the linked body must be expressed in the frame of the axis
that has been chosen.

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:

FIGURE 11.45
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

368 Fine™ Marine 12.1 User Guide


activated and all parameters are available for modifications.

FIGURE 11.46
Motion definition frame for a Solved Motion type of a linked body

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.

369 Fine™ Marine 12.1 User Guide


FIGURE 11.47
Wrench from parent body definitions for the Solved motion of the linked body

The Inertia matrix of the linked body needs to be defined in the parent body primary frame.

FIGURE 11.48
Coupling parameters tab: the inertia matrix must be provided in the parent body frame.

370 Fine™ Marine 12.1 User Guide


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. 378) section. 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.

11.5 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 11.49
Body motion menu: virtual bodies motion parameters

371 Fine™ Marine 12.1 User Guide


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.

11.6 FRAME BODY

A frame body is a special body which is not associated with any patch. Its aim is to copy one or
several degrees of freedom of another body in order to create the output in a different frame.
The definition of such a body is made directly in the "Body Definition" (p. 307) menu. The
created body will appear in the Body motion menu:

FIGURE 11.50
Frame body motion definition

372 Fine™ Marine 12.1 User Guide


FIGURE 11.51
Frame body visualization

l Cardan angles can be set for this body to define the initial orientation of the frame body.
l The degrees of freedom of a frame body can be fixed or imposed.
l The goal of the tool is to ease the post-processing step by allowing the projection of the forces
applied on a body of interest onto the frame body. To do so, once the kinematic components of
the considered bodies are saved in the Global frame of reference (see "Motion and Force
Variables" (p. 653)), the "eff_change_frame.py" (p. 1006) macro can be run to output the
forces in a new frame.
Example

373 Fine™ Marine 12.1 User Guide


1. A ship with a yaw angle where one wants to know the resistance in the body frame (but
without the trim angle component):
l Define a frame body with null Cardan angles, with the same reference point as the ship;
l Copy Tx, Ty, Tz, Rx and Rz DOF of the ship, Ry remains Fixed;
l Run the computation;
l Use the "eff_change_frame.py" (p. 1006) to project the efforts on the body frame.
2. A propeller with shaft angle compared with X-axis: the setup with Frame bodies would be
similar but in this case we would prefer using the "Primary axis definition" (p. 362).
3. In a maneuvering case with a ship and rudder, to output the forces and momentum of the
rudder in a separate file in a frame following the moving rudder: define the Primary axis as Z
which can be the vertical axis of the rudder. The reference point can be the one of the PIN
connection. Check the file named "eff_Pin_ParentBodyIndex_LinkedBodyIndex" produced
by the solver: the eff_F_LB output will give the expected output.

374 Fine™ Marine 12.1 User Guide


CHAPTER 12.

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".

375 Fine™ Marine 12.1 User Guide


FIGURE 12.1
Domain management

In this section
12.1 Multidomain definition 377
12.2 Sliding Patch Motion 378
12.3 Domain Mesh Management 382
12.4 Independent domain motion 389

376 Fine™ Marine 12.1 User Guide


12.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.

377 Fine™ Marine 12.1 User Guide


FIGURE 12.2
Example of a multidomain representation

12.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.

378 Fine™ Marine 12.1 User Guide


FIGURE 12.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.

379 Fine™ Marine 12.1 User Guide


FIGURE 12.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.

380 Fine™ Marine 12.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 12.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.

381 Fine™ Marine 12.1 User Guide


12.3 DOMAIN MESH MANAGEMENT

FIGURE 12.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.

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.

382 Fine™ Marine 12.1 User Guide


Mesh displacement definition

The Source of domain rigid motion or 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 on the domain displacement.
For the Mesh displacement definition, the following two regridding strategies can be used in
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.

383 Fine™ Marine 12.1 User Guide


FIGURE 12.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 selecting
Weighted Deformation.

384 Fine™ Marine 12.1 User Guide


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).

(Dis)connect body motion and mesh kinematics

When more than one body is present in the same domain it might be necessary to disconnect its
motion from the one of the pilot body.

FIGURE 12.8
Specific mesh management control for sliding patches

If Domain rigid motion source is chosen the body will follow th epilot body motion, regardless
of its own motion law. If Body itself is chosen, the body will follow its own motion law.
l Example 1: boat1 tows boat 2 using a tugging line
Both boats are meshed in a single domain. Boat1 has an imposed Tx motion, while boat2
has Tx solved.
Here boat2 needs to have Base mesh kinematics on motion of Body itself. This way the
mesh deformation will be adjusted to boat2 motions, which are different from the pilot's
boat1.
l Example 2: ship + a propeller in sliding grids with a shaft connecting both domains
The shaft has one part in each domain. The part in the propeller domain will rotate with the
propeller. But the part included in the ship domain cannot rotate, or it will break the mesh.
Here Base mesh kinematics on motion of ship body (Domain rigid motion source) should be
used. This part of the shaft will rotate from the body motion point of view, but not for the
mesh.

385 Fine™ Marine 12.1 User Guide


12.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.

FIGURE 12.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.

386 Fine™ Marine 12.1 User Guide


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.

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.

More theory is explained in Acceleration algorithms.

12.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.

387 Fine™ Marine 12.1 User Guide


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.
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 12.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.

388 Fine™ Marine 12.1 User Guide


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.

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.

12.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.

389 Fine™ Marine 12.1 User Guide


FIGURE 12.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.

390 Fine™ Marine 12.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.

391 Fine™ Marine 12.1 User Guide


CHAPTER 13.

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
13.1 Uniform Values 393
13.2 Restart from a Previous Computation 397

392 Fine™ Marine 12.1 User Guide


13.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 13.1
Constant initial solution

The physical values are uniformly used as initial solution over all the domain, except on the
boundaries.

Initial velocity

The variables for which initial values need to be specified are the Initial velocity components.

393 Fine™ Marine 12.1 User Guide


The Z-component is grayed out in case of 2D projects.

Turbulent quantities

By default, the initial turbulent quantities are automatically computed by the interface and then
by the solver. They depend on the fluid(s) parameters and the flow model characteristics. They
can also be initialized with custom values, by selecting the Constant Value option in the drop-
down list related to each turbulent quantity:

The available turbulent quantities will depend on the turbulence model chosen.
It is also possible to define the initial turbulence level by activating the Turbulence level
initialization button. The list of initial turbulent quantities is the following one:
κ = Turbulent kinetic energy (K-ω and K-ε models only),

394 Fine™ Marine 12.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.

395 Fine™ Marine 12.1 User Guide


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 inactive.

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 13.1 Turbulent data initialization


Turbulent data Default formula Formula from turbulence level initialization
κ

νt

Interface position

For a multi-fluid 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.

A more extensive way of prescribing initial conditions in the whole domain using an initialization
program is described in "Flow Field Initialization Program" (p. 792).

396 Fine™ Marine 12.1 User Guide


13.2 RESTART FROM A PREVIOUS
COMPUTATION

13.2.1 From the same project

There are several common scenarios that require restarting a simulation: when it has stopped
unexpectedly, when it should run longer than initially foreseen or to assess more or different
physics compared to the on-going simulation.
The workflow is the following:
l Select the computation to restart in the list of computations.
l Use the New button to create a new computation: all settings will be copied from the first
computation.
l In the Initial solution menu, activate the button Restart from previous computation. The
possible computations to restart from are available in a drop-down list.

FIGURE 13.2
Restarting from a previous computation

l In the Control variables menu, adjust the Number of time steps to the value needed in this
second computation.

397 Fine™ Marine 12.1 User Guide


13.2.2 From a different project (grid-to-grid interpolation
needed)

Fine Marine also offers the possibility to perform a restart from a different project. If this option is
selected, the solution obtained in a preliminary computation on its corresponding grid will be
interpolated to the current grid. This interpolated solution is subsequently set as an initial condition
for the current computation.

FIGURE 13.3
Time savings obtained when using the grid-to-grid approach on demo case 3.

There are various scenarios that benefit from such a multigrid set-up:
l Standard resistance computations
l Self-propulsion computations with sliding grids for rotating propellers
l Bare and appended hull versions of the same geometry.
As a large part of the total computation time is performed on a coarser grid with significantly
fewer cells, the reduction in CPU time ranges from 30 to 60%; depending on the application.

398 Fine™ Marine 12.1 User Guide


The workflow for each of these applications is outlined below.

l Restarting from a different project requires both geometries and flow physics to be similar. The
option is therefore ideally suited for various types of resistance/ self-propulsion computations and
has been tested for these applications specifically. A peak in the output may occur for larger
geometrical deviations, e.g. when performing an appended-hull restart from a bare hull.
l At least partial convergence should have been achieved on the first computation before
performing the restart. This implies that any acceleration should be over before the restart is made.
l The convergence history should be appended in the restart computations.
l In order to avoid any errors during the interpolation process, it is important that the meshes used
for both projects are placed in separate _mesh folders.

l Restarting from a different project is not compatible with using Adaptive Grid Refinement
(AGR) for the free surface refinement (e.g. in overset grids). The additional cells created
by AGR on the coarse grid will not be copied to the fine grid during the interpolation.
Trying to perform such an interpolation for cases with AGR on the free surface may
therefore lead to the decompression of the free surface and the divergence of the
computation.
l The number of bodies in both projects needs to be identical for the grid- to- grid
interpolation to work.

Setting up such a multigrid project differs slightly from the standard restart procedure:
l Instead of creating a new computation within the same project by copying the old
computation, the easiest way is to duplicate the original project,
l subsequently creating the second mesh and changing the necessary computation parameters.
l By checking the check box for From a different project (grid- to- grid interpolation
needed), the drop-down list of computations to restart from is changed into a file chooser.
l The path to the .sim file of the original computation is then automatically inserted once it has
been selected in the file chooser.

399 Fine™ Marine 12.1 User Guide


FIGURE 13.4
Restarting from a different project (grid-to-grid interpolation)

A. Best practices

Resistance computations

Coarse grid
The ship is supposed to reach the final speed on the coarse grid, avoiding the passing the
acceleration ramp on the fine grid. The computation settings on coarse and fine grid should be
equal, except for the following deviations from the general guidelines:
l Number of time steps: 2*acceleration time
l Convergence booster: Active
l Convergence checker:
l Stability interval: 10%
l Average last: 10%
l Tolerance: 5%
l Check after: 200 time steps
Fine grid
The second computation starts from a (partially) converged computation on the coarse grid. The
computation continues until convergence is reached at the 1% level on the fine grid.

400 Fine™ Marine 12.1 User Guide


l Number of time steps: 2*acceleration time
l Convergence booster: Disabled
l Convergence checker:
l Stability interval: 10%
l Average last: 10%
l Tolerance: 1%
l Check after: 50 time steps

Self-propulsion computations

FIGURE 13.5
Grid-to-grid approach applied to a self-propulsion case (Advanced tutorial 2).

Coarse grid

401 Fine™ Marine 12.1 User Guide


The coarse grid is also used for the initialization in this scenario, but the initialization itself consists
of two parts. The first computation uses the Rotating Frame Method (RFM), while the sliding grid
should be used for the second computation to model the rotating propeller (see Advanced Tutorial
2: Self-Propulsion).
l Number of time steps (Computation 1 - RFM): 2*acceleration time
l Number of time steps (Computation 2 -Sliding grid): 10 propeller rotations
Fine grid - Sliding grid
The last computation is done on the fine grid, using the previous result from the coarse grid as an
initial solution. The computation continues until convergence is reached at the 1% level.
l Number of time steps: 5 propeller rotations
l Convergence checker:
l Stability interval: 10%
l Average last: 10%
l Tolerance: 1%
l Check after: 1 propeller rotation

Bare and appended hull computations

402 Fine™ Marine 12.1 User Guide


FIGURE 13.6
Grid-to-grid approach applied to the bare- and appended hull scenario.

The methodology for this scenario is slightly different as both the bare and appended hull
computations should be fully converged.

All patches belonging to the ship (including all appendages) should be grouped defined as a single
body for the appended hull computation.

Bare hull
The bare hull computation can benefit from the convergence booster, but the other settings are the
default ones.
l Number of time steps: 4*acceleration time
l Convergence booster: Active
l Convergence checker:
l Stability interval: 10%
l Average last: 10%
l Tolerance: 1%
l Check after: 100 time steps
Appended hull
The computation with the appended hull uses the result for the bare hull as an initial condition.
The convergence booster is therefore not necessary. The other settings are identical to the bare
hull computation.
l Number of time steps: 4*acceleration time
l Convergence booster: Disabled
l Convergence checker:
l Stability interval: 10%
l Average last: 10%
l Tolerance: 1%
l Check after: 100 time steps
Ideally, the fine mesh is created first following the respective guidelines for the project set-up. The
coarse mesh is then created starting from the fine mesh, following the guidelines below for every
domain in the mesh:

403 Fine™ Marine 12.1 User Guide


Coarse grid meshing guidelines

l Initial mesh: Halve the number of cells in each direction. Round the number up in case of an
uneven number of cells in the fine mesh.
l Adapt to geometry: Reduce the global diffusion by two levels to maintain similar refinement
zone topology.
l Viscous layers: Maintain the same settings for both grids.

For many cases, the above suggestion will lead to a correctly generated mesh with about 5 times less
cells than the fine grid. In cases with more complex geometries, it may happen that snapping failure
occurs. If this happens, usually a local increase of the adaptive refinement on the problematic patch
will resolve the issue. This is particularly the case if very small parts of appendices (e.g. hub caps) are
meshed separately. Alternatively, the initial number of cells in a certain direction can be increased by
one or two to facilitate the correct capturing of the geometry (e.g. when the amount of cells in a
particular direction is very low).

13.2.3 Files required to perform a restart

To restart from a previous solution, it is required that some solution files (e.g. the simulation
definition file with extension .sim) are already present. See "Backups" (p. 677) for the complete
list of mandatory files.
The eff_*.dat, Mvt_BodyName.dat and body_param.dat files contain respectively the global
fluid forces, the body motions and the data related to the body. They also have to be present in the
computation folder to make a restart.
The check button Append convergence history can be selected. If selected, the convergence
history file, containing 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. This
also goes for the efforts (eff*.dat files) and the motions (Mvt_BodyName.dat file).

For instance, it is possible to gradually increase the imposed velocity after a first run at a lower speed,
see Imposed Law of Motion to know how to change the velocity.

404 Fine™ Marine 12.1 User Guide


When performing a restart, the simulation should be done in the same conditions (i.e. with the same
solved degrees of freedom) for a good post-processing analysis. Otherwise, while the new residuals in
the .res file or additional solved motions in the Mvt_body.dat file will be accumulated without any
problem, the Monitor (see Monitoring ) will not be able to read the new output variables that are
solved for. This can be overcome by not importing the convergence history when changing the
conditions.

405 Fine™ Marine 12.1 User Guide


CHAPTER 14.

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
14.1 Definition 407
14.2 Properties 416
14.3 Best Practice on Actuator Disk Capabilities 419
14.4 Basic Equations 422
14.5 User-defined force distribution (ad_forces.f90) 423
14.6 Propeller code coupling (ad_propeller_code.f90) 429

406 Fine™ Marine 12.1 User Guide


14.1 DEFINITION

First of all, it is necessary to activate the Actuator disk feature by clicking on the Activate
Actuator Disk menu.

FIGURE 14.1
Actuator disk activation menu

As soon as the model is active, the computation will contain at least one Actuator Disk.

FIGURE 14.2
Actuator Disk default parameters

407 Fine™ Marine 12.1 User Guide


14.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 14.3
Body force update selection menu

The first one defines a prescribed interval for the force update with the parameter named
Frequency which can be function of the number of Time steps for an unsteady computations or
the number of Iterations for a steady computation.
The next paragraphs explain the different types of body force update.

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

408 Fine™ Marine 12.1 User Guide


the actuator disk will have no influence.

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. Body forces are
uniform in angular direction but changes in radial direction with the DEFAULT law.
l UNIFORM: uniform force distribution inside the actuator disk.

Uniform law could be preferred for water jets or ducted propellers.

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 force distribution (ad_forces.f90) " (p. 423) 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
open water data file.

409 Fine™ Marine 12.1 User Guide


FIGURE 14.4
Example of an Open water data file format

410 Fine™ Marine 12.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.

The user can give Kq or 10Kq in the open water .dat file. If the maximum value for all imported Kq
values is higher than 0.2 the solver will assume that 10Kq is given. A message will be printed in the
.std file to confirm.

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.

411 Fine™ Marine 12.1 User Guide


FIGURE 14.5
Open water data file specification

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 14.6
Revolution rate selection menu

When the User imposed is selected, the entry to enter the value in [RPS] appears below the box.

FIGURE 14.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.

When multiple actuator disks are defined within the same computation, and the revolution rate
(along with thrust and torque) is updated automatically for each of these disks, the RPM of all
disks will be assumed to be the same.

Wageningen B-series

When OPEN WATER DATA is selected, a new button Wageningen B-series appears in the
Actuator disk properties, next to Open water data. By clicking on this button, a new interface
is open in order to edit the B-series parameters, such as geometrical properties of the propeller and
the name of the .dat file.

412 Fine™ Marine 12.1 User Guide


FIGURE 14.8
Wageningen B-series menu

Once all inputs are edited, the button Show curves allows to display the performance curves of
the propeller.

FIGURE 14.9
Example of generated curves

413 Fine™ Marine 12.1 User Guide


By clicking on Apply, the .dat file is created and linked to Open water data, in the Actuator
disk properties menu.

The Reynolds number can be defined as follows:

with:
l the chord length at 0.75R

l the kinematic viscosity

The Wageningen B-series open-water data is only valid for non-ducted propellers.

The current limitations of the B-series are:


l The number of blade cannot be lower than 2 or higher than 7
l The B-series data are valid for a range of Reynolds numbers given by:

l The data considers only pitch diameter ratios given by:

l The expanded area ratio varies over a certain range, given by:

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:

414 Fine™ Marine 12.1 User Guide


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.

This development is under a dedicated license key (no extra cost).

More information can be found in the "Propeller code coupling (ad_propeller_code.f90)" (p. 429)
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.

Ramp start time: absolute time in seconds at which the ramp begins. If the ramp duration is set to
0, the actuator disk start is simply delayed.
Ramp duration: duration in seconds of a linear ramp to go from zero to the required thrust. The
default value 0 means there is no ramp.

415 Fine™ Marine 12.1 User Guide


The ramp is only applied when T, n or Power is imposed. For instance, Body drag option does not
take into account this parameter.

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.

Ramp duration and start time are common to all actuator disks in the computation.

14.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.

416 Fine™ Marine 12.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.

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.

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.

417 Fine™ Marine 12.1 User Guide


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. 408).
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. 307) to know how to create a body. The actuator disk does not necessarily touch the body.

FIGURE 14.10
Representation of the actuator disk parameters

418 Fine™ Marine 12.1 User Guide


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 14.11
Disks list

14.3 BEST PRACTICE ON ACTUATOR DISK


CAPABILITIES

14.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

419 Fine™ Marine 12.1 User Guide


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.

If there are several actuator disks with "body force update", the proportion in thrust is set by the
initial Thrust value in the interface. For example if in the interface Thrust(AD1) = 0.5, Thrust(AD2)
= 0.25 and Thrust(AD3) = 0.25, the actuator disk 1 will give 50% of the thrust and actuator disks 2
and 3 will give 25% each.

14.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.

420 Fine™ Marine 12.1 User Guide


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.

14.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.

Body motion with an high angle compared to 0 along X- direction are not allowed as long 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.

14.3.4 How to rotate the actuator disk during the computation

To simulate an azimuth thruster the actuator disk can rotate during a computation. The following
set up needs to be used:
1. In Body definition create a frame body using Create frame
2. In Body motion, link the frame body to the vessel with a pin connection. Define its rotation
axis and motion law: this frame body serves the function of a virtual pod.
3. In the actuator disk menu use Link to body to link the actuator disk to the frame body.
In this case the refinement sector in the actuator disk location should be enlarged to cover the area
where the disk will move during the computation.
Make sure the actuator disk does not intersect any solid bodies with the motion law defined.

14.3.5 Important remarks

l It is recommended to generate a mesh with a fine enough grid density inside and near the
actuator disk. In practice, 20 cells in the thickness of the disk are recommended and the
number in the radial direction can be chosen to create isotropic cells. In other words, based on

421 Fine™ Marine 12.1 User Guide


the cell size in the thickness, the same cell size should be used in the radial direction.
This can be achieved using a Mesh refinement sector in the last tab of the Adapt to
geometry menu.
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. 1031) 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 v12.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.
l An overset domain should never overlap an actuator disk or the forces in the disk will not be
computed properly.
Example: A rudder in overlapping domain crossing an actuator disk.

14.4 BASIC EQUATIONS

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:

422 Fine™ Marine 12.1 User Guide


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:

14.5 USER-DEFINED FORCE DISTRIBUTION


(AD_FORCES.F90)

The ad_forces.f90 dynamic library can be used to define a custom body force distribution. This
force distribution is assumed to only vary in radial (r) and tangential (θ) directions and is constant
in the axial direction. The values can either be specified directly or interpolated from a (externally-
defined) table. While specifying the custom normal (Fni) and tangential (Fti) body forces, it
should be taken into account that the integration of Fni and Fti has to roughly correspond to
respectively the imposed thrust (T) and imposed torque (Q ). The integration is performed as
detailed by the following equation:

423 Fine™ Marine 12.1 User Guide


In the above equation, Dx is the thickness of the actuator disk and Rin and Rout respectively
denote the inner and outer radius of the actuator disk volume. The actuator disk surface is
discretized in radial and tangential direction as shown in the image below.

FIGURE 14.12
Inflow plane to the propeller

424 Fine™ Marine 12.1 User Guide


If the integrated value of the normal body forces (Fni) does not correspond to the imposed thrust,
the body forces are scaled by the ratio of the imposed thrust and the integral of Fni. The tangential
body forces ( Fti) are scaled by the same factor. Should the thrust increase throughout the
computation (i.e. body-force update activated), the body force distribution is maintained and the
values are simply scaled up to match the new thrust.

FIGURE 14.13
GUI settings when using the ad_forces.f90 dynamic library

Assuming first-quadrant propeller operation, the thrust specified in the GUI should be strictly
positive. The sign of the specified torque depends on the desired rotation direction of the
propeller. The RPM specified in the GUI only influences the calculation of the nondimensional
propeller characteristics Kt, Kq and J.

425 Fine™ Marine 12.1 User Guide


14.5.1 Fortran code

The ad_forces.f90 template that is detailed below can also be found in the _data/isis/dynamic_
lib/ path inside the Fine Marine installation folder. When this file is modified, replacing the imp_
eff_dyn.f90 inside the folder by the ad_forces.f90 completes the change.

A. Main variables

Within the main variables of the dynamic library, only the output variables should be modified
when imposing a custom distribution:
l Input variables:
l T_imp: Imposed thrust
l Q_imp: Imposed torque
l Rin: Inner radius of the actuator disk
l Rout: Outer radius of the actuator disk
l Ri: Radial position of the current point
l Angle: Angular position of the current point
l Output variables:
l Fni(Ri,Angle): Imposed normal body forces
l Fti(Ri,Angle): Imposed tangential body forces

Fortran code example

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

426 Fine™ Marine 12.1 User Guide


! 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
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

B. Handling multiple actuator disks

If more than one actuator disk is defined, a different partition is assigned to each actuator disk.
Thrust and torque values can be imposed to the separate disks, which can be done using the loop
in the example for two disks below.

Example for separate thrust and torque assignments

if (mybloc.eq.1) then
idisk=1
T_imp(idisk) = ...

427 Fine™ Marine 12.1 User Guide


Q_imp(idisk) = ...
else if (mybloc.eq.2) then
idisk=mybloc
T_imp(idisk) = ...
Q_imp(idisk) = ...
else
return
end if
If no thrust or torque values are to be imposed, but just a force distribution, adding the following
line of code is enough:
idisk = mybloc

14.5.2 Understanding the output in the .std file

If everything is correctly defined, the following output will be displayed in the .std file
Actuator disk : 1
Imposed thrust : 377.100000000000
Imposed torque : 16.7000000000000
The propeller is located in the domain and full propeller thrust is applied to the body shaft.
Propeller : 1
Thrust after integration: 364.130762172498
Expected thrust : 377.100000000000
Thrust will be adjusted.
Propeller : 1
Corrected thrust : 377.100000000004
Total thrust for the disk 1 (along the shaft axis)
377.100000000004
It can be noted that the thrust after integration (364.13 N) does not fully match the
imposed/expected thrust (377.1 N) and is scaled up to match the imposed thrust. If this difference
is too large (larger than 20%), the solver will stop and print the message:
Thrust does not match the body force.

428 Fine™ Marine 12.1 User Guide


14.5.3 Compilation

The dynamic library can be compiled by following the procedure outlined "Procedure" (p. 816).

14.6 PROPELLER CODE COUPLING (AD_


PROPELLER_CODE.F90)

The ad_propeller_code.f90 and ad_propeller_code_3d.f90 dynamic libraries allow coupling


the Fine Marine solver to an external propeller code through a single piece of code. The accuracy
of the Fine Marine solver in obtaining the flow field is then combined with the accuracy of an
external code in determining the body forces generated by a propeller.
On a high level, it comes down to the dynamic library passing the flow field (ua_wake, ut_wake)
at the inflow plane to the propeller code and passing axial (Fa_Pcode) and tangential (Ft_Pcode)
body forces in the propeller plane back to the Fine Marine solver. Next to the body forces, the
torque, thrust and/or RPM are also passed back to the solver depending on the application.

The radial body force is not taken into account in the current implementations.

14.6.1 Definitions

Data exchange between Fine Marine and the potential code is done on a local cylindrical
coordinate system linked to each propeller. This local coordinate system does not move with the
boat, nor rotate 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, counterclockwise
direction is the positive angular direction. The radial direction is pointed outward. The angle
ranges from 0 at y=0 to 2π (included).

429 Fine™ Marine 12.1 User Guide


A. Definition of the cylindrical grid

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 Rin , the radius of the propeller shaft. i=nr is located at Rout ,
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 0 angle is located at 0
o'clock as illustrated on the figure by the red line in the disk. Additional information defined in the
reference frame such as the center of the 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 are not mandatory
for the propeller code.

B. Force definition

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.

430 Fine™ Marine 12.1 User Guide


FIGURE 14.14
Inflow plane to the propeller

A grid identical to the inflow grid is located at the center of the propeller and used to represent the
body force computed by the propeller code. The axial body force distribution fa and tangential
body force distribution ft 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

431 Fine™ Marine 12.1 User Guide


Here, Rin and Rout are the inner radius and the outer radius of the disk respectively.

C. Propeller axis alignment

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 center 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:

will place the propeller together with its inflow plane in their final position.

FIGURE 14.15
Cardan angle rotation

432 Fine™ Marine 12.1 User Guide


D. Extension to multiple propellers

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 result 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.

14.6.2 Use cases

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 be used by the propeller code. It is the propeller code
which should decide how to use them for the 2D code. In the 3D propeller code, the choice
between a prescribed and updated propeller rate of revolution is controlled by the imposed_n and
imposed_P parameters.
Two different scenarios can be distinguished:
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.

433 Fine™ Marine 12.1 User Guide


A. Self-propulsion computations

The input value 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 center 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.

14.6.3 Fortran code

There are two provided propeller code files: ad_propeller_code.f90 and ad_propeller_code_
3d.f90. The latter has been developed more recently to allow an axially-varying distribution of the
body forces and velocities and incorporates a set of additional parameters. Unless a 3-dimensional
variation of the inflow velocities or body forces in the propeller plane needs to be taken into
account, users are recommended to use the 2D ad_propeller_code.f90.
Both files can be found in the _data/isis/dynamic_lib/ path inside the Fine Marine installation
folder. When the propeller code file is modified, replacing the imp_eff_dyn.f90 inside the folder
by the ad_propeller_code(_3d).f90 completes the change.

434 Fine™ Marine 12.1 User Guide


2D Propeller code structure

A. Code variables

The available variables are classified as input and output variables. Only the output variables are
passed back to the Fine Marine solver.
l Input variables:
l ndisk: number of propellers
l nr: number of points in radial direction for the inflow plane
l nt: number of points in tangential direction for the inflow plane
l AD_Body_number: body index to which the propeller is attached
l 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
l 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
l 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
l Xdisk,Ydisk,Zdisk : center of propeller in the reference frame
l ADnx,ADny,ADnz: shaft direction in the reference frame
l Xdisk_ wake,Ydisk_ wake,Zdisk_ wake : location of the center of inflow plane in the
reference frame
l ADnx_c,ADny_c,ADnz_c: shaft direction at current position
l Rin,Rout: inner and outer radius of the inflow plane
l Drag_total : total forces in ship advancing direction to be balanced with propeller thrust.
See explanation above.
l 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).
l Output variables:
l Fa_Pcode,Ft_Pcode,Fr_Pcode (nr,nt,ndisk) double precision array. output body forces
(axial, tangential and radial components)
l T_imp,Q_imp,An_imp: output propeller thrust, torque and rate of revolution

435 Fine™ Marine 12.1 User Guide


B. Code skeleton

The skeleton for the user-defined propeller code dynamic library is given below. The Fa_Pcode
and Ft_Pcode distribution given below, correspond to the default force distribution law used in
actuator disk computations. It is provided for illustration purpose only, since the resulting body
forces do not depend on the inflow velocity as they should 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, &
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)
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)

436 Fine™ Marine 12.1 User Guide


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

C. Including itnl and itt in the propeller_code.f90

The non-linear iteration number itnl and current time step itt are not passed to the ad_propeller_
code.f90 dynamic library. To be able to use both numbers as a variable, a second dynamic library
that is called at every time step ( imp_ eff_ dyn.f90 ) should be compiled alongside the ad_
propeller_code.f90 dynamic library. The compilation procedure for multiple dynamic libraries is
described in detail "Procedure to COMBINE several dynamic libraries at the same time" (p. 822).
The supporting dynamic library (with itnl and itt) should contain the following lines:
common/mydata1/itnl_save
integer itnl_save
double precision,save::t_last=0.0
integer,save:itt=0
common/mydata1/itt_save
integer itt_save
if(abs(t_last-tc).gt.1.0d-6) then
t_last=tc
itt=itt+1
end if
itnl_save = itnl
itt_save = itt
while the ad_propeller_code.f90 should contain the following:
common/mydata1/itnl_save
integer itnl_save
common/mydata1/itt_save
integer itt_save
The itnl_save and itt_save parameters can subsequently be used as the itnl and itt would.

437 Fine™ Marine 12.1 User Guide


3D Propeller code structure

D. Code variables

The available variables are classified as input and output variables. Only the output variables are
passed back to the Fine Marine solver.
l Input variables:
l mybloc : index of the current computation bloc
l nbody : number of defined bodies in the simulation
l ID_Body : input = body flag index in the .bcs file
l tc : current time
l CGref_R0 : Center of gravity of the body indexed ip_body in the reference configuration
l CGtc_R0 : current position, velocity and acceleration of the current body indexed by ip_
body
l Theta1tc : Cardan angles and their successive derivatives of the current body indexed by
ip_body
l Drag_Total: All forces acting on the body except propeller forces (see explanation above)
l Xdisk,Ydisk,Zdisk: Center of propeller in the reference frame (the position at the original
mesh)
l Xdisk_c,Ydisk_c,Zdisk_c: Current position of the center of propeller
l Xdisk_wake,Ydisk_wake,Zdisk_wake : Center of the inflow plane in the reference frame
l ADnx,ADny,ADnz: The direction of propeller axis (pointed to the wake) in the reference
frame
l ADnx_c,ADny_c,ADnz_c: The current direction of propeller axis
l Rin,Rout: The inner and outer radius of the propeller
l x_wake,y_wake,z_wake: 2D mesh at the inflow plane in the reference frame used to define
the inflow velocity.
l u_wake,v_wake,w_wake: Cartesian velocity components at the inflow plane defined in the
reference frame
l ua_wake,ut_wake,ur_wake: Cylindrical velocity components at the inflow plane
l ndisk: Number of propellers

438 Fine™ Marine 12.1 User Guide


l nr,nt: Number of grid point in the radial and tangential direction for inflow velocity and
output body forces
l AD_body_number: The body index to which the propeller is attached
l VXdisk_c,VYdisk_c,VZdisk_c : Current velocity components at the center of propeller
l OmegaXdisk_c,OmegaYdisk_c,OmegaZdisk_c : Current rotation vector at the center of
propeller
l Half_Disk: Indicator about half-domain configuration
l RefU : This is the reference velocity specified for the computation. It can be used for
normalization
l Rho_Water: This is water density. It can be used for normalization
l X_ Pcode_ mesh,R_ Pcode_ mesh,Theda_ Pcode_ mesh : Mesh to represent body force
distribution
l Itype_mesh_Pcode: Type of the above mesh
l P_imp: Imposed power
l P_max: Maximum power
l imposed_n: true: n imposed/false: n updated
l imposed_P: true: use P_imp to adjust n
l itnl: non linear iteration number
l AD_ update_ 3D_ bodyforce_ distribution : true: update force distribution /false: keep
previous distribution unchanged and only update thrust and torque
l NForce_AD: Number of cell in which body force is to be defined in the current partition
l X_AD,R_AD,Theda_Pcode_AD: X-R-Theda coordinates in the propeller frame for a given
cell
l Num_Cell_AD: Cell index
l Id_Disk_AD : Actuator disk index
l AD_F_Water : Actuator disk water fraction
l i_reset_AD : 1: grid is refined /0: grid is unchanged
l Wake_Flow_Distance : Distance to the inflow plane
l Amu_Water: The dynamic viscosity of water
l AD_Ramp_Duration: Duration for propeller ramp
l Output variables:
l Fa_Pcode_3D,Ft_Pcode_3D,Fr_Pcode_3D (N/m^3): Axial, tangential and radial forces to
be provided by the propeller code
l T_imp,Q_imp,An_imp: Propeller thrust, torque and revolution rate

439 Fine™ Marine 12.1 User Guide


l Fn_AD,Ft_AD,Fr_AD (N/m^3): Axial, tangential and radial bodyforce density in a cell

E. Code skeleton

The code skeleton for the 3D version of the propeller code coupling is given below. Again, the
implemented force distribution is provided only as an example and should be modified to include
the propeller code output.
Subroutine ad_propeller_code_3d &
(mybloc,nbody,ID_Body,tc, &
CGref_R0,CGtc_R0,Theta1tc, &
Drag_Total, &
Xdisk,Ydisk,Zdisk,ADnx,ADny,ADnz, &
ADnx_c,ADny_c,ADnz_c,DxD,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_3D,Ft_Pcode_3D,Fr_Pcode_3D, &
T_imp,Q_imp,An_imp, &
ndisk,nx,nr,nt,AD_Body_number, &
Xdisk_c,Ydisk_c,Zdisk_c, &
VXdisk_c,VYdisk_c,VZdisk_c, &
OmegaXdisk_c,OmegaYdisk_c,OmegaZdisk_c, &
Half_Disk, RefU, Rho_water,&
X_Pcode_mesh,R_Pcode_mesh,Theda_Pcode_mesh,Itype_mesh_Pcode,&
P_imp,P_max,imposed_n,imposed_P,&
itnl,AD_update_3D_bodyforce_distribution,&
NForce_AD,X_AD,R_AD,Theda_Pcode_AD,Fn_AD,Ft_AD,Fr_AD,&
Num_Cell_AD,Id_Disk_AD,AD_F_Water,i_reset_AD,&
Wake_Flow_Distance,Amu_Water,AD_Ramp_Duration)
!DEC$ ATTRIBUTES ALIAS:'ad_propeller_code_3d_'::ad_propeller_code_3d
!DEC$ ATTRIBUTES DLLEXPORT::ad_propeller_code_3d
implicit none

440 Fine™ Marine 12.1 User Guide


integer,intent(in) ::ndisk,nx,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) :: &
Xdisk,Ydisk,Zdisk,ADnx,ADny,ADnz, &
ADnx_c,ADny_c,ADnz_c,DxD,Rin,Rout, &
Xdisk_wake,Ydisk_wake,Zdisk_wake,Half_Disk
double precision,dimension(nx,nr,nt,ndisk),intent(inout) :: &
Fa_Pcode_3D,Ft_Pcode_3D,Fr_Pcode_3D
double precision,dimension(*),intent(inout) ::T_imp,Q_imp,An_imp
double precision,dimension(*),intent(in) :: Drag_Total
double precision,dimension(*),intent(in) :: &
Xdisk_c,Ydisk_c,Zdisk_c, &
VXdisk_c,VYdisk_c,VZdisk_c, &
OmegaXdisk_c,OmegaYdisk_c,OmegaZdisk_c,Wake_Flow_Distance
double precision::RefU, Rho_water, Amu_water, AD_Ramp_Duration
double precision,dimension(nx,ndisk),intent(in) :: X_Pcode_mesh
double precision,dimension(nr,ndisk),intent(in) :: R_Pcode_mesh
double precision,dimension(nt,ndisk),intent(in) :: Theda_Pcode_mesh
double precision,dimension(*),intent(in) :: P_imp,P_max,AD_F_Water
integer,intent(inout):: Itype_mesh_Pcode
integer,intent(in):: itnl,NForce_AD,i_reset_AD
Logical,dimension(*),intent(in) :: imposed_n,imposed_P

441 Fine™ Marine 12.1 User Guide


Logical,intent(inout) :: AD_update_3D_bodyforce_distribution
double precision,dimension(*),intent(in) ::X_AD,R_AD,Theda_Pcode_AD
double precision,dimension(*),intent(inout) ::Fn_AD,Ft_AD,Fr_AD
integer,dimension(*),intent(in):: Num_Cell_AD,Id_Disk_AD

! example of standard file output :


! if (mybloc.eq.1) print*,'Begining of the dynamic library ad_propeller_code'
!
! Local
!
double precision::r0,r,dx,a,hr,hx,xi,ar,rb,ai,rj,xb,ht,ri
double precision::fxij,ftij,frij,theda,alfa,pi,angle
integer::idisk,i,j,k,ipnt,icell
double precision:: rhp,Ca,Cb,rp,rs
!
! Parameters that must be defined for all partitions
!
itype_mesh_Pcode=0
AD_update_3D_bodyforce_distribution=.true.

if (Itype_mesh_Pcode.eq.1.and.mybloc.ge.2) return
! if (mybloc.le.1) then
! print *,'Itype_mesh_Pcode : ' ,Itype_mesh_Pcode
! print *,'Itnl : ' ,itnl
! print *,'Update body force: ' ,AD_update_3D_bodyforce_distribution
! print *,'T_imp : ',t_imp(1)
! print *,'Q_imp : ',q_imp(1)
! print *,'n_imp : ',an_imp(1)
! print *,'P_imp : ',p_imp(1)
! print *,'P_max : ',p_max(1)
! print *,'imposed_n : ',imposed_n(1)
! print *,'imposed_P : ',imposed_P(1)
! print *,'Drag_Total : ',Drag_Total(1)

442 Fine™ Marine 12.1 User Guide


! end if

pi=3.141592653589793238462643383279502884197d0

!
! Here is an example for 3D force distribution used
! for verification only
!

if (Itype_mesh_Pcode.eq.1) then
do idisk=1,ndisk
r0=Rin(idisk)
r=Rout(idisk)
dx=DxD(idisk)
a=dx/2
hr=(r-r0)/float(nr-1)
hx=dx/float(nx-1)
k=1
do j=1,nr
rj=r0+(j-1)*hr
xb=2*a*sqrt(abs(1.0-rj/r))-a
do i=1,nx
xi=-a+hx*(i-1)
ar=abs(1.0-abs((rj-(r+r0)/2)/((r-r0)*0.5)))**0.6
rb=r*(1.0-((xi+a)/(2*a))**2)
if (abs(xb+a).le.1.0d-10) then
ai=0.0
else
ai=((0.5-abs((xi-(-a+xb)/2)/(xb+a)))/0.5)**2
end if
if (rj.gt.rb) then
Fa_Pcode_3D(i,j,k,idisk)=0.0

443 Fine™ Marine 12.1 User Guide


Ft_Pcode_3D(i,j,k,idisk)=0.0
Fr_Pcode_3D(i,j,k,idisk)=0.0
else
Fa_Pcode_3D(i,j,k,idisk)=ai*ar
Ft_Pcode_3D(i,j,k,idisk)=ar
Fr_Pcode_3D(i,j,k,idisk)=ai
end if
end do
end do
ht=2.0d0*pi/float(nt-1)
do i=1,nx
do j=1,nr
fxij=Fa_Pcode_3D(i,j,1,idisk)
ftij=Ft_Pcode_3D(i,j,1,idisk)
frij=Fr_Pcode_3D(i,j,1,idisk)
do k=1,nt
theda=ht*(k-1)+0.25*pi
alfa=1.0+0.5*cos(theda)
Fa_Pcode_3D(i,j,k,idisk)=fxij*alfa
Ft_Pcode_3D(i,j,k,idisk)=ftij*alfa
Fr_Pcode_3D(i,j,k,idisk)=frij*alfa
end do
end do
end do
end do
else if (itype_mesh_pcode.eq.0) then
do ipnt=1,NForce_AD
icell=Num_Cell_AD(ipnt)
idisk=Id_Disk_AD(ipnt)
Xi=X_AD(ipnt)
a=DxD(idisk)/2
rb=(1.0-abs(Xi/a))**2

444 Fine™ Marine 12.1 User Guide


Ri=R_AD(ipnt)
Angle=Theda_Pcode_AD(ipnt)
rhp=Rin(idisk)/Rout(idisk)
Ca=8.0d0*pi/105.0d0*Rout(idisk)**2*DxD(idisk)*((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)
alfa=1.0+0.5*cos(angle+0.25*pi)
Fn_AD(ipnt)=Ca*rs*sqrt(abs(1.0d0-rs))*rb*alfa
Ft_AD(ipnt)=Cb*rs*sqrt(abs(1.0d0-rs))/(rs*(1.0d0-rhp)+rhp)*rb*alfa
Fr_AD(ipnt)=0.0d0
end do
else
write(0,*) 'Unknown mesh type ',itype_mesh_pcode
stop 'in ad_propeller_code_3d'
end if
End Subroutine ad_propeller_code_3d

14.6.4 Understanding the output in the .std file

If everything is correctly defined, the following output will be displayed in the .std file
Actuator disk : 1
Imposed thrust : 377.100000000000
Imposed torque : 16.7000000000000
The propeller is located in the domain and full propeller thrust is applied to the body shaft.
Propeller : 1
Thrust after integration: 364.130762172498
Expected thrust : 377.100000000000
Thrust will be adjusted.
Propeller : 1
Corrected thrust : 377.100000000004

445 Fine™ Marine 12.1 User Guide


Total thrust for the disk 1 (along the shaft axis)
377.100000000004
It can be noted that the thrust after integration (364.13 N) does not fully match the
imposed/expected thrust (377.1 N) and is scaled up to match the imposed thrust. If this difference
is too large (larger than 20%), the solver will stop and print the message:
Thrust does not match the body force.

14.6.5 Compilation

The dynamic library can be compiled by following the procedure outlined "Procedure" (p. 816).

446 Fine™ Marine 12.1 User Guide


CHAPTER 15.

LINES

Fine Marine provides several approaches to model lines connected to a body, depending on the
application. The lines menu distinguishes between using a static, spring-analogy approach for Mooring
and Tugging lines and a quasi-static approach using the Catenary approach.

The catenary approach is available under license. To upgrade your license, please contact your local software
provider or support office.

In this section
15.1 Mooring 448
15.2 Tugging 452
15.3 Catenary approach using the Catway module 455

447 Fine™ Marine 12.1 User Guide


15.1 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.

15.1.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 15.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.

448 Fine™ Marine 12.1 User Guide


FIGURE 15.2
list of mooring lines

15.1.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.
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 15.3
Configuration with four mooring lines

449 Fine™ Marine 12.1 User Guide


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.

The anchor position can be defined outside of the domain of simulation.

The initial tension in the mooring line is defined with respect to the configuration in which the body
is meshed. If initial kinematics are defined in the Initial conditions menu, they will be applied after
having computed the initial length of the mooring line. As a result, the initial kinematics will affect
the tension existing in the line at the start of the computation.

The Show/Hide option allows to display the selected mooring line in yellow in the graphics area.

FIGURE 15.4
Mooring parameters menu

450 Fine™ Marine 12.1 User Guide


15.1.3 Computation with Cardan angles

When using Cardan angles, the fairlead coordinates should be given in the body primary frame
defined by the Cardan angles (see coordinate frame). 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 fairlead coordinates remain unchanged.
The anchor coordinates should be given in the reference frame of the mesh.

15.1.4 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.

For half- body computations, the line properties should be kept the same as for a full- body
computation. However, only lines that are part of the modeled half of the domain should be defined.
The ISIS-CFD solver takes care of mirroring the efforts as if an identical line would be defined on
the opposite side of the symmetry plane for a full-body geometry. When a line is defined exactly on
the symmetry plane, this is interpreted as a single line (there is no doubling of the efforts for this
situation).

451 Fine™ Marine 12.1 User Guide


15.2 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.

15.2.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 tugging line.

FIGURE 15.5
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.

452 Fine™ Marine 12.1 User Guide


FIGURE 15.6
list of tugging lines

15.2.2 Special Characteristics

For each tugging line, it is mandatory to define the following parameters:


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 initial tension in the tugging line is defined with respect to the configuration in which the
body is meshed. If initial kinematics are defined in the Initial conditions menu, they will be
applied after having computed the initial length of the tugging line. As a result, the initial
kinematics will affect the tension existing in the line at the start of the computation.

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.

453 Fine™ Marine 12.1 User Guide


FIGURE 15.7
Tugging parameters menu

15.2.3 Computation with Cardan angles

When using Cardan angles, the extremity coordinates should be given in the body primary frame
defined by the Cardan angles (see coordinate frame). 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 extremity coordinates remain unchanged.

15.2.4 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:

where K stands for the stiffness, ΔL is the variation of the spring length and T is the initial tension
of the tugging line.

454 Fine™ Marine 12.1 User Guide


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.

For half- body computations, the line properties should be kept the same as for a full- body
computation. However, only lines that are part of the modeled half of the domain should be defined.
The ISIS-CFD solver takes care of mirroring the efforts as if an identical line would be defined on
the opposite side of the symmetry plane for a full-body geometry. When a line is defined exactly on
the symmetry plane, this is interpreted as a single line (there is no doubling of the efforts for this
situation).

15.3 CATENARY APPROACH USING THE


CATWAY MODULE

The Catway cable module (developed by D-ICE Engineering) is implemented in Fine Marine to
allow the simulation of more complex mooring set-ups in the marine environment using the
catenary approach. The catenary approach implemented in this Catway module allows fully three-
dimensional set-ups.
The catenary approach offers the user a higher degree of accuracy compared to spring-analogy
when dealing with moored vessels or offshore structures by using a quasi-static approach to
determine the tension forces in each line. Lines are defined between two nodes and can either be
fixed in the domain (e.g. on the seabed) or linked to a body. Multiple lines can be defined,
allowing a large range of applications to benefit from using the catenary approach. The first
section contains information on the general set-up of the catenary lines, which is followed by a
more detailed description of all required user-inputs. The underlying physical principle with
respect to the calculation of forces on the structure is treated afterward. The last section provides
some additional advice for setting up simulations using the catenary approach.

455 Fine™ Marine 12.1 User Guide


The catenary approach is available under license. To upgrade your license, please contact your local
software provider or support office.

l The catenary approach cannot be used for 2D projects.


l The catenary approach cannot be used for pure monofluid projects.
l The current implementation is limited to uniform loads on catenary lines. Non-uniform
loads on discretized catenary elements will be added at a later stage.

15.3.1 General Parameters

Once the catenary approach has been activated by clicking the Activate catenary approach, a
first line will be created of which the initial properties are displayed under Lines definition.

FIGURE 15.8
Catenary approach not active.

When saving a computation for the first time with the catenary approach activated, a
computationName_catway_input.json file is created in the computation folder, containing the
input parameters for the lines specified in the GUI. At each time step, the computationName_
catway_output.json file is updated with the tension and node position for the previously defined
lines.

A small workaround needs to be used in order to apply the Catway catenary approach in monofluid
projects. The computation needs to be be set up as a multi-fluid project, but the free surface needs to
be put either above the domain (entire domain filled with water) or below the domain (entire domain
filled with air).

456 Fine™ Marine 12.1 User Guide


15.3.2 Special characteristics

There are three main menus in which the user needs to define the specifics of the catenary lines.
The definition of lines is treated first, followed by the definition of material properties and the
node definition.

Lines definition

Fine Marine allows performing computations with several different catenary lines. Lines can be
added and removed in the interface, using the Add and Remove buttons. For each line, the node
locations can be shown as large yellow dots in the graphical area if the Show/Hide button is
checked.

FIGURE 15.9
Lines definition menu of the catenary approach.

The following parameters have to be set for each line:

457 Fine™ Marine 12.1 User Guide


l Material properties: The material used can be selected for each line individually from a drop-
down list of defined materials.
l Unstretched length: The unstretched length of the line.

The value set for the unstretched length must be at least equal to the distance between both nodes.
If the value of the unstretched length is equal to the distance between the nodes, the line will be
initialized almost completely taut. If the value of the unstretched length is larger than the distance
between the nodes, the line will be initially slack.

l Node 1 and Node 2: The endpoints of the line can be selected from a drop-down list of defined
nodes.

When the catenary approach is combined with an overset approach, the cable definitions
are less straightforward as the unstretched length cannot be smaller than the distance
between the nodes, but initial conditions in Fine Marine allow for an arbitrary positioning
of bodies in overset domains. Additionally, the initial translation of the overset bodies
should not be larger than the reference length of the vessel due to a current limitation of the
calculation of the cable end points for very large initial translations.
If larger initial translations or shorter cables are needed than what can be specified in the
GUI, users should manually edit the catway_input.json file for the respective cable. The
body-attached node position should be calculated based on the original body position in the
mesh plus the additional rotations/ translations specified in the GUI.

l Number of points for post-processing: This number defines the amount of points that are used
for the visualization of the line in the post-processing step.

The number of points for post-processing can be increased if the lines should be rendered more
smoothly in Cfview. As the position and tension of each of these points is written to a file at every
time step, however, this will increase the size of the computation on disk.

At least one line needs to be defined in the menu.

Materials definition

Fine Marine allows defining several materials, which can be shared by multiple lines. Materials

458 Fine™ Marine 12.1 User Guide


and their properties are added and removed in the same way as lines, using the Add and Remove
buttons.

FIGURE 15.10
Material properties menu of the catenary approach.

The following parameters have to be set for each material:


l Diameter: The (equivalent) diameter of the line that is to be modeled.
l Young modulus: The Young modulus is a measure of the stiffness of a structure and is defined
as the ratio of stress to strain.
l Linear density: The linear density is equal to the mass per unit length of the line.

The tangential and normal drag coefficient are currently disabled as the current version is
limited to a quasi-static formulation of the catenary equation solver.

At least one material needs to be defined in the menu.

Nodes definition

As for lines and materials, nodes can also be added and removed using the Add and Remove
buttons.

459 Fine™ Marine 12.1 User Guide


FIGURE 15.11
Nodes definition menu of the catenary approach.

The following parameters have to be set for each node:


l X, Y and Z: The X, Y and Z- coordinates of the node.
l Fixed node/ Linked to body: This option allows specifying whether a node is attached to a
body, and if so, selecting the body from a drop-down list.

For nodes that are not linked to a body (e.g. anchors on the seabed), it is possible to define the
coordinates outside the computational domain.

At least one node needs to be defined in the menu.

As line definitions are dependent on node and material definitions, it is not possible to delete
nodes and materials if they are still used by a line. As a consequence, lines should be deleted first
if the respective material and/ or nodes are to be deleted.

The boundary conditions at the boundary nodes of the catenary lines are comparable to a hinged
support; i.e. all translations are restricted, but rotations are allowed.

460 Fine™ Marine 12.1 User Guide


15.3.3 Forces definition

The main difference between the static approach (using mooring/ tugging lines) and the catenary
approach, is that the weight of the line is taken into account for the latter. The equilibrium shape
of, and tension in the line are determined by solving the catenary equation. This equation
determines the shape of the line based on the specified mass and stiffness properties, unstretched
length of the line and the end node positions.

For half- body computations, the line properties should be kept the same as for a full- body
computation. However, only lines that are part of the modeled half of the domain should be defined.
The ISIS-CFD solver takes care of mirroring the efforts as if an identical line would be defined on
the opposite side of the symmetry plane for a full-body geometry. When a line is defined exactly on
the symmetry plane, this is interpreted as a single line (there is no doubling of the efforts for this
situation).

The forces exerted by the line(s) on attached bodies and the node positions are calculated at every
nonlinear iteration within the solver.

15.3.4 Communication between the solvers

Communication between the Catway and ISIS solvers is done through the computationName_
catway_ output.json file. The Catway solver provides the tensions at the end points to ISIS
through this output file, which ISIS interprets as a single line force. This line force is then added
to the body force (as for mooring/tugging computations) and the position of the attached body is
evaluated through Newton's second law. At the subsequent time step, the ISIS solver then passes
the updated boundary node positions back to Catway.
The output file is also used for the visualization and post-processing using Cfview and the Results
Analysis Tool.
An overview of the processing of the Catway data, both input and output, can be found in the
illustration below.

461 Fine™ Marine 12.1 User Guide


FIGURE 15.12
Illustration of the communication between the solvers using the Catway files.

15.3.5 Best Practices

l Stability of a simulation depends on the linear stiffness k (multiplied by the cable length in the
definition below) of the lines, which is defined by the Young Modulus E and the diameter d
as:

l When making an estimate of the material properties, a realistic upper limit of the stiffness
(defined here as k=EA, instead of EA/L) would be of order 10 4 . Very high stiffness values
may lead to difficulties in solver convergence. This advised value was determined during
testing and should be seen only as a first guess in case no other line data are provided.
l For most cases (e.g. decay tests and in the presence of waves), the time step will be guided by
the requirement to accurately capture other physical phenomena (e.g. the decay or wave
period). In some cases however, the time step will be determined by the stiffness of the lines.
In general, a high stiffness k will require a low time step to accurately solve the response and
maintain stability within the solver. In case solver divergence is observed, a decrease of the
time step may therefore be the solution for getting a stable computation.
l A full-body computation should be considered if (mooring) lines with different properties are
linked to a symmetrical body on both sides of its symmetry plane.

462 Fine™ Marine 12.1 User Guide


FIGURE 15.13
Example of a full-body mooring set-up.

l The tension and node positions of a line can also be plotted as a function of time using the
Results Analysis tool once the simulation has been successfully completed.
l The lines can be visualized in Cfview once a simulation has been successfully completed. No
traveling shot should be applied when loading the .cfv file. More information about the
visualization options in Cfview can be found on the dedicated page on the visualization of
catenary lines in Cfview.

FIGURE 15.14
Visualization of the mooring lines using Cfview.

463 Fine™ Marine 12.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 vaporization and
condensation of the phases liquid/vapor. 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.

16.1 Parameters 465


16.2 Best practices 470

464 Fine™ Marine 12.1 User Guide


16.1 PARAMETERS

16.1.1 Introduction

Cavitation is defined as a rapid decrease of pressure resulting in a phase change to vapor from an
initially homogeneous liquid. In most cases, cavitation arises when the liquid is exposed to high
accelerations, such as in marine propellers, hydrofoils or pumps. When the vapor bubbles, which
are formed from a rapid pressure drop, burst, they cause adverse effects to these types of
mechanical systems, such as thrust reduction, noise or vibration.
The numerical modeling of cavitation in Fine Marine is based on the resolution of a transport
equation similarly to what is done for the free surface. The three models implemented are based
on a model of transfer between the phase liquid and phase vapor. They use empirical coefficients
to model vaporization and condensation of the phases liquid/ vapor caused by cavitation.
A detailed description of the mathematical models can be found in the Theory Guide: Cavitation
models.

The cavitation module solves a transport equation for either the Liquid or the Vapor phase. For
computations in which cavitation is modeled in conjunction with a free surface (multifluid), the
expert parameter CavitationEquationType_ should be changed to VAPOR to ensure a robust and
accurate prediction of cavitation.

16.1.2 Parameters

First of all, it is necessary to activate the cavitation modeling by clicking on the "Activate
Cavitation" button.

FIGURE 16.1
Cavitation activation

465 Fine™ Marine 12.1 User Guide


A. 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 vapor pressure in the cavitation model is to be set relatively to this reference pressure, so in the
case Pref=0, the vapor 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:

and the cavitation reference velocity at 0.7 times the propeller radius (0.7R):

The P ref becomes more important if the user chooses to define σ value instead of the P v, since the
latter will be deduced from σ and the Pref.

466 Fine™ Marine 12.1 User Guide


B. Flow properties

l Fluid density: information about the density of the main fluid (fluid-1)
l Vapor density and viscosity: density and viscosity of the vapor
l Reference pressure: reference pressure for the cavitation
l Cavitation reference velocity: reference velocity for the cavitation.

FIGURE 16.2
Flow properties for the cavitation modeling

C. Cavitation parameter

One has the choice between two solutions to define the vapor pressure, using the coefficient σ or
directly the value of the vapor pressure.

467 Fine™ Marine 12.1 User Guide


l σinit: initial cavitation parameter
l σ: target cavitation parameter
l Vapor pressure init: initial vapor pressure
l Vapor pressure: target vapor pressure
knowing that the parameters are linked by the formula:

with P ref the reference pressure, P v the vapor 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 σ.

468 Fine™ Marine 12.1 User Guide


FIGURE 16.3
Cavitation parameters

The default Cavitation parameters are not adapted to all kinds of applications. It is strongly
recommended to modify the parameters respecting the physical conditions of the cavitating flow
simulation.

D. Cavitation models

First of all, one of the following models should be selected: Sauer, Merkle or Kunz. Then different
inputs are required, depending on the selected cavitation model:
l for Sauer: Nuclei density,
l for Merkle and Kunz: Liquid production coefficient, Liquid destruction coefficient and
Cavitation reference length.

469 Fine™ Marine 12.1 User Guide


FIGURE 16.4
Cavitation model

16.2 BEST PRACTICES

16.2.1 Parameters

Flow Properties

l Fluid density
l Reference pressure: reference pressure in the domain. Its value is zero by default in Fine
Marine.

470 Fine™ Marine 12.1 User Guide


l Vapor viscosity
l Cavitation reference velocity: for foils use the flow reference velocity. For propellers, use the
velocity at 0.7*Radius.

Cavitation Parameters

There are two possibilities to set up cavitation:


1. based on the pressure in the fluid;
2. based on the non-dimensional parameter σ.
Both approaches are linked by the formula:

Where P ref is the reference pressure of the fluid, P vap is the vapor pressure in the flow, ρ is the
fluid density and Vref the reference velocity in the flow.
Having cavitation from t=0 in the simulation can create difficulties in the convergence of the
simulation. To start the simulation without cavitation and have a smooth transition to cavitation
the parameters σinit and Vapor pressure init can be used.
Setting the value of σ higher than the physical one or setting Vapor pressure init lower than the
physical vapor pressure of the fluid will ensure a smooth start of cavitation by means of a ramp to
the target values. The starting time of the ramp and its length are defined by Tac and ΔTdec.

As a first guess, a value for σinit= 1.3*σ, or an initial vapor pressure 1.3 times lower than the physical
vapor pressure can be specified.

l σinit: initial cavitation parameter


l σ: target σ to be reached
l Vapor pressure init: initial vapor pressure
l Vapor pressure: physical vapor pressure of the fluid;
l Tac: time to start changing from σinit to σ, or from Vapor pressure init to Vapor pressure;
l ΔTdec: time used to change from σinit to σ, or from Vapor pressure init to Vapor pressure.

471 Fine™ Marine 12.1 User Guide


Models

Merkle and Kunz

l Liquid production coefficient and Liquid destruction coefficient: they regulate how fast
vapor is converted into liquid and vice- versa. Their default values are set according to
experimental results in the literature. They should not be changed unless the behavior of
cavitation needs to be modified due to the flow physics present in the simulation.
l Cavitation reference length: for foils use the foil chord, for propellers the blade chord at
0.7*Radius.

Sauer

l Nuclei density : this parameter represents the number of spherical bubbles per volume of
liquid. The default value is set according to literature. If the solution is oscillatory, decreasing
this value will increase the stability of the solution.

Expert parameters

CavitationEquationType_

The cavitation equation is a transport equation that can be solved either for the liquid (default) or
the vapor phase. The choice for which phase to solve depends on the type of application, and
impacts the solver robustness and the accuracy of the solution.
l For monofluid cases, the default value can be used: CavitationEquationType_: LIQUID
l When a free surface is present, the value should be changed to: CavitationEquationType_:
VAPOR

CorrectWFBufferLayer_

For simultaneously simulating cavitation and ventilation of foils and other surfaces which are
similar to flat plates, it may be necessary to activate a wall-function correction inside the buffer
layer.
l Only for fine meshes: CorrectWFBufferLayer_: YES

472 Fine™ Marine 12.1 User Guide


16.2.2 Recommendations

Mesh

A fine mesh in all the areas where cavitation is expected to appear is key to a good result. A
uniform cell size should be kept in these areas.
In the viscous layer insertion step it is recommended to use a Y+ < 1 in the blades. The creation of
cavitation pockets can happen in the viscous layer region and a wall resolved approach will
improve its capturing.

Flow Model

Choose Unsteady as the flow model.

Turbulence Model

The default k-omega model is recommended.

Boundary conditions

If the blades have viscous layers with Y+ < 1, make sure the solid boundary conditions are set to
No slip (wall resolved turbulence model) in these surfaces.

Time Step

Guideline for foils:

Guideline for propellers:

Where C 0.7R is the blade chord at 70% of radius, U is the advance speed of the propeller (or far
field flow speed if the propeller is fixed), n is the rotational speed of the propeller in rps and R is
the radius of the propeller.

473 Fine™ Marine 12.1 User Guide


Convergence (nonlinear iterations)

As cavitation is by definition an unsteady phenomenon, the convergence-related guidelines for


unsteady computations apply here as a bare minimum.
l Maximum number of nonlinear iterations: 20
l Convergence criteria: 2 orders

Pressure solver

Accurate cavitation modeling requires obtaining good convergence in the pressure solver. For this
purpose, in the Control Variables > Advanced section, change the gain to 5 orders and the
number of iterations to 1000 for PCGSTAB_MB or 200 for BoomerAMG. BoomerAMG is
recommended whenever possible since 1000 iterations for PCGSTAB_MB.

Recommended Workflow

1. Run a computation without cavitation activated.


2. Then check the results: is P vap reached? If not, cavitation will not appear. To check this, it is
better to draw an iso surface of P vap to show the pocket of possible cavitation (not just
checking the range of pressure values).
3. Restart computation, activating cavitation. Set Vapor pressure init (or corresponding σ) so
that initially there will not be cavitation. Tac should be equal to the previous simulation time
(in case the convergence history is accumulated) and between 0.1 s and 0.25 s in addition, to
have a smooth creation of the cavitation.

Change to Order 1 Discretization (only mono-fluid computations)

To use cavitation, we need to use an unsteady approach but a time discretization of order 1 is
required in order to avoid possible instabilities that might occur when using the second-order
scheme. For multifluid simulations, select Steady mode. However, for monofluid computation,
the GUI will automatically impose the second-order scheme. To change it click on Comment,
under the list of Computations and copy the following lines:
*
*** TIME SCHEME
*
BACKWARD ORDER 1

474 Fine™ Marine 12.1 User Guide


Expert Parameters

If the pressure solver is set to PCGSTAB, the following expert parameter need to be adjusted:
l presIlu_: 3 (ILU level)
This parameter can be found in the Computation Control >Control Variables > Advanced
tab.

Information during the simulation

Interesting information is written in the .std file during the simulation:


l The cavitation parameter (sigma) and vapor pressure are mentioned. Since they are linked
together, it is good to verify the values during the simulation.
l At the end of the time step, the solver indicates the volume of the cavitation pocket: vapor
volume in the flow. It is then possible to check these values to see the evolution and determine
the oscillation period of the pocket.

Post-Processing

The post- processing of cavitation results always needs to include a time average. The
modification of expert parameters helps to stabilize the solution, but cavitation is an unsteady
phenomenon by definition.
During the simulation, in the .std file of the simulation (or in the Task Manager window),
indicators about the cavitation are printed. For instance:
--------------------
cavitation parameter : 1.70975376491370
vapour pressure : -796044.469125389
--------------------

Stability

The default Sauer model should be appropriate and stable for most cases.

Reference Pressure

In mono-fluid computations one of the patches (usually the downstream patch) needs to be set
with the Boundary Conditions > Prescribed pressure > Frozen pressure. The value for this
Frozen pressure is 0 in a mono-fluid computation.

475 Fine™ Marine 12.1 User Guide


In a multi-fluid computation the free-surface pressure is used as reference pressure. It is also set to
0 by default.
In both cases the reference pressure for cavitation Pref is therefore set to 0.
The vapor pressure is set relatively to this reference pressure, so the vapor pressure value will be
negative.

Example for water

The vapor pressure of water at 15 deg is 1700 Pa. In Fine Marine the reference is not atmospheric
pressure but 0, so the vapor pressure the user needs to input in Fine Marine is Pv -Patm = -99 625
Pa. The other option is to set the parameter σ, which is a direct measure of the difference between
reference pressure and vapor pressure, normalized with the dynamic pressure in the flow.

476 Fine™ Marine 12.1 User Guide


CHAPTER 17.

TEMPERATURE

The temperature and its effects on the flow can be modeled using a temperature model with the
Boussinesq approximation and a solutal model. This method can be used to simulate fume exhausts.

In this section
17.1 Introduction 478
17.2 Parameters 479
17.3 Best practices 482

477 Fine™ Marine 12.1 User Guide


17.1 INTRODUCTION

The Temperature and Solutal models extend the Fine Marine flow solver capabilities to
simulate flows involving temperature and pollutants. Using the Boussinesq approximation, the
temperature differences will induce a displacement in the flow allowing the good modeling of
natural convection and the solute diffusion will allow the tracking of pollutants such as smoke.

This feature can be coupled with the "Adaptive Grid Refinement" (p. 546) feature ( "Temperature
and solute Hessian" (p. 560) criterion), improving greatly the gradient capturing of the Temperature
and the Solute while reducing largely the cell count of the initial problem.

FIGURE 17.1
Example of smoke exhaust using AGR

In clear

The temperature, by changing the density of the flow (following the Boussinesq approximation),
will induce a displacement of the flow called natural convection.
The solute diffusion has a definition closer to a material and describes an element such as the
smoke or a pollutant which doesn't have its own phase: a concentration. The solute will also
change the density of the flow inducing another level of flow displacement.

478 Fine™ Marine 12.1 User Guide


Contrary to the "Passive scalar" (p. 263) , the solute diffusion is active and creates a movement in
the flow.

Examples

Use of temperature alone: study the impact of a synthetic jet pulsing hot water close to the
bathing area at the transom of a luxury yacht
Use of temperature and solute diffusion: study the smoke diffusion out of a cruise ship's
chimney

17.2 PARAMETERS

To define a simulation with Temperature and possibly Solute, it is necessary to define certain
initial conditions such as the ambient temperatures, the reference solute mass fraction or the
temperature of the sources. To do so, the following menus are available.

479 Fine™ Marine 12.1 User Guide


Temperature menu

FIGURE 17.2
Temperature menu

This menu allows the activation of the Temperature model. For each fluid, the following
parameters need to be defined:
l Ambient temperature [K]
l Prandtl number (Pr)
l Thermal expansion coefficient (β) [1/K]

480 Fine™ Marine 12.1 User Guide


The Solute diffusion can only be activated if the Temperature is activated.

The solute properties to define are the following:


l Reference mass fraction: 0 - no solute, 1 - solute only
l Schmidt number (Sc)
l Solutal expansion coefficient

Boundary conditions

FIGURE 17.3
Temperature and solute definition in the Boundary conditions menu

Once the Temperature menu is set, the Temperature and the Solute diffusion can be prescribed
on the domain patches in the "Boundary Conditions " (p. 265) menu. The following boundary
conditions are eligible:
l SOLID
l EXTERNAL:
l Far field
l Prescribed pressure
l Zero pressure gradient
l Synthetic jet
The desired patches will then radiate the specified temperature and solute prescriptions.

481 Fine™ Marine 12.1 User Guide


17.3 BEST PRACTICES

17.3.1 Workflow

First computation

Initialize the flow in the volume without temperature and solute.

Restart computation

When the flow is initialized, perform a restart activating the temperature model and solute
diffusion.

In the restart computation, in the Initial solution menu, do not select the "Append convergence
outputs" check- box. Indeed, the residuals for Temperature and Solute do not exist in the first
computation which would make the .res file unreadable by the Monitor.

17.3.2 Inputs

Prandtl number and Thermal expansion coefficient

The values for the Prandtl number for air and water can be taken in the literature.

Solute mass fraction

The solute mass fraction is defined in the range [0,1] and is representative of the dilution of the
solute.
For instance, if the reference solute mass fraction in the domain is 0 (0% of solute) and one patch
injects a solute mass fraction of 1 (100% of solute). A solute mass fraction of 0.2 at a specific
location of the flow means 20% of solute.

17.3.3 Advices

Here are listed some advices for the usage of Temperature and Solute:

482 Fine™ Marine 12.1 User Guide


l For wind studies, in case of wrong dispersion of the temperature in the domain (ambient
temperature not respected as input), the ambient temperature should be imposed on the Inlet
patch.
l For smoke dispersion studies, the concentration is often expressed in ppm (particles per
million). The following rule can be applied: 1ppm = 1e-6 for the solute.
Surface probes of solute should be created for animation.
l If Adaptive Grid Refinement is used with the criterion "Temperature and solute Hessian" (p.
560), the standard law can be followed to determine the threshold.

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.

483 Fine™ Marine 12.1 User Guide


CHAPTER 18.

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 Marinee 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.

484 Fine™ Marine 12.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
18.1 Parameters 486
18.2 Results 492
18.3 Report file 497
18.4 Recommendations 498

485 Fine™ Marine 12.1 User Guide


18.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 18.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:

486 Fine™ Marine 12.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:

487 Fine™ Marine 12.1 User Guide


FIGURE 18.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'

488 Fine™ Marine 12.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.

489 Fine™ Marine 12.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:

490 Fine™ Marine 12.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 its 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.

491 Fine™ Marine 12.1 User Guide


FIGURE 18.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 18.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.

18.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 18.5
Non-Deterministic Results: specifying the percentage of results to be used

492 Fine™ Marine 12.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.

493 Fine™ Marine 12.1 User Guide


FIGURE 18.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:

494 Fine™ Marine 12.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.

495 Fine™ Marine 12.1 User Guide


FIGURE 18.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
...

496 Fine™ Marine 12.1 User Guide


18.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

497 Fine™ Marine 12.1 User Guide


18.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).

498 Fine™ Marine 12.1 User Guide


CHAPTER 19.

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 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 dampen the waves.

Waves can only propagate along the X-direction. To simulate oblique waves, the body should
be rotated.

The internal wave generator will generate waves that propagate following the X-axis of the global
reference frame. The waves can be generated in positive or negative direction along the X-axis.

For bi- directional generation of regular waves, the expert parameter


internalWaveDualPropagation_ can be set to YES. This requires simultaneously using the legacy
(less accurate) Stokes expansion method for wave generation, accessible through setting the expert
parameter waveGenerationMethod_ to Stokes . Irregular waves cannot be propagated bi-
directionally, regardless of the wave generation method.

Parameters

Activating the Internal wave generator in the Additional models menu will make the
parameters describing the regular and irregular waves available:

499 Fine™ Marine 12.1 User Guide


FIGURE 19.1
Internal Wave Generation menu for regular waves

500 Fine™ Marine 12.1 User Guide


FIGURE 19.2
Internal Wave Generation menu for 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. 285) 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.

501 Fine™ Marine 12.1 User Guide


502 Fine™ Marine 12.1 User Guide
FIGURE 19.3
Source location with propagation direction arrows (negative and positive X-direction)

Direction of propagation: for specifying the direction of propagation of the waves from the
wave generator: Positive X, Negative X.
Link to domain: possibility to select the domain the internal wave generator is linked to, in order
to follow its motion.
Activate smooth wave initialization: allows initializing the wave field at the start of the
computation to reduce the required computation time. The wave initialization has a start-up
transient of 1 wave period from the start of the computation to ensure solution robustness.

503 Fine™ Marine 12.1 User Guide


FIGURE 19.4
Comparison of the wave field with and without initialization.

Using wave field initialization is especially recommended with following waves. For head waves, the
largest gain with wave field initialization will be achieved for shallow waves with a large wave length
(and therefore large period). For steep waves with short wave lengths, the time needed for the waves
to propagate through the domain is much faster, leading to a smaller advantage of using the wave
field initialization.

Forced layers

Forced layers can be placed near the sides of the domain to remove any wave reflections. They
impose the exact wave signal from the IWG, in this way removing any wave reflections from
solid bodies or domain boundaries.
It is recommended to use this feature in combination with Wave damping near the downstream
boundary.
Forced layers with a thickness of half wave length should be placed:

504 Fine™ Marine 12.1 User Guide


l For half body simulations: near the Y boundary further from the body. No forced layers should
be placed near a mirror plane cutting a solid body.
l For full body simulations: near both Y boundaries.
Wave damping with a length from 2 to 3 wave lengths should be placed near the downstream
boundary.
There is no need to place forced layers upstream of the IWG, as it already removes any reflection
itself. It will only be needed if waves are propagated in both directions from the IWG.

FIGURE 19.5
Forced layers in the Internal wave generator menu

Forced layers are only compatible with Internal wave generator . For boundary condition wave
generator only Wave damping downstream should be used.

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.

505 Fine™ Marine 12.1 User Guide


Regular wave discretisation

The discretisation of the nonlinear wave potential is based on the work by Fenton, see [1] and [2].
Based on the numerical solution for the coefficients of a Fourier series representation ([2]), this
method allows for accurate wave generation both for shallow water waves and nearly-breaking
waves, up to steep deep-water waves, see FIGURE 19.6. The discretisation of the wave using a
Fourier series is controlled through the number of Fourier coefficients (terms) and so-called height
steps, which are sometimes necessary to represent very high waves. The solver automatically
determines the suitable wave discretisation parameters, but they are also accessible through the
dedicated expert parameters FSDTerms_ and FSDSteps_.

FIGURE 19.6
Regions of validity for wave theories. "Water wave theories" by Kraaiennest is licensed under
CC BY-SA 3.0, modified with added axis label text

The wave potential Φ in the reference frame that's moving with the wave (X=ct and Y=y) is
defined as:

with the following definition for the X- and Y-velocity components:

506 Fine™ Marine 12.1 User Guide


where:

U(bar) is the mean fluid speed, c is the wave speed (celerity), d is the water depth and B j is the
set of coefficients that need to be determined iteratively.
The surface elevation is defined as:

where η is the wave elevation and E j is another set of coefficients to be determined iteratively.
More information can be found in the theory guide on the FSD wave generation method.

Stokes theory expansion up to 3rd order (legacy)

The legacy wave generation method is not suitable for shallow water waves, waves in the
breaking wave limit and high waves due to its theoretical basis in the Stokes expansion theory.
Stokes theory applies only to deep-water and intermediate-depth waves. This method is still
accessible through modifying the expert parameter waveGenerationMethod_ and setting it to
Stokes.
The Internal Wave Generator (IWG) only allows generating first-order Stokes waves.
Specifying a higher order through the expert parameter waveGenerationStokesOrder_ will
not have any effect for the IWG.

For this wave generation method first, second, or third order Stokes wave definitions can be used.
The order depends on the wave steepness that is required in the computation. A higher wave
order additionally increases the accuracy of the wave interface close to the solid boundary until
two wavelengths downstream. After that point, the difference between the different wave orders
will be negligible if the goal is only to increase precision.

507 Fine™ Marine 12.1 User Guide


The wave order should be 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.
246) 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):

FIGURE 19.7
Estimation of the wave order

The red line represents the limit of validity of the Stokes 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 using this method, taking into account that the upper limit of validity for a periodic and
propagating deep-water wave is a wave steepness (H/L) of 0.14.

The wave order can only be set through the expert parameter waveGenerationStokesOrder_, for
which the default wave order is set to 3.

508 Fine™ Marine 12.1 User Guide


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. Defining the wave order correctly as such improves the
accuracy of the computation.
More details can also be found here.
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.
The dispersion relation is:

where

is the wave number and ɷ is the angular frequency:

References

[1] Fenton, J.D., 1990. Nonlinear wave theories. Ocean Engineering Science, 9, pp.1-18.
[2] Fenton, J.D., 1999. Numerical methods for nonlinear waves. In Advances in coastal and
ocean engineering (pp. 241-324).

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.

509 Fine™ Marine 12.1 User Guide


After the spectrum was selected, the following parameters will become available:

TABLE 19.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.

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

510 Fine™ Marine 12.1 User Guide


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.

Guidelines

1. The complete summary of the best practice for seakeeping simulations is provided in the FAQ
application guide for seakeeping simulations.
2. As waves generated using the IWG are of higher accuracy than the ones generated by the
boundary condition wave generator, using the IWG should be preferred.
3. Under the Plugins/Predefined menu, the " Wave generation info calculator" (p. 38) 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 or wave celerity.
4. Time configuration should be set to Unsteady (see " General Parameters" (p. 241)).
5. 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. 626) of the "Control Variables" (p. 625) menu)
6. 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.
7. Forced layers areas should be placed at laterals of the domain to avoid any reflection. The
recommended length of the forced layers is half wavelength. No forced layers should be
placed in a mirror plane that cuts a solid body.

511 Fine™ Marine 12.1 User Guide


CHAPTER 20.

WAVE DAMPING

Wave damping is achieved by a sponge layer that dampens 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 medium 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 ("External Condition" (p. 276)) and with the Internal wave generator ("Internal
wave generator" (p. 499)).
More information regarding the theoretical sponge layer formulation 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.
Parameters
The parameters defining the sponge layer become accessible after checking the Wave damping
box in the Additional models menu.
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 (Gmin and
Gmax) 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.

512 Fine™ Marine 12.1 User Guide


Horizontal and vertical damping
It is possible to activate damping only in a specific direction if this is required to mimic a certain
physical situation. By default, both horizontal and vertical damping are activated, and at least one
of the two options needs to be selected at all times.

513 Fine™ Marine 12.1 User Guide


CHAPTER 21.

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 this data Fine Marine will
compute the deformation of the structure by solving the modal equation.

FIGURE 21.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".

514 Fine™ Marine 12.1 User Guide


In this section
21.1 Parameters 516
21.2 Structure file 521
21.3 Outputs 523

515 Fine™ Marine 12.1 User Guide


21.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 21.2
Coupling activation

Modal structures configuration

Checking the Coupling activation in the Coupling parameters and pressing Edit... button will
make the Modal structures configuration menu available.

516 Fine™ Marine 12.1 User Guide


FIGURE 21.3
Modal structures configuration menu

After specifying the "Structure file" (p. 521), 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. 521).
Visual definition of what are the mode shapes can be presented as follows:

FIGURE 21.4
Mode shapes used for the Vortex vibration calculations: a) Mode 1, b) Mode 2, c) Mode 3, d)
Mode 4

517 Fine™ Marine 12.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 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. 344).

Non-zero Cardan angles are not supported in the flow solver for bodies when the Modal
approach is activated.

A modal body cannot be spread into several domains, all the body patches need to belong to
one single domain.

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:
isiscfdmarine121 -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.

Coupling options

Several coupling options are available. They allow to increase the accuracy or the speed of the
computation:

518 Fine™ Marine 12.1 User Guide


FIGURE 21.5
Coupling settings

l Node reduction tolerance: This option reduces the computation time when the number of
structure nodes increases. This method selects a reduced number of nodes while keeping an
accurate definition of each mode within a certain tolerance. The value has no units as it is
defined as the ratio between amplitude error and exact amplitude per mode. More information
can be found in the theory guide in chapter Flexible body with modal approach.
l Reference length: Using an accurate reference length for the modal body improves the quality
of the information transfer between structure and fluid.
l Deformable domain boundaries: External boundaries of the domain containing the modal
body can be deformed by applying a weighted deformation coming from the modal body. It
can help keeping a high mesh quality and is especially useful for a modal body in an overset
domain.

519 Fine™ Marine 12.1 User Guide


FIGURE 21.6
Example of boundaries deformation in case of overlapping grids

Deformation strategies

The deformation can be applied in three different ways:


1. Deform all domain boundaries with no restriction.

Applies to all boundaries, including Solid patches that do not belong to the modal body.

2. Deform all eligible boundaries except mirror planes.


3. Deform all eligible boundaries, including mirror planes.

Eligible boundaries are all External patches except: mirror planes, wave generators, synthetic jets
patches, sliding interfaces and periodicity. It also excludes Solid patches that do not belong to the
modal body.

l Activate Quasi-Static deformation approach: A quasi-static approach can be used for the
deformation of the structure. As for the quasi-static approach for the motions, this allows to
converge towards a steady state deformation very rapidly, and to decouple the time step
definition from the modes frequency. The parameters are the same as the ones from the
"Quasi-Static Approach" (p. 339) for body motions and can be defined per mode.

520 Fine™ Marine 12.1 User Guide


FIGURE 21.7
Quasi-static deformation parameters

Under-relaxation parameter of 0.5 is reasonably stable, hydrofoils usually work with 0.6 too
but not with 0.8 for instance. Hence, these parameters might be increased a little bit.
Also, it is easier to define under-relaxation parameters for each mode with the same value. It
could be nice to change them according to each mode but it sounds complex to anticipate since
the impact of each mode on the solution should be known in advance.
The frequency of update for dT2 and dT3 can be defined with the same values as for the quasi
static for motions (typical is 20 time steps).
l Advanced >>> button shows the expert parameter Map the loads on the non-deformed
configuration set as on by default.

21.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.
These properties can be computed by a side code (CSM for instance) or measured experimentally.

521 Fine™ Marine 12.1 User Guide


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 normalized 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>
Eigen frequencies
<f1>

522 Fine™ Marine 12.1 User Guide


<f2>
...
Mode shapes
<x1> <y1> <z1> <φ11x> <φ11y> <φ11z> <φ12x>
<φ12y> <φ12z> ...
<x2> <y2> <z2> <φ21x> <φ21y> <φ21z> <φ22x>
<φ22y> <φ22z> ...

21.3 OUTPUTS

Information about the amplitudes and their 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. 778).
Calculated quantities can be also opened into the "Monitoring" (p. 683). 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. 691) the SaveConvEfforts_ can be activated (set to YES)
on the Advanced page of Control variables menu. Results can be opened within the Monitor at
the same time with the other quantities.
The script post_node_modal_approach.py is available to post process the results and extract the
time history of the motion of one node of the structure.

523 Fine™ Marine 12.1 User Guide


CHAPTER 22.

LAMINAR TRANSITION MODEL

The transition from a laminar to a turbulent flow can have an important role for applications that deal
with low or moderate Reynolds number, such as marine unmanned, small submarines or hydrofoils
under certain conditions. While Reynolds Averaged Navier-Stokes (RANS) modeling is widely used
due to the relatively low computational cost, it is unable to predict transitional flow features. To take
into account this phenomenon, additional models need to be used, commonly referred as transition
models.
The available implementations are 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.
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.

524 Fine™ Marine 12.1 User Guide


FIGURE 22.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 and Rubino, G., Laminar-to-Turbulence Transition Modeling of
Incompressible Flows in a RANS Framework for 2D and 3D Configurations (2022).
doi:10.13140/RG.2.2.13761.68969.

In this section
22.1 Available models 526
22.2 Procedure 527
22.3 Best practices 535

525 Fine™ Marine 12.1 User Guide


22.1 AVAILABLE MODELS

Two models are available for coupling with k-omega (SST-Menter v2003):
l γ-Reθ: Menter and Langtry (2012), shown as "GAMMA-RETHETA".
l γ: Menter et al. (2015), shown as "GAMMA".
The γ model is a simplification of γ-Reθ, reducing the number of transition variables from 2 to 1.
Both models rely on intermittency γ, which acts on the production term of the turbulent kinetic
energy transport equation in the SST model. It can be seen as the percentage of time for which the
flow is turbulent (0 indicating fully laminar and 1 fully turbulent). The base models assume a two-
dimensional character of transition, and cannot take into account the effects of cross flow. For that
reason, an extension for crossflow is proposed for γ-Reθmodel (see below).

Transition is strongly affected by turbulence initialization. Sufficient experimental information is


required to appropriately model transition.

The γ-Reθ model is not Galilean invariant, for translating body the prediction is incorrect. It is
required to fix the body and move the flow instead of the other way around.

Transition models are only available with k-omega (SST-Menter v2003)

Crossflow calculation (γ-Re θ)

When "GAMMA-RETHETA" model is selected, crossflow calculation can be activated. A


extended model based on helicity will then be used. It makes the simulation less mesh sensitive
and it benefits accuracy for 3D flow, at the expense of computation time which is significantly
increased.

526 Fine™ Marine 12.1 User Guide


22.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 "Best practices" (p. 535)
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 v2003) Turbulence model.
2. Activate the Transition model from the Additional models menu.
3. Select the transition model from the drop-down menu.

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.
4. Perform only the pre-processing step in Task Manager or launch it in batch with the tool
"hexpress2isis" (p. 998): this will prepare the files to be run with the solver (including conversion,
partitioning or concatenation of previous results)

527 Fine™ Marine 12.1 User Guide


5. Initialize the turbulence level with a user input data files as described in "Flow Field
Initialization Program" (p. 792)
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
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

528 Fine™ Marine 12.1 User Guide


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.'
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

529 Fine™ Marine 12.1 User Guide


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
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

530 Fine™ Marine 12.1 User Guide


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)
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

531 Fine™ Marine 12.1 User Guide


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
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)

532 Fine™ Marine 12.1 User Guide


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
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

533 Fine™ Marine 12.1 User Guide


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
write(10) u
close(10)
end
6. Perform the steps 4 to 6 from the "Flow Field Initialization Program" (p. 792) 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. 955)),
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.

7. 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
8. Copy the generated files into the computation folder.
9. 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

534 Fine™ Marine 12.1 User Guide


*
*** R/W : TURBULENT KINETIC ENERGY (T)
*
k.bin
*
*** R/W : TURBULENT FREQUENCY (T)
*
aw.bin
10. 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. 720)) or using the batch
file.

22.3 BEST PRACTICES

Using a transition model requires particular attention to set-up the mesh, boundary conditions,
initial solution and computation parameters appropriately. Otherwise, it may not be able to
improve the simulation, even provide worse predictions (for example: with inaccurate inlet
turbulence variables).

Transition modeling

If the body can be fixed so that the flow moves around it, it is recommended to use the
"GAMMA-RETHETA" model to be able to activate the crossflow calculation, as 3D effects are
often non-neglectable. However, this model is not Galilean invariant and can not be used for
moving bodies.
If the body is not fixed, the "GAMMA" model must be used. This model is Galilean invariant
and can be used for both moving or fixed bodies.
Transition models are only available with k-omega (SST-Menter v2003).

Boundary conditions

The boundary condition on the solid walls should be defined to "no slip wall" (see "Solid Wall
Boundary Condition" (p. 268)). Transition modeling does only make sense when using a wall-
resolved approach in order to fully resolve the velocity profile in the boundary layer.
Transition models have no effect on the solid walls which are not defined with a "no slip"
boundary condition.

535 Fine™ Marine 12.1 User Guide


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.
Creating the adequate viscous layers height is also a must. Hence, make sure the mesh quality and
height of the viscous layers mesh are as expected, otherwise the accuracy of the model might
suffer. In practice, it would be nice to prefer adaptive grid refinements during the solver execution
than refining in Hexpress too much, which will compress the height of the viscous layers.
Alternatively, Fidelity proposes other methods like extrusion which ensures higher viscous layers
in the generated mesh.

For academic validation, it is interesting to note that the flow solver is also compatible with
structured meshes. This could help to create adequate viscous layers if need be to validate the model.
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 Hexpress
documentation.

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:

536 Fine™ Marine 12.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.

Other recommendations

l The activation of the transition modeling requires a considerably high overall number of time
steps up to convergence. The appropriate stabilization of the efforts and motions should be
checked in the Monitor.
l The activation of the crossflow modeling comes with extra cost on the computational
resources. To save on computation time, it is best to initialize the simulation without crossflow
activated, and then make a restart computation with the option activated.
l When FCH criterion for adaptive grid refinement is used in combination with a fixed body
configuration, the expert parameter raffHessianRef_ should be specified to INFLOW
VELOCITY (see expert parameters for "Adaptive Grid Refinement" (p. 924)).
l For unsteady computations, a restart from a steady computation might be advisable to reduce
the total computational time. During the unsteady phase more than 20 non-linear iterations per
time step might be necessary to ensure an appropriate decrease of the residuals during each
time step.

537 Fine™ Marine 12.1 User Guide


CHAPTER 23.

NUMERICAL MODELS

The Numerical models menu gives access to the Numerical schemes , Under- relaxation
parameters and Additional parameters tabs in order to define the numerical parameters of the
computation. They are described in the next section.

538 Fine™ Marine 12.1 User Guide


FIGURE 23.1
Numerical models page

In this section
23.1 Numerical Schemes 540
23.2 Under-Relaxation Parameters 543
23.3 Additional parameters 544

539 Fine™ Marine 12.1 User Guide


23.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,

540 Fine™ Marine 12.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).

541 Fine™ Marine 12.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 computations when a passive scalar model is active (see Fluid model).
l GDS,
l AVLSMART.

Temperature Equation

The different discretization schemes for the temperature are listed below. They are only available

542 Fine™ Marine 12.1 User Guide


for computations when the temperature model is active (see "Temperature" (p. 477)).
l GDS,
l AVLSMART.

Solute diffusion Equation

The different discretization schemes for the solute diffusionare listed below. They are only
available for computations when the solute diffusion model is active (see "Temperature" (p. 477)).
l GDS,
l AVLSMART.

Transition equations

The different discretization schemes for the transition are listed below. They are only available for
computations when a transition model is active (see "Laminar transition model" (p. 524)).
l 1ST ORDER UPWIND
l HYBRID
l CENTERED
l AVLSMART
l GDS
l BLENDED
l 2ND ORDER UPWIND

23.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)

543 Fine™ Marine 12.1 User Guide


l Cavitation (available for Cavitation models only)
l Temperature (available when Temperature model is active)
l Solute Diffusion (available when Solute model is active)

The Z-component of the velocity is frozen in case of 2D projects.

23.3 ADDITIONAL PARAMETERS

In this page some additional numerical corrections are accessible:

Activate streaking correction

Corrects the mass fraction in case of specific streaking problem. The streaking is a numerical
entrapment of air in the boundary layer below the hull. Two methods are implemented:
l Standard method
l Aggressive method
It usually happens for high speed boats, sailing yachts, or barges with a vertical and flat bow that
creates unsteady bow waves.
Aggressive streaking correction is more intense and eliminates more potential streaking. It has
shown no negative side effects on cases with no streaking and it is the recommended method.

Correction should be activated from the very beginning of the computation. Activating it with a
restart is too late to remove the streaking issue.

Activate velocity clipping

This option will set a limiting value to the velocity in the computation. It can be used in case of
complex simulations (e.g. Overset and/or Seakeeping) where a very localized and sudden velocity
peak due to numerical instabilities could provoke a crash in the computation.
A factor must be given. This factor will be multiplied by the reference Velocity in order to
specify the maximum velocity value in the computation.

544 Fine™ Marine 12.1 User Guide


Example

Reference velocity: 12m/s


Velocity clip factor: 50
The velocity in the computation will be capped at 600m/s.

A too low factor can lead to the creation of many cells if Adaptive Grid Refinement is used with
"Flux component Hessian criterion " (p. 559).

545 Fine™ Marine 12.1 User Guide


CHAPTER 24.

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.

Adaptive grid refinement is only compatible with full-hexahedral (2D or 3D) meshes, such as
the ones generated by Hexpress.

In this section
24.1 Introduction 547
24.2 Refinement Criteria 549
24.3 Grid Quality 573
24.4 Limiting Box 577
24.5 Refinement Control 582
24.6 Best practices 587

546 Fine™ Marine 12.1 User Guide


24.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. 601)).
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.

547 Fine™ Marine 12.1 User Guide


FIGURE 24.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.

548 Fine™ Marine 12.1 User Guide


The next sections correspond to the logic of the menu: definition of the "Refinement Criteria" (p.
549), parameters to preserve the "Grid Quality" (p. 573), "Limiting Box" (p. 577) definition to
limit the refinement zones and "Refinement Control" (p. 582) to specify among others the
frequency of calls to the method. The last section contains "Best practices" (p. 587) 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. 746) 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.

24.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 24.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.

549 Fine™ Marine 12.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. 553),
l "Free surface (tensor)" (p. 554),
l "Free surface (isotropic)" (p. 554),
l "Multisurface (tensor)" (p. 555),

Criteria based on second spatial derivatives

Typically used for mono-fluid computations:


l "Pressure Hessian (tensor) " (p. 558),
l "Pressure Hessian (isotropic) " (p. 559),
l "Flux component Hessian criterion " (p. 559),

Combined criteria

Only available if Temperature is activated:


l "Temperature & solute + Criterion based on Hessian" (p. 565)
Only available if Multi-fluid is activated in the Fluid model menu:
l "Free surface + Pressure Hessian " (p. 562),
l "Multisurface + pressure Hessian " (p. 562),
l "Multisurface + flux component Hessian " (p. 564),

Systematic refinement criteria

l "Systematic" (p. 570)


l "Multisurface + Systematic" (p. 571)

Other criteria

l Pressure gradient (isotropic),


l Velocity gradient (isotropic),
l Vorticity (isotropic),

550 Fine™ Marine 12.1 User Guide


l "Overset continuity only criterion" (p. 567).
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.

FIGURE 24.3
Criterion page

Parameters

The Refinement target values control the number of cells during the computation:

551 Fine™ Marine 12.1 User Guide


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.
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 24.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.

552 Fine™ Marine 12.1 User Guide


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 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.

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.

24.2.1 Surface capturing criteria

Several criteria are available which refine the mesh around the interface between 2 fluids, for
example the free-surface (air/water), or at the edges of cavitation pockets (water/vapor). They are
controlled by a specially property that sets the desired grid size in the direction normal to the
interface.
The mesh must be refined in a zone around the interface to avoid its diffusion. 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. 573)). 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.

553 Fine™ Marine 12.1 User Guide


FIGURE 24.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 24.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.

554 Fine™ Marine 12.1 User Guide


FIGURE 24.7
Free surface isotropic criterion

Multisurface (tensor)

Identical to the Free surface (tensor) criterion with the optional addition of water/vapor interface
refinement for cavitation.

FIGURE 24.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.

555 Fine™ Marine 12.1 User Guide


FIGURE 24.9
Multisurface refinement target values

556 Fine™ Marine 12.1 User Guide


24.2.2 Criteria based on second spatial derivatives

Refinement criteria are based on the Hessian matrix of second spatial derivatives of one or
multiple flow quantities, creating refinement throughout the computational domain (taking limiting
boxes into account). 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:

Different criteria are obtained by basing the Hessian on different variables. The use of this
criterion requires to set two parameters:
l Hessian alpha multiplier: non-dimensional coefficient that sets up the sensitivity to the flow
features. Assuming the reference length is matching the size of the object, the typical range is
[0.2,0.05], with 0.2/0.15 corresponding to coarse/medium, and 0.05 to very fine. It is
multiplied by the flow reference length to obtain the dimensional value shown as Hessian
criterion threshold above in the greyed out case.

For non- combined criterion based on second spatial derivatives, the value shown as
Hessian criterion threshold in the greyed out case should be copied in the Refinement
criterion threshold to be effective.

557 Fine™ Marine 12.1 User Guide


l Minimum cell size: By their nature, the Hessian based criterion can create very small cells
locally, in particular in the vicinity of a solid surface. Therefore, it is essential to set a minimum
cell size (see also "Introduction" (p. 547) of the Adaptive grid refinement section) when using
such criteria to avoid over-refinement.

The minimum cell size must not be smaller than the thickness of the first cells on the wall
(from viscous layers).

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. 561)), the pressure Hessian is very useful
for capturing waves.

FIGURE 24.10
Pressure Hessian tensor criterion

The actual criterion is non-dimensionalised and chosen as: , where the

power factor α is taken as .


Two ways are available to numerically evaluate the pressure Hessian (see also section about
"Refinement Control" (p. 582)). 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.

558 Fine™ Marine 12.1 User Guide


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 24.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.

559 Fine™ Marine 12.1 User Guide


FIGURE 24.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. 577) parameters).

In case velocity clipping is activated and the factor is low, thus clipping the velocity in many
cells, many refinements will be made by AGR as the second derivative of the velocity field is
artificially increased by the clipping. The velocity clipping factor can be raised to limit the
affected region and limit this effect.

Temperature and solute Hessian

The criterion is of Hessian type to approximate the truncation error in the temperature and solute

560 Fine™ Marine 12.1 User Guide


equations. It combines the criteria based on the solute and temperature fields; if only one of the
two is active for a computation, then the criterion is automatically based on that quantity only.
The solute-based part of the Hessian criterion is non-dimensionalised with (1/L2)α since the solute
itself is a volume fraction which is non-dimensional and has a range from 0 to 1. α=0.5 is the
usual power for the Hessian criteria. The temperature part is non-dimensionalised with (ΔT/L 2 )α
where ΔT is the difference between the maximum and the minimum temperature on the
boundaries.

FIGURE 24.13
Temperature and solute Hessian criterion

24.2.3 Combined criteria

In order to better capture different physical phenomena or different parts of the flow, Hessian-
based criteria can be combined with free surface criteria (free surface (tensor) or Multisurface)
and Temperature Solute Hessian criterion. Each combined criterion can have a different
threshold.
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.

561 Fine™ Marine 12.1 User Guide


As criterion are combined, the number of inputs is increased accordingly. The 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

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. 554) and "Pressure
Hessian (tensor) " (p. 558) paragraphs.

FIGURE 24.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 24.15
Multisurface + Pressure Hessian combined criterion

562 Fine™ Marine 12.1 User Guide


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.

563 Fine™ Marine 12.1 User Guide


FIGURE 24.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.

FIGURE 24.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 alpha multiplier. One of the first thresholds may be set to zero, in which case the
respective criterion is deactivated.

564 Fine™ Marine 12.1 User Guide


FIGURE 24.18
Multisurface refinement control values

Temperature & solute + Criterion based on Hessian

Every "Criteria based on second spatial derivatives" (p. 557), as well as their combinations with

565 Fine™ Marine 12.1 User Guide


Multisurface can be combined with "Temperature and solute Hessian criterion" (p. 561). If one
of those criteria is selected, Temperature/Solute can be activated with a dedicated threshold in
Temperature/Solute threshold within the Adaptive grid refinement menu.

FIGURE 24.19
Temperature threshold for combined criteria

566 Fine™ Marine 12.1 User Guide


24.2.4 Gradient criterion

Gradient criteria are not recommended anymore. Please consider using the hessian criteria.

Three gradient criteria are still available for backward: the gradient of the pressure, the gradient of
the velocity or the vorticity itself. These criteria give isotropic refinements.

FIGURE 24.20
Gradient criterion: pressure, velocity and vorticity

24.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. 553) 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.

567 Fine™ Marine 12.1 User Guide


Available only if Overset grid is active in the "Overset Grid Management" (p. 601) menu. If
Overset continuity only is selected and Overset grid deactivated afterward, the criterion switches
automatically to "Pressure Hessian (isotropic)".

If the cells are (an)isotropic in the overlapping domain, then the background or the other overlapping
domain will be refined (an)isotropically.

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 24.21
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. 573), "Limiting Box" (p. 577) and "Refinement Control"
(p. 582) 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.

568 Fine™ Marine 12.1 User Guide


FIGURE 24.22
Overset continuity only criterion

In the Grid quality tab, it is still possible to adapt the diffusion of the criterion value. The
recommendation is to let a sufficient number of copy to make sure that while the overlapping
domain is moving, the cells size from these domain boundaries will match with the other domain
even if there is no call to the refinement procedure at every time step. As such, to ensure this
match, the solver uses two times the number of full copy + 3, but also two times the number of
partial copy defined in the menu.

569 Fine™ Marine 12.1 User Guide


24.2.6 Systematic refinement criteria

Systematic refinement is a type of refinement criterion that applies to the entire domain, refining
each cell a single time (except in boundary layers if so desired). As such a refinement is only
applied once at the beginning of the computation, systematic refinement criteria are in a class of
their own and mainly developed in order to increase productivity and obtain results faster. This is
done by splitting computations into two parts: a coarse grid initialization and a restart on a finer
grid. This reasoning is similar to the grid-to-grid restart procedure, with the important difference
that, by using systematic refinement, the fine grid and the coarse grid are topologically very
similar. This ensures better solution continuity at the restart and faster convergence on the fine
grid. It also avoids user involvement in creating the fine mesh, increasing productivity. Systematic
refinement can also be used in a project with a single computation (without restart) in order to
simply create a finer grid on the fly, instead of meshing it as such in Hexpress.

l This functionality is included in Fine Marine but requires additional calibration. The
corresponding version is set to Beta.

Systematic

The Systematic refinement criterion refines all cells in the entire computational domain once with
the possible exception of viscous layers, which can be protected as for other refinement criteria.
This refinement is done during the initialization phase of the computation.
The main use case for this criterion is to obtain results on a systematically refined grid after
interpolating the initial solution from a coarse grid (i.e. for restarts). This is done inside a single
project and with a single (coarse) mesh. Using a coarse mesh for the initial calculation allows
speeding up the computation time needed to bring a vessel up to speed and get through the
transient part of the computation.

570 Fine™ Marine 12.1 User Guide


FIGURE 24.23
Systematic refinement criterion

FIGURE 24.24
The refinement procedure for the Systematic criterion.

Multisurface + Systematic

The Multisurface + Systematic criterion is a combination of the above-mentioned Systematic and


the Multisurface criterion, described in the documentation for the "Multisurface (tensor)" (p. 555)

571 Fine™ Marine 12.1 User Guide


criterion. This combined criterion allows applying a certain number of systematic refinements
during initialization, and subsequently using the Multisurface criterion to adaptively refine the free
surface. This criterion is therefore intended for free-surface type flows.
Contrary to the Systematic criterion, the combined Multisurface + Systematic criterion allows
specifying multiple grid levels to refine the initial grid. These (successive) systematic refinements
are carried out during the initialization phase of the computation. The Number of grid levels can
be set as part of the refinement target values.

The Multisurface + Systematic criterion maintains the uniform refinement of the free surface by
refining cells either until the specified target cell size or the requested number of refinements is
reached, depending on which of the two thresholds is larger.

FIGURE 24.25
Multisurface + systematic refinement criterion

572 Fine™ Marine 12.1 User Guide


FIGURE 24.26
An example of the applied refinement for the Systematic + Multisurface criterion.

24.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
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 24.27 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.

573 Fine™ Marine 12.1 User Guide


For each 'fractional' buffer layer (FIGURE 24.27 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 24.27
Buffer types

574 Fine™ Marine 12.1 User Guide


FIGURE 24.28
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 (and removing any existing refinement),
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.

575 Fine™ Marine 12.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).

576 Fine™ Marine 12.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.

24.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.

577 Fine™ Marine 12.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 24.29
Box refinement page

578 Fine™ Marine 12.1 User Guide


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.

If the specified coordinates are outside the domain geometry, the bounding box is restricted to the
domain geometry.

FIGURE 24.30
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.

579 Fine™ Marine 12.1 User Guide


FIGURE 24.31
Effect of Directional refinement restriction: restricted by Xmax.=1.05 (left); no box restriction
(right)

Boxes must follow body (overset only)

When this option is deactivated (default), the limiting boxes are based on the original grid without
mesh deformation or motion: a cell is seen as inside or outside the box depending on its
coordinates in the original grid. For mono-domain computations, it means that the box follows the
domain wherever it moves, thus following the body (since the body has limited motion
amplitude).
For multi-domain meshes, as domains may move significantly with respect to each other, the
boxes defined on the original mesh may not be in the right position. By using this option, the
boxes can be rigidly attached to a body to follow its motions. The definition of the box
coordinates still refers to the original grid. This feature is particularly useful for maneuvering cases
such as course keeping where the ship is typically moving inside the domain (figure 4).

As the boxes must be recomputed to follow the body motions, the computation time is slightly
increased.

580 Fine™ Marine 12.1 User Guide


FIGURE 24.32
AGR box following the body motions in the stationary background domain for course keeping

The follower box should not be activated when the relative motions of the domains are minor, like
in seakeeping cases (figure 5).

581 Fine™ Marine 12.1 User Guide


FIGURE 24.33
Seakeeping: AGR box following body motions should not be used as relative motions of the
domains are small

24.5 REFINEMENT CONTROL

The Control page contains several parameters, of different types, which control the global
behavior 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.

582 Fine™ Marine 12.1 User Guide


FIGURE 24.34
Frequency of refinement

The following group of parameters allow to control the following aspects of the adaptive
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

583 Fine™ Marine 12.1 User Guide


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. 553) or
"Combined criteria" (p. 561), 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 is performed during the first time step (i.e.
Number of steps before first call to refinement procedure is automatically grayed out and
set to 0).

If the initial position of the water surface corresponds to a grid plane, it will not refine at the
free surface location. To avoid this situation, the advanced parameter Base free surface
criterion on smoothed mass fraction should be activated.

If the computation using the Adaptive grid refinement is specified as a Restart from previous
computation in the "Initial Solution" (p. 392), the Reinitialize solution after first refinement
parameter will be grayed out and deactivated.

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).

The next control concerns the available memory for the computation.

584 Fine™ Marine 12.1 User Guide


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. Hence, the number of cells per partition
cannot exceed this number during the computation, otherwise the flow solver will stop. On a
machine which is used only to run the simulation, it makes sense to choose this parameter such
that almost all available memory of the machine is allocated for the flow solver (and thus
potentially available to store the refined grid). In other words, since the solver needs around
3.3Gb of RAM per million of cells, this value can also be found in the following way:
Maximum number of cells per partition = memory available*1e6 / number of cores used /
3.3e9. On a machine with 16Gb of RAM and 6 cores: Maximum number of cells per partition
= 16e9*1e6 / 6 / 3.3e9.

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 next box relates to the Averaged criterion: If activated, the refinement criterion values (i.e.
the decision on how much a cell is refined) are computed by evaluating the chosen refinement
criterion in the instantaneous flow at regular intervals and subsequently averaging these values.
This averaged criterion is then used for the mesh adaptation. The average can be performed over
the entire duration of the computation (minus an optional start-up interval at the beginning).
Alternatively (and preferably), a sliding window average can be used. Two parameters are
available to control this criterion:
1. Number of steps before first calculation of average
2. Number of steps between updates of average
These two keywords specify the frequency with which the instantaneous criterion is computed
and added to the average.
The principle is the same as for the adaptive refinement: the first criterion evaluation takes
place during the time step Number of steps before first calculation of average + 1 and from
then on, the criterion is evaluated every Number of steps between updates of average time
steps. A third parameter is available for this criterion:
l Calculate using moving averages:
The sliding window functionality is coupled with the adaptive refinement steps. It is
executed by saving several tables of averaged criterion values. Each table contains the
information gathered between 2 refinement procedures and is updated with the frequency
defined by Number of steps between updates of average. By subsequently averaging
over these tables, a moving average over a longer period is obtained. After each refinement
procedure, a new table is created and the information is reset.

585 Fine™ Marine 12.1 User Guide


Thus, the length of the sliding window is expressed in refinement intervals: if 5 intervals are
specified and the adaptive refinement is called every 50 time steps, then the sliding window
interval is 250 time steps long. The following detail should be taken into account:
l In a time step, the refinement criterion to be averaged is computed before the grid is
refined. Thus, the refinement time step is the last step whose average is still added to the
preceding interval. The new interval starts with the time step after the refinement.
l The sliding interval and the averaging frequency are uncoupled. The sliding window
function simply collects all the criteria which have been computed during the window
interval. Depending on the averaging frequency, this number may not always be the
same, it may differ by 1.
l While it may be useful to start the computation of the average before the first adaptive
refinement step, it is not needed to start more than the sliding window length before the
first refinement. Earlier criteria are computed but never used for mesh adaptation.
Caution: the solver does not prevent this!
Regarding restarts of computations, the behavior is the following:
l If a sliding window computation is restarted from a computation with fewer intervals (or
from a non-sliding window computation), all existing tables are read and the remaining
intervals are initialized with 0 computed criteria.
l If a sliding window computation is restarted from a computation with more intervals,
only the most recent intervals are read.
l If a non-sliding window computation is restarted from a sliding interval computation, all
intervals are read and summed into one set of tables.

Current limitations:
The averaged criterion is not compatible with the following criteria:
l Free surface (directional)
l Free surface + pressure Hessian
l Pressure gradient (isotropic)
l Velocity gradient (isotropic)
l Vorticity (isotropic)
l Systematic

The Averaged criterion is particularly useful for strongly unsteady computations (e.g. computations
for which flow structure and global forces are strongly time dependent), where using classic AGR

586 Fine™ Marine 12.1 User Guide


settings might lead to local clustering of over-refined cells; in such cases using the Averaged criterion
helps to redistribute the refinement with a smoother pattern. Moreover it is suggested to:
l Combine the Averaged criterion with the Flux Component Hessian refinement criterion type, as
it is the most descriptive of the flow;
l Use sliding windows to make the averaging process faster and more efficient.

The last frame relates to the Refinement convergence criterion: if activated, it monitors the
evolving number of cells and stops the activity of the adaptive grid refinement if the change in
number of cells falls below a user defined threshold. The following parameters define this
convergence criterion:
l Total number of adaptation calls in the check window : defines the number of mesh
adaptation calls (starting from the last one) used for the reference average;
l Length of the sliding window: defines the number of mesh adaptation calls (starting from the
last one) used for the comparison average;
l Tolerance: defines the threshold (in %) for the criterion.
The criterion stops the adaptive grid refinement if the difference between the reference and
comparison average falls below the tolerance.

This convergence criterion is particularly helpful for resistance cases with low Froude numbers. For
other applications (for example high speed boats), it is not recommended as it decrease the pressure
solver efficiency, resulting in a slight increase of the total computation time.

24.6 BEST PRACTICES

The following global best practices are available here for adaptive grid refinement. For the
application-specific guidelines, please consult this section.

24.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. 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.

587 Fine™ Marine 12.1 User Guide


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.
When this criterion (or a combined one) is used, it is recommended to lower the refinement of the
free-surface level by one, or completely remove it to get the most out of it. If the mesh is already
refined at the target cell size, AGR will not refine more and its use will bring limited value.

Ship in calm water

Refer to the dedicated section in seakeeping best practices: Adaptive grid refinement for
resistance.

Ship in waves

Refer to the dedicated section in seakeeping best practices: Adaptive grid refinement for
seakeeping.

The use of combined criterion is recommended to make the grid sufficiently fine below the free
surface in order to resolve the orbital velocity of the wave field that is simulated, as free- surface
criterion only provides a finer grid at the location of the water surface.

Impact

This type of flow is characterized by very rapid, violent motion of the water surface. A time step
adapted to the Courant number is mandatory. Settings for the computation can be chosen as in the
2D Falling Object Tutorial.

588 Fine™ Marine 12.1 User Guide


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 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.

Hydrofoils

Refer to the dedicated section in hydrofoil best practices: Adaptive grid refinement for foils.

The use of combined criterion is recommended to ensure that the mesh is sufficiently fine and not
miss important flow features.

24.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. 561).

589 Fine™ Marine 12.1 User Guide


Two types of Hessian criterion are available (section "Criteria based on second spatial
derivatives" (p. 557)): 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. 557).

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.

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.
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.

590 Fine™ Marine 12.1 User Guide


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 deactivated.
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.

The description of the geometry in the domain file must be of very high quality, otherwise the
adaptive refinement will detect the edges of the individual triangles and refine there. Typically,
this means that all triangles should be at least several times smaller than the faces of the
original mesh which cover the same surface.

591 Fine™ Marine 12.1 User Guide


24.6.3 Free surface + pressure Hessian criterion

These criteria can be used for multi-fluid computations in the same situations where the Hessian
criteria would be used for mono-fluid computations (section "Criteria based on second spatial
derivatives" (p. 557)). An additional application is capturing 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.
The baseline principle is to limit or remove the refinement of the free-surface in the initial mesh,
otherwise there is nothing for AGR to refine.
Additional information: see the "Criteria based on second spatial derivatives" (p. 557).
Grid checks and troubleshooting: Points to watch out for are:
l Too many cells are created? Check that the alpha Hessian multiplier and the minimum cell size
have been set correctly.
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?

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
combination with the Pressure Hessian criterion is necessary to accurately capture the wave
propagation, which depends on the discretization of the pressure field just underneath the surface.
Refer to the dedicated section in seakeeping best practices: Adaptive grid refinement for
resistance.

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 achieve low Courant numbers in order to
preserve the sharpness of the water surface. The combination with the Pressure Hessian criterion
is necessary to accurately capture the wave propagation, which depends on the discretization of
the pressure field just underneath the surface.
Refer to the dedicated section in seakeeping best practices: Adaptive grid refinement for
seakeeping.

592 Fine™ Marine 12.1 User Guide


24.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.

593 Fine™ Marine 12.1 User Guide


24.6.5 Systematic refinement criteria

Systematic refinement criteria are predominantly meant to be applied in a restart procedure where
the solution is initialized on a coarse grid ("coarse grid initialization"). This means that the
transient part of the simulation (e.g. where the ship is brought up to speed) is performed on a
coarse grid to reduce the computation time needed by the solver for this part of the computation.
The restart is then performed with either the Systematic or Multisurface + Systematic Adaptive
Grid Refinement criterion activated. The approach followed here is similar to the grid-to-grid
restart procedure, but while the latter allows more control over the cell count in the refined mesh,
the current approach improves the quality and robustness of the solution due to the more similar
topology of the coarse and fine grids. Additionally, the systematic refinement criteria allow
working inside a single project (folder) with a single mesh, improving the productivity inside the
Fine Marine workflow. The different coarse grid initialization procedures are schematized in the
flow chart below.

594 Fine™ Marine 12.1 User Guide


FIGURE 24.35
Flowchart to determine the most suitable coarse grid initialization procedure

l Using systematic refinement criteria can lead to the creation of a large number of cells as the cells
in the coarse grid are halved in each direction. Subsequently, the number of grid cells resulting
from a single systematic refinement is approximately five times the number of cells defined in the
coarse grid. As indicated by the flowchart above, using the systematic refinement criteria is
therefore discouraged if only limited computational resources are available.

595 Fine™ Marine 12.1 User Guide


l The Multisurface + Systematic criterion is a criterion which combines systematic refinement and
standard adaptive grid refinement procedures. Having previous experience with "Surface
capturing criteria" (p. 553) and familiarity with their principles and best practices (see "Free
surface criterion" (p. 587) ) is strongly recommended before running computations using the
Multisurface + Systematic criterion.

Coarse mesh generation

As for the other criteria, the general principle holds that very regular meshes lead to the highest
quality of results. Very regular meshes are obtained if the cells of the initial mesh (the so called
"Euler cells") of Hexpress are as close to cubic as possible. The quality of the coarse mesh
directly influences the quality of the systematically refined one. Cells with high skewness and low
orthogonality should be avoided wherever possible, as these may cause issues after the grid has
been refined using the Systematic criterion. A more extensive definition of a "good" mesh is
provided in the FAQ on Mesh Quality.
In case the computation using the Systematic criterion suddenly diverges shortly after the restart,
the reason is usually the solution on the coarse grid. A good starting point to identify possible
issues on the coarse grid is the discretization of the free surface, as also explained in the FAQ on
Physics of the computation. If there are already issues on the coarse grid during the initialization,
refining the grid using the Systematic criterion will not improve the situation.

Adaptive Grid Refinement menu settings

Criterion::
l The Systematic criterion does not allow the specification of additional options in this tab.
l For the Multisurface + Systematic criterion, the guidelines for the "Free surface criterion" (p.
587) should be followed with respect to the target and minimum cell size of the free surface
refinements. The Number of grid levels specifies how many systematic refinements of the
initial mesh should be done. Specifying 1 level corresponds to a single refinement.

596 Fine™ Marine 12.1 User Guide


Box :The box refinement is only available for the Multisurface + Systematic criterion. The
strategies defined for the "Free surface criterion" (p. 587) should be applied here.
Control:
l For the Systematic criterion, the Number of steps between calls to refinement procedure
directly affects how many times the grid is systematically refined. By default, it is set to a very
large value (1e9). If the grid should be refined more than once, it should be taken into account
that each refinement multiplies the initial cell count by about a factor 5. The number of
refinements is governed by the chosen Number of steps between calls to refinement
procedure and the number of time steps for the computation.
l The Multisurface + Systematic criterion, on the other hand, follows the same logic as the
Multisurface criterion. By default, the number of Number of steps between calls to
refinement procedure is set to 50, but this can be adapted based on the type of computation
as discussed for various types of applications using the "Free surface criterion" (p. 587).
l In case the computation using either systematic refinement criterion is a restart, the option
Reinitialise solution after first refinement is unavailable. The Number of steps before first
call to refinement procedure is fixed to 0 if the computation is a restart.
l The option Project refined grid onto body surfaces should be activated for both systematic
refinement criteria.

Convergence

Continuing the computation on the coarse grid after achieving convergence does not reduce the
convergence time on the refined grid of the restarting computation. Therefore, the Convergence
checker should be activated for the coarse grid computation and can be activated for the restart.
The Convergence booster can also be used for the initialization computation if an acceleration
ramp is defined for the analyzed body.

597 Fine™ Marine 12.1 User Guide


24.6.6 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.

24.6.7 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. 746) 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. 582)).

598 Fine™ Marine 12.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 24.36
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

599 Fine™ Marine 12.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.

600 Fine™ Marine 12.1 User Guide


CHAPTER 25.

OVERSET GRID MANAGEMENT

The Overset grid approach or Overlapping grids or Chimera approach allows the interpolation of
the fluid solution between two (or more) grids that are overlapping. This methodology implemented in
the Fine Marine solver widens the range of applications that can be studied.
The Overset grid management menu is available in theNumerical parameters section in the Fine
Marine interface:

FIGURE 25.1
Overset grid management menu

Overset grids technology is not applicable when combined with the Free surface (directional)
"Refinement Criteria" (p. 549) 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. 945)
reverseRenumbering_.

601 Fine™ Marine 12.1 User Guide


The solver does not allow that the definition of a body changes during a simulation. Hence,
overset cannot hide patches which are part of a body during a simulation. In other words, a
patches that will be hidden cannot belong to a body.

In this section
25.1 Introduction 603
25.2 GUI and Parameters 607
25.3 Best practices 610
25.4 Examples 616

602 Fine™ Marine 12.1 User Guide


25.1 INTRODUCTION

The Overset grid approach provides the capability to solve complex configurations, especially
for large body motions. This approach is also known as Overlapping grids or Chimera approach.
The concept is that two (or more) domains are allowed to overlap and the solution is interpolated
in between them. This methodology allows to have good mesh quality in each domain and
unlimited complexity in the body motions.

FIGURE 25.2
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.

603 Fine™ Marine 12.1 User Guide


Example

Example of an overset project type is provided below:

604 Fine™ Marine 12.1 User Guide


FIGURE 25.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. 378) and Overset grid approach.

FIGURE 25.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)

605 Fine™ Marine 12.1 User Guide


General 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. 276) 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 the "GUI and Parameters" (p. 607) page.

Cells treatment

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 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.

25.1.1 General recommendations

l This method should not be preferred when standard approaches can be applied such as mesh
deformation or sliding grids. The main 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.
l Overset grid method is not yet fully operational 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. 610) page.

606 Fine™ Marine 12.1 User Guide


l 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.

25.2 GUI AND PARAMETERS

Domain specification

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 options are available:
l Overlapping: domain containing a solid body. If there are no solid bodies defined in the
overlapping domain, it will be considered as a Background domain.
l Background: general domain mesh region acting as a background region; always considered
behind an overlapping domain.
l Linked : linked domain are dedicated to domains which are defined as 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 applied to the linked
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.

607 Fine™ Marine 12.1 User Guide


FIGURE 25.5
Active Overset Grid menu

When a body is located inside an overset domain defined as Overlapping , the mesh deformation
around the body should be set as Rigid motion instead of Weighted deformation (see " Domain
Mesh Management" (p. 382)).

Bodies on domain boundaries

Bodies on domain boundaries is an Expert parameter that allows to select the bodies from the
a background domain which are physical boundaries and risk to be overlapped.

608 Fine™ Marine 12.1 User Guide


FIGURE 25.6
Expert parameter menu with the list of bodies to define on domain boundaries

l The Distance parameter needs to be defined together with this option. It defines a protected
region with all the cells in the background domain within the Distance value from the physical
boundary. The cells inside the protected region will always remain active. If an overlapping
domain enters this region its cells will automatically be blanked.
See the Best practices section for more details.

Explicit coupling (BETA)

When this parameter is activated the flow solver uses an explicit scheme for overset interpolation,
else implicit is used.
Implicit is more robust but slower whereas explicit is faster but less robust.
Explicit scheme requires that:
l The flow through the boundaries is not evolving too abruptly in an unsteady way.
l Overset domain boundaries are not updated frequently, in other words, grids relative motion
must be slow.
Default: Not activated

Interpolation methods

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. 945) can be used, but it is not recommended to change it until all the other
guidelines have been verified. By changing its value to 0 the use of distance- weighted
interpolation will be enforced.

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.

609 Fine™ Marine 12.1 User Guide


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. 666) 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 display properly 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.

25.3 BEST PRACTICES

Mesh generation

When creating the mesh project within Hexpress for an overset computation type the following
recommendations can be considered:
l The cell size ratio between overlapping and background domains should be close to 1 if not
exactly 1 to improve the transfer of information at interpolation location.More details on how
to achieve it at the end of this section.
l If the free surface crosses the overset boundaries, try to respect an aspect ratio of 2, maximum
4 at the intersection of free surface and overlapping domain. If AGR is used, this restriction
can be applied on the background only and the AGR will propagate the same aspect ratio in
the overlapping domain.
The plugin Overset_internal_surface_creation is available in Hexpress to create low aspect
ratio cells in this area of the Background mesh.
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. 344) in the Fine Marine interface. This will ensure a better quality for the surface mesh.
l In the Background domain, specific refinement zones close to the Overlapping domains can
be created so that the mesh in the background is matching the initial mesh of the overlapping
domain.
l To improve the interpolation, the cell size should be as uniform as possible on the overset
boundaries, otherwise it is not possible to get a good cell size matching. This means that the
overset boundaries should be far enough from the body to avoid that the mesh diffusion from
the solid body reaches the overset boundaries and increase the refinement in this area.

610 Fine™ Marine 12.1 User Guide


Domain creation methodology for a ship

1. Compute the Delta_Z_target at free-surface as: ;

2. Retrieve Init_ cell_ size_ Background using the law "8 refinements at free- surface":
;

Note: this is the Initial Cell Size in all three directions, in order to have an isotropic mesh.
3. Retrieve Init_cell_size_Overlapping using the law: ;

Note: This is the Initial Cell Size in all three directions, in order to have an isotropic mesh.
Note 2: The value 4 is coming from the fact that AGR prefers to have a maximum of 4
refinement to perform. Like this, with value 4, 4 AGR refinements match 8 refinements on the
free-surface.
4. Create the Background domain following the usual guidelines (see Application guidelines for
Domain size in Resistance cases). The domain size should not be perfectly respected, it should
match a multiple of Init_cell_size_Background;

Example
The background domain should be 5.5LOA in X-direction with LOA = 5.25m,
which means a total target dimension of 28.875m in X-direction.
The Initial Cell Size background is .

However 28.875 is not a multiple of 1.344 ( ), so the domain

size should be increased slightly to match a round number of initial cells: 21.48
rounded up to 22 cells in X-direction.
Final domain size in X-direction: 29.568m

5. Create the Overlapping domain as multiples of Init_cell_size_Overlapping in order to have a


domain slightly bigger than the geometry.
Recommended Overlapping domain size for a hull, to be adjusted to correspond to an integer
number of initial cells:
X 1.5*body_X_length
Y 1.5*body_Y_length
Z 2.0*body_Z_length

611 Fine™ Marine 12.1 User Guide


Ideally, the diffusion of the body refinements shouldn't reach the overlapping boundaries.

Meshing strategy in the background domain

1. One internal surface or refinement box for free-surface refinement (usual setup, LOA/1000);
2. One internal surface:
l X dimensions: 1.2*overlapping_domain_size_X (to handle possible rotations)
l Y dimensions: 1.2*overlapping_domain_size_Y (to handle possible rotations)
l Z dimensions: free-surface location
l Parameters: same as free-surface parameters except aspect ratio defined as 4.
Note: The goal is to have less anisotropy at interpolation location.
3. Add a refinement box in the Background with refinement 4 (same as Init_ cell_ size_
Overlapping) around the Overlapping domain area with diffusion of 3.
Note: The goal is to have the exact same mesh size at interpolation location.

When two overlapping domain bodies are close

For the study for the ship having a rudder and a rudder box, the guideline is to generate an
overlapping domain for the rudder which goes over the rudder box.

612 Fine™ Marine 12.1 User Guide


FIGURE 25.7
Domain configuration for the Ship with the Rudder as Overlapping domain

How to deal with a background domain containing solid boundaries?

The Background domain is always considered behind an Overlapping domain using Overset.
Hence, if the background domain contains solid walls and if the overlapping domain overlaps
those solid walls, then they will be invisible for the flow.
The ground patch in a shallow water configuration is a common example.
There are two different options to deal with this configuration:
1. Define the background domain as Overlapping (recommended): the interpolation will be
performed half way between the solid bodies in each domain.
2. Keep the background domain defined as Background and
l set the Is a physical boundary condition present? menu to Yes
l specify the Distance value as the minimum expected distance between the solids.

The cells within Distance from the solid boundary in the Background domain will always
remain active. If the overlapping domain enters this region its cell will be blanked.

613 Fine™ Marine 12.1 User Guide


FIGURE 25.8
Background cells within Distance cannot be blanked, overlapping cells blanked
instead.

The Distance value should be small enough to avoid that the closest cells to the body in the
overlapping domain enter the protected region of the Background domain.
The Distance value should cover a minimum of 4 cells in addition to the Viscous layer
thickness in the Background domain for the interpolation to properly occur and to provide a
physical solution.

FIGURE 25.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 computational
area. If the Distance value is not big enough, the viscous layers and the body can be
overlapped by the background's protected layer.

Numerical setup

Considering known specifics of an overset approach the following advices can be applied:
l Actuator disk:
An overset domain should never overlap an actuator disk or the forces in the disk will not be
computed properly.

614 Fine™ Marine 12.1 User Guide


Example: A rudder in overlapping domain crossing an actuator disk.
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, the
distance traveled by a cell located at the overset interface should not be larger than its size. If
the grids relative motions are unknown during the computation setup, "Adapted to Courant
Number Law" (p. 639) for the time step definition can be an alternative solution for the same
idea. In that case, a target Courant number of 0.5 is advised.
l Clipping velocity is recommended with a factor 10 for complex motions cases to avoid the
local divergence of the solution due to interpolation errors. This correction corresponds to the
parameter "Activate velocity clipping" (p. 544) in the Additional parameters tab of the
Numerical models menu. 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 noisier signal.
l Point probes:
Point probes placed close to the boundaries of overset meshes show significant noise due to
interpolation between the overset and background grid. It is advised to place them away.
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.
l Pressure solver parameters:
For the moment BoomerAMG is not recommended for simulations with overlapping or sliding
grids since some cases can diverge. Hence, if one of these features is used, in "Dynamic
switch" mode the solver will not try to switch to BoomerAMG. In "BoomerAMG" mode,
with sliding grids the solver will try BoomerAMG, with overlapping grids, the solver will try
BoomerAMG only if the parameter Explicit coupling is activated in the Overset grid
management menu. Anyway, the solver can still switch to PCGSTAB if it doesn't converge.
If the flow and grids relative motions are quite steady, overset domain boundaries will not be
updated frequently so the interpolation should be stable enough to activate the parameter
Explicit coupling together with "BoomerAMG" mode. In that case the solver will try
BoomerAMG to benefit from its acceleration. An example of this scenario is when a ship is
inside an overset domain and will eventually reach a final steady position.

615 Fine™ Marine 12.1 User Guide


25.4 EXAMPLES

Overset grid management menu

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 "Illustration
of overlapping grids" (p. 603).
l 'Background': fluid domain,
l 'Life boat': overlapping domain with the boat defined as a Solid body.

FIGURE 25.10
Setup for the Life boat launch case

Planar motion mechanism (PMM) test in confined deep 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.

616 Fine™ Marine 12.1 User Guide


FIGURE 25.11
Setup for the PMM test in confined water case

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 25.12
Setup for the Overtaking maneuver case

617 Fine™ Marine 12.1 User Guide


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.

FIGURE 25.13
Setup for the Submarine torpedo launch case

Circular motion test for a ship with propeller and rudder interaction

In that case, it is possible to combine the overlapping and sliding grids since the propeller domain
do not usually intersect with any other part of the geometry.
l Rudder: overlapping domain,
l Propeller: linked domain,
l Ship : overlapping domain (in this example, it should not be "background", otherwise the
overlapping domain of the moving rudder would blank the cells of the rudder box attached to
the ship).

618 Fine™ Marine 12.1 User Guide


FIGURE 25.14
Setup for circular motion test

Complete setups

Democases 9, 10 & 11 are defined using the Overset technology and can be taken as examples.

619 Fine™ Marine 12.1 User Guide


CHAPTER 26.

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).

620 Fine™ Marine 12.1 User Guide


The projection method is also used in the adaptive grid refinement feature.

It is not compatible with 2D projects. Also, at least 1 body needs to be defined in the project.

In this section
26.1 Workflow 622
26.2 Projection Strategy 622
26.3 Examples 623
26.4 General Parameters 624
26.5 Expert Parameters 624

621 Fine™ Marine 12.1 User Guide


26.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: it should contain the
same number of surfaces and triangles but also the IDs of the surfaces should be the same,
l The computation must contain a solid body.

Summary:
1. Run the pre- processing step: if working from the task manager activate only the "Pre-
processing" subtask. If working in batch run hxp2isis_no_interactivemarineXX -print. This will
create the initial .its file in the _mesh folder.
2. Run a first computation with Projection active using the initial ".its" file from the _mesh folder.
3. Run a restart computation with a modified its file.

26.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.

622 Fine™ Marine 12.1 User Guide


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.
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.

26.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!),

623 Fine™ Marine 12.1 User Guide


New computation with deformed hull; after grid refinement: AT (topology problems do not
appear as only the new nodes are moved).

26.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.

FIGURE 26.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.

26.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.

624 Fine™ Marine 12.1 User Guide


CHAPTER 27.

CONTROL VARIABLES

This section describes global and expert parameters for the management of steady or unsteady
computations.

In this section
27.1 General Parameters 626
27.2 List of Available Time Laws 635
27.3 Sub-cycling Acceleration 642
27.4 Expert Parameters 646

625 Fine™ Marine 12.1 User Guide


27.1 GENERAL PARAMETERS

This menu allows to define global parameters to manage the computation for its convergence,
time stepping and expert parameters.

626 Fine™ Marine 12.1 User Guide


Time step tab

FIGURE 27.1
Time step tab parameters

l The maximum Number of time steps to be computed,


l Time step law: selection of the time step law among the possible choices described in the List
of Available Time Laws followed by the parameters for each law. By default, a single time
step value is requested.
l Activate sub-cycling acceleration: allows to activate the sub-cycling acceleration (see Sub-
cycling Acceleration ),

The Time step tab is grayed out in case of steady mono fluid computations.

627 Fine™ Marine 12.1 User Guide


Reset time law parameters: allows to reset the time law parameters to default values, according to
the current Lref and Vref values defined in the Flow model menu.

Convergence tab

FIGURE 27.2
Convergence tab parameters

General parameters
l For steady simulations, the Maximum number of iterationsrepresents the maximum number
of iterations before stopping the computation. Also, 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 For simulations involving a time step, the input Maximum number of non linear iterationsis
the maximum number of non- linear iterations per time step. 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.

628 Fine™ Marine 12.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.

Highly unsteady simulations or locally 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.

The input named Save solution every corresponds to the frequency for the solver to save the
entire solution including the 3D flow data, for a future post processing or restart. The
frequency can be defined in iterations for a steady simulation or in time steps for time
dependent simulation.
Convergence parameters
l Convergence booster
The possibility to activate convergence booster has been developed to accelerate the
resistance simulations using a dynamic evolution of the maximum number of non linear
iterations and under relaxation values during the ship acceleration. Indeed, since its transient
acceleration is out of interest, the solver will start the simulation with a low number of non
linear iterations but high values of under relaxation, as shown in the figure below, to boost the
convergence before coming back to the requested parameters by the user from the interface at
the end of the acceleration ramp.

629 Fine™ Marine 12.1 User Guide


FIGURE 27.3
Dynamic evolution of the non linear iterations an under relaxation coefficients of the velocity
components

It is recommended to use this convergence booster with a classic 1/2 sinusoidal acceleration ramp,
with a duration as proposed by the C-Wizard for instance (0.2m/s2 of acceleration)

Starting Fine Marine v10.2, this capability is integrated in the solver. The original dynamic library
remains available in the installation folder under "_data\isis\dynamic_lib\Convergence_booster\"
as an example. In this folder, the "src" folder contains the source code of the library that the user
might want to check or edit.

l Transpiration method
The transpiration method changes the boundary conditions for moving bodies. Instead of
deforming the mesh at every non-linear iteration, it uses a transpiration boundary condition.
With this approach, the update of mesh boundaries and mesh deformation algorithms are
applied only once per time step, decreasing the computational cost.

630 Fine™ Marine 12.1 User Guide


FIGURE 27.4
Mesh deformation management near solid boundaries with standard approach (left) and
transpiration method (right).

This approach is available when Quasi-static approach is not active.

The usage of transpiration is recommended for:


l Modal approach cases
l Unsteady cases where quasi-static is not used, such as seakeeping.

l Convergence checker: Traditionally, two methods can be used to stop a computation: a


maximum number of time steps or gain in residuals. However, none of them are efficient
enough for 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. Hence, physics
based criteria has been developed for monofluid and multifluid simulations for standard
resistance simulations for applications like hydrofoils or ships. Activate convergence checker
opens up extra parameters to check the convergence and stop the simulation based on the
physical outputs as the drag or the motions of the ship.

Current limitations:
l Not dedicated to fully unsteady simulations like sea keeping, cavitation, etc.
l The convergence of all physical bodies is checked.

631 Fine™ Marine 12.1 User Guide


FIGURE 27.5
Convergence checker parameters

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 of
the selected quantities. It is possible to define 0% to take the last value only. The default value
is 10%.
Tolerance is the value oscillation compared to its averaged value under which the quantity is
considered as converged .
In order to avoid pathological cases in the very beginning of the simulation, the convergence
check is not done from the very beginning of the simulation, but only starting from the time
step number defined by Check after input.

Convergence criterion

The library stops the computation when the two following conditions are met:
1. Ax (acceleration along the x-direction) is zero during the stability interval.
2. The relative error between the last X% of time steps and the average value is below the
tolerance 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 time steps. The quantity qi is considered
converged when ε < Tolerance.

632 Fine™ Marine 12.1 User Guide


If in a time step a force value is more than 10 times that of the previous time step the convergence
check is deactivated temporarily and the forces during these steps are removed from the
convergence history. In that case, the following message will appear in the std file: "Convergence
check interrupted (noise removal)"

Particular outputs in .std file

The code prints 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 setup is displayed.

l During the simulation, the status of the convergence is given. A variable can be
"converged" or "not converged".

633 Fine™ Marine 12.1 User Guide


l When all checks indicate that the simulation is converged, the information is logged and the
simulation stops.

Examples

Hydrofoil
l Stability interval 20
l Average last 0
l Tolerance 1.0
l Check after 100
l Check quantities Fx, Fz, Fy, Mx, My, Mz
Ship resistance
l Stability interval 30
l Average last 10
l Tolerance 1.0
l Check after 200
l Check quantities Fx, Tz, Ry
Open water propeller
l Stability interval 10
l Average last 10
l Tolerance 1.0
l Check after 100
l Check quantities Fx, Mx

634 Fine™ Marine 12.1 User Guide


27.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:

635 Fine™ Marine 12.1 User Guide


FIGURE 27.6
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:

636 Fine™ Marine 12.1 User Guide


FIGURE 27.7
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:

637 Fine™ Marine 12.1 User Guide


l Starting time:

FIGURE 27.8
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:

638 Fine™ Marine 12.1 User Guide


l Initial time of the linear initialization:

l Final time of the linear initialization:

FIGURE 27.9
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.
Different criteria are available and can be combined:
l Free surface: The Courant number is based on the flow velocity. The checked cells are the
ones close to the free surface (which means with the mass fraction in the range [0.1;0.9]). Only
available when Multi-fluid is activated in the Fluid model menu.
l Overset grids relative motions: The Courant number is based on the grids relative velocity,
not on the flow. The checked cells are the ones at the overset interfaces. Only available when
Activate overset grid is activated in the Overset grid management menu.

639 Fine™ Marine 12.1 User Guide


l Sliding grids relative motions: The Courant number is based on the grids relative velocity,
not on the flow. Only available when FNMB are defined. The checked cells are the ones at the
sliding interfaces where RFM isn't activated, if this time step law is used with RFM activated
on all the sliding patches, the solver will return an error.

Parameters

l Number of time steps N: The maximum number of time steps. Defaults: 1000
l Courant number Co: The target Courant number. To ensure a good transfer of information
through the overset and sliding interfaces, a maximum Courant number of 1 at sliding
interfaces and 0.5 at overset interfaces is recommended (more information in "Best practices"
(p. 610) section). Default: 0.3 for free surface, 1.0 for grids relative motions.
l Maximum time step: The maximum value for the time step. This value should be set carefully
to fit all the criteria other than the Courant number. Default:

l Time of the simulation Tmax: The maximum physical time to simulate. Note that if the
Number of time steps is not big enough, this time of simulation may not be reached. Default:

640 Fine™ Marine 12.1 User Guide


FIGURE 27.10
Adapted Courant Number Law Scheme

When to use this time step law?

l For simulations with unknown motions of overlapping or sliding grids. For instance:
l Roll damping simulations,
l Maneuvers simulations with ship sailing in a Earth fixed frame background domain,
l Self-propulsion studies with propeller resolved propeller velocity (mode 2),
l etc.
l When grids relative velocities change during the simulation. Using UNIFORM time step law,
the time step must be small enough to respect the Courant number condition when the velocity
is the highest. ADAPTED TO COURANT NB law reduces the time step value only when
necessary, reducing significantly the needed number of time step to simulate a given physical
time and so the CPU cost. For instance:
l Simulations with rudders located in an overset grid. In that case the time step can higher
when the rudders are not rotating,
l Roll damping simulations,

641 Fine™ Marine 12.1 User Guide


l Acceleration phase simulations,
l etc.
l When adaptive grid refinement modifies the cell size at the overlapping or sliding interface.

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 expected value. 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, this Courant number changes a lot, hence the law
can give Courant number above the objective.

When unsteady animation have to be created, it is recommended to use seconds instead of timesteps
in the Output>Probe interval menu.

27.3 SUB-CYCLING ACCELERATION

The use of sub-cycling acceleration is no longer recommended in Fine Marine 9.2 and later.

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.

642 Fine™ Marine 12.1 User Guide


FIGURE 27.11
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:
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 27.12
Activation of the sub-cycling acceleration method

643 Fine™ Marine 12.1 User Guide


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.

FIGURE 27.13
Example of sub-cycling acceleration with the linear time law

644 Fine™ Marine 12.1 User Guide


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:


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

645 Fine™ Marine 12.1 User Guide


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.

27.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.
923) for a description and available options.

646 Fine™ Marine 12.1 User Guide


FIGURE 27.14
Expert parameters tab

The parameters, if modified by the user, can be brought back to their default value at any time by
means of the Reset to default values button, available on the top right of the tab.

An Advanced>>> button provides the access to the specific Pressure solver parameters and is
available for both Steady and Unsteady computations.

647 Fine™ Marine 12.1 User Guide


FIGURE 27.15
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.
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. 464) and "Overset Grid Management" (p. 601):

648 Fine™ Marine 12.1 User Guide


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: 60 Convergence criteria: 5 orders

Note: this might work only if the Max. number of iterations: 60


flow and the motion are quite steady Note: this might work only if the
and they tend to reach an equilibrium. flow and the motion are quite
In case of pure unsteady flow, it is steady and they tend to reach an
advised to force PCGSTAB_MB. equilibrium. In case of pure
unsteady flow, it is advised to
force PCGSTAB_MB.

For the moment BoomerAMG is not recommended for simulations with overlapping or sliding grids
since some cases can diverge. Hence, if one of these features is used, in "Dynamic switch" mode the
solver will not try to switch to BoomerAMG. In "BoomerAMG" mode, with sliding grids the solver
will try BoomerAMG, with overlapping grids, the solver will try BoomerAMG only if the parameter
Explicit coupling is activated in the Overset grid management menu. Anyway, the solver can still
switch to PCGSTAB if it doesn't converge.
If the flow and grids relative motions are quite steady, overset domain boundaries will not be updated
frequently so the interpolation should be stable enough to activate the parameter Explicit coupling
together with "BoomerAMG" mode. In that case the solver will try BoomerAMG to benefit from its
acceleration. An example of this scenario is when a ship is inside an overset domain and will
eventually reach a final steady position.

649 Fine™ Marine 12.1 User Guide


CHAPTER 28.

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.

650 Fine™ Marine 12.1 User Guide


All exported quantities are in the International System of Units (SI).

In this section
28.1 Automatically computed variables 652
28.2 Output 653
28.3 Backups 677

651 Fine™ Marine 12.1 User Guide


28.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:

652 Fine™ Marine 12.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.

28.2 OUTPUT

28.2.1 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" (p. 319)): translations (including their velocity and acceleration), rotations
(with angular velocity and acceleration).

653 Fine™ Marine 12.1 User Guide


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 28.1 for a free trim and sinkage
motion with a X-axis forward motion.

FIGURE 28.1
Default Body Motion page

654 Fine™ Marine 12.1 User Guide


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:

with R F the viscous resistance (which depends from the Reynolds number), R f the form
resistance and R W the wave resistance (which depends from the Froude number). Besides, R f =
kRF, 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:
RT = Fx,
RF corresponds to FxV,
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 the last 2 terms.

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):

655 Fine™ Marine 12.1 User Guide


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

Forces integral on non-closed bodies

The computation of a force/moment integral on a set of patches defining a non-closed geometrical


entity must be treated with specific care. In such situations, the pressure force integral depends on
the external pressure level, whereas it is not the case when integrating on a watertight geometrical
entity. If an appropriate methodology is not applied, the result of the integral may have no
relationship with the physical quantity (thrust, drag, lift…) that is expected to be quantified.
The reason is that, because the geometrical entity is not closed, the integration of the pressure field
is incomplete and leads to an unphysical imbalance in the integral.
l In multi-fluid simulations, the hydrostatic pressure field is the origin of the imbalance.
l In mono-fluid, the imbalance depends on the value of the reference pressure.
This situation may typically occur for a self-propulsion analysis with a propeller geometry which
is contiguously connected to the vessel. In such a situation, both the hull and the propeller set of
patches are non-closed at their interface (see FIGURE 28.2). As a result, the force integral for
both geometrical entities will suffer from an unbalanced force leading to an overestimation of the
propeller’s thrust and of the vessel’s drag. The order of magnitude of this imbalance depends on
the geometry but may be as high as 15%-20%.

656 Fine™ Marine 12.1 User Guide


FIGURE 28.2
Non-closed bodies example

Fine Marine allows two options to go around this problem.


l The first option is to modify the geometrical model to include a gap between the several
geometrical entities that must be isolated in order to create fully closed bodies (see FIGURE
28.3 ). Because this approach requires an adaptation of the geometrical model, it may be
impossible to implement in some situations. In addition, the mesh cell count will be higher due
to the necessity to mesh the thin gap created between the bodies.

657 Fine™ Marine 12.1 User Guide


FIGURE 28.3
Gap creation in a geometry

l The second option is to activate the pressure correction feature implemented in the Fine Marine
flow solver. This correction estimates the pressure load on the missing surfaces at the interface
between the non-closed geometrical entities by interpolating from the pressure field around the
edges of the surfaces generating the holes.
The correction is activated by copying the following lines to the "Computations Management"
(p. 41). The comment editor is accessed by clicking on the “Comment” button at the bottom of
the computation’s menu of the GUI.
*
*** FORCES : COMPUTE SUB-BODY HOLE FORCES ?
*
YES
When active, the pressure correction feature generates 6 additional files with “_O” extension in
the computation directory for each one of the total forces and total moments (“eff_Fx_O.dat”,
“eff_Fy_O.dat”, “eff_Fz_O.dat”, “eff_Mx_O.dat”, “eff_My_O.dat” and “eff_Mz_O.dat”).
These files include the pressure correction on the non-closed geometrical entities (bodies or
sub-bodies) that are automatically detected in the project by the algorithm. The file structure is
identical to the non-corrected eff_*.dat files.

The missing pressure field on the unmodelled interface between the geometrical entities does not
come from a CFD computation but from an interpolation in the solver based on the surrounding
pressure field. As a result, the accuracy of the correction will reduce as the size of the hole
increases with respect to the size of the bodies.

The corrected forces and moments can not be displayed in the monitor. The values displayed in
the Monitor still correspond to the non-corrected results.

28.2.2 Probe Variables

Flow variables can be periodically saved on disk during the computation for the post-processing
of unsteady simulations.

658 Fine™ Marine 12.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 Gb/Mcells
l Probe size when reconstructed: 0.27 Gb/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.

If the the forces-by-section tool is used with the goal of obtaining the sectional force distribution at
the same intervals as the saved (volume) probes, the wall-forces probe needs to be activated. If only
surface probes are saved, this can be done in the GUI. If only volume probes are saved, this needs to
be done through the Comment field:
**** PROBE WALL FORCES: FREQUENCY*
***
f0
***
where f corresponds to the probe saving frequency.
When reconstructing the probes, the computation folder will contain as many wall_data_n# files as
probes. These files are needed for running forces-by-section, which can be done by using e.g. a simple
bash script containing a loop over these wall_data files:
for src in wall_data_n#*;do
forces_by_section -body=1<< EOF
$src

659 Fine™ Marine 12.1 User Guide


100 # Number of cuts
EOF
mv moments_by_section.dat ${src}_moments_by_section.dat
mv forces_by_section.dat ${src}_forces_by_section.dat
done

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.
There are two common parameters to all surfaces type:
l Save probe every X timesteps/seconds: it corresponds to the frequency of the probe saving
(Probe interval) expressed in time steps or seconds for unsteady simulations.
l Save probe after X seconds: it delays the recording of the first probe by the given amount of
time (Probe start time), expressed either as absolute or relative to the starting time of the
selected computation.

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.

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.

660 Fine™ Marine 12.1 User Guide


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 28.4
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.

This surface is not available if mono-fluid configuration is selected in the Fluid model menu.

661 Fine™ Marine 12.1 User Guide


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 28.5
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.

Up to five cut plane probes can be defined.

662 Fine™ Marine 12.1 User Guide


FIGURE 28.6
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 in the 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.

663 Fine™ Marine 12.1 User Guide


FIGURE 28.7
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.

664 Fine™ Marine 12.1 User Guide


FIGURE 28.8
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.

665 Fine™ Marine 12.1 User Guide


FIGURE 28.9
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 Passive scalar (when Passive scalar model is active)

666 Fine™ Marine 12.1 User Guide


l Temperature (when Temperature model is active)
l Solute (when Solutal model is active)
l Courant Number (Multi-fluid computation only)
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.

There are two common parameters to all probed variables:


l Save probe every X timesteps/seconds: it corresponds to the frequency of the probe saving
(Probe interval) expressed in time steps or seconds for unsteady simulations.
l Save probe after X seconds: it delays the recording of the first probe by the given amount of
time (Probe start time), expressed either as absolute or relative to the starting time of the
selected computation.

667 Fine™ Marine 12.1 User Guide


FIGURE 28.10
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" at every time step.
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:

668 Fine™ Marine 12.1 User Guide


l Mass Fraction (Multi-fluid computation only)
l Cavitation Fraction (Cavitation model active)
l Pressure
l Dynamic pressure
l Velocity
l Vorticity
l Passive scalar (when Passive scalar model is active)
l Temperature (when Temperature model is active)
l Solute (when Solutal model is active)
l Courant Number (Multi-fluid computation only)
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.

669 Fine™ Marine 12.1 User Guide


FIGURE 28.11
Point probe settings

In 2D:Y- component for the wave probe and Z- component for the flow probe are not available.

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.

Point probes placed close to the boundaries of overset meshes show significant noise due to
interpolation between the overset and background grid. It is advised to place them away.

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)

670 Fine™ Marine 12.1 User Guide


#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
...

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.

671 Fine™ Marine 12.1 User Guide


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.

28.2.3 Optional Output Variables

The optional variables list is given below:


l Viscous stress (fluid to wall) (available when at least 1 solid patch is defined as No Slip Wall
or Wall function in the "Boundary Conditions" (p. 837) menu)
l Hydrodynamic pressure (Multi-fluid computation only)
l Y+

The value of y + is calculated based on the distance between the wall and the center of the first
cell off the wall.

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
l Correlation R13
l Correlation R22
l Correlation R23
l Correlation R33

672 Fine™ Marine 12.1 User Guide


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 position and z0
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:
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
l Also, when there is a wave generated by the wave generator or by the ship, water is obviously
going higher or lower than z0. But since the solver still considers the position of the free
surface being at rest (so z0) and not its dynamic position, it is as if the volume fraction in the
zone between z0 and the position of the real free surface is equal to 0.

673 Fine™ Marine 12.1 User Guide


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

Starting v8.2, a new way of computing the Hydrodynamic pressure using the actual position of
the free-surface has been introduced. It is active by default for new projects and can be deactivating
using the expert parameter DynPressOutputWithFS_:
Old method: the fluid type is defined by the position relative to the initial regardless of the value
of the mass fraction.
(1)

(2) with the mass fraction

(3) when

(4) when

New method: the fluid type is determined by the flow field, equations (3) and (4) are unnecessary.

674 Fine™ Marine 12.1 User Guide


FIGURE 28.12
Optional output variables page

The definition of two output variables is required:


l The helicity, noted He, is defined by:

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. 598).

28.2.4 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 starting time of the averaging can be specified at the bottom
of the menu in seconds of simulated time. The starting time should be chosen such that the flow
has reached a steady state before averaging is activated, as otherwise transient effects will
influence the averaged result negatively. The averaging applies to all selected fields
simultaneously.
The list of available quantities is given below:

675 Fine™ Marine 12.1 User Guide


l Mass fraction (Multi-fluid computation only)
l Pressure
l Viscous stress (fluid to wall) (computed only with "No Slip Wall" (p. 268) 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 Temperature (when Temperature is active)
l Solute (when Solute 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)
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.

676 Fine™ Marine 12.1 User Guide


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. 386) would provide relevant information.

FIGURE 28.13
Mean flow variables page

28.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.

677 Fine™ Marine 12.1 User Guide


A minimal backup containing these files can be created from the graphical interface using
Project/Create minimal backup.

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.

Necessary files to run the forces by section tool in Cfview

More information about this post-processing tool can be found in Forces by Section description of
the Cfview manual.
l current_part_number.dat
l wall_surface_grid.bin
l The wall_data.bin or wall_data.cpr found in each bXXX partition folder. The rest of files in
each bXXX folder can be deleted.
l Computation ".sim" file.

678 Fine™ Marine 12.1 User Guide


CHAPTER 29.

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
29.1 Launching Mode 680
29.2 Computation End 682
29.3 Monitoring 683

679 Fine™ Marine 12.1 User Guide


29.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). If multiple computations are selected at the same time, the same launching mode settings
will be applied to all selected computations. Dependencies due to restarts are automatically taken
into account in the scheduling performed by the Task Manager.

FIGURE 29.1
Launching mode menu

The sequential mode is useful for computations with a relatively small amount of cells. These can
be launched directly through the Fine Marine interface.
For parallel computations, the interface automatically switches to the Task Manager page (see
Parallel Computations ) and allows to define the parallel computation settings. The user can
already define the required number of cores in the Launching mode settings pop-up window. In
this window, the default number is set to the available number of cores of the machine.

FIGURE 29.2
Launching mode menu - parallel computations

680 Fine™ Marine 12.1 User Guide


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.

FIGURE 29.3
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.

681 Fine™ Marine 12.1 User Guide


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).

29.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:
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 29.4
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.

682 Fine™ Marine 12.1 User Guide


FIGURE 29.5
Task Manager information in case of task failure

29.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 the Fine Marine interface by clicking on
the Start Monitor button in the main icon bar.

683 Fine™ Marine 12.1 User Guide


FIGURE 29.6
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:

684 Fine™ Marine 12.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.

29.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. 774)
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.

685 Fine™ Marine 12.1 User Guide


29.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

686 Fine™ Marine 12.1 User Guide


1 m/s = 1.94384449 Kt

29.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. 307) section for how
to define the sub-bodies).

FIGURE 29.7
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.

687 Fine™ Marine 12.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. 375) section.

29.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 .

688 Fine™ Marine 12.1 User Guide


The tested residuals to decide for the convergence or not of the non linearities, is based on the
velocity components U,V,W only, not on the pressure because the residual is equivalent to the
measure of the incompressibility (div(U)=0).
Residuals are not normalized. There are issued from the evaluation of the difference with 0 of the
resolution of the transport equations. The only normalization is done on the volume of the cells.
The Monitor offers to possibility to display the logarithmic law of the Residuals, which means
Log(RES).
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.

689 Fine™ Marine 12.1 User Guide


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).

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" (p. 319)
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 29.8
Motion quantities

690 Fine™ Marine 12.1 User Guide


When a body is defined with a multibody connection (Pin or Slider joint), the evolution of the
connection's degree of freedom can be monitored.

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.
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. 514) 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. 406) 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.
772)).

691 Fine™ Marine 12.1 User Guide


FIGURE 29.9
Actuator disk quantities

When the tangential force is not activated, the quantity Q and Kq are not displayed.

Pin connections

The choice for Pin connections is only present when bodies connected with "PIN connection"
(p. 360) are defined in the simulation.
Monitor offers the possibility to display all the quantities available in the eff_ Pin_
ParentBodyIndex_LinkedBodyIndex.dat files. Those quantities are described in "Pin connection
file description" (p. 777).

692 Fine™ Marine 12.1 User Guide


The available connections can be selected in the Pin Connections frame. Several pin connections
can be displayed together.

FIGURE 29.10
Pin connections quantities

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.

693 Fine™ Marine 12.1 User Guide


FIGURE 29.11
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 29.12
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.

694 Fine™ Marine 12.1 User Guide


FIGURE 29.13
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.

Residuals, actuator disk data and pin connection data are not available to be used in user
defined plots.

695 Fine™ Marine 12.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. 315)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).

696 Fine™ Marine 12.1 User Guide


FIGURE 29.14
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

697 Fine™ Marine 12.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.

698 Fine™ Marine 12.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.1, 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 the 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 700
30.2 The Task Manager Interface 704
30.3 Parallel Computations 710
30.4 Task Management Using Scripts 726

699 Fine™ Marine 12.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 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).

Multiple Fine Marine Sessions

During a Fine Marine session all the tasks defined by the user are stored in the "marinetasks" file

700 Fine™ Marine 12.1 User Guide


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:
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:

701 Fine™ Marine 12.1 User Guide


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.

702 Fine™ Marine 12.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)

703 Fine™ Marine 12.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.

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.

704 Fine™ Marine 12.1 User Guide


FIGURE 30.1
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.

FIGURE 30.2
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

705 Fine™ Marine 12.1 User Guide


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.

FIGURE 30.3
Tasks definition page

706 Fine™ Marine 12.1 User Guide


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.
Tasks can be moved up and down in the Task List using the Move Up and Move Down buttons.
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.

FIGURE 30.4
Task Delay pop-up window

When applying the data, a small watch in the task list indicates that the task is scheduled:

FIGURE 30.5
Task List with Delay window to start a task at a later moment

707 Fine™ Marine 12.1 User Guide


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.6
Task Definition and Characteristics

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 OpenMPI. 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

708 Fine™ Marine 12.1 User Guide


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)

FIGURE 30.7
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%.

709 Fine™ Marine 12.1 User Guide


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...

FIGURE 30.8
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.

710 Fine™ Marine 12.1 User Guide


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.

Most current generation processors feature hyperthreading capabilities; i.e. 2 logical processors exist
for a single physical processors. This allows for a speed-up of applications that use a multithreaded
code architecture. The Fine Marine solver, however, is a multi process solver. Each logical processor
therefore hosts a single process which uses the cache and memory bus intensively in order to transfer
large quantities of data. If multiple solver threads would be run on the same logical processor, the
required bandwidth of the memory bus would be insufficient to transfer the data efficiently.
Hyperthreading is therefore discouraged and the solver performance will not scale up when using
more than a single solver thread per physical core.
The number of specified partitions should therefore be smaller or at most equal to the amount of
physical CPU cores.

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.

711 Fine™ Marine 12.1 User Guide


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.
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.9
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.

712 Fine™ Marine 12.1 User Guide


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.

FIGURE 30.10
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.

713 Fine™ Marine 12.1 User Guide


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 the 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.

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".

Windows HPC particularities

A disk/partition must be shared between the nodes with read/write/execute access for all the Fine
Marine users. The "map network drive" functionality can be used for this purpose. The partition
must have the same name in all nodes. All the projects files for Fine Marine must be on this
partition when the case is running. Then the case can be archived anywhere once it has finished.
The workflow for Windows HPC is the following:
1. Setup the project
2. Save the computation and make sure UNC paths are written to the disk (see information below
for path substitution)
3. Add the computation to Task Manager and define number of cores. Note that the distribution
of tasks among the processors will be done automatically by the Windows HPC system. There
is no need to define Machines selections and balancing.
4. Name the Windows HPC job, save and submit the script,
5. Check the HPC window for the job status.
It is strongly recommended to use path substitution.

714 Fine™ Marine 12.1 User Guide


Example
l The computation is located into the folder \\server\path\project\project_computation1
l The user works on a machine named mymachine . The network drive Z: is pointing to
\\server\path.
l 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
l 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.
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.

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 OpenMPI 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

715 Fine™ Marine 12.1 User Guide


FIGURE 30.11
Template Mode

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 How to run simulations on a remote machine?

A. Introduction

This chapter explains the different steps to launch a computation on a remote cluster without
graphical interface and post-process the results locally.
The following configuration is taken as an example:
l Project setup is done on a local Windows computer.
l Simulations are performed on a remote Linux cluster.
l Results post-processed on the local Windows computer.
The commands have to be adapted for other OS but the workflow remains the same.

716 Fine™ Marine 12.1 User Guide


When a project is open in Fine Marine, the paths are updated. In the present configuration, this
cannot be done because the remote cluster doesn't have graphical interface, special commands
must be used to perform the simulation and prepare the post-processing.

B. Project preparation on local Windows machine

When the mesh and the computation are saved, the following files are created:
l project_path/_mesh/
l #.bcs
l #.hex
l #.dom
l #.fnmb
l #dist
l #domhydro_h2p_b1.out
l project_path/computation_directory/
l #.sim
l hexpress2isis.input
l isis2cfv.input

C. Transfer the files to the cluster

The following files have to be transferred on the cluster and the Fine Marine’s file architecture has
to be conserved. The 2 following directories must be created and directory:
l project_path/_mesh/
l #.bcs
l #.hex
l #.dom
l project_path/computation_directory/
l #.sim
l hexpress2isis.input
l isis2cfv.input

717 Fine™ Marine 12.1 User Guide


D. Preprocessing

File conversion with hexpress2isis

During this step, the HEXPRESS files are converted into files readable by ISIS-CFD. Execute
the following command from the computation directory on the cluster:
path/to/finemarine/installation/LINUX/isis/hexpress2isis_no_interactivex86_64 -relative -print
Or using the alias:
hxp2isis_no_interactivemarine82rc -relative -print
The -relative option is used to convert the absolute paths stored in the project files into relative
ones.

Partitioning with premetis

If the computation has to run in parallel, the mesh has to be partitioned. The partitioning is done
using Premetis with the following command:
path_to_finemarine/installation/LINUX/isis/premetisx86_64 -npar=number_of_partition -auto
-print -relative
Or using the alias:
premetismarine82 -npar=number_of_partition -auto -print -relative
number_of_partition being the desired number of cores for the computation.

E. Launching the computation

The computation can be launched using the job management tool installed on the cluster. The
ISIS-CFD command should be launched with the -relative argument.

F. Reconstruction

For Cfview

Final solution reconstruction and volumic probes reconstruction

The tool to reconstruct volumic data for Cfview is isis2cfview that can be launch with:
path_to_finemarine/installation/LINUX/isis/isis2cfviewx86_64 -relative -auto -print
Or using the alias:
isis2cfviewmarine82 -relative -auto -print

718 Fine™ Marine 12.1 User Guide


Then the user has to answer questions.
To avoid the questions step, either the arguments -cfv= to define the name of the cfv file, -dof_ts=
-body_ts= and -frame_ts= can be added to the command. Or since the file isis2cfview.input has
been transfered on the remote cluster, it is possible to use isis2cfv_no_interactive91 instead of
isis2cfview91. To do so, the following command can be used:
path_to_finemarine/installation/LINUX/isis/isis2cfview_no_interactivex86_64 -relative -auto -
print
Or using the alias:
isis2cfv_no_interactivemarine91 -relative -auto -print

Surface probe reconstruction

The reconstruction process works as usual. No specific argument in this configuration.


path_to_finemarine/installation/COMMON/probes2cfview.py [-auto probes_file]|[-manual] [-
help] [-niversion version] [-log log_file]
Or using the alias:
probes2cfviewmarine82 -relative -auto -print
And then answer the questions. To avoid the questions step, you can use a reconstruction.input
file. The structure of the file is explain in the "probes2cfview" (p. 1026) page of the
documentation.

For Paraview

The tool to reconstruct data for Paraview is isis2vtk. The executable doesn’t have the -relative
mode to use relative paths. Instead of -relative, -local argument can be used. To do so, all the
required files must be placed in the computation directory. The file fsister_original.cpr has to be
copied from the _mesh directory to the computation directory.
This can be done by executing the following command from the computation directory:
cp ../_mesh/fsister_original.cpr ./
Then the following command can be executed:
path_to_finemarine/installation/LINUX/isis/isis2vtkx86_64 -print -auto -local
Or with the alias:
isis2vtkmarine82 -print -auto -local

719 Fine™ Marine 12.1 User Guide


G. Files to recover on the local Windows machine

For Cfview

Surface probe

Only the probes files (CGNS format) are required by Cfview.

Final solution and volumic probes

l #.cfv file
l #.hex mentioned in the #.cfv file.
l All the #.d?.s? And #.d?.v? mentioned in the .cfv file.
As soon as all the files have been downloaded from the cluster, it is possible to use them directly
in Cfview by oppening the .cfv file from Cfview.
However it is not possible to start Cfview from the Fine Marine GUI directly because it doesn’t
know that the computation has run.

For Paraview

l Vtk directory
l #.vtu
l #.vtm
Since the paths in the Paraview files (#.vtm) are pointing to the .vtu files in the Vtk directory, the
architecture has to remain the same on the local machine.

30.3.4 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

720 Fine™ Marine 12.1 User Guide


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.
#!/bin/sh
#############################################
## SETTINGS
#############################################
NI_VERSIONS_DIR="NUMECA_INSTALLATION_DIRECTORY\FineMarine121"
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

721 Fine™ Marine 12.1 User Guide


#############################################
"$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
rem #########################################
rem ## SETTINGS
rem #########################################
set NI_VERSIONS_DIR=NUMECA_INSTALLATION_DIRECTORY\FineMarine121
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

722 Fine™ Marine 12.1 User Guide


"%SOLVER_DIR%\isis2cfview_no_interactive.exe" -p="%WDIR%" > isis2cfview.log 2>&1

30.3.5 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:
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_parallelmarine121 -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, OpenMPI 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 OpenMPI 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.

723 Fine™ Marine 12.1 User Guide


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 (ompi 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/finemarine121/LINUX/_mpi/_
ompi1.6/bin
ISISCFD_MPI_EXEC=ompi
ISISCFD_LD_LIBRARY_PATH=NUMECA_INSTALLATION/finemarine121/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/finemarine121/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

724 Fine™ Marine 12.1 User Guide


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\finemarine12.1\impi5:
l Open a command prompt "cmd" as Administrator.
l cd NUMECA_INSTALLATION_DIR\finemarine121\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
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.6 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.

725 Fine™ Marine 12.1 User Guide


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:
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.7 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 software from a shell, without
using Hexpress, Fine Marine or Cfview interfaces.
In the next sections the commands available to launch the software are described in more detail:

726 Fine™ Marine 12.1 User Guide


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 marine121 -print

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\finemarine121\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 marine121 -print (optional: only required in case of a restart, it should be
launched from previous computation folder)
hxp2isis_no_interactive -niversion marine121 -print (to be launched from the new computation
folder)
premetis -npar=X -niversion marine121 -print (to be launched from the new computation folder)

See the External Tools chapter for a complete description of the tools

727 Fine™ Marine 12.1 User Guide


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
/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:

728 Fine™ Marine 12.1 User Guide


C:\NUMECA_SOFTWARE\FineMarine121\bin\isis64\isiscfd.exe \\
< C:\users\project\project_computation_1\project_computation_1.sim
C:\NUMECA_SOFTWARE\FineMarine121\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
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. 720) first since it explains the full launching procedure.

729 Fine™ Marine 12.1 User Guide


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/finemarine121/LINUX/_mpi/_ompi1.6/ -np X -
machinefile "/users/project/computation/machines.txt" /INSTALLATION_
DIRECTORY/finemarine121/LINUX/isis/isiscfdmpi
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"

730 Fine™ Marine 12.1 User Guide


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".

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

731 Fine™ Marine 12.1 User Guide


NI_VERSIONS_DIR=/usr/numeca_software/finemarine121
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:
#$ -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/finemarine121/_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

732 Fine™ Marine 12.1 User Guide


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
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\FineMarine121\bin\isis64\mpiexec.exe -np X -machinefile
"/users/project/computation/machines.txt" \NUMECA_
SOFTWARE\FineMarine121\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:

733 Fine™ Marine 12.1 User Guide


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.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.

734 Fine™ Marine 12.1 User Guide


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.

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 marine121 -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 marine121
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:

735 Fine™ Marine 12.1 User Guide


NUMECA_SOFTWARE\FineMarine121\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.

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.

736 Fine™ Marine 12.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).

737 Fine™ Marine 12.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.
746).

In this section
31.1 Open the last saved result 739
31.2 Open unsteady results 740
31.3 Traveling Shot 744
31.4 Results Analysis 746

738 Fine™ Marine 12.1 User Guide


31.1 OPEN THE LAST SAVED RESULT

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

This operation can also be performed in batch mode:


l LINUX
isis2cfv_no_interactivemarine121 -print
l WINDOWS
In a shell or through a .bat script:
NUMECA_ INSTALLATION\\finemarine121\bin\isis64\isis2cfview_ no_ interactive.exe -
print
The "no interactive" tool will read the traveling shot options from the file isis2cfview.input. To
have access to all the options of the conversion to Cfview the tool isis2cfview is available.

Convert results to Paraview format

To convert the final result to a format readable by Paraview, the tool isis2vtk is available.

739 Fine™ Marine 12.1 User Guide


Convert results to Tecplot360 format

To convert the final result to a format readable by Tecplot, the tool isis2tec360 is available.

31.2 OPEN UNSTEADY RESULTS

In the situation where the computation contains 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.
Probes are defined in the menu Outputs > Probe variables.

740 Fine™ Marine 12.1 User Guide


Unsteady results

FIGURE 31.2
Post-processing window to reconstruct probes

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.

741 Fine™ Marine 12.1 User Guide


l The Parallel reconstruction checkbox allows the probe reconstruction on the specified
number of cores on the local machine.
l The Probe skip 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.

The interface is using the tool "probes2cfview". To reconstruct computations with probes in batch,
please read how to use this tool in probes2cfview section.

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.

FIGURE 31.3
Partial loader in Cfview for volume probes

742 Fine™ Marine 12.1 User Guide


FIGURE 31.4
Partial loader in Cfview for surface probes

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).

Reconstruct probes to Paraview format

l Surface probes: the tool probes2cfview is available to create CGNS files.


l Volume probes: the tool probes2tec360 is available with -vtk argument.

743 Fine™ Marine 12.1 User Guide


Reconstruct probes for Tecplot360 format

l Surface probes: the tool probes2cfview is available to create CGNS files.


l Volume probes: the tool probes2tec360 is available.

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.5
Traveling shot illustration

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:

744 Fine™ Marine 12.1 User Guide


l grayed out for fixed d.o.f.,
l active for d.o.f. associated to a rigid mesh deformation (imposed or solved motions) and
l 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.6
Traveling shot options

Using the traveling shot will result in getting the Relative Velocity instead of the Velocity in
Cfview.
If one of the following conditions is fulfilled for the selected body:
l it has at least one Cardan angle value different than zero or
l it has a primary axis defined
the choice between Mesh reference frame or Body primary frame will appear. See the
Reference frame page for more information.
l Mesh reference frame: reference frame of the body in its position at the beginning of the
computation, including Cardan angles.
l Body primary frame: reference frame of the body before Cardan angles are applied.

745 Fine™ Marine 12.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.7
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:

746 Fine™ Marine 12.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 Requirements

l If multiple computations are analyzed, all computations should have finished successfully
before performing the analysis.
l Files needed in the computation folder for the tool to run:
l *.std for all applications
l *.sim for open water projects
l Data are read from the following files:
l eff*.dat files for forces
l Mvt*.dat for body motions
l nb_cell.dat for the number of cells, if present
l body_wettedsf.dat for the body wetted surface, if present
l *.std file for Y+ distance, Courant number, and Actuator disk data.

31.4.2 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 selected computations. 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.

747 Fine™ Marine 12.1 User Guide


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)

l 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 (not
Quaternion) and there is only one propulsion unit (either one propeller or one actuator
disk)
l Ship advancing in straight motion and aligned with the X-Cartesian axis
l Only one computation can be analyzed per execution of the tool

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

748 Fine™ Marine 12.1 User Guide


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. 225) dynamic library "Types I, II
and III" (p. 228). See image below for the case in which the user has to define the three
aforementioned parameters.

FIGURE 31.8
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
the user decided to perform the simulation making use of the Self-propulsion dynamic library
"Type IV" (p. 231). See image below for the case in which the user has to define the three
aforementioned parameters.

FIGURE 31.9
Results analysis tool - Self-propulsion analysis inputs for Scenario 2

749 Fine™ Marine 12.1 User Guide


Unless the user has performed the computation having used an actuator disk with the "Body force
update" (p. 408) set to OPEN WATER DATA, it will be necessary to load in the "Open water
data" (p. 409) 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.10
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.

Open water performance curve

750 Fine™ Marine 12.1 User Guide


Perform open water performance calculation option is available for the selected open-water
computations. Here, the Thrust (T) and Torque (Q) will be retrieved from the computations and
the following quantities will be computed and plotted against the Advance Ratio (J) for the
selected body:
l Kt:

l Kq:

l Efficiency:

FIGURE 31.11
Open water performance curves

l Advance Ratio:

l The diameter of the propeller must be prescribed as an input.

751 Fine™ Marine 12.1 User Guide


l By default, 10Kq will be plotted. To plot Kq, unselect the option " Plot 10KQ instead of KQ " in
the Plot options tab.

31.4.3 Specific quantities

This tab gives access to the analysis of individual quantities such as efforts and motions among
others.

752 Fine™ Marine 12.1 User Guide


FIGURE 31.12
Results analysis tool - Specific quantities

Efforts

The forces, moments and their pressure and viscous components can be selected here.

Selecting FxV gives access to the "Friction lines" (p. 753).

Friction lines

If the viscous drag (FxV) is selected in the Efforts section, the Friction lines section becomes
available.
This section allows to plot theoretical values computed analytically in order to verify the validity
of the FxV value. One value is computed per model and per speed, and is plotted against the FxV
quantity. The following models are available:
l ITTC57

l Grigson

l Katsui

l Schoenherr

753 Fine™ Marine 12.1 User Guide


Motions

The Imposed and Solved motions as well as their derivatives can be selected here

Other quantities

Several extra quantities can be selected:


l Courant number: global maximum Courant number in the domain(s);
l Cavitation vapor volume: when the Cavitation module is activated, the vapor volume can be
reported;
l Number of cells (in case of adaptive grid refinement): when computation is performed
applying the "Adaptive Grid Refinement Parameters" (p. 881), adaptive mesh cells count will
be reported;
l Time step: when a non-uniform time law is use, the variation of the time step value can be
reported;
l Actuator disk thrust and torque: Thrust(Disk_#n) and Torque(Disk_#n) for each "Actuator
Disk" (p. 406) 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. 668) 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]

754 Fine™ Marine 12.1 User Guide


l Turbulent dissipation: [m²/s³]
l Turbulent kinetic energy: [m²/s²]
l Turbulent frequency: [1/s]
l Helicity: [m²/s²]
l Second invariant: dimensionless
l Courant number: dimensionless
l Vorticity: [1/s]
l Cavitation fraction: dimensionless

Modal approach

FIGURE 31.13
Modal approach: Amplitudes quantities selections

If a computation using the "Modal approach" (p. 514) is present, an additional choice will be
available: Amplitudes, defined as described in "The motion file: Mvt_bodyname.dat" (p. 778).

Catway catenary approach

FIGURE 31.14
Catway catenary approach: Line node quantity selection

If a computation using the Catway catenary approach is present, an additional choice will be
available: Catway, allowing to report the Position or the Tension of the specified Node belonging
to the specified Line. The nodes are numbered from 0 to the defined number of points for post-
processing minus 1.

Mooring lines

755 Fine™ Marine 12.1 User Guide


FIGURE 31.15
Mooring lines

If a computation using the mooring lines is present, an additional choice will be available:
Mooring, allowing to report the fairlead and anchor positions for each lines, as well as the tension
of the lines in each direction.

Tugging lines

FIGURE 31.16
Tugging lines

If a computation using the tugging lines is present, an additional choice will be available:
Tugging, allowing to report the position of the lines' extremities, as well as the tension of the lines
in each direction.

User-defined

The user can create user-defined plots based on the quantities available in the computation using
the Add button and Edit/Remove them using the dedicated buttons.
When Add is pressed, the Add user defined plot window is displayed:

FIGURE 31.17
User-defined plots management section

The format is the following:


l the left-hand side of the formula must be a unique name without space;
l the right-hand side of the expression must respect the following "Syntax" (p. 757).

756 Fine™ Marine 12.1 User Guide


Syntax

A quantity is described as "QUANTITY_BODY" where:


l QUANTITY: can be all motions, forces and moments as they appear in the "Efforts" (p. 753)
section (FxP, Ty, Ax, ...). Additionally the time unit "t" is added to the list of quantities.
l BODY is body or sub-body name as given in the Body definition menu of the Fine Marine
GUI.
Pressing the Help button shows the help for formula syntax to remember all the possibilities and
limitations offered by this feature.

FIGURE 31.18
User-defined plots syntax help

If the formula cannot be evaluated (syntax error or undefined variable, for example), nothing will be
shown in the generated plots, the quantity validity is not verified.

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.

31.4.4 Analysis options

This page provides the access to the settings of available averaging and filtering procedures.

757 Fine™ Marine 12.1 User Guide


FIGURE 31.19
Analysis options

Criterion for average calculations and convergence

Here it is possible to setup the calculation of:


l Average efforts
l Average motions
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

758 Fine™ Marine 12.1 User Guide


For each computation respecting the convergence criterion, the minimum and maximum values from
the averaged ones will be calculated, as well as the standard deviation, and written in the computed_
data.dat file.

It is also possible, using the average and convergence values, to draw the following lines on the
plots:
l Draw average line: using this option, the horizontal average line is drawn on the graph.

The average line is computed over the last X% defined in Average values over the last.

l Draw convergence line : using this option, if the convergence is reached, the vertical
convergence line is drawn on the graph.

For each quantity, if the solution remains within Y% (defined by the Convergence criterion )
around the average value defined using the last X% of the computation (defined by Average
values over the last), the solution is considered converged.

Filters

Filtering options can be useful for the results better representation or smoothing the curves. For
instance, applying the "Quasi-Static Approach" (p. 339) during the simulation can result in peaks
of convergence, which are not useful regarding the computed values. Thus, Filters can be applied
for both efforts and motions with the given choices:
l Median filter : especially efficient for deleting sudden peaks caused by the Quasi- Static
approach;
l Moving average: efficient for smoothing the results curves.

If both filters are selected, Median filter will be applied first.

When Median filter is active and the Window width in time steps is defined as N, filtering will
be applied as follows:

759 Fine™ Marine 12.1 User Guide


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 q i and about
N/2 nearest values of sequence q from both sides of qi
Moving average filter works similarly, but q'i is an average instead of a median.

31.4.5 plot options

This page shows all the possible ways to sort and represent the data that can be defined.

FIGURE 31.20
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 Define the picture size (Width x Height) in pixels;

760 Fine™ Marine 12.1 User Guide


l Define the legend location when several computations are displayed on the same plot (not
activated means automatic): the possible combinations are Top/Bottom and Left/Right;
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 quantities on the plots per body to make separate plots if several
bodies are present (only available if quantities are represented on the same plot);
l Represent selected computations on the same plot (greyed out when only one computation
is selected);
l Plot 10KQ instead of KQ for open water performance curves.
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.

Units

The Metric, Angle and Speed units in which the plots are displayed can be adjusted:
l Metric: Feet or Meters
l Angle: Degrees or Radians
l Speed: Knots or m/s

Dimensionless coefficient

When the option is activated, two text boxes appear: "Denominator name" and "Denominator
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 "^".

761 Fine™ Marine 12.1 User Guide


The unit is not shown when the dimensionless coefficient active.

31.4.6 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%.

Output data file

A file in .CSV format named output_data.csv is created and contains:


l the computation name;
l the speed in m/s;
l the Froud number;

762 Fine™ Marine 12.1 User Guide


l the quantities requested in "Specific quantities" (p. 752).

The value stored will be the averaged or the last value, depending on what is requested in the
"Analysis options" (p. 757).

Example

Computation name Speed[m/s] Froude Fx(Vessel) FxV(Vessel) Fz(Vessel) Ry1(Vessel) Time step
C1 1 0.319275 -4895.95 -7.46884 38027.7 0.0349066 0.005
C2 2 0.638551 -11029.7 -25.8028 34899.4 0.0872665 0.005
C3 3 0.957826 -19547.7 -47.9837 31146.3 0.122173 0.00333333

Folder per computation

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

763 Fine™ Marine 12.1 User Guide


FIGURE 31.21
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 unless Define legend location option has been selected.

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

764 Fine™ Marine 12.1 User Guide


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
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.

765 Fine™ Marine 12.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 767
32.2 Files Produced by Fine Marine 767
32.3 Files Produced by the Fine Marine flow solver 772
32.4 Preference file for the windows sizing 783
32.5 External user input file: stop.now 784
32.6 Triangulated surface file 784
32.7 Wall Surface Data Description 785
32.8 Resource Files 790

766 Fine™ Marine 12.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.bcs. 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.

767 Fine™ Marine 12.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
'.dat' file named 'wizard. input' in the project folder, at the same level than the '.iec' file. The script

768 Fine™ Marine 12.1 User Guide


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 body within 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. 169) 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 Runningcomputation is ongoing 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.

769 Fine™ Marine 12.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.

770 Fine™ Marine 12.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

771 Fine™ Marine 12.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

772 Fine™ Marine 12.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

773 Fine™ Marine 12.1 User Guide


-0.105149019000677E+03 0.000000000000000E+00 -0.604354654967847E-02
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.

Example: eff_Fx.dat

#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

774 Fine™ Marine 12.1 User Guide


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
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

775 Fine™ Marine 12.1 User Guide


-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
-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

Actuator disk

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]

776 Fine™ Marine 12.1 User Guide


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).

Pin connection file description

For each pin joint, an effort file named eff_Pin_ParentBodyIndex_LinkedBodyIndex.dat related


to this pin connection is written during the simulation. In this file, the mechanical actions between
the considered bodies and the fluid forces applied on the linked body are reported in different
frames.
Description of the quantities:
l T: time [s]
l Itnl: non linear iteration
l For each effort component (Fx, Fy, Fz, Mx, My or Mz), following data is available:
n eff_L_R0 [N]: mechanical action of the link from parent to linked body expressed at the
PIN connection point in the Earth reference frame
n eff_L_LBnoRn [N]: mechanical action of the link from parent to linked body expressed at
the PIN connection point in its primary frame but without the rotation of the PIN
n eff_L_LB [N]: mechanical action of the link from parent to linked body expressed at the
PIN connection point in its primary frame
n eff_F_R0 [N]: fluid forces applied on the linked body expressed at the PIN connection
point in the Earth reference frame
n eff_LBnoRn [N]: fluid forces applied on the linked body expressed at the PIN connection
point in its primary frame but without the rotation of the PIN
n eff_F_LB [N]: fluid forces applied on the linked body expressed at the PIN connection
point in its primary frame

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:

777 Fine™ Marine 12.1 User Guide


Example of .res file

#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.

Example of Mvt_bodyname.dat

#TITLE =(ISIS-CFD:#)
#NI_BEGIN BODY
# NAME boat
#NI_END BODY
#COLUMNS = T Tx0 Rx2 Vx dRx2 Ax d2Rx2 Rn dRn d2Rn

778 Fine™ Marine 12.1 User Guide


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. 514) 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.

Example of modal output file

#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.

779 Fine™ Marine 12.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

780 Fine™ Marine 12.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.

781 Fine™ Marine 12.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 finished(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. 601).

782 Fine™ Marine 12.1 User Guide


32.4 PREFERENCE FILE FOR THE WINDOWS
SIZING

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;

783 Fine™ Marine 12.1 User Guide


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;
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

784 Fine™ Marine 12.1 User Guide


# present in the heading. Examples:
# Generated by: (Hex2Isis:1.49) (ISIS-CFD:2.3-0)
# 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.

785 Fine™ Marine 12.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:

786 Fine™ Marine 12.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:

787 Fine™ Marine 12.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).

788 Fine™ Marine 12.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

789 Fine™ Marine 12.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.

790 Fine™ Marine 12.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 Flow Field Initialization Program 792
33.2 Dynamic libraries 799
33.3 Procedure 816
33.4 Examples 823

791 Fine™ Marine 12.1 User Guide


33.1 FLOW FIELD INITIALIZATION PROGRAM

33.1.1 Introduction

The Fine Marine solver allows the user to impose initial conditions in the whole domain for any
quantity (scalar or vector field), like: pressure, velocity, mass-fraction, etc. This initialization is
performed using a program in Fortran 77, but for a basic initialization no advanced coding
knowledge is required.

The GUI already authorizes the following initializations:


l At the boundary conditions in the "User Defined Far Field" (p. 278) boundary type:
l Velocity constant values or profiles
l Mass fraction user-defined value
l Turbulence constant values or profiles
l In the whole domain in the "Initial Solution" (p. 392) menu:
l Velocity constant values
l Turbulence constant values
For more complex initialization, this program should be used.

33.1.2 Workflow

Program preparation

1. Retrieve the template program provided in the Fine Marine package by copying the file called
init_isiscfd.f, available in the <INSTALLATION_DIRECTORY>/_data/isis/Src folder of the
package.
2. Modify your local copy to generate the desired profile.

How to modify the program?

The program is a Fortran 77 file structured in the following way:

792 Fine™ Marine 12.1 User Guide


1. The header, to declare the variables. Declaration of new local variables can be done here.

2. The reading of the mesh dimension.

3. The dimension allocation of the variables to be initialized.

4. The import of the mesh.

5. The reading of the boundary conditions.

793 Fine™ Marine 12.1 User Guide


6. The part of the code to generate the desired profile. This section should be adapted.

7. The saving of the profile using the save_sca or save_vec subroutines.

8. The declaration of the save_sca or save_vec subroutines.

794 Fine™ Marine 12.1 User Guide


Result of the example

The above program generates the file vessels_4_computation_2_massfr.bin that will initialize the
mass fraction as follows:

Project preparation

1. define the project in the interface as usual,


2. save the project and the simulation file (.sim),
3. open the Initial solution menu and set the simulation as a restart from itself,
4. in the Comment section, add the following text:
*** R/W : <VARIABLE TO INITIALIZE> (T)
*

795 Fine™ Marine 12.1 User Guide


<user_defined_initialization_file>.bin
*
Variables:
l <VARIABLE TO INITIALIZE> should be the name of the variable to initialize as
described in the SIM file (e.g.: MASS FRACTION, VELOCITY, PRESSURE, ...)
l <user_defined_initialization_file>.bin is the name given in the program (e.g. v.bin)
5. save the project and the simulation file (.sim) again,
6. prepare the batch file to run the simulation later on:
l sequential: click on Solver > Save batch file
l parallel: click on Start solver, define the simulation parameters in the Task manager,
press Save Batch File

Batch procedure

On Linux

From the command shell:


1. Go to the computation directory (use cd to change directories and ls to show folder content),
2. Create the mesh in ISIS- CFD format, using the command: hxp2isis_ no_
interactivemarine121 -print,
3. Convert the mesh files into cell- centered configuration, using the command: gen_
gridccmarine121 -print (press Enter to accept the default values),
4. The initialization program should be finalized at this stage (follow "Program preparation" (p.
792)),
5. Compile the program, using the command: gfortran -frecord-marker=4 init_
isiscfd.f (Note: the g95 compiler can also be used),
6. Copy the generated executable a.out into the computation directory,
7. Execute the program, using the command ./a.out from the computation directory. A new
initial condition file is created for the desired quantity, with the name given in the program
(e.g. v.bin),
8. Start the computation by executing the batch file generated in the computation folder at the
"Project preparation" (p. 795) step.

On Windows

From the command shell (program cmd):

796 Fine™ Marine 12.1 User Guide


1. Go to the computation directory (use cd to change directories and dir to show folder
content),
2. Create the mesh in ISIS- CFD format, using the command: <INSTALLATION_
DIRECTORY>\bin\isis64\hexpress2isis_ no_ interactive.exe -
print,
3. Convert the mesh files into cell- centered configuration, using the command:
<INSTALLATION_ DIRECTORY>\bin\isis64\gen_ gridcc.exe - print
(press Enter to accept the default values),
4. The initialization program should be finalized at this stage (follow "Program preparation" (p.
792)),
5. Compile the program, using the command: <gfortran.exe> -frecord-marker=4
init_isiscfd.f (Note: the gfortran.exe path and executable has to be adapted to your
local installation of the tool),
6. Copy the generated executable a.exe into the computation directory,
7. Execute the program by double-clicking a.exe from the computation directory. A new initial
condition file is created for the desired quantity, with the name given in the program (e.g.
v.bin).
8. Start the computation by executing the batch file generated in the computation folder at the
"Project preparation" (p. 795) step.

33.1.3 Examples

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

797 Fine™ Marine 12.1 User Guide


surf=sqrt(surfx(i)**2+surfy(i)**2+surfz(i)**2)
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='V(t) LOC=C'
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

798 Fine™ Marine 12.1 User Guide


Xslvar=0.146d0
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 aim of dynamic libraries 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 is 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 separated, reducing the executable 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 dynamically control body motions (check the Imposed Law of
Motion section), impose external force laws or even perform the self-propulsion study (detailed
explanations can be found in Self-propulsion dynamic library).
All libraries need to be compiled following this procedure to be used in a computation.
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 efforts: imp_eff_dyn.f90 (see "Custom External efforts" (p.
800)),
l to impose customized motion laws: kinematic_control.f90 (see "Kinematic control" (p. 801)),
l to make simulations of zigzag maneuvers, where the rudder (or an other appendage type) is
moved according to ship heading: kinematic_control_zigzag_selfprop.f90 (see more details
in "Zig-zag maneuver" (p. 801)),

799 Fine™ Marine 12.1 User Guide


l to control the computation parameters: computation_control.f90 (see "Computation control"
(p. 804)),
l to define customized Actuator disk body forces distribution: ad_ forces.f90 (see more
explanation in "User-defined force distribution (ad_forces.f90) " (p. 423)),
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 (ad_ propeller_
code.f90)" (p. 429)),
l to modify the source terms of the right hand side of the Navier-Stokes equation: momentum_
source_term.f (see "Momentum equation source term definition" (p. 804)),
l to output the actuator disk data in a preferred format: output_wake_flow.f90 (see Wake Flow
Tool),
l to give access to variables of the wall functions and modify them: User_Defined_DLL_
WF.f90 and User_Defined_DLL_WF_k.f90 (see User defined wall function),
l to impose a user-defined kinematic law for synthetic jets of the simulation: Update_Jet_
Features.f90 (see Synthetic jets section from "Solid Wall Boundary Condition" (p. 268)).
l to impose a user- defined external unsteady far- field boundary condition: Unsteady_
Boundary_Conditions.f90,
l to track the convergence and stop it depending on physical outputs: Convergence checker.
l to define a porous media inside the simulation: see "Porous media" (p. 814).

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 Custom External efforts

The imp_eff_dyn.f90 dynamic library is used to apply custom external forces on the body. For
instance, it can be set in order to model the wind effort, a special propeller, the influence of
mooring lines, etc. The list of variables in imp_eff_dyn.f90 is given directly inside the dynamic
library. For each one of them, a comment describes its nature, its meaning and its possible values.
l This library is called at every time step and at every non-linear iteration if a least one degree of
freedom is solved without quasi-static approach.

800 Fine™ Marine 12.1 User Guide


When working in half body configuration, the applied external forces should be halved compared to
the full body configuration.

33.2.2 Kinematic control

The dynamic library kinematic_control.f90 is used to impose a motion law to each degree of
freedom of a body during the computation. For instance, it could be used to set a zig-zag
maneuver (see below for Zig-zag maneuver) or an unusual propulsion law. This library is called
at every time step :
• before non-linear loop (itnl = 0)
• at every non-linear iteration if a least one degree of freedom is solved without quasi-static
approach
The dynamic library is also called for every degree of freedom set as Dynamic library. Which
means that if for instance Tx, Ty and Rz for a ship and Rx for 2 rudders are set as Dynamic
library, the call will be made 5 times. Hence, if one applies motions by incrementation (e.g.:
Angle (t)=Angle (t)+V*dt) without any particular checks, the motion will be applied at every
dynamic library call. Recommended checks to be used are the following:
if (idof.eq.... .and. ibody.eq....) ...
and/or
if (itnl.eq....)
where idof and ibody are respectively the indexes of the degree of freedom and the body for
which the library is entered.
Another solution is to impose motions like this: Angle(t)=f(t)

33.2.3 Zig-zag maneuver

This application makes use of the kinematic_control.f90 dynamic library and has been further
developed as kinematic_control_zigzag_selfprop.f90.

Introduction

This maneuver establishes several important characteristics of the yaw response. These are: the

801 Fine™ Marine 12.1 User Guide


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:
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.
The 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

The user needs to define the following variables in the inputs section of the library:
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: -1 = port, 1 = starboard.

802 Fine™ Marine 12.1 User Guide


FIGURE 33.1
Effect of the variable "firstdirection".

t_ start : absolute time to start the maneuver in seconds. Normally after a first acceleration
computation.
ship_name: Exact name given to the body in the Fine Marine GUI.

Recommendations

To setup a successful simulation employing a 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 with "Sliding Patch Motion" (p. 378) or the "Overset Grid
Management" (p. 601) approach and a PIN connection type to the ship should be specified for
the "Multibody definition" (p. 359).
3. Computation setup: use a first computation to accelerate to the desired advancing speed. A
second restart computation where the maneuver will be performed.
4. Setup of the second computation (Zigzag):
Mesh management: Rz with Rigid motion.
Propulsion. An external force or actuator disk needs to be defined to propel the ship:
l The external force needs to be a Constant wrench.
l he actuator disk can be defined with imposed thrust or open water data with imposed
revolution rate, the later being the most realistic option.
Body motion:
l Ship's Rz: Solved
l Rudder(s) Rn: Imposed as Dynamic Library
l Ship's Tx and Ty: Solved
5. Define input variables in the Zig-zag dynamic library. Adjust t_start to match the beginning of
the second computation in absolute time.
6. Compile it (see the Procedure) and copy isis_dyn_lib.soor isis_dyn_lib.dll into the computation
directory.

l Half body configurations should not be studied here.


l Restart computations are supported during the Zigzag maneuver.

803 Fine™ Marine 12.1 User Guide


33.2.4 Computation control

The computation_control.f90 library is a powerful tool allowing the user to dynamically adapt
some parameters during the simulation. For instance, the maximum number of time steps value
can be adapted, the requested accuracy of the pressure solver can be increased, the quasi-static
approach parameters can be modified, etc. The list of possible variables in computation_
control.f90 is given directly inside the dynamic library. For each one of them, a comment
describes its nature, its meaning and its possible values.

33.2.5 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.

Definitions

A. Force application

The momentum source term can be used to apply a force either in an entire domain or at a specific
location in the mesh. It can be specified in such a way that it acts only on cells fulfilling a certain
geometrical criterion.
Applying a force in separate domain (as is done in the template) is slightly more straightforward.
If this approach is used and the application area should remain at the same point relative to the
body, this should be specified in the Fine Marine GUI. In the Body motion menu, the degrees of
freedom of the separate domain can be set to Copied from {body}.
If instead the force should be applied in the same domain as the body, the dynamic library gives
access to the CG_tcR0 variable. This variable can be used to obtain information of a specific body
as detailed below:

CGtc_G0 : current position, velocity and acceleration of the current body indexed by ip_body
at the center of gravity
1 = x, 0 = position
CGtc_R0 (2 = y, 1 = velocity , ip_body )
3 = z, 2 = acceleration

So, e.g. to obtain the relative coordinates to specify a force always 15 m in front and 5 m below
the center of gravity of the body (id=1):

804 Fine™ Marine 12.1 User Guide


x_applied_force = CGtc_R0(1,0,1) + 15
y_applied_force = CGtc_R0(2,0,1)
z_applied_force = CGtc_R0(3,0,1) - 5

The momentum equation used inside the solver expects that forces are given per unit volume (i.e.
N/m3). This means that the force density should be specified in the dynamic library.

B. Writing to the .std file

Information can be written to the .std file using the write command:

if (mybloc.eq.1) then
write(6, '("Hello from block 1, the last timestep was ", ES24.17)') tp
call flush(6)
end if

C. Call frequency

The dynamic library is called by each partition and at each nonlinear iteration for non-steady (i.e.
time-dependent) computations. To avoid that output is written each time the dynamic library is
called, the print statements can be placed inside if-clauses:

if (itnl.eq.1) then
if (mybloc.eq.1) then
write(6,*) 'Hello world! This is the dynamic library calling.'
end if
end if

Despite being called at every nonlinear iteration by every partition, the forces are evidently only
applied once.
If the dynamic library is used in a parallel computation, each partition acts on the cells that are
assigned to it. In some cases, it might be necessary to compute the total sum of a quantity over all
partitions. MPI tools are needed to obtain such a global sum.

Using MPI tools for parallel computations

The compilation of dynamic libraries with MPI is not available on Windows.

805 Fine™ Marine 12.1 User Guide


The following subroutine needs to be added to the dynamic library file:
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
If the MPI tools are used inside the dynamic library, a specific flag needs to be used during the
compilation process. This is detailed in the dropdown below.

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/finemarine12.1/LINUX/_mpi/_ompi2.1.2_
gcc4/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.

Since the dynamic library is compiled using OpenMPI libraries, the MPI library specified when
launching the computation should be Open MPI instead of Intel MPI (default). This can either be
set in the Task Manager (Task Arguments & Characteristics) or in the LD_LIBRARY_
PATH if using a batch file.

An example of the summation of forces across multiple partitions using the above- defined
subroutine (my_glbsum(res)) is given below. This subroutine has to be included in the dynamic
library file.

Example

subroutine momentum_source_term()

806 Fine™ Marine 12.1 User Guide


<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
end

33.2.6 User-defined wall function

The solid boundary conditions menu in the Fine Marine interface gives the option of activating
roughness with an equivalent sand grain height in patches where wall function BC is used. For
further customization of the wall function the dynamic libraries described in this section can be
used.
The wall function formulation relies on the fact that boundary layer velocity profile has a
logarithmic behavior within the log law region of the boundary layer described by:

807 Fine™ Marine 12.1 User Guide


Where κ is the von Karman constant and E is a constant which equals 9.8 for smooth walls. For
rough walls the velocity profile is switched downward in the logarithmic region. This can
mathematically be expressed by substituting E with a modified variable E' defined as

where f is the roughness function. The change in velocity profile can be expressed by:

The velocity profile change can be correlated to non-dimensional roughness height k+ :

where k is a typical roughness height of the rough surface, U τ is the friction velocity and ν is the
fluid kinematic viscosity.

A. User_Defined_DLL_WF.f90

This library can be used to define a correlation between ΔU + and k +, and therefore an E' value.
The E' value will be passed to the flow solver and used in the wall function boundary conditions.
The template library contains an example with a correlation of the type:

The k + value is directly defined in the .sim file, so that the dynamic library does not need to be
recompiled to change it.

Computation setup

The following comments need to be added in the .sim file to activate the library and define the k+
value. To do so click on the Comment button under the Computations panel and add the

808 Fine™ Marine 12.1 User Guide


following lines in the pop-up window that appears:
*
*** UDF:DLL_WF:ACTIVATE: ?
*
YES
*
*
*** UDF:DLL_WF:NORMALIZED ROUGHNESS HEIGHT k+
*
100.0

B. User_Defined_DLL_WF_k.f90

This second library allows the user to locally modify the E parameter of the Log Law from the
wall roughness height k instead of the normalized wall roughness height k+. Since E depends on
k+ and k+ on k, E is computed iteratively inside the flow solver.

Computation setup

In the Boundary conditions menu choose Activate roughness and define the sand grain height k
per patch. If a patch with wall function needs to be treated as smooth set its sand grain height to
zero.
The following comments need to be added in the .sim file to activate the library and define the k+
value.To do so click on the Comment button under the Computations panel and add the
following lines in the pop-up window that appears:
*
*** UDF:DLL_WF_K:ACTIVATE: ?
*
YES
*
*
*** QUANTITY:WALL ROUGHNESS SAND-GRAIN HEIGHT:ACTIVATE: ?
*
YES

809 Fine™ Marine 12.1 User Guide


*
*** QUANTITY:WALL ROUGHNESS SAND-GRAIN HEIGHT:DEBUG: ?
*
YES
*
where D is the domain index and P is the patch number: it can be checked as the order in the face
viewer. In this example the patch wall1 will use the dynamic library to compute E based on k =
0.001. In patch wall2 roughness is deactivated, it will be treated as a smooth wall.

References:

Anders Östman, Kourosh Koushan, Luca Savio (2017). Numerical and Experimental
Investigation of Roughness Due to Different Type of Coating. HullPerformance & Insight
Conference.

33.2.7 Unsteady boundary condition

When using Unsteady_Boundary_Conditions.f90, the user can freely define any type of time
changing boundary condition. For instance, a time varying wind profile or pressure condition.
For this purpose, an external boundary condition should be defined as usual and the computation
should be saved to create the .sim file.
Then, the following line should be copied from the .sim file and added in the comment part of the
simulation file. For instance:
*
*** BND:FAR FIELD:03:PARAMETERS
*
98 0 0 0 5.4e-08 1.7496e-08 1.5e-08 0 -1 0 0 0 0 0 0 0 0 '-' '-' '-' '-' '-' '-
In this case, the patch 03 is assumed to be an unsteady far- field condition. The patch ID
corresponds to its location in the list of external patches tab of the menu (the first one being 01).
Then the law number (1st digit) must be changed to 98, in order to switch from a steady boundary
condition to an unsteady one.

810 Fine™ Marine 12.1 User Guide


33.2.8 Synthetic jet control

The dynamic library Update_Jet_Features.f90 is used to impose a user-defined kinematic law


for synthetic jets in a simulation. The kinematic law in the GUI for the corresponding jets needs to
be set to Dynamic library (see Synthetic jets section from "Solid Wall Boundary Condition" (p.
268) ). A template with an example can be found in _ data/isis/dynamic_ lib/Update_ Jet_
Features.f90. Jets are designated in the dynamic library by their unique identifier, called jet id,
visible in the definition menu (see below).

811 Fine™ Marine 12.1 User Guide


Example

The variables that are used in the dynamic library are documented at the top of the file. The
included example in the template is controlling the jet number 1. It sets a sinusoidal variation of
the velocity, with a given direction, amplitude, frequency and phase.

33.2.9 Convergence checker

This section describes how the convergence checker can be tuned in batch or recompiled. It
corresponds to a dynamic library called isis_dynamic.so that contains the convergence checker
and that 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. If convergence checker is activated, information about
the averaged values and convergence status of the checked quantities will be stored in the .std file
at each timestep. More information about guidelines can be found in "General Parameters" (p.
626) section of the Control variables menu.

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.

812 Fine™ Marine 12.1 User Guide


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.
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.

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:

813 Fine™ Marine 12.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.

33.2.10 Porous media

The dynamic library momentum_source_term_porous_media.F can be used to reproduce the


behavior of porous medias. The library can be compiled following the steps explained in the
Procedure for dynamic libraries compilation. In addition, the " Porous media " (p. 39) can be used
to automatically compile the library and have it moved in the simulation folder. The library is
available at _data/isis/dynamic_lib/Porous_media/src.

Input file

The dynamic library reads the input file PMinput.dat to retrieve the values for the parameters of
the porous media; thus before starting the simulation the input file has to be prepared and stored in
the simulation folder. The PMinput.dat contains the following information:
l index of the domain representing the porous media,
l the values of the vectors , , and .

An example of PMinput.dat is the following:

814 Fine™ Marine 12.1 User Guide


*-------------------- POROUS MEDIA ------------------------------
*-- This file must be saved in the computation directory with
*-- isis_dynamic_library.so or isis_dynamic_library.dll
*-- Mandatory input parameters
*** Domain index of the porous media
*
1
*
*** Kprim coefficients
*
15.0 15.0 15.0
*
*** Ksec coefficients
*
15.0 15.0 15.0
*
*** Ksi direction
*
1.0 0.0 0.0
*
*** Eta direction
*
0.0 1.0 0.0
*

Recommendations

Porous medias are defined at a domain level, not at a body level. Only one domain can be
selected as porous media.

Known Limitations

815 Fine™ Marine 12.1 User Guide


The properties of the porous media don't follow the mesh. As a consequence, if the domain
rotates the properties will remain the same in the cartesian grid.

33.3 PROCEDURE

Windows how-to

Follow the steps in this section to compile dynamic libraries in a Windows machine.
1. Install a Fortran compiler such as MinGW. Make sure it is a 64bit version. Install the compiler
in a path without spaces, for example directly in C:\.
2. Go to System properties > Advanced > Environment variables and modify or create the
"Path" System variable to add the path to the compiler bin folder.
3. Check the compiler is working:
a. Open this file in a text editor:
_data\isis\dynamic_lib\check_dynamic_lib\src_fortran\build_Windows_win64_gfortran.bat
b. Change the paths to the compiler to match your installation. For example:
del *.dll
C:\MinGW\bin\gfortran.exe -c info_lib_dynamic.f90
C:\MinGW\bin\gfortran.exe -c demo_dynamic_lib.f90
C:\MinGW\bin\gfortran.exe -shared -static -mrtd -o isis_dynamic_lib.dll info_lib_
dynamic.o demo_dynamic_lib.o
..\bin\win64\test_isis_dynamic_lib.exe
del *.o
pause
c. Double click on the .bat file to execute it. If the compiler is working, the following cmd
window will open:

816 Fine™ Marine 12.1 User Guide


817 Fine™ Marine 12.1 User Guide
d. Once this test procedure is working use the modified build_Windows_win64_gfortran.bat
as a base to compile dynamic libraries as described in the next sections.
For example to compile imp_eff_dyn.f90, use:
C:\MinGW\bin\gfortran.exe -c imp_eff_dyn.f90
C:\MinGW\bin\gfortran.exe -shared -static -mrtd -o isis_dynamic_lib.dll imp_eff_dyn.o
del *.o
pause

Procedure to compile and use 1 dynamic library

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 (e.g. the project
directory).

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

818 Fine™ Marine 12.1 User Guide


/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}
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}"

819 Fine™ Marine 12.1 User Guide


6. Launch the computation as usual either by GUI or in a shell.
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 (e.g. the project
directory).

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.

820 Fine™ Marine 12.1 User Guide


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 (recommended) or
update the profile (.cshrc, .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}
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:

821 Fine™ Marine 12.1 User Guide


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.

Procedure to COMBINE several dynamic libraries at the same time

Fortran procedure to combine several dynamic libraries or even several times the same dynamic
library: for instance, computation_ control.f90. This is the case if one wants to use for the
convergence checker and a user-defined library to speed up simulation for instance. In such case,
the user can either integrate his own library into the computation_ control.f90 from the
convergence checker or simply make a "call" function, to keep the files separated, from the
computation_ control.f90 from the convergence checker but renaming the other computation_
control.f90 to computation_control_UD.f90. Hence:
.....
call computation_control_UD(mybloc,nbody,ID_Body,Name_Body &
01ref_R0,Theta1ref, &
.....
This user defined library becomes a sub routine of the main program.
For the compilation, the subroutines must be defined before the main program.
Hence here:
FC=gfortran
/bin/rm *.so
$FC -c -fPIC logging.f90 session_module.f90 solver_quantities.f90 computation_control_
UD.f90 computation_control.f90

822 Fine™ Marine 12.1 User Guide


$FC -shared -o isis_dynamic_lib.so logging.o solver_quantities.o session_module.o
computation_control_UD.o computation_control.o
/bin/rm *.o

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 in the standard output .std file:
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))

823 Fine™ Marine 12.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: finemarine121 -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").

824 Fine™ Marine 12.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.

Note: Fine Marine scripts are written for Python 2.7.

825 Fine™ Marine 12.1 User Guide


A conflict could exist if the python alias refers to Python 3 and the scripts are executed outside of the Fine
Marine python environment. It is preferable to force the execution of the scripts using the Python 2.7
installation packaged with Fine Marine.

In this section
34.1 Macro Commands 827
34.2 Dialog Box Creation 914

826 Fine™ Marine 12.1 User Guide


34.1 MACRO COMMANDS

34.1.1 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.
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.

827 Fine™ Marine 12.1 User Guide


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.2 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
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.

828 Fine™ Marine 12.1 User Guide


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.

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.

829 Fine™ Marine 12.1 User Guide


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.

34.1.3 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).
l wait_for_delayed_taks(): waits for all the tasks to be executed (in case any are delayed)
before executing the next function; can be used in batch mode only and should always be used
if some tasks are delayed.

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.

830 Fine™ Marine 12.1 User Guide


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.
l disable_postprocessing(): disables preprocessing computation step and designate it to the
given machine.
l move_up(n): moves the selected computation up n positions in the task list.
l move_down(n): moves the selected computation down n positions in the task list.
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.

831 Fine™ Marine 12.1 User Guide


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.
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

832 Fine™ Marine 12.1 User Guide


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.

External tool status

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.

833 Fine™ Marine 12.1 User Guide


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

In batch mode, the user must open the FINE/Marine project before adding new tasks to the
task list.

l local_machine(): returns the local machine name


l add_machine(machine, arch): adds a host machine. Arch can be 'UNIX' or 'WIN32'
l set_delay_time(time): sets a time delay to the task before its launch; time should be an integer.
l get_delay_time(): returns the assigned time delay to the task.
l set_delay_after_task(name): sets the name of the task after which the targeted task should be
run; name should be a string.
l get_delay_after_task(name): gets the name of the task after which the targeted task will be
run. It returns the default value of -1 if no delay has been set, -2 if the task has been delayed
after another task, otherwise an integer in seconds since January 1, 1970, 00:00:00.
l set_tasks_dependencies(task_list): sets the dependencies of the computations in the task_list
based on the specified numerical order.

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()

834 Fine™ Marine 12.1 User Guide


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.4 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']]

34.1.5 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.6 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.

835 Fine™ Marine 12.1 User Guide


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)
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.

836 Fine™ Marine 12.1 User Guide


34.1.7 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-Allmarass"
3: "k-epsilon (Launder-Sharma)"
4: "k-omega (Wilcox)"
5: "k-omega (BSL-Menter)"
6: "k-omega (SST-Menter)"
14: "k-omega (SST-Menter-2003)"
7: "EASM"
8: "DES-SST"
9: "DES-SST-F1"
10: "DES-SST-F2"
12: "DDES-SST"
13: "IDDES-SST"
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.
l set_flow_model_reference_parameters(length,velocity): sets length and velocity reference
parameters.

34.1.8 Boundary Conditions

General

l get_bc_value(block, face, patch): gets boundary condition for a given block, face, patch.
Note that face is always equal to 1.
l set_bc_value(block, face, patch, number): sets boundary condition for a given block, face,

837 Fine™ Marine 12.1 User Guide


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
Notes: face is always equal to 1. Also, another way to access BC value is with the "BCPatch
Class" (p. 846).
Example: get BC value for a patch having name 'Hull'
bc_value, opsel = get_bc_patch_by_name('Hull').get_bc_type()
Remark: opsel is an internal output common with other NUMECA software, it should always
be defined as -1 here.

The indexation for the bc_value methods is one-based. This means that the first defined patch
should be referenced with index 1 when using set/get_bc_value methods.

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 a "BCPatch Class" (p. 846) object for a 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 a "BCPatch Class" (p. 846) object 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 "BCPatch Class" (p. 846) objects 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')

838 Fine™ Marine 12.1 User Guide


The indexation for the bc_patch methods is zo- based. This means that the first defined patch
should be referenced with index 0 when using set/get_bc_patch methods.

l profile = import_profile(filename):
filename : string, path to profile. See the boundary conditions page for the description of the
profile format.
profile: list, where:
profile[0]: integer, interpolation type, the default type is 1;
profile[1]: list of lists, points in the profile;
profile[2]: string, error message: it will be empty of the import works successfully.
l parameter = patch.get_ parameter_ value (parameter_ name): returns the parameter value
with the given name parameter_name.
patch.set_parameter_value(parameter_name, parameter): sets the value of the parameter
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
Turbulent physical Turbulent kinetic energy
kinetic entry
energy
Turbulent physical Turbulent dissipation
dissipation entry
Turbulent physical Turbulent viscosity
viscosity entry

839 Fine™ Marine 12.1 User Guide


Parameter Parameter Description Remarks
name type
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 fraction integer entry Mass fraction initialization 0 - default, 1 - fluid
1, 2 - fluid 2

To set parameters for Temperature and Solute please refer to "BCPatch Class" (p. 846) page.

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)

Example 2

patch = FM.get_bc_patch(2,4)
parameter = patch.get_parameter_value("Turbulent dissipation")
parameter.set_type("constant")

840 Fine™ Marine 12.1 User Guide


parameter.set_value(5)
patch.set_parameter_value("Turbulent dissipation", parameter)

Example 3

# Use a profile imported from a text file


pdata = FM.import_profile("C:/Users/user/Documents/profile_U.p")
pdata = pdata[1]
patch = FM.get_bc_patch(0,4)
parameter = patch.get_parameter_value("Vx")
parameter.set_type("fct(space)")
parameter.set_profile_points(pdata)
patch.set_parameter_value("Vx", parameter)
patch.set_parameter_value("Profile interpolation", 2)

Far field boundary condition

Far field velocity

l x, y, z = get_far_velocity(): gets the Far field velocity. The far field velocity settings are
defined as global parameters.
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 ptype = get_FF_profile_type(block, face, patch): gets the Far Field profile type. Denotes
interpolation direction or "surface" for a surface profile.
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 ptype_x, val_x, ptype_y, val_y, ptype_z, val_z = 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.
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().

841 Fine™ Marine 12.1 User Guide


Turbulence

l t, val = 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.
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 t, val = get_FF_turb_dissip(block, face, patch): gets the Turbulent dissipation of the patch.
set_FF_turb_dissip(block, face, patch, t, val): sets the Turbulent dissipation of the patch.
l t, val = get_FF_turb_viscosity(block, face, patch): gets the Turbulent viscosity of the patch.
set_FF_turb_viscosity(block, face, patch, t, val): sets the Turbulent viscosity of the patch.
l value = 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.
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.

Mass fraction

l value = 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.
set_FF_mass_fraction(block, face, patch, value): sets the mass fraction for the patch.

Wave generator

l spectrum, depth, direction, referenceX, referenceY, height, period, gamma = FM.get_ bc_
wave_parameters(): gets the parameters for the wave generation at the boundary.
l FM.set_ bc_ wave_ parameters (spectrum, depth, directionX, directionY, referenceX,
referenceY, height, period, gamma): sets the parameters for the wave generation at the
boundary:
l spectrum: type of wave spectrum. Can be "REGULAR", "ITTC", "JONSWAP",
"JONSWAP 3 PARAMETERS", "PIERSON-MOSKOWITZ" or "USER-DEFINED".
l depth: depth of the water,
l directionX: propagation direction (1=positive X-direction, -1=negative X-direction),

842 Fine™ Marine 12.1 User Guide


l directionY: propagation direction (1=positive Y-direction, -1=negative Y-direction),

Not used for FSD-based wave generation.

l referenceX: reference location X-coordinate,


l referenceY: reference location Y-coordinate,
l height: wave height,
l period: period of the wave,
l gamma: steepness parameter for the JONSWAP spectrum.
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 order, ok = estimate_wave_order(h, H, tau, g): estimates wave order based on 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).

Legacy

l get_WaVe_params():gets parameters of wave generation, for the irregular waves spectrum


parameter. May return "USER-DEFINED" value as the spectrum type.
l set_ WaVe_ params(spectrum, order, depth, propx, propy, refx, refy, height, period,
gamma): gets 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.

843 Fine™ Marine 12.1 User Guide


Wall roughness on wall-function patches

Activate / Deactivate wall roughness:

l active = get_wall_roughness(): returns a Boolean, defining if the wall roughness is active or


not for the current computation.
set_wall_roughness(active): activates or deactivates the wall roughness for all solid patches,
active is a Boolean.

Per-patch / Uniform sand grain height mode:

l mode = get_wall_roughness_mode(): returns 0 or 1, defining if the wall roughness is defined


individually per-patch (0) or uniformly for all patches (1).
set_wall_roughness_mode(mode): switches the wall roughness in per-patch (mode = 0) or
uniform (mode = 1) mode.

Uniform sand grain height:

l height = get_sand_grain_height(): gets the uniform sand grain height in meters.


set_sand_grain_height(height): sets the uniform sand grain height in meters, height is a real,
strictly positive. This value is effective when the wall roughness mode is 1.

Per-patch sand grain height:

l height = patch.get_sand_grain_height(): gets the per-patch sand grain height of the given
patch in meters.
patch.set_sand_grain_height(height): sets the per-patch sand grain height of the given patch
in meters, height is a real, positive or null. This value is effective when the wall roughness
mode is 0.

Jet boundary condition

A specific class is dedicated to synthetic jet boundary conditions with some specific macro
commands:
l jet = FM.create_jet(name): creates a new jet and name it accordingly to the string name,
which has to be different from existing jet names.
l get_number_of_jets(): returns an integer corresponding to the number of defined jets in the
current computation.

844 Fine™ Marine 12.1 User Guide


l FM.update_ jets (): removes unused jets (i.e. jets with no patch). This can change the
numbering of jets. It is not mandatory to call this explicitly since it will be done before saving
the computation.
l get_jet(jet_flag): gets access to the jet by its jet_flag (an integer). Returns an instance of class
FM.Jet that can be used to access jet parameters.
l get_jet_by_name(name): gets access to the jet by its name.
l get_name(): gets the name of a jet.
l set_name(name): sets the name of a jet.
l get_fluid(): returns an integer, corresponding to the fluid index defined in Fluid model.
l set_fluid(fluid_no): sets the fluid blown by the jet. The fluid_no must be 1 or 2, it refers to
the fluid number defined in Fluid model section.
l get_direction(): returns an integer corresponding to the blowing direction of the jet (0: local,
1: averaged, 2: user-defined).
l set_ direction (normal_ mode): sets the normal mode of the jet. Following choices are
available for normal_mode value:
o Local: 0 or FM.LOCAL_NORMAL
o Averaged: 1 or FM.AVERAGED_LOCAL_NORMAL
o User-defined: 2 or FM.USER_DEFINED
l dx, dy, dz = jet.get_direction_vector(): returns a vector composed of 3 reals corresponding
to the coordinates of the user-defined blowing direction.
l set_ direction_ vector (dx, dy, dz): sets the vector of blowing for user- defined blowing
direction.
l get_kinematic_law(): returns an integer corresponding to the kinematic law type of the jet (1:
constant, 2: pulsed, 98: dynamic library).
l set_ kinematic_ law (law): sets the kinematic law type of the jet. Following choices are
available for law value:
o Constant: 1 or FM.CONSTANT_SPEED
o Pulsed: 2 or FM.PULSED_SPEED
o Dynamic library: 98 or FM.DYNAMIC_LIBRARY
l get_initial_time(): gets the initial time of blowing.
l set_initial_time(t0): sets the initial time of blowing using t0, a positive real.
l get_speed(): gets the blowing velocity of the jet.
l set_speed(v): sets the blowing velocity using v, a positive real.
l get_pulsation(): gets the pulsation for pulsed blowing.
l set_pulsation(w): sets the pulsation using w, a real, for pulsed blowing.

845 Fine™ Marine 12.1 User Guide


l get_phase(): gets the phase of a pulsed blowing jet.
l set_phase(phi): sets the phase using phi, a real, for pulsed blowing.

34.1.9 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.
Remark: opsel is an internal output common with other NUMECA software, it should always
be defined as -1 here.
l set_bc_type(value): sets type of BC and opsel, value is a list of these two

Passive scalar:

l get_passive_scalar(): gets the relative information for a given patch (activation and value).
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 value defines the passive
scalar value on the boundary.

Synthetic jet:

l patch.get_jet(): gets the jet defined on the patch.


l patch.set_ jet(jet): sets the jet for the patch , jet being an instance of class FM.Jet (see
"Boundary Conditions" (p. 837) for more information).

Temperature and solute:

l patch.get_temperature(): gets the temperature defined on the patch (activation and value).
l patch.set_temperature(active, T): sets the temperature values of the patch. The Boolean
active defines the activation of the model on the considered patch and the temperature on the
patch is defined by the T scalar.
l patch.get_solute(): gets the solute defined on the patch (activation and value).

846 Fine™ Marine 12.1 User Guide


l patch.set_solute(active, w): sets the solute values of the patch. The Boolean active defines
the activation of the model on the considered patch and the solute mass fraction on the patch is
defined by the w scalar.

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
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.

847 Fine™ Marine 12.1 User Guide


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 body with no patch assigned (only fixed or imposed motion allowed): (FRAME)
l get_body_type(body_id): gets the body type for the body with given body_id: possible
values "BODY", "LINK", "DOMAIN", "~BODY", "FRAME".
l set_body_type(body_id, type): sets the type of the body with the given body_id; type is
"BODY", "LINK", "DOMAIN", "~BODY", "FRAME".
The body type is detected automatically by the type of the patch type it consists of when the
body is created using set_body():
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.
l FRAME: no patch assigned
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, FRAME), 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(bodyId): gets Cardan angles for motion reference axis for


a given bodyId. Measured in radians.
l set_solved_motion_cardan_angle(flag, body, yaw_Rz0,pitch_Ry1,roll_Rx2): sets Cardan
angles (yaw_Rz0,pitch_Ry1,roll_Rx2) for motion reference axis for a given body. Measured
in radians. flag is set to 1 to activate Cardan angles and to 0 to deactivate them.

848 Fine™ Marine 12.1 User Guide


These functions are controlling the quasi-static algorithm:
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_ mode () : returns the Quasi- static mode (Integer). The integer value
correspond to the following modes, 0 which corresponds to FM.HULL_QS (hull mode) and 1
which corresponds to FM.FOIL_QS (foil mode)
l set_quasi_static_mode(mode): sets the Quasi-static mode. modecan be defined with 0 (or
FM.HULL_QS) or 1 (or FM.FOIL_QS).
l get_ quasi_ static_ intervals_ type (bodyID) : returns the type of interval (Integer) used to
describe dT2 and dT3 for the body bodyID (Integer). The integer value correspond to the
following interval types:
0: corresponds to FM.SECONDS (interval described in seconds)
1: corresponds to FM.TIMESTEPS (interval described in number of timesteps)
l set_quasi_static_intervals_type(bodyID, unit): sets the type of interval used to describe dT2
and dT3 for the body.
bodyID: a valid body ID (Integer)
unit: the interval type, among: 0 (or FM.SECONDS) or 1 (or FM.TIMESTEPS)
l get_quasi_static_intervals_sec(bodyID): returns dT2 and dT3 (Reals) in seconds for the
body bodyID (Integer). The value in seconds is used only when the intervals unit is set to
seconds.
l set_ quasi_ static_ intervals_ sec (bodyID, dT2, dT3) : sets the intervals dT2 and dT3 in
seconds for the given body. The value in seconds is used only when the intervals unit is set to
seconds.
bodyID: a valid body ID (Integer)
dT2, dT3: interval values in seconds (Reals, 0 <= dT2 <= dT3)
l get_quasi_static_intervals_ts(bodyID, QSmode): returns dT2 and dT3 (Reals) in number of
time steps for the body bodyID (Integer) and the Quasi-static mode (Integer, FM.HULL_QS
or FM.FOIL_QS). The value in time steps is used only when the interval unit is set to time
steps. Values are specified per quasi-static mode.
l set_quasi_static_intervals_ts(bodyID, QSmode, dT2, dT3): sets dT2 and dT3 in number of
time steps for the given body and the specified Quasi-static mode. The value in time steps is
used only when the interval unit is set to time steps. Values are specified per quasi-static mode.
bodyID: a valid body ID (Integer)
QSmode: the quasi-static mode (Integer, FM.HULL_QS or FM.FOIL_QS)
dT2, dT3: interval values in number of timesteps (Reals, 0 <= dT2 <= dT3)

849 Fine™ Marine 12.1 User Guide


l get_ quasi_ static_ law (bodyID): returns the type of evolution law (Integer) for the body
bodyID (Integer). The integer value correspond to the following evolution laws:
0 which corresponds to FM.LINEAR_LAW (linear evolution law)
1 which corresponds to FM.SMOOTH_LAW (smooth evolution law)
l set_quasi_static_law(bodyID, law): sets the evolution law.
bodyID: a valid body ID (Integer)
law: the evolution law, among: 0 (or FM.LINEAR_LAW) or 1 (or FM.SMOOTH_LAW)
l get_ quasi_ static_ hull_ parameters (bodyID): returns the different quasi-static parameters
(positive Reals) for the body bodyID (Integer) in hull mode.
l set_quasi_static_hull_parameters(bodyID, Tz0_T1, Tz0_r, Rx2_T1, Rx2_r, Ry1_T1,
Ry1_r): sets the quasi-static parameters in hull mode for the given body.
bodyID: a valid body ID (Integer)
Tz0_T1, Rx2_T1, Ry1_T1: release time in seconds (positive Reals)
Tz0_r, Rx2_r, Ry1_r: under-relaxation parameters (positive Reals)
l get_ quasi_ static_ foil_ parameters (bodyID) : returns the different quasi- static parameters
(positive Reals) for the body bodyID (Integer) in foil mode.
l set_quasi_static_foil_parameters(bodyID, Ry1Rz0_T1, Ry1Rz0_r, Fy, Fz): sets the quasi-
static parameters in foil mode for the given body.
bodyID: a valid body ID (Integer)
Ry1Rz0_T1: release time in seconds (positive Real)
Ry1Rz0_r: under-relaxation parameters (positive Real)
Fy, Fz: target forces (Reals)
These functions are deprecated but kept for backward compatibility. It is advised to use the ones
from the previous section.
l get_quasi_static_parameters(bodyID): gets quasi-static parameters for a given bodyID.
l set_ quasi_ static_ parameters (bodyID,tz0_ t1,tz0_ r,rx1_ t1,rx1_ r,ry2_ t1,ry2_
r,dt2,dt3,law):sets quasi-static parameters for a given bodyID.
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.

850 Fine™ Marine 12.1 User Guide


Examples assuming there is a body with the ID 1

l Activate the foil mode and define QS parameters with dT2 and dT3 in time steps, assuming
the following inputs: linear law, T1 = 1 s, under-relaxation 0.5, Fy = 30.5 N, Fz = 0 N, dT2 =
22 time steps, dT3 = 30 time steps
FM.set_quasi_static_mode(FM.FOIL_QS)
FM.set_quasi_static_law(1, FM.LINEAR_LAW)
FM.set_quasi_static_intervals_type(1, FM.TIMESTEPS)
FM.set_quasi_static_intervals_ts(1, FM.FOIL_QS, 22, 30)
FM.set_quasi_static_foil_parameters(1, 1, 0.5, 30.5, 0)
l Activate the foil mode and define QS parameters with dT2 and dT3 in seconds, say dT2 = 0.1
[s], dT3 = 0.2 [s].
FM.set_quasi_static_mode(FM.FOIL_QS)
FM.set_quasi_static_intervals_type(1, FM.SECONDS)
FM.set_quasi_static_intervals_sec(1, 0.1, 0.2)
l Define dT2 and dT3 in time steps in the hull mode (dT2 = 22 time steps, dT3 = 30 time steps).
FM.set_quasi_static_mode(FM.HULL_QS) # unnecessary for a fresh project
FM.set_quasi_static_intervals_type(1, FM.TIMESTEPS)
FM.set_quasi_static_intervals_ts(1, FM.HULL_QS, 22, 30)

These functions control the body motion definition


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.
l get_body_motion_type(bodyId): 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(bodyId): gets the motion law for a given body_id.
l set_ body_ motion_ law
(bodyId,lawStrTx,lawStrTy,lawStrTz,lawStrRx,lawStrRy,lawStrRz): sets the motion
law for a given bodyId for every degree of freedom. bodyId specifies ID number of the body.
lawStrTx, lawStrTy, lawStrTz, lawStrRx, lawStrRy, lawStrRz 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

851 Fine™ Marine 12.1 User Guide


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(dobyId,dof): gets motion parameters for a given dobyId. dof
can be 'Tx', 'Ty', 'Tz', 'Rx', 'Ry' or 'Rz'.
l set_body_motion_parameters(bodyId,Tx_list,Ty_list,Tz_list,Rx_list,Ry_list,Rz_list): sets
motion parameters for a given bodyId.
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].
"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 set_body_motion_relative_time(bodyId, relTx, relTy, relTz, relRx, relRy, relRz)
bodyId: integer, a valid body index

852 Fine™ Marine 12.1 User Guide


relTx, relTy, relTz, relRx, relRy, relRz: boolean, it enables or disables relative time for each
DOF of the given body. True or 1 activates relative time, False or 0 activates absolute time.
l relTx, relTy, relTz, relRx, relRy, relRz = get_body_motion_relative_time(bodyId)
bodyId: integer, a valid body index
relTx, relTy, relTz, relRx, relRy, relRz: boolean. True or 1 means relative time, False or 0 -
absolute time.
l get_body_motion_reference_point(bodyId): gets body reference point for specified bodyId.
l set_body_motion_reference_point(bodyId,x,y,z): sets body reference point for specified
bodyId. x, y, z specify coordinates (real numbers)

The following functions control the dynamic parameters of a body


l get_ solved_ motion_ geometry (bodyId): gets entire or half geometry for solved bodyId
motion.
l set_solved_motion_geometry(bodyId, geometry): sets entire or half geometry for solved
bodyId motion. geometry can be set to "entire" or "half".
l get_ solved_ motion_ gravity_ center (bodyId): gets gravity center coordinates for a given
bodyId.
l set_solved_motion_gravity_center(bodyId, x, y, z): sets gravity center coordinates (x,y,z)
for a given bodyId.
l get_solved_motion_mass(bodyId): gets mass for solved motion for a given bodyId.
l set_solved_motion_mass(bodyId, m): sets mass for solved motion for a given bodyId.
l get_solved_motion_inertia_matrix(bodyId): gets the inertia matrix for solved motion for a
given bodyId.
l set_solved_motion_inertia_matrix(bodyId, A, B, C, D, E, F): sets the inertia matrix for
solved motion for a given bodyId. A, B, C, D, E, F correspond to the matrix elements.
l get_solved_motion_added_mass_coefficient(bodyId): gets added mass coefficient for each
solved degree of freedom for a given bodyId.
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 bodyId.
l get_ solved_ motion_ damping_ coefficient (bodyId): gets damping coefficient for a given
bodyId.
l set_solved_motion_damping_coefficient(bodyId, coef): sets damping coefficient for a given
bodyId.
l get_solved_motion_wrench_parameters(bodyId): gets constant wrench force parameters
for a given body_id.

853 Fine™ Marine 12.1 User Guide


l set_solved_motion_wrench_parameters(bodyId,toggle, forceX, forceY, forceZ, torqueX,
torqueY,torqueZ,pointX,pointY,pointZ): sets constant force parameters for a given
bodyId. 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 (bodyId): returns "FOLLOWER" for the
follower force and "NONFOLLOWER" for non-follower force;
l set_ solved_ motion_ wrench_ follower_ force (bodyId, follow): sets the wrench follower
force when follow = "FOLLOWER" for a body with the given index. Unsets otherwise.
l get_solved_motion_propeller_parameters(bodyId): gets propeller wrench parameters for
solved motion for a given bodyId.
l set_ solved_ motion_ propeller_ parameters (bodyId,toggle, dirX, dirY, dirZ, pointX,
pointY, pointZ): gets propeller wrench parameters for solved motion for a given bodyId.
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(bodyId): gets initial velocity and initial rotation velocity
for solved motion for a given bodyId.
l set_ solved_ motion_ initial_ velocity (bodyId,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 bodyId.
l get_solved_motion_initial_displacement(bodyId): gets initial displacement parameters for a
given bodyId.
l set_ solved_ motion_ initial_ displacement (bodyId, transX, transY, transZ, rotationX,
rotationY, rotationZ): sets initial displacement parameters for a given body_ id with
transX,transY,transZ the initial translation and rotationX, rotationY, rotationZ the initial
rotation.
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.

854 Fine™ Marine 12.1 User Guide


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.

The following functions allow the estimation of the inertia parameters using two different
methods: Domhydro or ITTC regression laws. They correspond to the action available and
described in "Dynamic Parameters" (p. 344) chapter.
l mass, xCoG, yCoG, zCoG, A, B, C, D, E, F, error = estimate_ inertia_ data (bodyID,
defineZ, zCoG, precision=1E- 20) : returns the inertia parameters using a Domhydro
computation.
mass: estimated mass in kg (Real)
xCoG, yCoG, zCoG: estimated position of the CoG in meters (Reals)
A, B, C, D, E, F: estimated inertia matrix elements (Reals)

855 Fine™ Marine 12.1 User Guide


error : if any issue encountered, returns the error description, otherwise an empty string
(String)
bodyID: a valid body ID (Integer)
defineZ: use or not a user-defined zCoG (False/True)
zCoG: user-defined zCoG in meters (Real)
precision: (optional) precision used for the Domhydro solver; default = 1E-20
l A, B, C, D, E, F, error = estimate_inertia_data_ITTC (bodyID, mass, x_aligned, Lpp,
Beam, cx = 0.37, cy = 0.25, cz = 0.25): returns the inertia parameters using the ITTC
regression laws.
A, B, C, D, E, F: estimated inertia matrix elements (Reals)
error : if any issue encountered, returns the error description, otherwise an empty string
(String)
bodyID: a valid body ID (Integer)
mass: estimated mass in kg (Real)
x_aligned: is the hull aligned with X-axis? (False/True)
Lpp, Beam: mandatory if the hull is not aligned with X-axis. Lpp and Beam in meters (Reals)
cx, cy, cz: (optional) ITTC regression coefficients; defaults: cx = 0.37, cy = 0.25, cz = 0.25

The following functions control the connections between bodies:


l get_body_connection(bodyId): gets body connection parameters
l set_body_connection(bodyId, connectionId, connection_type, pointX, pointY, pointZ,
normalX, normalY, normalZ): sets body connection parameters for linked bodies.
bodyId specifies Id number of the body.
connectionId 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)

The following functions control the primary axis of a linked body:


l get_primary_axis(bodyID): returns a Boolean describing the primary axis status of the body.
l set_primary_axis(bodyID, active): changes the primary axis status of the body with the
Boolean active.

856 Fine™ Marine 12.1 User Guide


l get_primary_axis_alignment(bodyID): returns an integer corresponding to the primary axis
alignment of the given body.
l set_primary_axis_alignment(bodyID, align): sets the primary axis alignment of the given
body using the integer align (which can be one of FM.X, FM.Y, FM.Z, FM.XMINUS,
FM.YMINUS or FM.ZMINUS).

The following functions control the Initial conditions for bodies with no solved DOF:
l get_ motion_ initial_ displacement(bodyId): gets initial translation and rotation values for
bodyID; the latter should be of type INTEGER (index of the body of interest).
l set_motion_initial_displacement(bodyId, transX, transY, transZ, rotationX, rotationY,
rotationZ): sets initial translation and rotation values for bodyID; the latter should be of type
INTEGER (index of the body of interest); transx, transY, transZ, rotationX, rotationY,
rotationZ should be of type REAL. Initial conditions values will not be written in the .sim
simulation file if at least one DOF of the body is not fixed. If dealing with a 2D case, transZ,
rotationX and rotationY should be set to 0.

34.1.12 Mesh Management Boundary Conditions

l set_domain_motion_source(domainId, bodyId) : sets the body with the ID bodyId as a


source of domain rigid motion for domain with index domainId. Domains are numbered from
0.
l get_domain_motion_source(domainId): gets the bodyId which is the source of rigid domain
motion for the domain with ID domainId.
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)

857 Fine™ Marine 12.1 User Guide


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)
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.
l Independent domain motion:
When defining an independent domain motion the macros to be used are the Body motion
ones. The body ID to be used is defined as (-1 - DomainID)

Example

Domain 1 has Tx and Ty copied from a body with BodyID = 1


FM.set_body_motion_type(-2, "Imposed", "Imposed", "Fixed", "Fixed", "Fixed",
"Fixed")
FM.set_body_motion_law(-2, "Copied from another body", "Copied from another body",
"Constant", "Constant", "Constant", "Constant")
FM.set_body_motion_parameters(-2, [1, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0,
0], [1, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0])

858 Fine™ Marine 12.1 User Guide


FM.update_body_list()

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 the
active one restarts. 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 get_ initial_ solution_ type (restart): gets the computation restart type: if restart = 1 , the
computation starts from a previous computation. If restart = 0, the computation starts from
uniform values.
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.

859 Fine™ Marine 12.1 User Guide


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.

l set_restart_from_other_project(restart): sets the active computation to restart from another


project when restart=1. If restart=0, the computation will restart from another computation in
the current project.
l set_initial_solution_from_other_project(path): sets the path to the .sim file from which the
computation restarts in case the restart_from_another_project option was enabled.
l get_initial_solution_from_other_project(): returns the name of the computation from which
the active one restarts.

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_ramp_start(): gets information about the actuator disk(s) ramp start time
in seconds, returns start_time (float).
l set_actuator_disk_ramp_start(start_time): sets the actuator disk(s) absolute ramp start time
in seconds.
l get_ actuator_ disk_ ramp (): gets information about the actuator disk (s) ramp duration in
seconds, returns start_time (float).

860 Fine™ Marine 12.1 User Guide


l set_ actuator_ disk_ ramp (duration) : sets the ramp duration for the actuator disk (s) in
seconds.
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.
l generate_OW_curve_Bseries(P, A, Z, Re, filename): generates B-series curves according to
the pitch ratio P, the expanded blade area ratio A, the number of blades Z and the Reynolds
number Re . filename is also a user-input for naming the output .dat file containing the
performance data.

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.
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.

861 Fine™ Marine 12.1 User Guide


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.

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.

862 Fine™ Marine 12.1 User Guide


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".

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.

863 Fine™ Marine 12.1 User Guide


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 Catenary approach

General commands

l is_catway_available(): Checks if CATway is licensed and the catenary approach can be used
(1) or not (0).
l get_lines_type(): Checks the line type (either "CATENARY" or "SPRING").
l set_lines_type(type): Sets the line type, which can be either "CATENARY" or "SPRING".
l set_catway(): Activates the catenary approach (1) or deactivates the catenary approach (0).

Lines definition

l get_lines_list(): Returns the list of defined lines, displayed as [lineID, lineName].


l get_line_defaults(param): Gets the default value for the unstretched length (param=0) and
the number of points (param=1).
l get_line_by_ID(id): Returns the line properties (name, unstretched length, number of points
for post-processing, material, start- and end node) for the line with a specified id.
l set_line_by_ID(id, name, length, nb_points, propID, node1ID, node2ID): Defines a line
by specifying the id and allows setting the name,unstretched length, number of points for
post- processing ( nb_ points ), material ( propID ), start node (node1ID ) and end node
(node2ID). In case the value of the parameters is specified as None, either the default value
(new line - for name, length, nb_points), the first value in the list (new line - for propID,
node1ID and node2ID) or the previously defined value (existing line) is used.
l remove_line_by_ID(id): Removes the line based on its id.

864 Fine™ Marine 12.1 User Guide


l get_ line_ by_ name(name): Returns the line properties (id, unstretched length, number of
points for post-processing, material, start- and end node) for the line with a specified name.
l set_line_by_name(name, length, nb_points, propID, node1ID, node2ID): Defines a line
by specifying the name and allows setting the unstretched length, number of points for post-
processing (nb_points), material (propID), start node (node1ID) and end node (node2ID). In
case the value of the parameters is specified as None, either the default value (new line - for
length, nb_points), the first value in the list (new line - for propID, node1ID and node2ID)
or the previously defined value (existing line) is used.
l remove_line_by_name(name): Removes the line based on its name.

Materials definition

l get_ materials_ list () : Returns the list of defined materials, displayed as [materialID,
materialName].
l get_material_defaults(param): Gets the default value for the diameter (param=0), Young
modulus (param=1) and linear density (param=2).
l get_material_by_ID(id): Returns the material properties (name, diameter, Young modulus
and linear density) for the material with a specified id.
l set_ material_ by_ ID (id, name, diameter, young_ modulus, linear_ density) : Defines a
material by specifying the id and allows setting the name, diameter, young_modulus and
linear_density. In case the value of the parameters is specified as None, either the default
value (new material) or the previously defined value (existing material) is used.
l remove_material_by_ID(id): Removes the material based on its id.
l get_material_by_name(name): Returns the material properties (id, diameter, Young modulus
and linear density) for the material with a specified name.
l set_ material_ by_ name (name, diameter, young_ modulus, linear_ density) : Defines a
material by specifying the name and allows setting the diameter , young_ modulus and
linear_density. In case the value of the parameters is specified as None, either the default
value (new material) or the previously defined value (existing material) is used.
l remove_material_by_name(name): Removes the material based on its name.

Nodes definition

l get_nodes_list(): Returns the list of defined nodes, displayed as [nodeID, nodeName].


l get_node_defaults(param): Gets the default value for the X-coordinate (param=0), Y-
coordinate (param=1) and Z-coordinate (param=2).
l get_ node_ by_ ID (id) : Returns the node properties (name, linked body, X-, Y- and Z-
coordinate) for the node with a specified id.

865 Fine™ Marine 12.1 User Guide


l set_node_by_ID(id, name, linked_body, p_x, p_y, p_z): Defines a node by specifying the
id and allows setting the name, linked_body, X-coordinate (p_x), Y-coordinate (p_y) and Z-
coordinate (p_z). In case the value of the parameters is specified as None, either the default
value (new node) or the previously defined value (existing node) is used.
l remove_node_by_ID(id): Removes the node based on its id.
l get_node_by_name(name): Returns the node properties (id, linked body, X-, Y- and Z-
coordinate) for the node with a specified name.
l set_node_by_name(name, linked_body, p_x, p_y, p_z): Defines a node by specifying the
name and allows setting the diameter, young_modulus and linear_density. In case the value
of the parameters is specified as None, either the default value (new material) or the previously
defined value (existing material) is used.
l remove_node_by_name(name): Removes the node based on its name.

Example

Create a material, two nodes and two lines attached to a body:


FM.set_lines_type('CATENARY')
FM.set_catway(1)
FM.set_material_by_name('Wire',diameter=0.002,linear_density=5e-2,young_modulus=1.5)
FM.set_node_by_name('Node_1',p_x=-2.5,p_y=0.0,p_z=1.0,linked_body=1)
FM.set_node_by_name('Node_2',p_x=2.5,p_y=0.0,p_z=1.0,linked_body=1)
FM.set_node_by_name('Node_3',p_x=0,p_y=0.0,p_z=2.0)
FM.set_line_by_name('Line1',length=2.692583,nb_
points=7,node1ID=1,node2ID=3,propID=1)
FM.set_line_by_name('Line2',length=2.692583,nb_
points=7,node1ID=2,node2ID=3,propID=1)

34.1.18 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).
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.

866 Fine™ Marine 12.1 User Guide


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.
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.

867 Fine™ Marine 12.1 User Guide


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.19 Temperature model

Activation/Deactivation

The following functions are used to activate/deactivate the temperature model:


l set_ temperature (active) : activates/deactivates temperature model. active can be set to 0
(deactivate) or 1 (activate).
l active = get_temperature(): returns 0 or 1 if the temperature model is deactivated or activated
The following functions are used to activate/deactivate the solute diffusion:
l set_solute(active): activates/deactivates solute diffusion. active can be set to 0 (deactivate) or 1
(activate).
l active = get_solute(): returns 0 or 1 if the solute diffusion is deactivated or activated

Temperature parameters

The following functions are used to get/set the temperature parameters:


l set_temperature_params(T1, Pr1, β1, T2, Pr2, β2):
o T1, T2: ambient temperature of fluid 1 and 2
o Pr1, Pr2: Prandtl number of fluid 1 and 2
o β1, β2: thermal expansion coefficient of fluid 1 and 2
l T 1 , Pr 1 , β 1 , T 2 , Pr 2 , β 2 = get_ temperature_ params(): returns the parameters of the
temperature model

Solute parameters

The following functions are used to get/set the temperature parameters:

868 Fine™ Marine 12.1 User Guide


l set_solute_params(w, Sc, β):
o w: reference mass fraction of the solute (must be in the interval [0, 1])
o Sc: Schmidt number of the solute
o β: solutal expansion coefficient of the solute
l w, Sc, β = get_solute_params(): returns the parameters of the solute model

To set the Temperature and Solute diffusion at the boundary conditions, please refer to the "BCPatch
Class" (p. 846) page.

34.1.20 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

869 Fine™ Marine 12.1 User Guide


Turbulent kinetic energy
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 .

870 Fine™ Marine 12.1 User Guide


l set_ uncertainty_ params (domain, face, patch, quantity, chaos_ order, distribution,
average, variance, min, max, profile): sets uncertainty parameter
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.

871 Fine™ Marine 12.1 User Guide


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.
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

872 Fine™ Marine 12.1 User Guide


Vapor pressure (init)
Nuclei density
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):

873 Fine™ Marine 12.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.

874 Fine™ Marine 12.1 User Guide


34.1.21 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
l param.set_direction(direction): sets the direction of wave propagation. Possible directions
are:
l FM.POSITIVE_X
l FM.NEGATIVE_X

875 Fine™ Marine 12.1 User Guide


l param.set_smooth_wave_field_initialization(init): activates the smooth wave initialization
if init = 1
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(): gets the direction of wave propagation. BOTH_X is
only available for REGULAR spectrum
l init = param.get_smooth_wave_field_initialization(): determines whether smooth wave
initialization is active (init = 1)

34.1.22 Wave damping

Activation

l activation = get_ wave_ damping_ usage (): returns 1 if wave damping is activated, 0
otherwise.
l set_wave_damping_usage(activation): enables the wave damping for activation different
from zero, disables for activation=0.

876 Fine™ Marine 12.1 User Guide


Set the parameters

l set_sponge_layer(Smin_x,Smin_y,Smax_x,Smax_y): specifies the damping zone bounding


box:
l Smin_x: minimum X-coordinate,
l Smin_y: minimum Y-coordinate,
l Smax_x: maximum X-coordinate,
l Smax_y: maximum Y-coordinate.
l hordamp = get_ horizontal_ direction_ usage (): returns 1 if horizontal wave damping is
activated, 0 otherwise.
l set_horizontal_direction_usage(hordamp): enables horizontal wave damping for hordamp
different from zero, disables it for hordamp=0.
l verdamp = get_vertical_direction_usage(): returns 1 if vertical wave damping is activated, 0
otherwise.
l set_ vertical_ direction_ usage (verdamp): enables vertical wave damping for verdamp
different from zero, disables it for verdamp=0.

34.1.23 Numerical Model Parameters

Numerical schemes

Turbulence

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"
3 - "CENTERED"
4 - "AVLSMART"
5 - "GDS"
6 - "BLENDED"
level specifies level of up-winding if discretization scheme is "BLENDED"

877 Fine™ Marine 12.1 User Guide


Momentum

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"

Multi-fluid

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"

Cavitation

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"

878 Fine™ Marine 12.1 User Guide


5 - "AVLSMART"

Transition

l get_transition_scheme(): sets the transition scheme.


l set_transition_scheme(scheme,level): sets transition discretization scheme. scheme is coded
by a number as follows:
1 - "UPWIND". The discretization order of the scheme can be defined using disTransOrder_
expert parameter.
2 - "HYBRID"
3 - "CENTERED"
4 - "AVLSMART"
5 - "GDS"
6 - "BLENDED"
level specifies level of up-winding if discretization scheme is "BLENDED"

Passive scalar

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).

Temperature

l set_temp_scheme(scheme): management of passive scalar numerical scheme. The scheme


(string) can be set to AVLSMART or GDS.
l get_temp_scheme(): gets the passive scalar scheme (AVLSMART or GDS).

Solute diffusion

l set_solut_scheme(scheme): management of passive scalar numerical scheme. The scheme


(string) can be set to AVLSMART or GDS.
l get_solut_scheme(): gets the passive scalar scheme (AVLSMART or GDS).

879 Fine™ Marine 12.1 User Guide


Under-relaxation parameters

Velocity

l get_urex_velocity(): gets under-relaxation velocity


l set_urex_velocity(x,y,z): sets under-relaxation velocity for x, y, z components.

Pressure

l get_urex_pressure(): sets under-relaxation value for pressure


l set_urex_pressure(value): sets under-relaxation value for pressure.

Velocity flux

l get_urex_velocity_flux(): gets under-relaxation velocity flux value


l set_urex_velocity_flux(value): sets under-relaxation velocity flux value.

Correction

l get_urex_correction(): gets under-relaxation correction value


l set_urex_correction(value): sets under-relaxation correction value.

Turbulence and mass fraction

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.

Cavitation

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.

Transition

l get_urex_intermittency(): gets under-relaxation parameter for transition intermittency.


l set_urex_intermittency(value): sets under-relaxation parameter for transition intermittency.

880 Fine™ Marine 12.1 User Guide


Temperature

l get_urex_temperature(): gets under-relaxation parameter for temperature.


l set_urex_temperature(value): sets under-relaxation parameter for the temperature.

Solute diffusion

l get_urex_solute(): gets under-relaxation parameter for solute.


l set_urex_solute(value): sets under-relaxation parameter for the solute.

Additional parameters

Streaking correction

l is_active = get_streak_correction_active(): get activation status of streaking correction


l set_streak_correction_active(is_active): set activation status of streaking correction
is_active is a boolean.
l method = get_streak_correction_method(): get method of streaking correction
l set_streak_correction_active(method): set method of streaking correction
method is an integer: 0 - aggressive, 1 - standard

Velocity clipping

l is_active = get_velocity_clip_active(): get activation status of velocity clip


l set_velocity_clip_active(is_active): set activation status of velocity clip
is_active is a boolean.
l value = get_velocity_clip_factor(): get velocity clip factor
l set_velocity_clip_factor(value): set velocity clip factor
value is an integer.

34.1.24 Adaptive Grid Refinement Parameters

get_refinement_usage(): gets adaptive grid refinement status.


set_refinement_usage(mode): sets adaptive grid refinement status. mode can be 0 or 1. 1 means
grid refinement is activated.
get_refinement_threshold(): gets refinement criterion threshold

881 Fine™ Marine 12.1 User Guide


set_ refinement_ threshold ( threshold , cavit_ threshold=0.0 , hessian_ threshold=0.0 , ts_
threshold=0.0): sets refinement criterion threshold.
If a single criterion is selected, the threshold takes threshold value.
In case of combined criterion, the threshold for the first criterion takes threshold value and
other criteria take the values of optional parameters (cavit_threshold for cavitation surface,
hessian_threshold for second criteria based on Hessian, and ts_threshold for "Temperature
and solute Hessian criterion" (p. 561)). For optional parameters, 0 (default) means the criterion
is deactivated.
Example 1: If "Temperature Solute Hessian" is selected, the threshold take the threshold
value.
Example 2: If "Pressure Hessian (tensor)" is selected, and combined with "Temperature
Solute Hessian", thresholds take threshold and ts_threshold values.

See "Refinement Criteria" (p. 549) for more detailed information about how to choose threshold
value.

get_criterion_type(): gets refinement criterion type.


set_criterion_type (typeName): sets refinement criterion type . typeName can take the following
value:
"Free surface (directional)"
"Free surface (tensor)"
"Free surface (isotropic)"
"Free surface + pressure Hessian"
"Multisurface (tensor)"
"Multisurface + pressure Hessian"
"Multisurface + flux component Hessian"
"Temperature Solute Hessian"
"Pressure Hessian (tensor)"
"Pressure Hessian (isotropic)"
"Flux component Hessian"
"Pressure gradient (isotropic)"
"Velocity gradient (isotropic)"
"Vorticity (isotropic)"
"Overset continuity only"

882 Fine™ Marine 12.1 User Guide


"Systematic"
"Multisurface + Systematic"
get_number_of_grid_levels(): gets the specified number of grid levels for the Multisurface +
Systematic criterion.
set_ number_ of_ grid_ levels ( value ): Sets the number of grid levels for the Multisurface +
Systematic criterion.
get_max_n_generations(): gets maximum number of refinements of initial cells.
set_max_n_generations(value): sets maximum number of refinements of initial cells.
get_buff_layers_full(): gets the number of layers copying full criterion value.
set_buff_layers_full(value): sets the number of layers copying full criterion value.
get_buff_layers_fraction(): gets the number of layers copying fraction of value
set_buff_layers_fraction(value):sets the number of layers copying fraction of value.
get_fraction():gets fraction value for criterion diffusion.
set_fraction(value):sets fraction value for criterion diffusion.
get_bound_layer_protection(): gets bound layer protection type
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"
get_refinement_only_in_box_iso(): gets box status for isotropic/directional refinement.
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.
get_only_in_box_iso(): gets coordinates for isotropic/directional refinement.
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.
get_refinement_only_in_box_dir(): gets box status for directional refinement only.
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.
get_only_in_box_dir(): gets coordinates for directional refinement.
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):

883 Fine™ Marine 12.1 User Guide


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.
get_ refinement_ follower_ body (): gets the bodyID (integer) to which refinement boxes are
attached to, 0 means "None" (default).
set_refinement_follower_body(bodyID): sets the body to which defined refinement boxes are
attached to. A value of 0 is used to set it to "None".
get_steps_before_first_refinement(): gets the number of steps before the first call to refinement
procedure.
set_ steps_ before_ first_ refinement(value ): sets the number of steps before the first call to
refinement procedure.
get_steps_between_refinements(): gets the number of steps between two calls to the adaptive
grid refinement procedure.
set_ steps_ between_ refinements (value ): sets the number of steps between two calls to the
adaptive grid refinement procedure.
get_mem_max_cells(): gets the maximum number of cells per partition to allocate the memory for
the solver.
set_ mem_ max_ cells (value ) sets the maximum number of cells per partition to allocate the
memory for the solver.
get_min_cell_size(value) gets minimum size limit for refined cells
set_min_cell_size(value): sets minimum size limit for refined cells.
get_reinit_after_first_step() gets the status to reinitialize solution after the first refinement
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).
get_projection_surface(): gets status to project refined grid onto body surfaces
set_projection_surface(flag): sets status to project refined grid onto body surfaces. flag can be 0
(not active) or 1 (active).
get_average_criterion_usage(): gets the status of the averaging criterion.
set_average_criterion_usage(flag): sets the status of time-averaged refinement criterion. flag can
be 0 (not active) or 1 (active).
get_average_steps_before_first_refinement(): gets the number of time steps before the criterion
averaging begins.
set_average_steps_before_first_refinement(value): sets the number of time steps before the
criterion averaging begins.
get_average_steps_between_refinements(): gets the number of time steps between calls to the
averaging procedure of the refinement criterion.
set_average_steps_between_refinements(value): sets the number of time steps between calls to
the averaging procedure of the refinement criterion.

884 Fine™ Marine 12.1 User Guide


get_ average_ sliding_ window_ usage (): gets the status of the sliding window for the time-
averaged refinement criterion
set_average_sliding_window_usage(flag): sets the status of the sliding window for the time-
averaged refinement criterion. flag can be 0 (not active) or 1 (active).
get_average_intervals_for_window(): gets the size of the averaging interval in number of time
steps.
set_average_intervals_for_window(value): sets the size of the averaging interval in number of
time steps.
get_free_surface_criterion_smooth_mass(): gets status for the base free surface criterion on
smoothed mass fraction.
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).
get_convection_buffer(): gets usage criterion diffusion by convection
set_convection_buffer(flag): sets usage criterion diffusion by convection. flag can be 0 (not
active) or 1 (active).
get_scalar_product_zone(): gets the status of the possibility to limit scalar product check to zone
where criterion is non-zero.
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)
get_conditional_factor(): gets conditional refinement factor value.
set_ conditional_ factor ( value ) sets conditional refinement factor. value affects the grid
smoothness. It should be always bigger than 1.0.
get_repetitions(): gets the number of repetitions during one refinement step.
set_ repetitions ( value ) sets the number of repetitions. value specifies how many times the
refinement procedure is called during one refinement step.
get_hessian_eval(): returns "Least-squares" if the least-squares pressure Hessian evaluation is
used, "Smoothed Gauss" if Smoothed Gauss.
set_ hessian_ eval ( approach ): sets pressure Hessian approach. Values "Least- squares" and
"Smoothed Gauss" for approach are supported.
get_directional_derefinement(): gets 1 if the direction derefinement is enabled, 0 otherwise
set_ directional_ derefinement ( use ): enable the directional derefinement: if use =1, disables
otherwise.
get_ refinement_ convergence_ usage () : returns the activation status of the adaptive grid
refinement convergence criterion. The returned value can be 0 (not active) or 1 (active).
set_ refinement_ convergence_ usage ( flag ) : sets the activation status of the adaptive grid
refinement convergence criterion. Flag can be 0 (not active) or 1 (active).

885 Fine™ Marine 12.1 User Guide


get_refinement_convergence_stability_interval(): returns the value of the stability interval of
the convergence criterion.
set_refinement_convergence_stability_interval(value): sets the value of the stability interval of
the convergence criterion. The value has to be an integer.
get_refinement_convergence_sliding_window(): returns the value of the sliding window of the
convergence criterion.
set_refinement_convergence_stability_interval(value): sets the value of the sliding window of
the convergence criterion. The value has to be an integer.
get_refinement_convergence_tolerance(): returns the value of the tolerance of the convergence
criterion.
set_ refinement_ convergence_ tolerance ( value ) : sets the value of the tolerance of the
convergence criterion. The value has to be an real number in the range (0,1).

34.1.25 Overset grid management

get_overset_activation(): returns 1 when overset grid approach is active, 0 in other cases.


set_overset_activation(active): Enables Overset Grids if active = 1, disables Overset Grids if
active = 0.
get_explicit_coupling_usage(): returns 1 when the overset domain coupling scheme is explicit, 0
if implicit.
set_explicit_coupling_usage(active) : Sets the overset domain coupling scheme to explicit or
implicit. active (bool) True for explicit, False for implicit. More detail in "Explicit coupling
(BETA)" (p. 609).

Domain number blockID is starting its numbering from 0.

get_ overset_ domain_ type ( blockID ): returns type of the domain: OVERLAPPING = 1,
BACKGROUND = 2 or LINKED = 3.
set_ overset_ domain_ type ( blockID , site ): sets the type of the domain: OVERLAPPING,
BACKGROUND or LINKED.
Example: FM.set_overset_domain_type(0, FM.BACKGROUND)
get_overset_domain_physical_BC(blockID): returns 1 if the domain has a physical boundary
condition, 0 in other cases.
set_overset_domain_physical_BC(blockID, has_bc): sets the physical boundary condition for
the domain blockID: has_bc = 1 , 0 otherwise.

886 Fine™ Marine 12.1 User Guide


get_overset_domain_distance(blockID): returns distance parameter of the physical domain.
set_overset_domain_distance(blockID, distance): sets the distance parameter of the physical
domain.
get_ overset_ parent_ domain ( blockID ): returns an index of the domain, to which domain
blockID is linked.
set_ overset_ parent_ domain (blockID , outerID ): sets the domain blockID as Linked to the
domain outerID.
get_body_of_overset_domain_boundary(bodyID ): returns 1 if the bodyID was defined as
belonging to the domain boundary.
get_expert_real_parameters('raffOversetMaxAspectRatio_'): returns the current value set for
raffOversetMaxAspectRatio_.
set_ expert_ real_ parameters ('raffOversetMaxAspectRatio_ ', value) : sets the value of
raffOversetMaxAspectRatio_; value should be a float bigger than 1.0.

34.1.26 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.27 Modal approach

Modal approach activation

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
than 0.

887 Fine™ Marine 12.1 User Guide


Set the modal structure

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's name. Note that the modal structure's 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 damping, init_ ampl, AMC_ estimode, AMC_ value, AMC_ iter = 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 ModalStructure which is selected for body
with given index.
l set_body_modal_structure(bodyID, struct): sets ModalStructure for the body with given
index.
l get_modal_structures(): returns list of all ModalStructure's in the computation.
l add_modal_structure(structID, name): creates a new modal structure with the given name
and index, then returns corresponding ModalStructure instance.
l remove_modal_structure(structID): removes the modal structure with the given index.

888 Fine™ Marine 12.1 User Guide


Example

l Set the modal structure


FM.set_modal_approach_usage(1)
FM.add_modal_structure(1, "DTMB")
FM.set_coupling_activation(1, 1)
FM.set_body_modal_structure(1,FM.ModalStructure(1))
structure = FM.ModalStructure(1)
l Add a modal structure file
structure.set_file("../Beam_Modal_def.dat")
l Set the number of modes
structure.set_modes_nb(5)

Set the modes parameters

Class ModalMode is used to set the parameters of the modal structure for a specified mode. It .
The class can be initialized from the ModalStructure class using the following function:
l mode = structure.modal_mode(mode_no)
mode: member of the FM.ModalMode class
mode_no: mode number between 1 and the maximum number of modes in the structure file
(Integer)
The ModalMode class contains the following functions that can be used instead of
ModalStructure.set_modal_mode and ModalStructure.get_modal_mode functions:
l damping = mode.get_damping(): Get the damping parameter of the given modal mode.
mode.set_damping(damping): Set the damping parameter of the given modal mode.
damping: damping coefficient (Real)
l A0 = mode.get_initial_amplitude(): Get the initial amplitude of the given modal mode.
mode.set_initial_amplitude(A0): Set the initial amplitude of the given modal mode.
A0: is the initial amplitude (Real)
l estimode = mode.get_amc_estimation_mode(): Get the added mass coefficient estimation
mode of the given modal mode.
mode.set_amc_estimation_mode(estimode): Set the added mass coefficient estimation mode
of the given modal mode.
estimode: Added mass estimation method: one of “Approximate”, “Accurate”, “User defined”.
l value = mode.get_amc_value(): Get the added mass coefficient prescribed value.

889 Fine™ Marine 12.1 User Guide


mode.set_amc_value(value): Set the added mass coefficient prescribed value. It is effective for
“User defined” estimation mode.
value: Value of the given mode's added mass coefficient.
l iter = mode.get_amc_estimation_frequency(): Get the added mass coefficient estimation
frequency for the given modal mode.
mode. set_ amc_ estimation_ frequency (iter): Set the added mass coefficient estimation
frequency for the given modal mode.
iter: Added mass estimation frequency (Integer positive or null)

Coupling options

The following functions control the node reduction algorithm parameters:


l active, tol = get_body_fsi_node_reduction(bodyID): returns the node reduction activation
mode and node reduction tolerance for the body bodyID.
l set_body_fsi_node_reduction(bodyID, active, tol): sets the node reduction activation and
parameter.
bodyID: a valid body ID (Integer)
active: the activation mode (False/True)
tol: the node reduction tolerance (positive Real). When active is False, the tolerance has no
effect.
The following functions allow to specify the modal body’s reference length:
l defined, len = get_ body_ fsi_ reference_ length (bodyID): returns the reference length
activation mode and reference length for the body bodyID.
set_body_fsi_reference_length(bodyID, defined, len): sets the reference length activation
mode and reference length.
bodyID: a valid body ID (Integer)
defined: the activation mode (False/True)
len: the reference length (positive Real). When defined is False, the length has no effect.
The following functions control the domain boundary deformation techniques:
l active = get_body_fsi_deformed_ext(bodyID): returns the deformable domain boundaries
activation mode for the body bodyID.
set_ body_ fsi_ deformed_ ext (bodyID, active): activates/deactivates domain boundary
deformation for the body.
bodyID: a valid body ID (Integer)
active: the activation mode (False/True)
l strategy = get_body_fsi_deform_strategy(bodyID): returns the deformation strategy (integer)

890 Fine™ Marine 12.1 User Guide


for the case when domain boundaries are deformable for the body bodyID.
set_body_fsi_deform_strategy(bodyID, strategy): sets the deformation strategy (string) for
the body.
bodyID: a valid body ID (Integer)
strategy: the deformation strategy (integer or corresponding string), among:
1 - "FM.DEFORM_ALL" – Deform all domain boundaries with no restriction
2 - "FM.DEFORM_ELIGIBLE_NON_MIRROR" – Deform all eligible boundaries except
mirror planes
3 - "FM.DEFORM_ELIGIBLE" – Deform all eligible boundaries, including mirror planes
The following function is used to activate the Quasi-Static deformation approach:
l active = get_ body_ fsi_ quasi_ static_ active (bodyID): returns the quasi- static deformation
activation for the given modal body.
set_body_fsi_quasi_static_active(bodyID, active): sets the quasi-static deformation activation
for the given modal body.
bodyID: a valid modal body identifier (Integer)
active: BOOLEAN
The following functions belong to the ModalMode class (described in "Set the modes
parameters" (p. 889)) and can be used to set the Quasi-Static deformation parameters. The mode
variable is a member of the ModalMode class:
l law = mode.get_quasi_static_law(): Get the quasi-static deformation evaluation law for the
given modal mode.
mode.set_quasi_static_law(law): Set the quasi-static deformation evaluation law for the given
modal mode.
law : the type of evaluation law, either linear (0 or FM.LINEAR_LAW) or smooth (1 or
FM.SMOOTH_LAW) (Integer or corresponding string)
l T1 = mode. get_ quasi_ static_ starting_ time (): Get the starting time of the quasi- static
deformation technique for the given mode.
mode.set_quasi_static_starting_time(T1): Set the starting time of the quasi-static deformation
technique for the given mode.
T1: quasi-static deformation start time (Positive real)
l r = mode. get_ quasi_ static_ relaxation (): Get the relaxation coefficient of the quasi-static
deformation technique for the given mode.
mode. set_ quasi_ static_ relaxation (r): Set the relaxation coefficient of the quasi- static
deformation technique for the given mode.
r: under-relaxation coefficient (Real)
l type = mode.get_quasi_static_intervals_type(): Get the type of dT2 and dT3 intervals of the

891 Fine™ Marine 12.1 User Guide


quasi-static deformation technique for the given mode. The intervals can be defined either in
seconds or in time steps.
mode.set_quasi_static_intervals_type(type): Set the type of dT2 and dT3 intervals of the
quasi-static deformation technique for the given mode.
type: the type of interval, either in seconds (0 or FM.SECONDS) or in number of timesteps (1
or FM.TIMESTEPS) (Integer or corresponding string)
l dT2sec, dT3sec = mode.get_quasi_static_intervals_sec(): Get/set time intervals dT2 and dT3
of the quasi-static deformation technique for the given mode, in seconds. These values are
effective when the type of intervals is set to FM.SECONDS via set_quasi_static_intervals_
type.
mode.set_quasi_static_intervals_sec(dT2sec, dT3sec)
dT2sec: position update duration in seconds (Positive real)
dT3sec: evolution interval in seconds (Real >= dT2sec)
l dT2ts, dT3ts = mode.get_quasi_static_intervals_ts(): Get/set time intervals dT2 and dT3 of
the quasi-static deformation technique for the given mode, in time steps. These values are
effective when the type of intervals is set to FM.TIMESTEPS via set_quasi_static_intervals_
type.
mode.set_quasi_static_intervals_ts(dT2ts, dT3ts)
dT2ts: position update duration in number of timesteps (Positive integer)
dT3ts: evolution interval in number of timesteps (Integer >= dT2ts)

Examples assuming there is a body with ID 1

l Activate the node reduction with a different tolerance


FM.set_body_fsi_node_reduction(1, True, 0.002)
l Disable the node reduction (arbitrary positive number can be put here as the tolerance)
FM.set_body_fsi_node_reduction(1, False, 0.001)
l Make deformable domain boundaries (all eligible, including mirror planes)
FM.set_body_fsi_deformed_ext(1, True)
FM.set_body_fsi_deform_strategy(1, FM.DEFORM_ELIGIBLE)
l Set the body reference length using the global reference length setting
Lref, Vref = FM.get_flow_model_reference_parameters()
FM.set_body_fsi_reference_length(1, True, Lref)
l Set the added mass coefficients, damping and quasi-static parameters using the ModalMode
class
FM.set_modal_approach_usage(1)

892 Fine™ Marine 12.1 User Guide


FM.add_modal_structure(1, "DTMB")
FM.set_coupling_activation(1, 1)
FM.set_body_modal_structure(1,FM.ModalStructure(1))
FM.set_body_fsi_quasi_static_active(1, 1)
structure = FM.ModalStructure(1) # creates a ModalStructure object
structure.set_ file ("../Beam_ Modal_ def.dat") # links the structure file "../Beam_ Modal_
def.dat" to the modal body
structure.set_modes_nb(5) # sets the number of modes to 5
mode_ 1 = structure.modal_ mode (1) # starts the setting of the Mode 1 by creating a
ModalMode object
mode_1.set_damping(0.5)
mode_1.set_initial_amplitude(1)
mode_1.set_quasi_static_starting_time(1)
mode_ 2 = structure.modal_ mode (2) # starts the setting of the Mode 2 by creating a
ModalMode object
mode_2.set_amc_estimation_mode("User defined")
mode_2.set_amc_value(1.5)
mode_2.set_quasi_static_starting_time(1)
mode_2.set_quasi_static_relaxation(0.7)
mode_ 3 = structure.modal_ mode (3) # starts the setting of the Mode 3 by creating a
ModalMode object
mode_3.set_initial_amplitude(2)
mode_3.set_amc_estimation_mode("Accurate")
mode_3.set_amc_estimation_frequency(5)
mode_3.set_quasi_static_starting_time(1)
mode_3.set_quasi_static_intervals_type(FM.SECONDS)
mode_3.set_quasi_static_intervals_sec(15, 17.5)
mode_ 4 = structure.modal_ mode (4) # starts the setting of the Mode 4 by creating a
ModalMode object
mode_4.set_quasi_static_starting_time(1)
mode_4.set_quasi_static_relaxation(14)
mode_4.set_quasi_static_intervals_ts(11, 19)
structure.modal_mode(5).set_quasi_static_starting_time(1) # starts the setting of the Mode 5
The following functions control the advanced parameter:

893 Fine™ Marine 12.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.28 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". The discretization order of the scheme can be defined using disTransOrder_
expert parameter.
2 - "HYBRID"
3 - "CENTERED"
4 - "AVLSMART"
5 - "GDS"
6 - "BLENDED"
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.29 Results Analysis

Initialize the analysis

l a = FM.ResultsAnalyzer(): intialize the results analysis.

The following functions are members of the class FM.ResultsAnalyzer():

894 Fine™ Marine 12.1 User Guide


Application selection

l a.set_resistance_curve(usage): sets resistance curve usage:usage can be 0 (inactive) or 1


(active).
usage = a.get_resistance_curve(): gets resistance curve usage value.
l a.set_self_propulsion(sp): if sp is None, it disables the self-propulsion analysis. Otherwise sp
should be a "FM.SelfPropAnalysis class" (p. 895) object with the self-propulsion parameters.
sp = a.get_self_propulsion(): it returns None if the self-propulsion analysis is not activated.
Otherwise a "FM.SelfPropAnalysis class" (p. 895) object with the self-propulsion parameters
is returned.
l a.set_open_water(ow): if ow is None, it disables the open water performance curve analysis.
Otherwise ow should be a "FM.OpenWaterPerformance class" (p. 896) object with the open
water performance curve parameters.
ow = a.get_open_water(): it returns None if the open water performance curve analysis is not
activated. Otherwise a "FM.OpenWaterPerformance class" (p. 896) object with the open water
performance curve parameters is returned.

If these Python commands are used in a script to write the results-analysis file, the script should
also contain the following command to get the correct quantities:
a.set_quantities["Fx","Fz"]

FM.SelfPropAnalysis class

To initialize the class:


l sp = FM.SelfPropAnalysis()
Members of the class FM.SelfPropAnalysis():
l sp.Rttow: ship drag [N] in resistance conditions.
l sp.SFC: carriage towing force [N] if any.
l sp.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 sp.ship: name of the body ship
l sp.propeller: name of the body propeller if it is physically present in the computation.

895 Fine™ Marine 12.1 User Guide


l sp.D: diameter [m] of the propeller if it is physically present in the computation.
l sp.n: rotational speed [rps] of the propeller if it is modeled with an actuator disk.

FM.OpenWaterPerformance class

To initialize the class:


l ow = FM.OpenWaterPerformance()
Members of the class FM.OpenWaterPerformance():
l ow.propeller: STRING; Name of the propeller body.
l ow.D: REAL; Propeller diameter.
l ow.kt: BOOLEAN; Draw or not the Kt curve.
l ow.kq: BOOLEAN; Draw or not the Kq curve.
l ow.eta: BOOLEAN; Draw or not the Efficiency curve.
l ow.kq10: BOOLEAN; Draw or not the 10Kq instead of Kq.

Specific quantities

Efforts, motions and other quantities

l a.set_quantities(list): sets a list of selected quantities.


list = a.get_quantities(): gets 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"
l Cavitation vapor volume: "cavitation"
l Number of cells: "cells"
l Time step: "time_step"
l Actuator disk thrust and torque: "thrust_torque"
l Wetted surface area: "wetted_area"
l Y+ distance: "Y+"
l Catway: "catway"
l Mooring: "mooring"

896 Fine™ Marine 12.1 User Guide


l Tugging: "tugging"
l a.set_friction_lines(ittc_57, grigson, katsui, schoenherr): sets the friction lines activation
status with 0 (inactive) or 1 (active) for each line. Only works if "FxV" is requested in set_
quantities(list).
ittc_57, grigson, katsui, schoenherr = a.get_friction_lines(): gets the friction lines activation
status.
l a.set_catway_parameters(line_name, type, node_index): sets the line name, the node index
and the quantity to be plotted. line_name (str) is name of the line to plot, node_index (int) is
the index of the node to plot, type (int) is the value to plot: 1 - position, 2 - tension, 3 - both.
line_name, type, node_index = a.get_catway_parameters(): gets the line name, the node
index and the quantity to be plotted.

User-defined formula

l a.add_custom_formula(left, right): adds a new formula with the following construction: left
+ ‘=’ + right. If a formula with the same left part already exists, then nothing is done.
l a.edit_custom_formula(left, right): edits the formula for which left is matching the left part
with the string right. If such formula does not exist, then nothing is done.
l a.remove_custom_formula(left): removes the formula for which left is matching the left part.
If such formula does not exist, then nothing is done.
l a.remove_all_custom_formulas(): removes all existing formulas.
l formula = a.get_custom_formula(left): returns the formula for which left is matching the left
part. formula is a string with the following construction: left + ‘=’ + right. If such formula
does not exist, then an empty string is returned.
l formulas = a.get_custom_formulas(): returns a list of all existing formulas.
With
l left: STRING
Left part of formula (before ‘=’).
l right: STRING
Right part of formula (after ‘=’).
l formula: STRING
left + ‘=’ + right.
l formulas: LIST OF STRINGS
List of formulas left + ‘=’ + right.

Example

a = FM.ResultsAnalyzer()

897 Fine™ Marine 12.1 User Guide


# Output the drag aligned with the ship which moves with a certain angle from the X-direction
a.add_custom_formula("Drag", "sqrt(Fx_Vessel * Fx_Vessel + Fy_Vessel * Fy_Vessel)")
drag_formula = a.get_custom_formula("Drag")
a.analyze("Convergence_report_21-06-2016_10h-49m-20s")

Analysis options

Criterion for average calculations and convergence

l a.track_averaging_on(efforts, motions): controls quantities to average: efforts and motions


can be 0 (inactive) or 1 (active). In case of 1, the corresponding quantities will be averaged.
efforts, motions = a. get_ averaging_ tracking (): returns quantities to average efforts and
motions can be 0 (inactive) or 1 (active).
l a.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.
use_last_percent, conv_crit = a.get_averaging_options(): gets the last times steps number per
cent and convergence criterion per cent.
l a. set_ additional_ lines_ drawing (ave_ line, conv_ line) : sets the activation status for the
average line and convergence line drawing. ave_line and conv_lin can be 0 (inactive) or 1
(active).
ave_line, conv_lin = a.get_additional_lines_drawing(): gets the activation status for the
average line and convergence line drawing.

Filters

For efforts:
l a.set_median_filter(use, window_width): sets median filtering for efforts: use can be 0
(inactive) or 1 (active). If 1, the filter will be used with the specified window_width
use, window_width = a.get_median_filter(): gets median filtering options for efforts.
l a.set_moving_average(use, window_width): sets moving average filtering for efforts: use
can be 0 (inactive) or 1 (active). If 1, the filter will be used with the specified window_width
use, window_width = a.get_moving_average(): gets moving average options filtering for
efforts.
For motions:

898 Fine™ Marine 12.1 User Guide


l a.set_median_filter_motions(use, window_width): sets median filtering for motions: use
can be 0 (inactive) or 1 (active). If 1, the filter will be used with the specified window_width
use, window_ width = a. get_ median_ filter_ motions () : gets median filtering options for
motions.
l a. set_ moving_ average_ motions (use, window_ width): sets moving average filtering for
motions: use can be 0 (inactive) or 1 (active). If 1, the filter will be used with the specified
window_width
use, window_ width = a. get_ moving_ average_ motions () : gets moving average filtering
options for motions.

Plot options

Group/ungroup plots

l a.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.
joint_quantities, joint_computations = a.get_plot_options(): gets plotting options.
l a.set_body_plot_option(split_per_body): sets the split per body option activation status.
split_per_body can be 0 (inactive) or 1 (active). The joint_quantities parameter of set_plot_
options must be set to 1 to use.
split_per_body = a.get_body_plot_option(): gets the split per body option activation status.

Graph options

l a. set_ axis_ limits (xmin, xmax, ymin, ymax) : sets axis limits for current analysis. If an
argument is None, the corresponding limit will be disabled.
xmin, xmax, ymin, ymax = a.get_axis_limits(): returns current axis limits. If a return value is
None, the corresponding limit is not set.
l a.set_units_conversion(convert_to_feet, convert_to_degrees, convert_to_knots): sets the
unit conversion flags. By default the units are meters, radians and meters per second, but can
be converted to feet, degrees and knots by setting convert_to_feet, convert_to_degrees or
convert_to_knots to 1 to enable the conversion (0 is disabled).
convert_to_feet, convert_to_degrees, convert_to_knots = a.get_units_conversion(): gets the
unit conversion flags.
l a.set_plot_size(width, height): sets the graph size in pixels. width and height are integers.
width, height = a.get_plot_size(): gets the graph size.

899 Fine™ Marine 12.1 User Guide


l a.set_legend_location_code(code): sets the legend location. code uses the following values:
l 0 - automatic location
l 1 - top right corner
l 2 - top left corner
l 3 - bottom left corner
l 4 - bottom right corner
code = a.get_legend_location_code(): gets the legend location.
l a. set_ plots_ creation_ flag (flag): sets the plots creation flag to enable or disable the plot
creation (1 to enable, 0 to disable)
flag = a.get_plots_creation_flag(): gets the plots creation flag.

Value adaptation

l a.set_Fx_doubling(double_Fx): doubles drag force Fx (for a half body simulation). Enabled


if double_Fx = 1, disabled if double_Fx = 0.
double_Fx = a.get_Fx_doubling(): returns current Fx doubling activation (1 if active, 0 if
not).
l a.set_abs_plot(enable): if enable = 1, all quantity values will be absolute.
enable = a.get_abs_plot(): returns 1 if only absolute quantity values will be used, 0 otherwise.

Dimensionless coefficient

l a.add_dimensionless_coeff(quantity, enable, name, value): creates a new dimensionless


coefficient.
l If enable = 1, the specified quantity will be divided by a given value and the
dimensionless name. The name is needed to correctly label the plots.
l If enable = 0, the dimensionless coefficient will not be applied. In this case, name and value
can be arbitrary.

name should not be "ALL" as it is reserved for backward compatibility purpose.

l quantity, enable, name, value = a.get_dimensionless_coeff(name): returns the status, the


name and value of the dimensionless quantity called quantity.

900 Fine™ Marine 12.1 User Guide


If name is omitted, the previous behavior described in Backward compatibility, here below, is
performed.

l coeffs = a.get_dimensionless_coeffs(): returns all the dimensionless coefficients. coeffs is a list


of list of the kind [quantity, enable, name, value].
l a.remove_dimensionless_coeff(name): removes dimensionless coefficient called name.

name should not be "ALL" as it is reserved for backward compatibility purpose.

l a.remove_all_dimensionless_coeffs(): removes all existing dimensionless coefficients.

Backward compatibility: Common coefficient


l a.set_dimensionless_coeff(enable, name, value): controls a common dimensionless coefficient
activation.
l If enable = 1, all quantity values will be divided by a given value . The name is needed to
correctly label the plots.
l If enable = 0, the dimensionless coefficient will not be applied. In this case, value and name
can be arbitrary.
l enable, name, value = a. get_ dimensionless_ coeff () : returns the common dimensionless
coefficient. The variable quantity is not returned then, as it concerns all quantities.

Run the analysis

l a.analyze(foldername = 'Convergence_report'): runs the results analysis with the prescribed


ResultsAnalyzer instance 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.

Examples

Example of a typical convergence analysis for a resistance simulation with solved


trim and sink

a = FM.ResultsAnalyzer()

901 Fine™ Marine 12.1 User Guide


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")

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.30 Outputs

General

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".

902 Fine™ Marine 12.1 User Guide


l get_probe_start_time(): gets information about the probe start time, returns is_relative (bool),
start_time (float).
l set_probe_start_time(is_relative, start_time): sets the information relative to probe start
time.
is_relative: boolean, 0 indicates the time is absolute and 1 that it is relative.
start_time: float, indicates the time in seconds at which the recording of probe starts.
l get_mean_fields_start_time(): gets the starting time for mean value field calculation.
l set_mean_fields_start_time(time): sets the starting time for activating the mean value field
calculation for selected quantities. time specifies the starting time in seconds.

Volume probes

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
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
18 - Temperature
19 - Solute
21 - Turbulent viscosity~ (for Spallart-Allmaras computation only)
31 - Turbulent dissipation
32 - Turbulent kinetic energy

903 Fine™ Marine 12.1 User Guide


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".

Surface probes

l get_surface_probe_wall_forces(): gets the flowsolver file name (*.cpr) used to reconstruct


the wall force probe.
l set_surface_probe_wall_forces("wall_data.cpr"): activates the wall forces probe.
l get_surface_probe_free(): gets the flowsolver file name (*.cpr) used to reconstruct the free
surface probe.
l set_surface_probe_free("free_surface.cpr"): activates the free surface probe.
l get_surface_probe_wall(): gets the flowsolver file name (*.cpr) used to reconstruct the wall
surface probe, the number of quantities stored and the array of quantities.
l set_ surface_ probe_ wall (file_ name, nQuantities, quantities): activates the wall surface
probe. Currently up to 9 wall probes are allowed.
file_name specifies the flowsolver file (*.cpr) used to reconstruct the solid surfaces probe.
nQuantities specifies the number of quantities that will be available on the solid surfaces.
quantities is an array of selected values. These quantites distribution on the solid walls will be
saved.
Example:
set_surface_probe_wall("wall.cpr", 3, "PRESSURE", "HYDRODYNAMIC
PRESSURE", "VELOCITY")
l get_surface_probe_iso(id): gets iso-surface probe.
l set_surface_probe_iso(id, file_name, 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.
file_name specifies the name of the flowsolver output file. It should have *.cpr extension.

904 Fine™ Marine 12.1 User Guide


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", "PASSIVE
SCALAR", "TEMPERATURE" or "SOLUTE".
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", "PASSIVE SCALAR", "TEMPERATURE"
or "SOLUTE".
Example: FM.set_surface_probe_iso(1, "iso1_Pressure.cpr", "PRESSURE", 1000, "-")
l set_surface_probe_cut_plane(id, file_, 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.
file_name specifies the name of the flowsolver file. It should have *.cpr extension.
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", "PASSIVE SCALAR", "TEMPERATURE" or
"SOLUTE".
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.
type – denotes cut type:
l "PLANE" for cut planes,
l "ELLIPSOID" for cut ellipsoid,
l "CYLINDER" for cut cylinder,

905 Fine™ Marine 12.1 User Guide


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 file_name .

Example: FM.set_surface_probe_cut(1, "cut1_HydrodynamicPressure.cpr",


"HYDRODYNAMIC PRESSURE", 1, 0, 0, 0, 1, 0, 0, "PLANE", 1, 1)
l get_surface_probe_cut(id): gets the cut surface probe flowsolver file.
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".

Mean flow variables

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 number is describe in the equivalent set function below.
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

906 Fine™ Marine 12.1 User Guide


17 Turbulent viscosity
18 Turbulent viscosity ~
19 Turbulent kinetic energy
20 Turbulent frequency
21 Turbulent dissipation
22 Cavitation fraction
101 Mass fraction
102 Hydrodynamic pressure
103 Viscous stress (fluid to wall)
204 Temperature
205 Solute
212 Passive scalar

Point probes

l get_point_probe(id): returns the Point probe parameters: quantity, body_id, x, y, z.


l set_point_probe(id, quantity, body_id, x, y, z): sets the Point probe.
id - unique identification for the probe
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", "PASSIVE SCALAR", "TEMPERATURE" or "SOLUTE"
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)

907 Fine™ Marine 12.1 User Guide


Optional output variables

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.

34.1.31 Control Variables

Time step

l get_timelaw()
Gets time law.
tlaw, a, b, c ,d = FM.get_timelaw()

908 Fine™ Marine 12.1 User Guide


l set_timelaw(tlaw,a,b,c,d)
Sets time law.
l tlaw=1: "UNIFORM":
a - time step value, b=c=d=0;
l 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;
l tlaw=3: "SINUSOIDAL":
a - average of the time step, b - amplitude, c - period, d - starting time;
l 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;
l tlaw=5: "ADAPTED TO COURANT NB":
a - the Courant number value for free-surface (-1) to deactivate it, b - maximum time step
value, c - The maximum time of the simulation, d - Not used.
l get_courant_number_free_surface_usage()
Returns 1 if the criterion based on overset grids relative motion is activated, 0 else.
l set_courant_number_free_surface_usage(active)
Activates or deactivates the criterion based on overset grids relative motion
active type: Boolean
l set_courant_number_free_surface_value(value)
Sets the target Courant number at the free-surface.
l get_courant_number_overset_usage()
Returns 1 if the criterion based on overset grids relative motion is activated, 0 else.
l set_courant_number_overset_usage(active)
active type: Boolean.
Activates or deactivates the criterion based on overset grids relative motion.
l set_courant_number_overset_value(value)
active type: Boolean.
Sets the target Courant number value for overset grids relative motions.
l get_courant_number_sliding_grid_usage()
Returns 1 if the criterion based on overset grids relative motion is activated, 0 else.

909 Fine™ Marine 12.1 User Guide


l set_courant_number_sliding_grid_usage(active)
Activates or deactivates the criterion based on overset grids relative motion.
l set_courant_number_sliding_grid_value(value)
Sets the target Courant number value for sliding grids relative motions.
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.

Convergence

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_convergence_booster_usage()
l set_convergence_booster_usage(active)
Activates the convergence booster.
active type: Boolean.
l get_convergence_checker_usage()
l set_convergence_checker_usage(active)

910 Fine™ Marine 12.1 User Guide


active type: Boolean.
l stab_int,ave_last,tolerance,check_after,qn,qs = get_convergence_checker_params()
l set_convergence_checker_params(stab_int=None, ave_last=None, tolerance=None, check_
after=None, qs=None)
stab_int type: Real, get/set stability interval parameter.
ave_last type: Real, get/set average last parameter.
tolerance type: Real, get/set tolerance parameter.
check_after type Integer, get/set check after parameter.
qn type: Integer, get length of list of quantities.
qs type: list of String, get/set list of quantities.
Example
FM.set_convergence_checker_usage(1)
FM.set_convergence_checker_params(10, 10, 1, 200, ["Tz","Fx", "Ry"])
l get_transpiration_method_usage()
l set_transpiration_method_usage(active)
active type: Boolean.

Pressure solver

l get_psolver_method()
Returns the active pressure solver method.
l set_psolver_method(methodID)
Sets the active pressure solver method, available are: DYNAMIC_SWITCH, PCGSTAB_MB
and BOOMER_AMG.
l set_psolver_method_params(methodID, method_params)
Sets pressure solver parameters for the given pressure solver method.
l 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.

911 Fine™ Marine 12.1 User Guide


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)

The pressure solver method DYNAMIC_SWITCH has no own parameters and thus get_psolver_
method_params does not support this pressure solver method.

Expert parameters

l get_expert_integer_parameters(name)
Gets expert integer parameters for a given name
l set_expert_integer_parameters(name,length,num,value)

912 Fine™ Marine 12.1 User Guide


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.
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.

913 Fine™ Marine 12.1 User Guide


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".
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.

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:

914 Fine™ Marine 12.1 User Guide


l Entry
l Button
l CheckButton
l List
l ComboBox
l Label
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:

915 Fine™ Marine 12.1 User Guide


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):
... 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.

916 Fine™ Marine 12.1 User Guide


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.
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.

917 Fine™ Marine 12.1 User Guide


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.
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.

918 Fine™ Marine 12.1 User Guide


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.
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".

919 Fine™ Marine 12.1 User Guide


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.

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
#).

920 Fine™ Marine 12.1 User Guide


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):
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):

921 Fine™ Marine 12.1 User Guide


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])
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"

922 Fine™ Marine 12.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. The parameters, if modified by the user, can be brought
back to their default value at any time by means of the Reset to default values button, available on the
top right of the Expert parameters tab.

In this section
35.1 Actuator Disk 924
35.2 Catenary approach 924
35.3 Adaptive Grid Refinement 924
35.4 Sliding grids 930
35.5 Computation Control 931
35.6 Impose Velocity Ramp at Far Field 932
35.7 Information shown in the Task Manager (written in .std file) 933
35.8 Mesh Deformation Technique 935
35.9 Numerical Corrections 937
35.10 Coupling Parameters 939
35.11 Multi-fluid Smoothing 940
35.12 Output Data Management 941
35.13 Projection 944
35.14 Specific Numerical Parameters 945
35.15 Regular and Irregular waves 950
35.16 Modal approach 953
35.17 Temperature and solutal models 953

923 Fine™ Marine 12.1 User Guide


35.18 Overset grids 954
35.19 Roughness 954

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 CATENARY APPROACH

catwayDebug_ Writes comprehensive output of the calculations for the Catway catenary
approach to the computationName.std file at each nonlinear solver iteration.
Default: NO

Enabling this option increases the size of the .std file considerably. Its usage should therefore be
limited to debugging purposes.

35.3 ADAPTIVE GRID REFINEMENT

raffBlockAvg_ Displays average information over all blocks (if NO selected, the information will
be shown per block).
Default: YES
Modified: NO

924 Fine™ Marine 12.1 User Guide


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 Expert parameter can also be 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
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
raffDirectionalDeref_ This parameter allows to perform the cell coarsening in a directional
manner. Except for debugging purposes, this parameter must always be kept activated.
Default: YES
Modified: NO
raffHessianRef_ Controls the reference velocity that is substracted from the local velocity field
for Flux- component Hessian criterion. Can be set to LEGACY (reference velocity is 0),
INFLOW VELOCITY (far-field velocity is used) or BODY VELOCITY (body velocity is
used).
Default: LEGACY
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

925 Fine™ Marine 12.1 User Guide


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.2
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
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

926 Fine™ Marine 12.1 User Guide


raffWriteCrit_ The refinement criterion, including buffer layers, can be written to two output
files named refcr_diag.cpr and refcr_offdiag.cpr. These files are written for the old grid, a copy
of this grid must therefore be saved in order to visualize the refinement criterion. Instead of
activating this parameters, it is recommended to check the ECCS quantity (Estimated converged
cell size) since directly available for Cfview.
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
raffOnlyDeform_Local mesh deformation is performed around each wall node during adaptive
grid refinement steps. This method is much faster and also a bit more robust than the global mesh
deformation.
Default: YES
Modified: NO
CorrectiveMeshOptim_In case the projection creates as invalid cells, a local optimization will be
performed to try to remove them.
Default: YES
Modified: NO
raffConvActivation_ Activates the Refinement convergence criterion. This criterion stops the
adaptive grid refinement if the difference between the reference and comparison average falls
below the tolerance.
Default: NO
Modified: YES
raffConvInterval_ Positive integer parameter. defines the number of mesh adaptation calls
(starting from the last one) used for the reference average.
Default: 15
raffConvSlidWindow_Positive integer parameter. defines the number of mesh adaptation calls
(starting from the last one) used for the comparison average.

927 Fine™ Marine 12.1 User Guide


Default: 5
raffConvTolerance_Real parameter. Should be in range (0;1]. defines the threshold (in %) for
the criterion.
Default: 0.25
raffConditionalFactor_: 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 neighbor
cells is refined as well (thus, refinement is conditional upon a neighbor being refined). The effect
is, that the resulting grid will be smoother; fewer zones appear where cells are alternately refined
and not refined. The current generation of Hessian-based criteria already contains smoothing,
which makes the use of this parameter not necessary and preserved for older version projects.
Default: 1.0
raffConvBuffer_: 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. The aim of this parameter in to keep the free surface in refined cells
at all times.
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.
It is recommended to activate this option only for objects impacting on the free surface and
generating a large free surface deformation (i.e. falling prism tutorial, life boat drop). It is not
recommended for surface piercing propellers where the free surface is smashed into a lot of small
drops.
Default: NO
raffCritCiBaseSm_: 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 layers copying full criterion value , since it has
more or less the same effect.
raffHessianEval_: For all the criteria employing the Hessian matrix calculation, this parameter
becomes available with the given selection of the calculation type:

FIGURE 35.1
Computation of the Hessian matrix

928 Fine™ Marine 12.1 User Guide


Hessian based criteria use the Hessian matrix of the numerical solution whose second derivative
operators are discretised. Approximation of the solution can be built 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 35.2
Cavitation foil computation: SMOOTHED GAUSS (left) and LEAST-SQUARES (right)
applied.

Default: SMOOTHED GAUSS


raffMaxNGenerations_: 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.
Default: 100000

l The initial mesh cannot be coarsened.


l 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.

Default: YES
raffRepetitions_: 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.
Default: 1

929 Fine™ Marine 12.1 User Guide


raffScalProdRefZone_: Activates the angle check only in the regions where the refinement
criterion is non-zero. If a vertical split is created due to the AGR criterion, the scalar product
check will propagate the criterion further, hence reproducing the same split on neighboring cells.
Deactivating this check limitation leads to many more vertical splits at the free-surface location,
causing an increase of 3 to 5% of the computation time due to the higher number of cells.
Default: NO

35.4 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
_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

930 Fine™ Marine 12.1 User Guide


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.5 COMPUTATION CONTROL

Convergence parameters

Convergence booster

l urAdaptIntervals_ Number of periods (nperiod) in which separate values for the under-
relaxation and number of non-linear iterations are specified.
Default: 4
l urAdaptTMin_ Relative start times of the intervals with regard to the acceleration ramp
duration. The start time of the first period is the beginning of the computation. Real array, size
[nperiod-1].
Default: 0.9 1.4 1.9
l urAdaptDeltaItnl_ Reduction of the number of nonlinear iterations per period with regard to
the prescribed number of non-linear iteration. Integer array, size [nperiod].
Default: 3 2 1 0
l urAdaptVelocity_ Under-relaxation for the velocity (Relax_ U, Relax_ V, Relax_ W) per
period. Real array, size [nperiod].
Default: 0.8 0.7 0.6 0.5
l urAdaptPressure_ Under-relaxation for the pressure (Relax_P) per period. Real array, size
[nperiod].
Default: 0.6 0.5 0.4 0.3

931 Fine™ Marine 12.1 User Guide


l urAdaptTurbulence_ Under- relaxation for the turbulence (Relax_ Ake, Relax_ AW) per
period. Real array, size [nperiod].
Default: 0.5 0.4 0.3 0.2
l urAdaptCI_ Under-relaxation for the volume fraction (Relax_Ci) per period. Real array, size
[nperiod].
Default: 0.8 0.7 0.6 0.5

Convergence checker

l ConvergenceCheckerInfo_ Display debug information in the STD file.


Default: YES
Modified: NO

Other

l ComputationMaxTime_ Maximum time of the computation (minutes).


Default: 525600
l LinearSolversComm_ Communication between the blocks for the linear solver.
Default: YES
Modified: NO

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.

932 Fine™ Marine 12.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: TOTAL
Modified: NO, YZ

933 Fine™ Marine 12.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.

934 Fine™ Marine 12.1 User Guide


Default: NO
Modified: YES, YES:COMPLETE
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
jetDebug_ Displays information from the solver to debug the synthetic jets.
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

935 Fine™ Marine 12.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

936 Fine™ Marine 12.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: YES
Modified: NO

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: YES
Modified: NO

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

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.

937 Fine™ Marine 12.1 User Guide


Default: YES
Modified: NO

If no viscous layers have been inserted, automatic computation will give MaxAffectLayer_ = 1.

MinAROfVL_ Minimum aspect ratio of viscous layer when the correction of the mass fraction in
viscous layer is activated.
Default: 2.0

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

938 Fine™ Marine 12.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
AddedMassInfo_ Sets whether information is written in the standard output (.std). Information
contains face flag of the body, concerned DOF, convergence data and the added mass component
at the center of gravity expressed in the body primary configuration, or along the axis of the PIN
join if applicable.
Default: NO
Modified: YES
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

939 Fine™ Marine 12.1 User Guide


AddedMassIluLevel_ ILU level in the pressure solver while solving the pressure field for the
added-mass coefficients calculation.
Default: 1
AddedMassPressureFieldFile_ Saves the pressure field solved for the added-mass coefficients
calculation for each D.O.F into the given file. By default, the saving is not performed.
Default: -
AddedMassConvergenceFile_ Saves the convergence file of the added mass calculations into
the given file; By default, the saving is not performed.
Default : filename_.dat . The output file will be named: filename_ BODYNAME_ dof_
COMPUTED-DOF.dat (COMPUTED-DOF being Tz, or Ry, ...). One file per solved DOF will
be created. Coefficients are displayed as: CM1X CM2X CM3X CM4X CM5X CM6X , X being
an integer corresponding to the DOF computed. The 3 firsts correspond to the Resultants, the 3
others correspond to the Moments.

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

940 Fine™ Marine 12.1 User Guide


MultifluidsSmoothingMethod_ Specifies the method used for smoothing. Default value: 1
corresponds to legacy frozen mass fraction approach; 2 - to momentum damping approach.
.
Default: 2
Modified: 1

35.12 OUTPUT DATA MANAGEMENT

ForcePerFluid_ Allows splitting the output of the forces depending on the local volume fraction
on the solid patches of Fluid 1 and Fluid 2 as defined in the GUI. Force and moment output files
will be created with suffix _fluid_2 for Fluid 2 contributions.
Default: NO

Only two files are created; one with the total forces and moments and one with the contributions of
Fluid 2. The separate contrbutions by Fluid 1 can be calculated by subtracting the values of Fluid 2
from the main eff_* files.

ForcePerFluidMaxCiFFluid2 Determines the threshold value to determine what is considered


as a contribution of Fluid 2. Values of the volume fraction lower than the specified value will be
assumed to be Fluid 2 contributions.
Default: 0.1

941 Fine™ Marine 12.1 User Guide


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

SaveMvtFormat_ Change the output format of the Mvt file.


Default: (e17.10,200e15.7)
Modified: (200e15.7) means 200 values can be outputted on the same line. Each value will be
written in a scientific format and will take 15 characters with 7 digits after the comma. If we write
e17.10 at the front, a first value will take 17 characters with 10 digits after the comma (this is done
for the variable time in the standard output file). Hence, one can always fine tune the output of
this file. For instance, with (200g15.7), the output will be a number without the scientific format:
67.24800 115.6550 -0.2713779 0.3663643E-02 1.773000
instead of this default output:
0.6721600E+02 0.1155982E+03 -0.2713781E+00 0.3663493E-02 0.1773000E+01

942 Fine™ Marine 12.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

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)

TravellingShot_ Defines the travelling shot parameters for the 6 degrees of freedom (Tx, Ty, Tz,
Rz, Ry, Rz) of the reference body defined by TravellingShotBody_.
Default: 1 1 1 1 1 1

TravellingShotBody_ Defines the body of reference for the travelling shot options. During the
default reconstruction of the solution, the camera will be adjusted in function of these parameters.
One can either modify these default parameters or change them in the reconstruction menu while
pressing on the CFView icon as described in the chapter "Traveling Shot" (p. 744).
Default: 0

3dOutputSaving_ Allows to control saving of 3D outputs. When the parameter value is set to
NO, no volume data will be saved at the end of the computation. Only surface probes will be
saved, minimizing the disk space usage. Note that it will not be possible to run a restart from a
computation with this parameter set to NO.
Default: YES
Modified: NO

943 Fine™ Marine 12.1 User Guide


thirdPartyPostProc_ Creates output file for Tecplot and CGNS format.
Default: NO
Modified: YES

DynPressOutputWithFS_ New method to calculate the hydrodynamic pressure formula.


Default: YES
Modified: NO

Old method: the fluid type is defined by the position relative to the initial regardless of the value
of the mass fraction.
(1)

(2) with the mass fraction

(3) when

(4) when

New method: the fluid type is determined by the flow field, equations (3) and (4) are unnecessary.

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

944 Fine™ Marine 12.1 User Guide


35.14 SPECIFIC NUMERICAL PARAMETERS

Evaluation of the gradient

gradEvaluation_ Gradient evaluation methods. The following strings can be entered as well as
the corresponding integer
Default: 1 - "GAUSS METHOD + CORRECTIONS"
Modified:
l 2 - "STANDARD LEAST SQUARE"
l 3 - "LEAST SQUARE + WEIGHTING"
l 4 - "GAUSS METHOD - CORRECTIONS"
l 5 - "LEAST SQUARE + WEIGHTING + GAUSS"

Interpolation schemes

ExpInterpCont_ Interpolation scheme for continuity equation.


Default: WEIGHTED MEAN
Modified: STANDARD MEAN

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

945 Fine™ Marine 12.1 User Guide


Limiters

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

RegMutLimModel_ Limiter of turbulent viscosity.


Default: NO
Modified: YES

Multi-fluid corrections

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.
Default: YES

946 Fine™ Marine 12.1 User Guide


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

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

Diagonal dominance

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]

947 Fine™ Marine 12.1 User Guide


diaDomVel_ Diagonal dominance of the momentum equations.
Default: 50
Range: [0,100]

diaDomCav_ Diagonal dominance of the cavitation fraction equations


Default: 0
Range: [0,100]

Discretization schemes

disCiBetam_ Coefficient used in mutli-fluids for the discretization scheme GDS.


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

948 Fine™ Marine 12.1 User Guide


disVelOrder_ Order in the momentum discretization.
Default: 2
Modified: 1

Transition

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

Velocity field initialization

InitVelField_ The solver always needs to have information about the initial velocity field in the
farfield to initialize the velocity correctly at the concerned boundaries. There is one specific case
where this initialisation is not defined in the Boundary Condition menu. It is the case for crossing
ships defined with sliding domains: some boundary conditions are not connected to any block.
Hence, this parameter allows to define the velocity on these cells. The parameter is present in the
.sim file only if _SLI_int_bcs_discF = 10. Besides, when _SLI_int_bcs_discF is changed to 10,
InitVelField_ is switched to 0 0 0 automatically.
Default: 1e+20 1e+20 1e+20

Others

gravAddStarPress_ Add the gravity to starred pressure.


Default: NO

949 Fine™ Marine 12.1 User Guide


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

OversetMinInterCoeff_ By default, a second-order interpolation scheme is used to interpolate


between overlapping grids. When the mesh sizes differ between the overlapping cells, the second-
order scheme can destabilize the computation and a switch to a distance-weighted (first-order)
interpolation scheme is required to stabilize the computation. The expert parameter controls the
behavior by setting a threshold value below which locally the interpolation will be performed
using the distance- weighted scheme. The increased stability, understandably translates to a
reduced accuracy of the interpolated values between both grids. Decreasing the value to -0.05
could be seen as a lower limit to maintain a correct propagation of the flow solution accross
overset interfaces and maximize stability. On the other end, specifying a value of -0.2 maximizes
the accuracy of the solution propagation at a minimum level of stability.
Default: -0.1

35.15 REGULAR AND IRREGULAR WAVES

General parameters

l 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
l irrSaveSpectrum_ For all spectra other than the User-defined, the wave component data can

950 Fine™ Marine 12.1 User Guide


be saved to an output file:
l "spectrumname_output.dat" for wave generator from boundary
l "spectrumname_iwg_output.dat" for wave generator from Internal wave generator
The spectrum name is defined automatically.
Default: NO
l waveGenerationMethod_ Specifies the wave generation method used and thereby gives
access to the legacy Stokes method of generating waves.
Default: FSD
Modified: Stokes
l waveGenerationStokesOrder_ Allows specifying the order for the Stokes wave
approximation when the legacy Stokes method is used.
Default:3
Default:1,2

This setting is only taken into account if waveGenerationMethod_ is set to "Stokes".

l FSDTerms_ Specifies the number of terms used for the Fourier series decomposition for the
FSD wave generation method.
Default:5
Modified:5-30
l FSDSteps_ Specifies the number of steps used for the Fourier series decomposition for the
FSD wave generation method.
Default:1
Modified:2-4
l FSDDebug_ Displays debugging information for the FSD decomposition.
Default:NO
Modified:YES

Parameters for wave generator from boundary

l irrFreqNo_ Constant number of frequencies in the wave generator. If left the default value,
will generate 991 number of frequencies.
Default: 0
l irrMinMaxFreq_ Minimum and maximum frequency of the wave generator.

951 Fine™ Marine 12.1 User Guide


Default: 0.0 0.0
l irrRandSeed_ Produces 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
l bcWaveObliquePropagation_Allows specifying x- and y-direction of the normal vector for
the wave propagation when the legacy Stokes method is used.
Default:0 0

This setting is only taken into account if waveGenerationMethod_ is set to "Stokes".

Parameters for Internal Wave Generator (IWG)

l internalWaveIrrFreqNo_ Constant number of frequencies in the wave generator. If left the


default value, will generate 991 number of frequencies.
Default: 0
l internalWaveIrrMinMaxFr_ Minimum and maximum frequency of the wave generator.
Default: 0.0 0.0
l internalWaveIrrRandSeed_ Produces 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
l internalWaveDebug_ Displays debugging information for the internal wave generator
Default:NO
Modified: YES
l internalWaveDualPropagation_ Enables the bi- directional wave propagation when the
legacy Stokes method is used.
Default:NO
Modified: YES

This setting is only taken into account if waveGenerationMethod_ is set to "Stokes".

952 Fine™ Marine 12.1 User Guide


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. When using multi-domain with overset and deformable external
boundaries for the domain around the flexible body, where the mesh around it is less extended,
the values (2.0 0.9) enable to have large displacements for a beam-like body clamped at one tip.
Default: 0.8 0.7

35.17 TEMPERATURE AND SOLUTAL MODELS

Temperature model

tempDebug_ Indicates whether additional outputs about temperature model are written in the .std
file
Default: NO
Modified: YES
tempRes_ Indicates whether temperature residuals are written in the .std file
Default: NO
Modified: YES
diaDomTemp_ Value in percents of diagonal dominance to consider for solving the linear
system
Default: 50.0
Modified: Real

Solutal model

soluteDebug_ Indicates whether additional outputs about solute model are written in the .std file
Default: NO
Modified: YES

953 Fine™ Marine 12.1 User Guide


soluteRes_ Indicates whether solute residuals are written in the .std file
Default: NO
Modified: YES
diaDomSolut_ Value in percents of diagonal dominance to consider for solving the linear system
Default: 50.0
Modified: Real

35.18 OVERSET GRIDS

raffOversetMaxAspectRatio_ Controls and limits the maximum aspect ratio of the cells
generated using the overset criterion for adaptive grid refinement. The value has to be of type float
and bigger than 1.0. The default value of 4.0 can be decreased to 2.0 to ensure an ideal aspect
ratio for overset interpolation, slightly increasing the number of cells.
Default: 4.0

35.19 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

954 Fine™ Marine 12.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 marine121 -print OR tool_namemarine121 -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.

955 Fine™ Marine 12.1 User Guide


In this section
36.1 Export from Rhinoceros® 957
36.2 Simulation Setup 982
36.3 Pre-processing Tools 998
36.4 Boundary Conditions Manipulation 1000
36.5 Mesh Manipulations 1000
36.6 Conversions 1002
36.7 Mesh Partitioning 1003
36.8 Post-processing Tools 1006

956 Fine™ Marine 12.1 User Guide


36.1 EXPORT FROM RHINOCEROS®

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
Three applications are available for export:
l Hull
l Open or ducted propeller for open water,
l Hull + propeller for sliding grid

The plug-in is available under license. To upgrade your license, please contact your local software provider or
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.

The plug-in is compatible with Rhinoceros® 5 (64-bits), Rhinoceros® 6 and Rhinoceros® 7.


Rhinoceros® 5 (64-bits) should be used with at least Service Release 13 (SR13).

The following requirements need to be fulfilled before launching the plug-in:

957 Fine™ Marine 12.1 User Guide


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 one of the following:
l a Closed poly-surface: no naked edges.
l a series of named layers which become a closed poly-surface when joined.

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.
l Hulls with appendages or propeller need to be merged into one single closed poly-surface.
Those limitations do not apply for a ducted propeller.
l Zero thickness 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. It is not
compatible with the hull + propeller (sliding grid) mode.

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.
l Start Rhinoceros®, the Fine Marine menu is now available on the top bar of the Rhinoceros®
interface.

958 Fine™ Marine 12.1 User Guide


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.

The plug-in is compatible with Rhinoceros® 5 (64-bits), Rhinoceros® 6 and Rhinoceros® 7.


Rhinoceros® 5 (64-bits) should be used with at least Service Release 13 (SR13).

36.1.2 Export STL only

This mode helps exporting a clean geometry from Rhinoceros® to Hexpress using the STL
format in a few minutes.
The export process performs the following steps:
l Checking the geometry quality;
l Preparing the domain according to the desired application;
l Triangulating the geometry;
l Naming the patches;
l Exporting in a single STL file.
When launching the plug-in, the user will be asked to choose for which application the domain
should be prepared:
l Hull (see "Export for hull" (p. 966))
l Propeller for open water (see "Export for propeller" (p. 970))
l Hull & propeller (see "Export hull and propeller" (p. 973))
This page describes the general process for all applications, more details on each type of export
are given in the next pages.

959 Fine™ Marine 12.1 User Guide


A. General 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
there).
l The input geometry needs to be one of the following
l a Closed poly-surface: no naked edges.
l a series of named layers which become a closed poly-surface when joined
Check the next section for more details.
l Important information is written in the Rhinoceros® console, please widen it. Information
written by the plug in starts with " > ".
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 _#.

To exit the plugin during the process press Esc three times.

Current limitations:
l The plug-in is limited to one single body as an input.
l Hulls with appendages or propeller need to be merged into one single closed poly-surface.
l Zero thickness surfaces in the geometry definition cannot be managed by the plug-in.

B. Patch naming

One of the main advantages of the plug-in is to be able to export a colored STL (with names).
Two options are available:

Give names during the export process

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. 162)).
If two patches are selected at the same time, they will be merged together, which leads to a
few rules to follow:

960 Fine™ Marine 12.1 User Guide


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.
l Pay attention if two patches are separated with a very thin patch!
l If two patches should not be merged they can still have the same name by selecting them in
two times. In that case the recorded name will get an incremented index _# (e.g. Deck_1 and
Deck_2).

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 will automatically start.

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.

Use existing names in the geometry

In this case the names already present in the 3dm file will be used in the export.

961 Fine™ Marine 12.1 User Guide


FIGURE 36.2
Names from surfaces mode of the plugin.

Requirements:
l Separate the surfaces of the body in different layers with the names to be used.
l These layers need to be visible.
l The layers can contain surface or mesh instances.
l When the "join" tool is applied on the separate layers a closed poly-surface must be created.
l The Geometry analysis tool cannot be used as it will detect the geometry is not a closed poly-
surface.

Recommended checks before launching the plugin in this mode:


l If starting from surface:
a. Mesh the input surfaces with the parameters that will be used
b. Join the meshes
c. Conformalize the joined geometry mesh using MatchMeshEdge
d. Try performing the MeshSplit command to split the domain box mesh using
the joined geometry mesh as a cutting object
e. The domain box mesh should be splitted
l If starting from meshes:
a. First duplicate the input meshes
b. Perform the steps above starting at point b)

l If the plugin detects several layers in the project, it will prompt:


> Name From Surface (NFS) detected. Do you wish to use this feature? (Yes, No)
Answer Yes to continue the export using the existing layer names.
l If the starting point are surface items the user will need to select the desired mesh density for
each layer.

It is recommended to use the Polygon mesh “Detailed controls” and adapt the minimum edge length
and maximum distance, edge to surface values to ensure the mesh is fine enough for each surface.

962 Fine™ Marine 12.1 User Guide


FIGURE 36.3
Example of triangulation settings for one layer.

C. Export and use

At the end of the export process a single file will be created.


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:

FIGURE 36.4
Import of the STL inside the C-Wizard

963 Fine™ Marine 12.1 User Guide


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.5
Import procedure in Hexpress keeping the names

D. Input file

When running the plugin the parameters used are stored in an .input file. Template input files for
hull, propeller and hull + propeller can be found in finemarine121/_data/Script.
Using an input file with the plug-in gives access to the following additional features:
l Run the plug-in with minimal manual input from the user.
l Define user-defined domain size
l Define a dedicated list of patch names.
l Define all triangulation settings.

The input files should respect the template format.

964 Fine™ Marine 12.1 User Guide


The input file name needs to start by "rhino" and have extension .input to be detected.

When using the plug-in in interactive mode an input file with the settings used will be saved next
to the geometry.
When launching the plug-in if one or more input files are detected next to the geometry a pop-up
window will be open to propose to use them:

FIGURE 36.6
Input files detected

Select one of the existing input files or choose Create a new setting file to work in interactive
mode.
The following sections are present in all input files:
l FINE/Marine version: if Export and open HEXPRESS TM or Export and launch C-
Wizard are used this is the version of the software that will be launched.
l FINE/Marine project name: if Export and open HEXPRESS TM or Export and launch
C-Wizard are used this will be the name for the project created.
l Application: 0 for hull, 1 for propeller, 21 for hull + propeller sliding grid.
Advanced parameters:
l Mesh settings: minimum edge length, maximum distance edge to surface, maximum angle,
density, maximum aspect ratio, maximum edge length, minimum initial grid quads.
l Personalized patch name list: this list of names will be proposed instead of the default one
when naming the patches.

965 Fine™ Marine 12.1 User Guide


More details on the format of the input file for each application in the next pages.

E. References

[1] https://www.rhino3d.com/
[2] https://wiki.mcneel.com/rhino/booleanfaq
[3] https://wiki.mcneel.com/rhino/meshfaq

F. Export for hull

This application prepares a hull domain for resistance, seakeeping or planing regime
computations.

Requirements

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 In case of export in half-body configuration, only the port-side is exported. For instance for
catamarans, the port-side hull should be present.
l The input geometry needs to be centered in Y = 0.

Workflow

Domain creation

The plug-in is applying the Fine Marine guidelines concerning the recommended domain size (see
the Resistance Domain size guidelines) using the answers provided at the following questions:
1. Do you want to perform a Mono-fluid or Multi-fluid computation?
a. If Mono-fluid is chosen: Which fluid would you like to compute? (WATER or AIR)
b. Enter the location of the free surface: z coordinate of the free surface in meters.
The domain will be cut at the free surface location. If the fluid to compute is AIR the domain
will be built from the free surface up; if it is WATER from the free surface down.

The free surface can cut the geometry.

966 Fine™ Marine 12.1 User Guide


2. 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.

3. 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.

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.
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 [1]. If a
displacement has been performed, the information is reported in the Rhinoceros® console.
With both methods the user is requested to check and adjust the triangulation density if needed.

If none of the methods can achieve the Boolean operation, one should reconsider the input geometry.

Triangulation of the geometry

The user can control the triangulation density in the following pop-up menu.

967 Fine™ Marine 12.1 User Guide


FIGURE 36.7
Mesh settings in full body configuration

The meaning of each parameter is given in the Rhinoceros® meshing FAQ [2]. 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.

Patch naming

See the "Export STL only" (p. 959) page only for more information.
The following patch names are proposed by default for the hull application: Deck, Transom,
Skeg, Bulb, Shaft, Keel, Rudder, Rail and Hull.
Once the last patch is entered, the following step is automatically starting.

968 Fine™ Marine 12.1 User Guide


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.

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.

Input file

The template input file for hull applications can be found in: 121/_data/Script/rhino_hull.input.
The input file contains the following sections dedicated to hulls:
l Body configuration: 1 for half body, 0 for full body
l Speed definition: maximum speed in m/s.
l Domain size: 0 for automatic, 1 for user defined. If user defined it is a box defined in terms of
number of reference lengths above, before, behind below and to the side of the body.
l Fluid model: 0 for mono-fluid, 1 for multi-fluid. If mono-fluid is chosen the fluid to be solved
should be defined (AIR or WATER) and the free surface Z coordinate in meters.
Advanced parameters:
l Boolean operation method : 1 for Mesh + MeshBooleanDifference or 2 for
BooleanDifference + Mesh as described in the section Boolean operation.

References

[1] https://wiki.mcneel.com/rhino/booleanfaq
[2] https://wiki.mcneel.com/rhino/meshfaq

969 Fine™ Marine 12.1 User Guide


G. Export for propeller

This application prepares a propeller domain for open water computations.

Requirements

The following requirements need to be fulfilled before launching the plug-in:


l The geometry needs to contain a shaft long enough to cross the domain
l Geometry should be oriented along the X-axis
l Flow coming from +X to -X

Workflow

Domain creation

The plug-in is applying the Fine Marine guidelines concerning the recommended domain size for
open water computations: the domain is a cylinder with 4 propeller radius upstream of the
propeller center, 12 propeller radius downstream and a radius equal to 6 propeller radius.
The user needs to answer the following questions:
1. Enter coordinates of the propeller center (in meters, format 1.0,0.0,0.0). The default value is
0.0,0.0,0.0
2. Please enter the radius of your propeller (strictly positive, in meters). This information will be
used to define the domain size.

In case of a ducted propeller, the Rhino plugin will pop up the following warning message:

970 Fine™ Marine 12.1 User Guide


As explained by this message, the user can click on Yes and proceed normally to the export process.
For more information about the Geometry Analysis tools embedded in the Rhino plugin, please
refer to Geometry analysis section.

Triangulation of the geometry

The plug-in will propose a first triangulation of the geometry based on its dimensions and ask if
the triangulation is fine enough.
If the user answers No the following window will pop-up to define the desired triangulation:

971 Fine™ Marine 12.1 User Guide


FIGURE 36.8
User defined mesh settings.

The meaning of each parameter is given in the Rhinoceros® meshing FAQ [1]. 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.

Patch naming

See "Export STL only" (p. 959) page for more information.
The following patch names are proposed by default for the propeller application: Shaft, Cap,
Blade, Pressure_side, Suction_side, Leading_edge, Trailing_edge, Fillet, Tip.

972 Fine™ Marine 12.1 User Guide


In case of a ducted propeller, all surface patches of the duct must be named Duct. Hence the
C-Wizard will create a second body Duct during the project setup, more information in Open
water application.

Export and use

The export process will now begin. At the end, a single file will be created. The file will be
named as follows:
l filename_ow.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.

Input file

The template input file for propeller open water applications can be found in: 121/_
data/Script/rhino_propeller.input.
The input file contains the following sections dedicated to propellers:
l Center of the propeller: in meters, format 0.0 0.0 0.0
l Propeller radius: in meters.
l Propeller domain size : 0 for automatic, 1 for user- defined. If user- defined the domain
cylinder is defined in number of propeller radius in Upstream, Downstream and Radius.
Format: 4.0 12.0 6.0.

References

[1] https://wiki.mcneel.com/rhino/meshfaq

H. Export hull and propeller

This application prepares two domains: one for the hull and one for the propeller to run a
computation with sliding grids. The hull domain will have a cylindrical space where the propeller
domain will fit.
This mode of the plug-in works in two parts: SG - Hull and SG - Propeller that need to be
launched sequentially to complete the full process.

973 Fine™ Marine 12.1 User Guide


Requirements

l The geometry needs to be closed and include hull, shaft and propeller.
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 In case of export in half-body configuration, only the port-side is exported. For instance for
catamarans, the port-side hull should be present.
l The input geometry needs to be centered in Y = 0.

Current limitations:
l No ducted propeller and no intersection between sliding domain and boat.
l The shaft needs to be present.
l The sliding grid mode is not compatible with C-Wizard export mode.
l A the end of one export the user is always advised to perform the other mode. The plug-in
does not know if first domain has already been created or not.
l Only one sliding grid can be defined in the ship domain. As a consequence, in full body
configuration there can only be one propeller. To define a two propellers configuration,
half body configuration must be used.

Workflow

Domain creation

Once the Hull + Propeller (SG) option is chosen, the workflow will be as follows.
1. Selection of the object to export (Hull or Propeller),

Both steps will need to be performed sequentially, the order is indifferent. Starting from hull or
from propeller the same inputs will need to be given.

2. Propeller center and direction,


3. Sliding grid thickness and radius,

974 Fine™ Marine 12.1 User Guide


4. Selection of the fluid model type: Mono-fluid or Multi-fluid, the fluid itself and the free surface
position,

The domain will be cut at the free surface location. If the fluid to compute is AIR the domain will
be built from the free surface up; if it is WATER from the free surface down.

The free surface can cut the geometry.

5. Body configuration: half or full body,

If the propeller is placed in the mirror plane full body computation should be chosen. If the
geometry contains two symmetrical propellers half body computation should be chosen.

6. Highest boat speed of the future computation to compute the domain size.

The triangulation will be performed in the same way as in the hull application.

Boolean operation

Please check the Boolean operation section from "Export for hull" (p. 966) chapter for more
information.

Triangulation of the geometry

One can check the recommendations from "Export for hull" (p. 966) and "Export for propeller"
(p. 970) for more information. On top of them, it is advised to use the finest triangulation of the 2
domains for both domains. Most of the times, the propeller requires the finest triangulation and
hence, it is advised to start the process with the propeller first. Indeed, since the plugin will
remember the first choice of the triangulation (saved into the input file), the same triangulation will
be applied on the second domain.

Patch naming

See "Export STL only" (p. 959) page for more information.
The following patch names are proposed by default for the sliding grid application.

975 Fine™ Marine 12.1 User Guide


l For the hull domain: Deck, Transom, Skeg, Bulb, Shaft. Keel, Rudder, Rail, Hull, SG_
inlet, SG_outlet, SG_side.
In both domains SG_inlet, SG_outlet and SG_side should be used for the patches of the cylinder
that will surround the propeller.

FIGURE 36.9
Example hull domain in SG application.

l For the propeller domain: Shaft, Cap, Blade, Pressure_side, Suction_side, Leading_edge,
Trailing_edge, Fillet, Tip, SG_inlet, SG_outlet, SG_side.

976 Fine™ Marine 12.1 User Guide


FIGURE 36.10
Example propeller domain in SG application.

After all patches have been named the domain will be exported.

Second domain

At this point the plug-in will display the following information:


Your file has been successfully created: <path_to_geometry>\C1_SG_fb.stl
> Input file rhino_C1_SG.input has been created
> Sliding grid setup in Hull mode. To complete the process, 2 options are possible:
> * Relaunch the plugin directly using the input file created: C1_SG.input
> * Relaunch the plugin using the Sliding Grid Propeller mode
> End of script.
Launch the plug-in again from the Fine Marine menu and choose the same mode as for the first
domain. The plug-in will propose to use an input file where the data entered in the first part has
been stored:

977 Fine™ Marine 12.1 User Guide


FIGURE 36.11
Example hull domain in SG application.

l If the proposed input file is selected the only inputs requested will be triangulation density and
patch names. This is the recommended option as it will make sure both domains match
perfectly.
l If Create a new settings file is chosen all inputs listed in the previous section will need to be
given again. Be careful to use the same geometrical definitions.

Export and use

At the end of the process two stl files will have been created:
l filename_SG_hb/fb.stl
l filename_SG_ow.stl
Both files can now be properly imported in Hexpress.

Input file

The template input file for hull + propeller (sliding grid) applications can be found in: 121/_
data/Script/rhino_sg.input.
The input file contains the following sections:
Hull:

978 Fine™ Marine 12.1 User Guide


l Body configuration: 1 for half body, 0 for full body
l Speed definition: maximum speed in m/s.
l Domain size: 0 for automatic, 1 for user defined. If user defined it is a box defined in terms of
number of reference lengths above, before, behind below and to the side of the body.
l Fluid model: 0 for mono-fluid, 1 for multi-fluid. If mono-fluid is chosen the fluid to be solved
should be defined (AIR or WATER) and the free surface Z coordinate in meters.
Propeller:
l Center of the propeller: in meters, format 0.0 0.0 0.0
l Propeller direction: vector with the shaft direction, pointing to the wake. For example for a
shaft with 30 degrees inclination: -0.866 0.0 -0.5.
l Propeller thickness: sliding grid domain thickness, in meters.
l Sliding grid domain radius: in meters.
Advanced parameters:
l Boolean operation method : 1 for Mesh + MeshBooleanDifference or 2 for
BooleanDifference + Mesh as described in the section Boolean operation in Export for hulls.

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. 959) 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.

979 Fine™ Marine 12.1 User Guide


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. 959) 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.

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 _#.

Versions from 7.2rc of the plugin need to be used with the C-Wizard from Fine Marine 7.2rc
or later. The C-Wizard does not ensure the forward compatibility.

Propeller + hull (sliding grid) is not compatible with the export and launch C-WIzard mode.

980 Fine™ Marine 12.1 User Guide


36.1.5 Geometry analysis

This tool allows the user to check if the geometry is ready for the Fine Marine export. If any
problems are detected they will be listed together with possible solutions.
The following checks are performed:
l Layer name: the main layer name cannot start with 'EXPORT_'.
l Block instances: the object is not a block instance, which would not work with the plugin.
l Bad surfaces: the object does not contain bad surfaces.
l Count the number of polysurfaces: the plugin needs a single closed polysurface.
l Naked edges: the object does not contain naked edges meaning that it is closed.

FIGURE 36.12
Example result of Geometry analysis.

981 Fine™ Marine 12.1 User Guide


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.

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.

982 Fine™ Marine 12.1 User Guide


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.13
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.

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

983 Fine™ Marine 12.1 User Guide


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 (to be preferred in
general for ships)
l Estimated center of gravity with respect to the entire body volume (interesting for icebergs
for instance since mass repartition is very homogeneous in the volume)
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 Lenght at the waterline: Lwl
l Breath at the waterline: Bwl
l Primastic coefficient: Cb
l Center of flotation: X(Cof) Y(CoF) Z(CoF)
l Longitudinal and transverse second moment of inertia of the waterplane area: IL IT
l Longitudinal and transverse metacentric radius: BML BMT
l Longitudinal and transverse height: GML GMT
l Longitudinal and transverse vertical component of the metacenter: KML KMT
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

984 Fine™ Marine 12.1 User Guide


l Cardan angles (Yaw Rz0, Pitch Ry1, Roll Rx2 in final position (deg.))
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) (to be
preferred in general for ships)
l Estimated inertia tensor with respect to the entire body volume: I(CoG)|(x,y,z) (interesting
for icebergs for instance since mass repartition is very homogeneous in the volume)
l Lenght at the waterline: Lwl
l Breath at the waterline: Bwl
l Primastic coefficient: Cb
l Center of flotation: X(Cof) Y(CoF) Z(CoF)
l Longitudinal and transverse second moment of inertia of the waterplane area: IL IT
l Longitudinal and transverse metacentric radius: BML BMT
l Longitudinal and transverse height: GML GMT
l Longitudinal and transverse vertical component of the metacenter: KML KMT

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:

985 Fine™ Marine 12.1 User Guide


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

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.

986 Fine™ Marine 12.1 User Guide


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 marine121 -print <-arg1=> ... <-arg2=> ...
In Windows OS:
C:\...\finemarine121\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.
The output will printed in the shell but also stored into a file with the name of 'projectname_
domhydro_mode_b#.out'. (mode can be h2p, p2h or hip).

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.

987 Fine™ Marine 12.1 User Guide


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
-list_patches= : list of pairs bloc index: patch index separated by comma
-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)

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/release degrees of freedom

-noroll : to freeze roll (X2-rotation) or -roll : to release roll (X2-rotation)

988 Fine™ Marine 12.1 User Guide


-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
- 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

This function determines the forces and moments to apply to a body to reach a user-defined
additional modification of orientation. For instance, it calculates the forces and moments
associated with a roll angle of 2 degrees.
It requires the following information.
-vfs= : free surface location (real), default = 0.000000E+00 m
-Pref= : Xref,Yref,Zref coordinates of the reference point (reals)

989 Fine™ Marine 12.1 User Guide


Additional modification of orientation to apply (deg.)

l -extra_roll= : Roll angle (X2-rotation) (real)


l -extra_pitch= : Pitch angle (Y1-rotation) (real)
l -extra_yaw= : Yaw angle (Z0-rotation) (real)
l -extra_heave= : Heave value (Z0-translation) (real)

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.

990 Fine™ Marine 12.1 User Guide


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.
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:

991 Fine™ Marine 12.1 User Guide


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.
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.14
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:

992 Fine™ Marine 12.1 User Guide


FIGURE 36.15
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.

993 Fine™ Marine 12.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.2.6 WaveReg_FSD

WaveReg_FSD is a standalone tool to evaluate the results of the Fourier Series Decomposition
(FSD) for almost any monochromatic and regular waves in finite or deep water conditions. It also
generates ASCII files that can be used for plotting kinematics and wave elevation corresponding
to the decomposition as it will be used in the flow solver. The behavior of the tool is exactly the
same as what happens in the flow solver.

994 Fine™ Marine 12.1 User Guide


Location

<INSTALLATION FOLDER>/_data/Script

Usage

Linux: WaveReg_FSDx86_64 [<input.dat [>output.dat]] [-arguments]


Windows: WaveReg_FSD.exe [<input.dat [>output.dat]] [-arguments]
where input.dat may contain data to be read, output.dat the listing.
The input parameters are:
l Intensity of the gravity
l Water density
l Depth case: 'deep' or 'finite'
l Wave input: 'period' or 'wavelength'
l Current criterion: 'no current', 'stokes' or 'euler'
l no current
l stokes
l Vertically integrated mean transport(Stokes) velocity is the current magnitude in
m/s, assuming an average current speed integrated on the water column
l euler
l Eulerian time-mean velocity is the current magnitude in m/s, assuming a constant
uniform current speed for the water column
l Number of terms in the Fourier series to accurately define the wave shape. Unless -noauto
argument is prescribed, the solver will search for the optimal number of FSD terms.
l Number of steps in wave height is the number of steps in the iterative process. It can be kept
to 1 for the simplest waves and augmented to 10 for highly non-linear waves.

Arguments

-debug: will provide many additional information in case of issues


-noauto: to prevent optimal search of the number of FSD terms, and keep the input data

Input file example

9.81 # Intensity of the gravity


998.4 # Density of the water ?
finite # Depth case: 'deep' or 'finite' ?

995 Fine™ Marine 12.1 User Guide


10.0 # Depth ?
1.0 # Wave height
period # Wave input: 'period' or 'wavelength' ?
31.92754284 # Period
no current # Current criterion: 'no current', 'stokes' or 'euler' ?
5 # Number of terms in the Fourier series?
1 # Number of steps in wave height?

Output example

Generated files

The tool generates three .dat files that can be visualized as a graph:
l wave_x0_y0_t.dat: shows t, u, v, p, eta at fixed (x0,y0) -> function of time
l wave_x_y0_t0.dat: shows x, u, v, p, eta at fixed (t0,y0) -> function of space in axial direction

The file wave_x0_y_t0.dat describes u, v and p as function of space in the vertical direction. Its
interest is limited.

With:
l t: time
l x: axial direction
l y: vertical direction
l u: axial velocity
l v: vertical velocity
l p: pressure
l eta: wave elevation

996 Fine™ Marine 12.1 User Guide


FIGURE 36.16
wave_x0_y0_t.dat: Wave elevation and velocity profiles as function of time for a given (x0,y0)
position

Script standard output

REGULAR FSD WAVES


-----------------
Number of terms : 14
Number of steps : 1
Finite depth : 0.100000E+02
Wave height : 0.100000E+01
Current case : no current
Current magnitude : 0.000000E+00
Wave period : 0.319275E+02 (prescribed)
Wave length : 0.320664E+03 (computed)
Wave direction [d] : 0.000000E+00
Angular Wavenumber : 0.195943E-01
Angular frequency : 0.196795E+00
Phase shift [rad] : 0.962290E+00
Wave celerity : 0.100435E+02
Wave steepness ka : 0.979714E-02
Wave steepness H/l : 0.311853E-02
H/g.T^2 : 0.100000E-03
d/g.T^2 : 0.100000E-02
Ursell number H.l^2/d^3 : 0.102826E+03
Fourier coefficients:
1: 0.163892E-01 2: 0.484865E-02 3: 0.158721E-02 4: 0.528631E-03 5: 0.176640E-03
6: 0.587753E-04 7: 0.193467E-04 8: 0.625921E-05 9: 0.197656E-05 10: 0.604043E-06
11: 0.176443E-06 12: 0.482704E-07 13: 0.122899E-07 14: 0.242571E-08
Min and Max of the kinematics and wave elevation
Axial velocity : Min=-0.232919E+00 Max= 0.770701E+00
Vertical velocity : Min=-0.203057E+00 Max= 0.203058E+00
Wave elevation : Min=-0.226523E+00 Max= 0.773477E+00

997 Fine™ Marine 12.1 User Guide


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
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:

998 Fine™ Marine 12.1 User Guide


Version 2.1
NUMBER_OF_BLOCKS 1
body_name
000
1
Unknown
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.

999 Fine™ Marine 12.1 User Guide


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).

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.

1000 Fine™ Marine 12.1 User Guide


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.
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)

1001 Fine™ Marine 12.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)

1002 Fine™ Marine 12.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:

1003 Fine™ Marine 12.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.

1004 Fine™ Marine 12.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.

1005 Fine™ Marine 12.1 User Guide


36.8 POST-PROCESSING TOOLS

36.8.1 eff_change_frame.py

This tool projects the forces applied on any body onto the frame of another body. This python
script is provided in the Fine Marine installation folder, in finemarine#/_data/Script/ directory, it
should be copied and executed in the considered computation folder.
How to launch the tool:
l LINUX
finemarine121 -batch -script eff_change_frame.py -print
l WINDOWS
From a terminal or a .bat file:
NUMECA_INSTALLATION\finemarine121\bin64\fine_marinex86_64.exe -batch -script
eff_change_frame.py -print
The following arguments can be specified. If not present, they will be requested interactively:
l -h, --help: display the tool arguments,
l -eff_body_name: name of the body or sub-body whose efforts need to be converted,
l -frame_body_name: name of the frame body to be used as new reference frame,
l -subbody: "yes" to include all the sub-bodies in the selected body in the conversion or "no",
l -save: "all" to include pressure and viscous efforts separately, "sum" to convert the total force
pressure + viscous.
Once executed, a result file, named eff_body_frame.dat, is written is the computation directory.

The frame R0_following_body, automatically proposed by the tool as reference frame for computing
the forces, is a frame composed of the reference point of the body and the Earth axes.

Example of result file

"TITLE = fluid force on Propeller w.r.t frame Vessel "


VARIABLES = "T","Fx(Propeller)","Fy(Propeller)","Fz(Propeller)","Mx(Propeller)","My
(Propeller)","Mz(Propeller)"

1006 Fine™ Marine 12.1 User Guide


1.00000000e-02 -6.27959855e+01 -3.61874140e+01 1.24938794e+01 3.70973604e+00 -
6.21052674e-01 -2.84474444e+01
2.00000000e-02 8.06677753e+00 4.76575502e+00 -2.12249607e+00 -2.51685773e-01
9.95117878e-01 3.71016820e+00

During the simulation, the forces must be output in the Global frame of reference to be able
to use this tool (see "Motion and Force Variables" (p. 653)).

36.8.2 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.

36.8.3 forces_by_section

This tool computes forces and moments by section on a body. It is available as a macro in the
CFView interface.
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:

1007 Fine™ Marine 12.1 User Guide


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
-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)
-cut=a: cut in axial direction
-cut=r: cut in the radial direction
-cut=t: cut in the tangential direction
-axis=: direction vector for propeller axis in format 1,0,0
-ncut: Specify the number of cuts
-dof_ts= Specify the travelling shot option to define the output coordinate system (only DOFs 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 "Coordinate Frame" (p. 316) for more information)
-m_ref_pt= : Specify the reference point for moment computation

1008 Fine™ Marine 12.1 User Guide


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.

If the the forces-by-section tool is used with the goal of obtaining the sectional force distribution at
the same intervals as the saved (volume) probes, the wall-forces probe needs to be activated. If only
surface probes are saved, this can be done in the GUI. If only volume probes are saved, this needs to
be done through the Comment field:
**** PROBE WALL FORCES: FREQUENCY*
***
f0
***
where f corresponds to the probe saving frequency.
When reconstructing the probes, the computation folder will contain as many wall_data_n# files as
probes. These files are needed for running forces-by-section, which can be done by using e.g. a simple
bash script containing a loop over these wall_data files:
for src in wall_data_n#*;do
forces_by_section -body=1<< EOF
$src
100 # Number of cuts
EOF
mv moments_by_section.dat ${src}_moments_by_section.dat
mv forces_by_section.dat ${src}_forces_by_section.dat
done

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.

1009 Fine™ Marine 12.1 User Guide


36.8.4 FM_irregularWaveSpectralComparison.py

The script is used to measure whether the generated wave signal, measured at the first wave
probe, corresponds to the input wave spectrum. The goal is then to determine whether the
computation has run long enough to represent a realistic irregular wave spectrum through a plot
and quantified differences between the theoretical and realised spectra.

The script cannot be used for user-defined spectra.

Next to a visual comparison of the realised and theoretical spectrum, the script also quantifies the
difference (in %) between realised and theoretical spectral moment (area under the curve) and the
significant wave height. Large deviations in these values indicate that the length of the simulation
should be increased to achieve a representative irregular wave spectrum.

How to launch the tool:


l LINUX
finemarine121 - batch - script NUMECA_ INSTALLATION/finemarine121/_
data/Script/FM_irregularWaveSpectralComparison.py -print
l WINDOWS
From a terminal or a .bat file:
NUMECA_INSTALLATION\finemarine121\bin64\fine_marinex86_64.exe -batch -script
NUMECA_ INSTALLATION\finemarine121\_ data\Script\FM_
irregularWaveSpectralComparison.py -print
To be executed, the script needs the following input files:
l the .sim file of the computation,
l the points_probe.dat file.
The script will first search for the two files in the current directory and, if not found, will ask for
them interactively.
Once executed, the script generates the following output files:

1010 Fine™ Marine 12.1 User Guide


l waveParameterComparison.dat , a file containing relevant input data, calculated output
values and information,
l spectrumComparison.png, a graph comparing the theoretical with the realised spectrum; an
example is shown below:

36.8.5 FM_dampingCoefficients.py

This script provides linear, quadratic and cubic damping coefficients for free decay simulations,
assuming a linearised equation of motion (i.e. the damping is independent of the motion
amplitude). The Froude energy method is used (see Igbadumhe, J.F., Sallam, O., Fürth, M. and
Feng, R., 2020. Experimental determination of non-linear roll damping of an FPSO pure roll
coupled with liquid sloshing in two-row tanks. Journal of Marine Science and Engineering, 8(8),
p.582).

1011 Fine™ Marine 12.1 User Guide


l The script is suitable for most (weakly) nonlinear problems, but should not be used when
assessing (e.g. the effect of bilge keels in roll decay).
l The script can only be used if the analyzed body has index 1 (in body_params.dat file).

l The estimation of the added mass should be set to Accurate in the Body motion menu.
l The user should always verify the quality of the fit and its standard deviation; if the latter exceeds
5% of the coefficient value, the accuracy of the estimate is low and the user is encouraged to
check whether removing peaks from the start or changing the order of the fit (to avoid
overfitting) can reduce the standard deviation. As the linear damping coefficient value is the most
important (the quadratic and cubic coefficients are calculated based on assumptions that the decay
is mainly linear), the aim should be to reduce this standard deviation more than for the other two
coefficients.

How to launch the tool:


l LINUX
finemarine121 - batch - script NUMECA_ INSTALLATION/finemarine121/_
data/Script/FM_dampingCoefficients.py -print
l WINDOWS
From a terminal or a .bat file:
NUMECA_INSTALLATION\finemarine121\bin64\fine_marinex86_64.exe -batch -script
NUMECA_ INSTALLATION\finemarine121\_ data\Script\FM_ dampingCoefficients.py -
print
The following optional arguments can be specified:
l -v, --verbose: verbose output,
l -n, --normalize: normalise output by initial amplitude (only for graphical decay plot),
l -te, --tend: [float], simulation end time (for analysis),
l -o, --order: [int], force the order of the regression analysis,
l -rp, --removepeaks: [int] remove a certain number of peaks from the beginning of the analysis.
If the resulting regression fit is too constrained (e.g. if a quadratic or cubic fit has still a linear
shape), this argument can be used to loose the number of points used by the fitting algorithm to
calculate the polynomial coefficients.
To be executed, the script needs the following input files:
l the .sim file of the computation,
l the *_body_param.dat file,
l Mvt_body.dat file.

1012 Fine™ Marine 12.1 User Guide


The script will first search for the three files in the current directory and, if not found, will ask for
them interactively.
Once executed, the script generates the following output files:
l Damping_ coefficients.dat , a file containing all computed parameters, among which the
damping coefficients; an example is given below:

This file also reports the standard deviation for each of the calculated decay coefficients (linear,
quadratic, cubic), and prompts a warning when the calculated standard deviation exceeds 5%
of the coefficient value.

1013 Fine™ Marine 12.1 User Guide


l decayLine.png, a graph of the signal (analysed part only) and decay envelope based on
linearised equivalent damping coefficient; an example is given below:

1014 Fine™ Marine 12.1 User Guide


l regressionFit.png, a graph of regression analysis for the analysed part; an example is given
below:

36.8.6 isis2cfview

This tool converts Fine Marine flow solver results to Cfview format. Available options for
"isis2cfview" 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
-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)

1015 Fine™ Marine 12.1 User Guide


-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
-frame_ts= : Specify the frame for the traveling shot. The choices are:
l reference (for the classic reference frame of Fine Marine)
l primary (for the primary axis of the parent body of the kinematic chain)

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.
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:

1016 Fine™ Marine 12.1 User Guide


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 refinement 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.7 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 centered.
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.

Available options are:


-help : Display this help information
-local : Work in current folder
-sim= : Specify the .sim input data file
-cgns= : Specify CGNS project file

1017 Fine™ Marine 12.1 User Guide


-auto : Default actions only (reconstructs all saved scalar and vector fields)
-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

36.8.8 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.

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.

1018 Fine™ Marine 12.1 User Guide


36.8.9 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.10 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
-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".

1019 Fine™ Marine 12.1 User Guide


36.8.11 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.

36.8.12 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.

1020 Fine™ Marine 12.1 User Guide


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.

36.8.13 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.

1021 Fine™ Marine 12.1 User Guide


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.
-tecplot_format=BINARY/ASCII: Choose between generating a binary (extension .plt) or ASCII-
formatted Tecplot file (extension .dat). BINARY is used as the default argument.

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.

1022 Fine™ Marine 12.1 User Guide


36.8.14 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 for this tool.

How to launch the tool:


l LINUX
isis2vtkmarine121 -auto -print
l WINDOWS
Create a text file with .bat extension and the following content and execute it:
NUMECA_INSTALLATION\\finemarine121\bin\isis64\isis2vtk.exe -auto -print
The tool will generate:
l <computation_name>_vol.vtu
l <computation_name>surf.vtm
l and a folder Vtk containing the boundary conditions vtu files.

The default XML VTK standard is not compatible with very large meshes. If when opening
the vtu file an error related to "faceoffsets" appears add the argument -vtk_
standard=LEGACY to the command.

Below is the complete list of arguments provided:


Available options
-help: Display this help information
-local: Work in current folder
-relative: Work with relative path
-sim=: Specify the .sim input data file
-vtk_vol=: Specify the volume VTK file
-vtk_surf=: Specify the surface VTK file

1023 Fine™ Marine 12.1 User Guide


-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
-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 or primary.
Results of the conversion will be stored in the folder with the name "Vtk" inside of the
computation folder.

36.8.15 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.16 post_node_modal_approach

The goal of this script is to obtain the position history of one node during a computation with the
"Modal approach" (p. 514).
The default outputs from a Modal approach computation are the modes amplitudes. This script
will use the input modal file and the amplitudes to compute the position history of one node. It
will find the closest node to the coordinates given by the user.
The script will write the results in a text file where each line will contain the time value and the
corresponding XYZ coordinates of the node at that time.

1024 Fine™ Marine 12.1 User Guide


It is available in:
NUMECA_INSTALLATION_DIR/_data/Script/post_node_modal_approach.py

The post_node_modal_apprach.py script is compatible with 2D and 3D projects.

How to launch it on Linux

In a shell in the computation folder:


finemarine121 -batch -print -script relative_path_to_script/post_node_modal_approach.py -X
X0 -Y Y0 -Z Z0 -Modal_file Relative_Path_of_the_modal_file -Mvt_file Relative_Path_of_the_
Mvt_file -ouput Name_of_the_output_file
Example:
finemarine121 -batch -print -script ../post_node_modal_approach.py -X 0.02 -Y 0.0 -Z 0.0 -
Modal_file ../_external/hubner2D_modal.dat -Mvt_file Mvt_beam.dat -output Beam_
x002.dat

How to launch it on Windows

In a shell or through a .bat script in the computation folder:


C:\NUMECA_SOFTWARE\finemarine121\bin64\fine_marinex86_64.exe -batch -print -script
relative_ path_ to_ script/post_ node_ modal_ approach.py - X X0 - Y Y0 - Z Z0 - Modal_ file
Relative_Path_of_the_modal_file -Mvt_file Relative_Path_of_the_Mvt_file -ouput Name_of_
the_output_file
Example
C:\NUMECA_SOFTWARE\finemarine121\bin64\fine_marinex86_64.exe -batch -print -script
../post_node_modal_approach.py -X 0.02 -Y 0.0 -Z 0.0 -Modal_file ../_external/hubner2D_
modal.dat -Mvt_file Mvt_beam.dat -output Beam_x002.dat

Inputs

l X0, Y0, Z0: coordinates of the structure point to process. The script will find the closest node
to these coordinates in the structure.
l Relative_ path_ of_ the_ modal_ file : path to the structure file where the mode shapes are
defined, from the location where the script is launched.
l Relative_Path_of_the_Mvt_file: path to the Mvt* file, from the location where the script is
launched.
l Name_of_the_output_file: name of the file where the resulting coordinate history will be

1025 Fine™ Marine 12.1 User Guide


written.

36.8.17 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.

Starting Fine Marine v8.2, the parallel mode for probes reconstruction is available from the GUI, but
only on the local machine. To distribute the reconstruction on several machines, the batch mode
should be used.

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:
NUMECA_INSTALLATION_DIR\bin64\fine_marinex86_64.exe -print -batch -script
NUMECA_INSTALLATION_DIR\bin64\probes2cfview.py
pause

1026 Fine™ Marine 12.1 User Guide


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
(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)

1027 Fine™ Marine 12.1 User Guide


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 CGNS formats are only available for surface probes.

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. If the file is
found, the user is prompted for confirmation. Alternatively the flag "-auto" can be used for the
two following cases:
l User prompt needs to be avoided, the full path to the reconstruction file needs to be specified
(Windows, see below) or -auto $PWD/reconstruction.input" (Linux).
l 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.

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.

1028 Fine™ Marine 12.1 User Guide


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
mpi

The following rules apply for the arguments:


l If - niversion was not specified, the tool will define the version based on the directory
structure of the Fine Marine installation.
l 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#.
l If -machines with a machine file was not specified probes2cfview will be launched in a
serial mode.
l If -launcher was not specified, probes2cfview will use nirsh as included in the Fine Marine
installation.

Using the mpi launcher is generally the best choice when the parallelization is done across
only one machine. (the version provided in the package will be used). As long as OpenSSH is
installed on machine and ssh public/private key authentication is done, openssh launcher can
be used, 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).

1029 Fine™ Marine 12.1 User Guide


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.

36.8.18 probes2tec360

probes2tec360 is a reconstruction tool proposed to reconstruct the probes in Tecplot360 or VTK


formats. The python script needs to be run using the Fine Marine -script argument.
The tool will automatically search for a reconstruction.input file in the results folder. See here for
a description of the file format. If it does not find it, it will switch back to interactive mode.
If no arguments are specified the results will be reconstructed in plt format.

The default XML VTK standard is not compatible with very large meshes. If when opening
the vtu file an error related to "faceoffsets" appears add the argument -vtk_
standard=LEGACY to the command.

How to launch it on Windows?

In a shell or through a .bat script:


C:\NUMECA_SOFTWARE\finemarine121\bin64\fine_marinex86_64.exe -print -batch -script
C:\NUMECA_SOFTWARE\finemarine121\_data\Script\probes2tecplot360.py

1030 Fine™ Marine 12.1 User Guide


How to launch it on Linux?

In a shell:
finemarine121 -print -batch -script /path/to/numeca/_data/Script/probes2tecplot360.py
Arguments available:
l -auto: use an input file with a name different than reconstruction.input
finemarine121 -batch -script probes2tecplot360.py -auto ./my_input.txt -print
l -vtk: convert the probes to vtu and vtm file formats wich can be open in Paraview.
l -vtk_standard=LEGACY: convert the probes to legacy VTK format.
l -tecplot_format=BINARY/ASCII (default is BINARY)
36.8.19 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.

l When applied to a configuration with half domain, it is assumed that the y-mirror plane is y=0.
l Make sure the disk used for the wake flow analysis does not intersect the geometry. If the disk
intersects the geometry, the interpolation algorithm will be much slower.

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:

1031 Fine™ Marine 12.1 User Guide


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.

B. How To Use it?

Where to find it

The tool can be directly launched from the Cfview interface under the Macros menu. In that case,
you can refer to the 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

1032 Fine™ Marine 12.1 User Guide


-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)
-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

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

1033 Fine™ Marine 12.1 User Guide


FIGURE 36.17
Arguments 1: -rp1=0 -h=0

FIGURE 36.18
Arguments 2: -rp1=1 -rp2=10 -h=0.1

1034 Fine™ Marine 12.1 User Guide


FIGURE 36.19
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:
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),&

1035 Fine™ Marine 12.1 User Guide


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).
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:

1036 Fine™ Marine 12.1 User Guide


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;
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:

1037 Fine™ Marine 12.1 User Guide


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 (ad_propeller_code.f90)" (p. 429) 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)

Opening the results

1. In Cfview choose: File > Open Plot3D Project ...


2. Select Geometry file: wake_flow.g
The Function File and Function Name File will be auto-completed with the wake_flow.f and
wake_flow.name files.

36.8.20 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".

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

1038 Fine™ Marine 12.1 User Guide


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.

...
> Specify computation path:
1: Path: /user/local/project/project_computation_1/ (default)

1039 Fine™ Marine 12.1 User Guide


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
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.

1040 Fine™ Marine 12.1 User Guide


12.1

© Cadence Design Systems Belgium, all rights reserved


EN202308281725

You might also like