FINEMarine User Guide
FINEMarine User Guide
FINE™/Marine 7.1
www.numeca.com
CONTENTS
CHAPTER 1. GETTING STARTED
1.1 Introduction 13
1.2 How To Use This Manual 15
1.3 First Time Use 17
1.3.1 Basic Installation 17
1.3.2 Advanced Graphics Options 17
A. Graphics Driver 17
B. Background Color 18
1.3.3 How to start the FINE™/Marine Interface 19
1.4 Required Licenses 19
CHAPTER 2. INTERFACE
2.1 Project Selection 24
2.1.1 Create New Project 24
2.1.2 Open Existing Project 25
2.2 Main Menu Bar 26
2.2.1 Project Menu 26
2.2.2 Mesh Menu 31
2.2.3 Solver Menu 33
2.2.4 Plugins 34
A. How to activate them 34
B. Predefined plugins 35
2.3 Icon Bar 39
2.4 Computations Management 40
2.5 Graphical Management 42
2.5.1 Project Parameters 42
2.5.2 View Area 43
2.5.3 Mesh Information 53
2.5.4 Graphics Area 53
2.5.5 Viewing Buttons 54
2.6 File Chooser 59
CHAPTER 3. C-WIZARD
3.1 Resistance application 63
3.1.1 Project management step 63
3.1.2 Body configuration 64
3.1.3 Flow definition 67
3.1.4 Additional inputs 71
3.1.5 Mesh-setup 73
3.1.6 Project setup 78
3.2 Seakeeping application 79
3.2.1 Project management step 79
3.2.2 Body configuration 80
CHAPTER 4. SELF-PROPULSION
4.1 Introduction 152
4.2 Computation procedures 153
4.3 Input 161
4.4 Output 165
4.5 Recommendations 167
GETTING STARTED
In this section
1.1 Introduction 13
1.2 How To Use This Manual 15
1.3 First Time Use 17
1.4 Required Licenses 19
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.
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).
Outline
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.
When using FINE™/Marine for the first time, it is important to verify that FINE™/Marine is
properly installed according to the installation note. The installation note provided with the
installation software should be read carefully. The following points are important:
l Hardware and operating system requirements should be verified to check whether the chosen
machine is supported.
l Installation of FINE™/Marine, in a directory chosen by the user and referenced in the
installation note as "NUMECA_ INSTALLATION_ DIRECTORY", should respect the
described procedure in the installation note.
l A license should be requested that allows the use of FINE™/Marine and the desired
component and modules (see Required Licenses for all available licenses). The license should
be installed according to the procedure described in the installation note.
l Each user wishing to use FINE™/Marine or any other NUMECA software must perform a
configuration as described in the installation note.
When these points are fulfilled the software can be started as described in the installation note or
How to start the FINE™/Marine Interface of this guide.
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
On Windows
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
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.
The standard licenses for FINE™/Marine allow for the use of all basic features of
FINE™/Marine including:
l HEXPRESS™ (see HEXPRESS™ User Manual),
l CFView™ (see CFView™ User Manual),
l FINE™ GUI (Graphical Interface),
l Sequential and parallel computations with ISIS-CFD on 2 processors
l Monitor (see Monitoring)
Additional Licenses
Within FINE™/Marine the following supported features are available and require an upgrade or a
separate license:
l CATIA v5 importation (see HEXPRESS™ User Manual),
l More cores for parallel computations with ISIS-CFD, with a maximum number of 9999 cores
can be used for a single computation,
l Coupling with Optimization suite (Projection feature),
l Compatibility with dynamic libraries,
l Coupling with BEM propeller code for actuator disk,
l Non Deterministic module for the uncertainty quantification features.
INTERFACE
When launching FINE™/Marine, as described in Getting Started, the interface appears in its default
layout as shown in the following figure. An overview of the complete layout of the FINE™/Marine
interface is shown in the second figure just below. In the next sections, the items of this interface are
described in more detail.
It is also possible to specify the exact position and size of FINE™/Marine interface on the screen. To
do so the file preferences.dat should be created and stored in /.numeca directory. Details can be
found in "External preferences file: .dat" (p. 583)
Together with the FINE™/Marine interface, a Project Selection window is opened which allows the
creation of a new project or the opening of an existing project. See Project Selection for a description
of this window.
A File Chooser window is available for browsing through the file system and to select a file. More
details on the File Chooser window are given in File Chooser.
In this section
2.1 Project Selection 24
2.2 Main Menu Bar 26
2.3 Icon Bar 39
2.4 Computations Management 40
2.5 Graphical Management 42
2.6 File Chooser 59
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
l Click on Ok to accept
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).
To open an existing project, two possibilities are available after clicking on Open an Existing
Project:
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.
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.
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.
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
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.
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 ).
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.
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.
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
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.
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
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
Save Batch File button under Solver menu saves the .batch file (on LINUX) or .bat file (on
Windows) in which all the steps of the chains for the flow solver will be written (pre-processing,
solver and post-processing) for a basic sequential run. For more possibilities, the same button is
present in the Task Manager to save specific steps (see Task List).
2.2.4 Plugins
The purpose of this menu is to provide a plugin mechanism where users can put their own python
scripts and access them through the interface, via a Plugins menu. NUMECA provides some
python scripts that users can use. A Predefined module is loaded from the installation package of
FINE™/Marine but the user is free to add any folder.
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".
B. Predefined plugins
The Predefined menu suggests the following functionalities to be used as the simplification of the
existing procedures.
The C-Wizard Part I and C-Wizard Part II present the two parts of the Wizard mode that suggests
the easy setup for the three general types of computations: resistance, seakeeping and open water
calculations for the propeller cases.
C-Wizard Part I
Predefined plugins contain the Wizard mode implemented into the FINE™/Marine GUI. General
idea of this mode is to simplify and speed up the computation set up process: automated scripts
recall existing functions and finish set up procedure with the minimal user input required.
C-Wizard Part II
Additional values for the seakeeping computation: Estimated inertia matrix data [kg/m²]
After the Estimation of hydrostatic values confirmation the C-Wizard Part II plugin will apply
computation settings automatically. The Computations menu will be updated with the
computation_X.X names, where X.X is the speed value defined with C-Wizard Part I.
Estimation of hydrostatic values is not available when working with the Planing regime
application since the hull was rotated to the final trimmed position; monofluid computations for
the Open water applications do not apply this estimation either.
This plugin allows to clear all the files and folder present in the selected computation directory
without deleting the computation settings of the project. For instance, this allows to make a
backup of the project without deleting the folders or the files manually.
A confirmation will be prompted before starting to delete and a confirmation will be printed in the
shell.
This plugin allows to define the required inputs for the self-propulsion computational cases of the
available Application types:
l Fixed vessel speed, solved RPM,
l Fixed RPM, solved vessel speed,
l Fixed power, solved RPM and vessel speed,
l Fixed power, solved vessel speed with actuator disk.
Details can be found in "Self-propulsion " (p. 151).
Units converter
The unit converter allows to convert or compute several values that are commonly used in
FINE™/Marine. One can perform the following calculations:
l Angle Radians (rad) to Degrees (deg) or vice versa,
l Length Feet (ft) to Meters (m) or vice versa,
l Speed Knots (Kt) to meter per second (m/s) or vice versa,
l Compute the kinematic viscosity (m²/s) based on the density (kg/m³) and the dynamic viscosity
(kg/(m.s)) or compute the dynamic viscosity based on the density and the kinematic viscosity.
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.
The icon bar contains eleven buttons that provide a shortcut for menu items in the main menu bar.
File Buttons
The four buttons on the left of the icon bar are shortcuts for items on the Project menu:
The New Project icon is a shortcut for the menu item Project/New.
The Open Project icon is a shortcut for the menu item Project/Open.
The Save Project icon is a shortcut for the menu item Project/Save.
The Save ISIS Simulation File icon is a shortcut for the menu item Project/Save ISIS
Simulation File.
Solver Buttons
The three central buttons allow to start, suspend, kill the selected computation:
The Start Solver icon is a shortcut for the menu item Solver/Start.
The Suspend Solver icon is a shortcut for the menu item Solver/Suspend.
The Kill Solver icon is a shortcut for the menu item Solver/Kill.
Module Buttons
The four buttons on the right of the icon bar allow to start the pre- or post-processors, to open the
task manager and to monitor the active computation:
The Start TASK MANAGER icon is used to open the task manager menu.
The Start Results Analysis icon is used to open the "Results Analysis" (p. 552) module.
When clicking on the Computations button at the top left of the interface a list of all the
computations of the project is appearing. The active computation is highlighted in blue and the
corresponding parameters are presented in the Project Parameters area (more details in
Graphical Management ). All the project parameters of the computation can be controlled
separately by selecting (from this list) the computation on which all the modifications are applied.
FIGURE 2.9
Computations menu
At the bottom of the Computations menu the following buttons are available:
New creates a new computation as a duplication of the active computation. Newly created
computation has the same name as the original one with the prefix new_.
Reset will clean all the files withing the selected computation_name folder inside the Project and
save the computation again to be ready to run the simulation.
To prevent the nonessential actions, the following warning is shown: This will delete active
computation directory and save computation again.
For the "Uncertainty Quantification" (p. 642) studies the set of dependent computations can be
reset as well by activating: Reset non-deterministic runs too.
Rename allows to rename the active computation, you can click on, double-click on the selected
computation line. Then, type the new name and press <Enter> to validate your choice or <Esc>
to cancel the new name.
Delete will delete the selected computation(s).
Comment provides the access to the editorial window and allows to write comments to the
current selected computation. These comments are then stored in the simulation file .sim.
FIGURE 2.11
Comments editor
When right-clicking on an active computation, a pop-up menu is appearing that is giving access to
these commands. See above.
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 View subpanel (FIGURE 2.13) controls viewing operations on the geometry and the grid.
FIGURE 2.13
View subpanel
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™.
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.
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 triangulation from the geometry surfaces or the mesh faces.
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
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 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.
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.
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.
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.
Camera Position
Clicking on the icon ( ) opens the Camera Position dialog box as shown in FIGURE 2.17
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
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:
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
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.
Pressing <Alt Gr> + P will automatically shrink the quick access pad.
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.
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.
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
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.
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.
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.
C-WIZARD
The C-Wizard mode implemented into the FINE™/Marine interface provides a complete workflow to
create and define parameters of a project depending on its Application. Available types of applications
are:
General applications:
l Resistance
l Seakeeping
l Open water
l Planing regime
Extended applications:
l Hydrofoil resistance
l Sailing yacht resistance
Start of the C-Wizard can be directly done from the Welcome box. Although, it is also available in
the Plugins menu of the FINE™/Marine GUI with the "C-Wizard Part I" (p. 35) and "C-Wizard
Part II" (p. 36) plugins.
Information concerning the progress of the C-wizard is also printed in the message area of the interface
(ex: Importing geometry, Viscous layers insertion…).
The C-Wizard is available under license. To upgrade your license, please contact your local software provider
or the NUMECA support office.
The geometry imported in C-Wizard must be defined in the International System of Units. C-Wizard assumes
that the geometry is in meters, and thus it does not scale it depending on the units chosen for the project.
Advanced Tutorial 3 offers step by step instructions for the resistance case with the use of the C-Wizard
mode.
Current limitations:
l The wizard cannot handle multiple bodies, domains, meshes and/or 2D configurations.
l Thin surfaces in the geometry definition cannot be managed by the wizard. These
limitations should be considered for the automatic setup procedure. However, all settings
remain available for manual modifications through the FINE™/Marine classic interface.
l Open Water applications: zero rotational speed is not possible.
l Planing regime applications:
l Importing an existing mesh is not available.
l Resistance curve automated setup is not available due to the hydrodynamic equilibrium
position recalculation for each speed since mesh generation for each computation is
needed.
l The "C- Wizard computation matrix" (p. 129) is not available in a fully automated
manner.
l C- Wizard cannot be started from a geometry in a configuration representing a
hydrodynamic equilibrium since in domhydro the dynamic parameters are computed
from a hydrostatic configuration.
In this section
3.1 Resistance application 63
3.2 Seakeeping application 79
3.3 Open water application 95
3.4 Planing regime application 107
3.5 Refinement dictionary 125
3.6 Launching C-Wizard in batch mode 128
3.7 C-Wizard computation matrix 129
3.8 Example of settings 135
3.9 Extended applications 137
3.10 Grid convergence study 147
The first page of the C-Wizard provides the general Project management menu: here the
project directory can be specified. Selecting the Application type Resistance will provide access
to the specific parameters in accordance to this application.
FIGURE 3.1
First page of the C-Wizard mode: Selection of computation type.
It is also possible to define the Wizard units that will be used during the wizard process.
The Body configuration menu has the following input data and settings available:
The input geometry should always be defined in meters, regardless of the length unit chosen.
l If an Existing mesh is chosen, the mesh can have been built with HEXPRESS™ or
HEXPRESS™/Hybrid. In the mesh directory at least the following files should be present:
l HEXPRESS™: *.igg, *.dom and *.bcs
l HEXPRESS™/Hybrid: *.bcs, *.dom, *.igg, *.hex and *.fnmb.
Names of the external box patches should match with the CWizard standards: xmin, xmax, ymin,
ymin_SYM, ymax, zmin, zmax and cylinder_side. If they don't the user will need to correct the
external boundary conditions at the end of the C-Wizard setup.
In case of mono-fluid computation, the imported STL/Domain or Existing mesh must have been
configured for mono-fluid computation, in other words, the part above the free surface position
should have been removed.
If the imported mesh is an HEXPRESS™ mesh and it was not generated, the C-Wizard will
re-generate it at the end of the Part I. HEXPRESS™/Hybrid meshes need to be generated
before they are imported since the C-Wizard cannot re-generate them.
Half of the geometry or an entire body geometry can be used as an input here.
If the geometry name contains blank spaces, a copy of the initial geometry file will be done
into the /_mesh directory and renamed with '_' instead of a blank space.
It is possible to create the half geometry domain from the entire body geometry unless an
STL/Domain or Existing mesh was imported.
In case of mono-fluid computation, if the bulbous part of the ship is very closed to the free surface
and its surface is tangent to the latter, bad quality cells might appear in that area.
l Center of gravity[m, ft]: Automatic (based on initial free surface) or User defined
l Body motion(s) to solve:
Trim/ Sinkage/ Surge: activate/deactivate
Activating motions to be solved here is equal to apply the Solved type of motion for the trim
(Ry0), sink (Tz0) and surge (Tx0) degrees of freedom in the Body motion menu. Some
explanations can also be found in the Solved Law of Motion section.
Trim (Ry0) and sink (Tz0) can not be solved for mono-fluid computation.
Clicking the Next button will switch to the page of the Flow definition menu.
If the surge (Tx0) is solved, the user is only requested to provide an Estimated speed in Speed
definition (positive value(s)).
Resistance curve settings can be done by activating the Resistance curve. Imposing the minimum
speed Vmin [m/s, kt] and the maximum speed Vmax [m/s, kt] will set up the range of speeds,
while the Speed Increment will define the number of computations. List of speeds is
automatically generated by pressing Enter after the Speed Increment definition. By defining the
computation profile as Successive restarts or Independent computations it is possible to restart
from the previous computation (Initial solution menu of FINE™/Marine interface) or to have
independent computations starting from the same initial value each time.
Scaling factor applied together with the Speed increment (speed definition for the Resistance
curve ) is not working in case the speed increment is not constant between speeds.
with H the height of the water surface compared to the bottom, and D the draught.
FIGURE 3.6
Shallow water activation.
In case the configuration can be considered as a shallow water case, the Depth [m, ft] value
should be defined as the distance between the free surface level and the bottom location.
Any shallow water computation is strongly dependent on the turbulence modeling due to the
physics of the flow between the hull and the bottom floor, thus it should be taken into account
that the choice of turbulence model can be crucial regarding the results. It is always available
to change the default Turbulence model choice in the Flow Model Parameters menu of the
user interface. In addition, the Richardson extrapolation is not guaranteed here since the
domain size is customized by the Z-minimum value: shallow water depth.
Clicking the Next button will switch to the page of the Additional inputs menu. These options
are not mandatory.
FIGURE 3.7
C-Wizard Part I: Additional inputs menu.
The tangential force should not be activated for a half-body computation of a single-screw ship.
l Open water data: the actuator disk will use open water data to compute the actual thrust and
torque (if the tangential force is activated) during the computation, more information can be
found in "Actuator Disk" (p. 289) menu. The user is requested to input the *.dat file of the
open water values and the revolution rate.
It is possible to make a self-propulsion computation using the Open water data. The surge (Tx0)
should be solved and the rotation rate should be Imposed.
The number of actuator disks in one project is limited to 1, although it can be manually modified.
When an Actuator disk is activated the mesh is refined around it in the following way:
l A refinement sector starting 2 disk radius upstream of the disk and ending 6 disk radius
downstream is created. Its radius is 1.1 times the disk radius. Its refinement level is a
function of the disk radius and mesh density.
l A second smaller refinement sector covering exactly the disk volume is created only if
necessary to make sure there are at least 20 cells in the disk thickness.
l Drag based external force (sail, propeller, wind, etc.): Direction and Application point
coordinates [m, ft]
The C-Wizard Mesh-Setup menu provides settings to configure the domain and the mesh unless
the user has imported an existing mesh in which case this section is not accessible.
HEXPRESS™ will create them automatically respecting the geometry and input parameters
(body configuration, orientation, free surface position etc.). All the settings are driven by the type
of simulation and input provided earlier.
FIGURE 3.8
Domain Constructor and Mesh Setup menu of the C-Wizard.
For C-Wizard projects the Merge faces with the same name option is the preferred one. It is up
to the user to define how many parts will be present in the computation by defining patch names
inside a CAD software (such as CADfix for eg.). The user will ensure that groups of patches with the
same name will be correctly defined depending on the computation specifics. Once the names are
defined, the C-Wizard will perform merging and will apply mesh parameters automatically.
l Simplify sharp angle: by defining a threshold where every lower angle will be considered as
sharp, geometry will be simplified where the sharp angle is detected. By default the Threshold
value is fixed to 10. Sharp angles in the geometry can lead to poor quality cells in the
HEXPRESS™ mesh, for instance in the area of keels, spray rails, skeg tangent to hull and etc.
This function can help, in an automated way, to preserve better mesh quality by locally
splitting and merging patches to remove the sharp angle.
The free surface is refined to reach a target cell size of LOA/1000 in Z direction. The aspect ratio
of the cells is 128 and a diffusion of 4 is applied. If the mesh density is Coarse the diffusion is
reduced to 3.
l Domain size: For the Automatic it is assumed that the domain size can be defined for this
application according the Froude number (Fn) and the length overall (LOA) of the ship. Hence
default numbers are specified as:
LOABefore = 1.0
LOABehind = 3 (Fn≤1), 4 (1<Fn<1.5) or 5 (Fn≥1.5)
LOABelow = 1.5
LOAAbove = 0.5
LOASide = 2.0
The C-Wizard will not necessarily and precisely respect this number of user-defined LOA: the new
domain size is adjusted to exactly have LOA/1000 for the free surface refinements. Indeed, to get this
exact cell size for the free surface, the initial cell size and the domain size must be adjusted as well.
In case the Input geometry is an STL or the Domain the following option is available:
l Keep initial size: The domain size will be kept as an Input geometry and the mesh will be
recalculated considering the C-Wizard settings.
Please note that if the domain size is too small compared to the recommendations, the quality of the
solution can be affected. It is advised to use this option only for resistance and planing regime.
Automatic Y+ value is based on the assumption that the wall function will be used during the
computation.
Viscous layers are defined and computed for solid faces only and if the face is not called
"DECK" or "Deck" since there is usually no need to insert viscous layers on the deck of a ship
(viscous effects from the air part are negligible). The script assumes an isotropic mesh is used on
the solid walls. Hence, the height of the first Euler cell on the solid walls can be computed by the
script according to the number of refinement: , where H Euler - size of the
Euler mesh cell; H init - size of the initial mesh cell; N - the number of refinement on the face. The
number of viscous layers needed to completely fill the Euler cell is computed with an inflation
technique and a stretching ratio of 1.2.
Buffer insertion of Type II is activated by default for the edges on the Mirror plane during the
snapping step. However, HEXPRESS™ will try to respect this input but it is not guaranteed that
it will be the case after snapping. After specification of the inputs, if domain creation and
boundary conditions automatic definition are successful, it will be suggested to follow the mesh
generation or to manually check first the mesh settings.
FIGURE 3.10
C-Wizard Part I report window: Switch to the automated mesh generation.
The domain creation will not work in case the symmetry plane is not perfectly aligned with the Y
plane.
The Parasolid or CATPart geometry should not have a bounding box already included since the script
will create it automatically. However, when a STL is imported it must already have the bounding box.
For the general mesh settings, in case of Shallow water activation, mesh generation settings will
be updated accordingly to respect the water Depth and the ship wave region.
To finalize the mesh generation step, when the Manually check the mesh first has been selected,
the Start button of HEXPRESS™ will initialize the mesh generation. After the mesh is
successfully created, selecting the Go back to the project set up will proceed to the next step of
the wizard.
When meshing procedures have been finalized, the project will be automatically created
respecting the previously defined parameters. It is also available in the Plugins > Predefined
menu as C-Wizard Part II.
Estimation of the hydrostatic parameters will be automatically done by 'domhydro' tool. If the
Initial free surface position was set to User defined, the following hydrostatic properties of the
body will be displayed:
l Displacement: [kg]
l Coordinates of the Center of Gravity: [m, ft]
FIGURE 3.11
C-Wizard Part II: Interface input parameters for an user defined free surface location.
However, if the Initial free surface position was set to Automatic (based on body mass), only
the estimation of the Z-coordinate of the free surface location [m, ft] will be displayed as
follows.
FIGURE 3.12
C-Wizard Part II: Interface input parameters for an automatic estimation of the free surface
location.
After confirming the Estimation of hydrostatic values, the settings of the computations will be
automatically defined. The Computations menu will be updated with the computation_ X.X
names, where X.X is the speed value.
The first page of the C-Wizard opens the general Project management menu.
The project name and directory must be specified first. Selecting the Application type
Seakeeping will provide access to the specific parameters in accordance to this application.
It is also possible to define the Wizard units that will be used during the wizard process.
FIGURE 3.13
First page of the C-Wizard mode: Selection of computation type.
The Body configuration menu has the following input data and settings available:
FIGURE 3.14
C-Wizard Part I: Body configuration menu.
If the geometry name contains blank spaces, a copy of the initial geometry file will be done into
the /_mesh directory and renamed with '_' instead of a blank space.
The input geometry should always be defined in meters, regardless of the length unit chosen.
It is only possible to create an half geometry domain from an entire body geometry with Parasolid
and CATPart files but not for STL, Domain or an Existing mesh. With the last three options, it
should come already with the half of the geometry or mesh.
If an Existing mesh is chosen, the mesh should be generated beforehand with HEXPRESS™,
Autogrid5™ or HEXPRESS™/Hybrid. If the imported mesh is an HEXPRESS™ mesh and it was
not generated, the C-Wizard will re-generate it at the end of the Part I. In that cases, the following
restrictions must be followed with care:
l Names of the external box patches should match with the CWizard standards: xmin, xmax,
ymin, ymin_SYM, ymax, zmin, zmax and cylinder_side.
l Boundary conditions must be of the following types: EXT, SOL or MIRROR.
l Once the input file is loaded, the following question appears: The loaded file contains: Half
body or Entire body.
Half of the geometry or an entire body geometry can be used as an input. If the answer is
No and the Input geometry was neither an STL/Domain nor an Existing mesh, the user is
requested to decide whether the body is cut into two halves through its symmetry plane or to
maintain the entire body geometry in the next menu (Body configuration). If Cut body in
two (with mirror plane) is selected the mirror plane will always be placed at Y=0.0. On the
other hand if Keep entire body (no mirror plane) is selected the domain will be centered in
Y-direction on the body center.
l Body orientation the direction of the ship is requested here. If the ship goes to the X-
direction, the option Positive X-axis should be selected, otherwise, Negative X-axis is the
option to select. In case, the half body is selected, the option to select the side of the ship to
keep is requested. Positive Y-axis or Negative Y-axis must be chosen.
l Is the body aligned with the Cartesian axis?Yes / No
Clicking the Next button will switch to the page of the Flow definition menu.
FIGURE 3.16
Resistance curve parameters.
Resistance curve settings can be done by activating the Resistance curve . Imposing the
minimum speed Vmin [m/ s, kt] and the maximum speed Vmax [m/s, kt] will set up the range
of speeds, while the Speed Increment will define the number of computations. List of speeds
is automatically generated by pressing Enter after the Speed Increment definition. By
defining the computation profile as Successive restarts or Independent computations it is
possible to restart from the previous computation (Initial solution menu of FINE™/Marine
interface) or to have independent computations starting from the same initial value each time.
l Scale input data (Froude number similarity):
Scaling option supports the speed values and position of the free surface automated update to
ensure the Froude's similarity for the model and the full scale ship forces.
Scaling factor applied together with the Speed increment (speed definition for the Resistance
curve) is not working in case the speed increment is not constant between speeds.
Number of Lref resolved behind the body: defines the length of the domain in X direction
and takes Lref =max(LOA, wave length).
Number of wave periods to encounter: defines the duration of the calculation. The C-
Wizard will automatically computes the number of time steps to perform so that the ship will
meet this prescribed number of waves. 15 waves are requested by default to ensure that 10
fully developed waves are encountered (following ITTC recommendations). The following
output is printed in the terminal while the C-Wizard is building the mesh and project setup:
> Automatic computation of the number of time steps:
> Encounter period: 9.382
------------------------------------------------------------------
> Physical time before encountering the first wave: 29.305 sec
> Physical time needed to encounter 15 waves: 170.031 sec
------------------------------------------------------------------
> Time step: 0.00343494715192 sec
> Total number of time steps needed: 49501
The "Wave generation info" (p. 38) plugin is also available here.
If the body has zero advancing speed (Single speed = 0.0) a special setup is prepared to minimize
the impact of waves reflection from the body reaching back the wave generator. In such case, an
internal wave generator is used instead of the boundary condition wave generator. The domain
size is defined according to the guidelines described in the FAQ Wave generation and damping
guidelines. Two damping areas are created, one upstream of the internal wave generator and one
near the outlet.
The reference speed used in the solver setup is the wave celerity.
Speed = 0.0 is only possible with single speed, not in a Resistance curve.
Shallow water (positive value): it activates the specific treatment for the mesh and flow settings
when the proximity of the bottom should be taken into account. To begin, one can verify if the
configuration is indeed a shallow water problem. According to ITTC formula, shallow water is
defined by:
with H the height of the water surface compared to the bottom, and D the draught.
FIGURE 3.18
Shallow water activation.
In case the configuration can be considered as a shallow water case, the Depth [m, ft] value
should be defined as the distance between the free surface level and the bottom location.
Clicking the Next button will switch to the page of the Additional inputs menu. These options
are not mandatory.
FIGURE 3.19
C-Wizard Part I: Additional inputs menu
When an Actuator disk is activated the mesh is refined around it in the following way:
l A refinement sector starting 2 disk radius upstream of the disk and ending 6 disk radius
downstream is created. Its radius is 1.1 times the disk radius. Its refinement level is a
function of the disk radius and mesh density.
l A second smaller refinement sector covering exactly the disk volume is created only if
necessary to make sure there are at least 20 cells in the disk thickness.
l Drag based external force (sail, propeller, wind, etc.): Direction and Application point
coordinates [m, ft]
l Adaptive Grid Refinement on free surface (during the simulation)
This is the FINE™/Marine flow solver based option. The C-Wizard mode applies the Free
surface (directional) criterion with automatically defined parameters. Criterion description
and more details can be found in the Criterion section.
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.
For C-Wizard projects the Merge faces with the same name option is the preferred one. It is up
to the user to define how many parts will be present in the computation by defining patch names
inside a CAD software (such as CADfix for eg.). The user will ensure that the groups of patches with
the same name will be correctly defined depending on the computation specifics. Once the names are
defined, the C-Wizard will perform merging and will apply mesh parameters automatically.
Domain size: For the Automatic option, the domain size and meshing strategy for the waves is
defined according the guidelines in Wave generation and damping guidelines , Boundary
condition wave generator section. These guidelines consider not only the length overall (LOA) of
the ship but also the wave characteristics.
Although it is also possible to define differently with the following options:
l Define as a function of LOA : It is available here to change the C- Wizard predefined
parameters by imposing user-defined values by means of LOA.
The C- Wizard will not necessarily and precisely respect this number of user- defined LOA: the
new domain size is adjusted to exactly have LOA/1000 for the free surface refinements. Indeed, to
get this exact cell size for the free surface, the initial cell size and the domain size must be
adjusted as well.
In case the Input geometry is an STL or the Domain the following option is available:
l Keep initial size: The domain size will be kept as an Input geometry and the mesh will be
recalculated considering the C-Wizard settings.
Please note that if the domain size is too small, compared to the ex recommendations, the quality
of the solution can be affected, so that the Internal wave generator will be placed not respecting
the existing recommendations.
Viscous layers are defined and computed for solid faces only and if the face is not called
"DECK" or "Deck" since there is usually no need to insert viscous layers on the deck of a ship
(viscous effects from the air part are negligible). The script assumes an isotropic mesh is used on
the solid walls. Hence, the height of the first Euler cell on the solid walls can be computed by the
script according to the number of refinements:
where:
l HEuler: size of the Euler mesh cell;
l Hinit: size of the initial mesh cell;
l N: the number of refinement on the face. The number of viscous layers needed to completely
fill the Euler cell is computed with an inflation technique and a stretching ratio of 1.2.
The number of viscous layers is computed based on a theoretical formula and does not take into
account the influence from patches nearby. It is advised to let the inflation method active or to check
the number of viscous layers to insert after the optimization step.
Buffer insertion of Type II is activated by default for the edges on the Mirror plane during the
snapping step. However, HEXPRESS™ will try to respect this input but it is not guaranteed that
it will be the case after snapping. After specification of the inputs, if domain creation and
automatic boundary conditions definition are successful, it will be suggested to follow the mesh
generation or to manually check first the mesh settings.
The domain creation will not work in case the symmetry plane is not perfectly aligned with the Y
plane.
The Parasolid or CATPart geometry should not have a bounding box already included since the script
will create it automatically. However, when a STL is imported it must already have the bounding box.
For the general mesh settings, in case of Shallow water activation, mesh generation settings will
be updated accordingly to respect the water Depth and the ship wave region.
To finalize the mesh generation step, when the Manually check the mesh first has been selected,
the Start button of HEXPRESS™ will initialize the mesh generation. After the mesh is
successfully created, selecting the Go back to the project set up will proceed to the next step of
the wizard.
When meshing procedures has been finalized, the project will be automatically created respecting
the previously defined parameters. It is also available in the Plugins > Predefined menu as C-
Wizard Part II.
Estimation of the hydrostatic parameters will be automatically done by the domhydro tool. If the
Initial free surface position was set to User defined, the following hydrostatic properties of the
body will be displayed:
l Displacement: [kg]
l Coordinates of the Center of Gravity: [m, ft]
And the estimated inertia matrix as well, but the user can still edit the values since they have to be
as accurate as possible for a good added resistance calculation.
l Estimated inertia matrix: [kg/m²]
However, if the Initial free surface position was set to Automatic (based on body mass), only
the estimation of the Z-coordinate of the free surface location[m, ft] and the Estimated inertia
matrix[kg/m²] will be displayed as follows.
FIGURE 3.24
C-Wizard Part II: Interface input parameters for an automatic estimation of the free surface
location.
Components of the inertia matrix (moments and products) are defined at the center of gravity of
the body in the reference frame.
After confirming the Estimation of hydrostatic values, the settings of the computations will be
automatically defined. The Computations menu will be updated with the computation_ X.X
names, where X.X is the speed value.
The first page of the C-Wizard provides the general Project management menu. First, the
project must be created using the Create project button and by defining the working directory.
l Application: type Open water will provide access to the specific parameters in accordance to
this application.
l Fluid model: only Mono-fluid model is available as only the propeller is modeled during an
open water simulation.
The input geometry should always be defined in meters, regardless of the length unit chosen.
The Body configuration menu has the following input data and available settings:
FIGURE 3.26
Body configuration menu
The mesh can be generated using HEXPRESS™ or HEXPRESS™/Hybrid and imported in the C-
wizard with the Existing mesh option. The following recommendations have to be followed:
If the imported mesh is an HEXPRESS™ mesh and it was not generated, the C-Wizard will re-
generate it at the end of the Part I. HEXPRESS™/Hybrid and AutoGrid5™ meshes need to be
generated before they are imported since the C-Wizard cannot re-generate them.
If the geometry name contains blank spaces, a copy of the initial geometry file will be done into
the /_mesh directory and renamed with '_' instead of a blank space.
For an open water computation the shaft must be included into the geometry unless a STL/Domain or
an Existing mesh is imported.
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.
If the propeller is not aligned with the X-axis, two other angles have to be defined:
Clicking the Next button will switch to the page of the Flow definition menu.
FIGURE 3.28
Performance curve parameters
FIGURE 3.29
Additional inputs menu
Here no extra data should be provided, thus to define the mesh parameters, press the Next button.
The C-Wizard Mesh Set-up menu provides settings to configure the domain and mesh unless the
user has imported an existing mesh in which case this section is not accessible. HEXPRESS™
will create them automatically respecting the geometry and input parameters (body configuration,
orientation etc.). All the settings are driven by the type of simulation and inputs provided earlier.
For C-Wizard projects the Merge faces with the same name option is the preferred one. It is up to
the user to define how many parts will be present in the computation by defining patch names inside
a CAD software (such as CADfix for example). The user will ensure that the groups of patches with
the same name will be correctly defined depending on the computation specifics. Once the names are
defined, the C-Wizard will perform merging and will apply mesh parameters automatically.
l Simplify sharp angle: by defining a threshold where every lower angle will be considered as
sharp, geometry will be simplified where the sharp angle is detected. By default the Treshold
value is fixed to 10. Sharp angles in the geometry can lead to poor quality cells in the
HEXPRESS™ mesh, for instance in the area thin surfaces. This function can help, in an
automated way, to preserve better mesh quality by locally splitting and merging patches to
remove the sharp angle.
l Domain size:
o Automatic : the domain size is defined according to the propeller radius R (R is
automatically computed by the C-Wizard). Hence the automatic domain dimensions are
specified as:
n Lupstream = 4R: number of propeller radius applied upstream the flow direction (in front
of the propeller).
n L downstream = 12R: number of propeller radius applied downstream the flow direction
(behind the propeller).
n L side = 6R: number of propeller radius on the sides of the propeller across the flow to
create the cylindrical domain.
Please note that if the domain size is too small, compared to the previous recommendations,
the quality of the solution can be affected.
Automatic Y+ value is based on the assumption that wall function will be used during the
computation.
Viscous layers are defined and computed for solid faces only. The script assumes an isotropic
mesh is used on the solid walls. Hence, the height of the first Euler cell on the solid walls can be
computed by the script according to the number of refinement: , where
H Euler - size of the Euler mesh cell; H init - size of the initial mesh cell; N - the number of
refinement on the face. The number of viscous layers needed to completely fill the Euler cell is
computed with an inflation technique and a stretching ratio of 1.2.
The number of viscous layers is computed based on a theoretical formula and does not take into
account the influence from patches nearby. It is advised to let the inflation method active or to check
the number of viscous layers to insert after the optimization step.
FIGURE 3.32
C-Wizard Part I report window: Switch to the automated mesh generation.
The Parasolid or CATPart geometry should not have a bounding cylinder already included since the
script will create it automatically . However, when a STL is imported it must already have the
bounding cylinder.
To finalize the mesh generation step, when the Manually check the mesh first has been selected,
the Start button of HEXPRESS™ will initialize the mesh generation. After the mesh is
successfully created, selecting the Go back to the project set upwill proceed to the next step of
the wizard.
When meshing procedures have been finalized, the project will be automatically created
respecting the previously defined parameters. The Computations menu will be updated with the
computation_X.X names, where X.X is the rotational speed value.
The flow reference velocity used to define the Time step value parameter is computed considering
not only the Flow speed but also the Rotational speed of the propeller. This reference value is
also used to compute the first layer thickness for a given Y+ during the viscous layer insertion in
HEXPRESS™ and the Reynolds number in the Flow model menu of FINE™/Marine.
In case of computing the Performance curve of the propeller, the first layer thickness is
estimated considering only the maximum Rotational speed of the propeller. However, the
reference velocity to define the Reynolds number in the Flow model menu for each computation
will consider its corresponding Rotational speed.
The first page of the C-Wizard provides the general Project management menu: here the
project directory can be specified. Selecting the Application type Planning regime will provide
access to the specific parameters in accordance to this application, which will allow to estimate the
final position of the hull using the Savitsky prediction method or by prescribing a User-defined
estimated position, in addition to a classic Resistance application.
It is also possible to define the Wizard units that will be used during the wizard process.
The input geometry should always be defined in meters, regardless of the length unit chosen.
Body configuration menu has the following input data and settings available:
It is possible to create the half geometry domain from the entire body geometry unless an
STL/Domain was imported.
FIGURE 3.35
Cut body menu
If Cut body in two (with mirror plane) is selected the mirror plane will always be placed at
Y=0.0. On the other hand if Keep entire body (no mirror plane) is selected the domain will be
centered in Y direction on the body center.
l Body configuration: Cut body in two (with mirror plane) / Keep entire body (no mirror plane)
l Body orientation: Positive or negative along the X and Y-directions
l Is the body aligned with the Cartesian axis?: Only the option Yesis available
l Body reference length[m, ft]: Automatic (= LOA) or User defined
It allows to specify the way the domain and the mesh setup will be defined based on the length of
the ship automatically computed by the C-Wizard, or imposed by the user and specified in the
units of the project. This choice will influence the size of the domain created and initial mesh cell
sizes.
l Initial free surface position[m, ft]: Only the option User defined is available
l Body mass[kg]: Only the option User defined is available
l Center of gravity[m, ft]: Only the option User defined is available
l Body motion(s) to solve: Trim/Sinkagecan be activated or deactivated
The Savitsky method is known as a resistance prediction method for prismatic planing hulls.
Generally speaking and based on the input information provided, the C-Wizard mode with the use
of the Savitsky prediction method will estimate the planing hull final position for the given speed.
If the Savitsky prediction method requirements are not respected by the computation conditions,
information will be provided at the end of the setup. With the suggestion given, conditions could
be modified to meet the requirements.
Please, note that the Savitsky prediction method has been created for prismatic hull shapes. According
to this, the accuracy of the prediction cannot be guaranteed for other hull shapes. Here, the classic
approach suggested in "High Froude number ship motion (solved trim and sink study)" (p. 259)is
recommended to be used.
FIGURE 3.36
Input parameters for the Savitsky prediction method
These values should be entered for the ship in the initial hydrostatic position.
l Hull characteristics:
l b[m, ft]: beam of the hull;
l beta[deg, rad]: deadrise angle of the hull.
l Engine characteristics:
l f[m, ft]: distance of thrust line to the CoG;
l epsilon[deg, rad]: an angle between the bottom line and the thrust line.
By clicking the Illustration button, a picture illustrating the described parameters will become
available:
FIGURE 3.37
Savitsky parameter illustration
User-defined position
If an estimation of the final position of the boat is known, the C-Wizard will directly move the
planing hull in this position.
FIGURE 3.38
Input parameters for the user-defined position method
These values should be entered relatively to the ship in its initial hydrostatic position:
l Sinkage: the value should be positive if the boat goes down and negative if the boat goes up.
l Trim: the trim value is the rotation around the CoG along the Y-axis
The rotation center used to apply the trim is the Center of Gravity defined in hydrostatic position
(before applying the sinkage).
Clicking the Next button will switch to the page of the Flow definition menu.
If the user is working in batch mode it is possible to choose if the different speeds of the resistance
When working from the graphical interface single mesh is used by default to have one single
project.
l Scale input data: Activate - Scaling factor
Scaling option supports the speed values and position of the free surface automated update to
ensure the Froude's similarity for the model and the full scale ship forces.
l Fluid properties: Water and Air properties database
If nothing has been changed, C-Wizard will use the data for the fresh water at 15 degrees.
l Shallow water: It activates the specific treatment for the mesh and flow settings when the
proximity of the bottom should be taken into account. To begin, one can verify if the
configuration is indeed a shallow water problem. According to ITTC formula, shallow water is
defined by:
with H the height of the water surface compared to the bottom, and D the draught.
FIGURE 3.40
Shallow water activation
In case the configuration can be considered as a shallow water case, the Depth [m, ft] value
should be defined as the distance between the free surface level and the bottom location.
Clicking the Next button will switch to the page of the Additional inputs menu. These options
are not mandatory.
FIGURE 3.41
Additional inputs menu
When an Actuator disk is activated the mesh is refined around it in the following way:
l A refinement sector starting 2 disk radius upstream of the disk and ending 6 disk radius
downstream is created. Its radius is 1.1 times the disk radius. Its refinement level is a
function of the disk radius and mesh density.
l A second smaller refinement sector covering exactly the disk volume is created only if
necessary to make sure there are at least 20 cells in the disk thickness.
l Drag based external force (sail, propeller, wind, etc.): Direction and Application point
coordinates [m, ft]
l Adaptive grid refinement on free surface
This is the FINE™/Marine flow solver based option. The C-Wizard mode applies the Free
surface (directional) criterion with automatically defined parameters. Criterion description and
more details can be found in the Criterion section.
The C- Wizard Mesh Setup menu provides settings to configure the domain and mesh.
HEXPRESS™ will create them automatically respecting the geometry and input parameters
(body configuration, orientation, free surface position and etc.). All the settings are driven by the
type of simulation and input provided earlier.
For C-Wizard projects the Merge faces with the same name option is the preferred one. It is up to
the user to define how many parts will be present in the computation by defining patch names inside
a CAD software (such as CADfix for eg.). The user will ensure that the groups of patches with the
same name will be correctly defined depending on the computation specifics. Once the names are
defined, the C-Wizard will perform merging and will apply mesh parameters automatically.
l Simplify sharp angle: by defining a threshold where every lower angle will be considered as
sharp, geometry will be simplified where the sharp angle is detected. By default the Treshold
value is fixed to 10. Sharp angles in the geometry can lead to poor quality cells in the
HEXPRESS™ mesh, for instance in the area of keels, spray rails, skeg tangent to hull and etc.
This function can help, in an automated way, to preserve better mesh quality by locally
splitting and merging patches to remove the sharp angle.
The free surface is refined to reach a target cell size of LOA/1000 in Z direction. The aspect ratio
of the cells is 128 and a diffusion of 4 is applied. If the mesh density is Coarse the diffusion is
reduced to 3.
When moving at high speed, the ship generates a deep wake, so a box refinement will be always
added at this location with the following settings:
l Length: starts LOA/10 before transom, ends 0.5 LOA behind the ship
l Width: 1.2 times the width of the ship, centered on y = 0
l Height: between the bottom of the ship and the free surface level
l Refinements: same as for the global free surface
l Diffusion: 3
Domain size:
l Automatic: it is assumed that the domain size can be defined according to the Froude number
(Fn) and based on the length overall (LOA) of the ship. Hence default numbers are specified
as:
o LOABefore = 1.5
o LOABehind = 3 (Fn≤1), 4 (1<Fn<1.5) or 5 (Fn≥1.5)
o LOABelow = 1.5
o LOAAbove = 1.0
The C-Wizard will not necessarily and precisely respect this number of user-defined LOA: the new
domain size is adjusted to exactly have LOA/1000 for the free surface refinements. Indeed, to get this
exact cell size for the free surface, the initial cell size and the domain size must be adjusted as well.
In case the Input geometry is an STL or the Domain the following option is available:
l Keep initial size: The domain size will be kept as an Input geometry and the mesh will be
recalculated considering the C-Wizard settings.
Please note that if the domain size is too small, compared to the ex recommendations, the quality of
the solution can be affected, so that body motion might bring it too close to the External boundaries.
Automatic Y+ value is based on the assumption that the wall function will be used during the
computation.
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.
The buffer insertion of Type II is activated by default for the edges on the Mirror plane during the
snapping step. However, HEXPRESS™ will try to respect this input but it is not guaranteed that
it will be the case after snapping. After specification of the inputs, domain is constructed,
boundary conditions are also defined automatically, different refinement boxes have been
successfully created and it will be suggested to follow the mesh generation or to check the mesh
settings manually first.
FIGURE 3.44
C-Wizard report window: Switch to the automated mesh generation
The domain creation will not work in case the symmetry plane is not perfectly aligned on the Y
plane.
The Parasolid or CATPart geometry should not have a bounding box already included since the script
will create it automatically. However, when a STL is imported it must already have the bounding box.
For the general mesh settings, in case of Shallow water activation, mesh generation settings will
be updated accordingly to respect the water Depth and the ship wave region.
To finalize the mesh generation step, when the Manually check the mesh first has been selected,
the Start button of HEXPRESS™ will initialize the mesh generation. After the mesh is
successfully created, selecting the Go back to the project set up will proceed to the next step of
the wizard. A summary of hydrostatic parameters computed using Domhydro will also be
displayed:
FIGURE 3.45
Summary of hydrostatic parameters
When meshing procedures have been finalized, the project will be automatically created
respecting the previously defined parameters. The hull is already rotated to the predicted final
trimmed position. The Computations menu will be updated with the computation_X.X name,
where X.X is the speed value.
If the hull is equipped with engines that extend its dimensions, an extra step may be needed.
Indeed, to place the boat according to the Savitsky prediction, the C-Wizard needs to know where
is the bottom aft of the hull. If the geometry imported doesn't contain the names of the patches, the
bottom aft of the engine will wrongly be taken instead, and the positioning will not be correct. To
handle this kind of situation, one can proceed in two steps by launching the C-Wizard twice:
1. Create a domain using the Resistance mode of the C-Wizard, name the patches and find the Z-
coordinate of the free surface if needed;
2. Create the final project using the Planing regime mode of the C-Wizard with the domain
previously created.
Step 1
Step 2
The C-Wizard always reads the refinement dictionary provided in the file 'cwizard_refinement_
dictionary.csv' present by default in /_python/_fine/_marine/. This file provides information about
the refinements that will be applied for different patches according to their name. This file can be
customized by the user, directly into the installation folder (all users of the version will be
impacted) or through a local copy of the file at a different location.
If names in the CAD software have been defined in accordance with this vocabulary, the C-
Wizard will be able to recognize them and to define mesh settings accordingly.
A 'Coarse' mesh corresponds to the 1st level of mesh density, 'Medium' to the 2nd level and 'Fine'
to the 3rd level. Hence, if the selected mesh density in the interface is 'Medium', the 2nd number
of the refinement level will be selected. The same idea applies for the diffusion.
The refinement dictionary file should have the following structure:
l Patch name: name specified for surfaces/patches within the geometry file. If several names are
specified, they must be separated by the ';' symbol.
If the face name is not in this table, the script will assign he target cell size criteria (0,0,0) together
with a maximum number of refinements equal to 6 and global diffusion.
Patch names can be written in different ways: capital letters or not, with a suffix or prefix, etc.
For instance, "surf1_ domship_ Deck_ 2" will be considered as "Deck" for the refinement
parameters, as long as it is the only keyword found in the dictionary.
If there are several patches containing the same name (for example "Hull1", "Hull2" and "Hull3")
they will be grouped together in HEXPRESS TM . If a patch name contains two dictionary names
from the dictionary ("Hull_small"), the patch will go to the group with the highest number of
refinements (in this case "Small") and get the highest number of refinements applied.
l Application: type of application can be specified as 'all', or dedicated to one several modes
from C- Wizard: 'resistance' , 'seakeeping' , 'openWater' , 'planingRegime' . If several are
specified, they must be separated by ';' without spaces.
l Criterion: type of Adaptation criterion can be defined as 'Distance', 'Curvature' and/or
'Target' for Target cell sizes. If several are specified, they must be separated by ';' without
spaces;
l Max number of refinements (coarse;medium;fine): maximum level of Refinements for each
mesh level, using an integer such as 2;4;6 for instance;
l Target (coarse(X;Y;Z);medium(X;Y;Z);fine(X;Y;Z)): Target cell size on the specified patch
defined by the size in X,Y,Z directions, such as (0;0;0);(0;0;0);(0;0;0). The decimal numbers
have to be written here: with a '.' and not a ',';
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).
The patch names in a row are "Blade", "Suction_side", "Ss", "Pressure_side" and "Ps", and that
3 patches of the domain are called "Suction_ side" and 3 others "Pressure_ side", will all be
grouped under the name "Blade".
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.
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.
Common edges between two patches with the same keyword inside their name can lead to a
particular refinement. To avoid it, common edges should be merged or not present in the initial
geometry. This is the typically the case for:
l the following keywords: "blade", "suction_side", "ss", "pressure_side" or "ps". Edges will be
refined according to the level of refinement: 7 for coarse, 8 for medium and 9 for fine. This
feature is particular interesting for propeller refinements.
l the keyword "foil". Refinement levels for the common edges will be: 12 for coarse, 13 for
medium and 14 for fine.
l when a common edge is found between the keywords "hull" and "transom", edge refinement
will be applied: 8 for coarse, 9 for medium and 9 for fine.
It is possible to run the C-Wizard full procedure in batch mode and the way to launch it depends
on the operating system.
For Linux the command line is:
finemarine# -print -batch -cwizard -input /input_file_directory/application_type.input
For Windows OS it is necessary to create a Windows Batch File (.bat) with the following content
and to do double left-click on it:
C:\...\finemarine#\bin64\fine_marinex86_64.exe -print -batch -cwizard -input C:\input_file_
directory\application_type.input
pause
It is recommended to store the .input file and to launch the C-Wizard in batch mode from the project
directory.
Templates of the .input files for the resistance, seakeeping, open water, sailing yacht resistance
and hydrofoil resistance applications are available under the following directory for Linux and
Windows OS:
/NUMECA_SOFTWARE/finemarine#/_python/_fine/_marine/
These template files are:
l resistance: cwizard_resistance.input,
l seakeeping: cwizard_seakeeping.input,
l open water: cwizard_open_water.input,
l planing regime: cwizard_planing.input
l sailing yacht resistance: cwizard_sailingYachtVPP.input.
l hydrofoil resistance: cwizard_foilVPP.input.
Expert template files contain all the information required for the computation launch. Input files
are also created during the C-Wizard setup through the interface as described in the paragraphs:
"Open water application" (p. 95), "Resistance application" (p. 63), "Seakeeping application" (p.
79), "Planing regime application" (p. 107) and then can be modified in accordance to the user
preferences. It is also possible to create a multiple calculation setup thanks to the matrix
implementation approach. Details can be found in the paragraph "C-Wizard computation matrix"
(p. 129).
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..
With matrix setup computations the description of a ship or ships can be specified in several
positions. To modify the ship initial position automatically in accordance with the Matrix
parameters, the initial geometry has to be provided in the upright position.
To use the Matrix mode, the template file .input provided within the /NUMECA_
SOFTWARE/finemarine#/_ python/_ fine/_ marine/ should be modified. This mode is only
available in batch mode. Here are the necessary inputs to specify the computation Matrix.
Matrix parameters
Firstly, there are two options to define a matrix to calculate. A full matrix or a sparse matrix.
This will result in a full matrix: all combinations of yaw, pitch, roll and draught will be used as
This approach allows to set up a sparse matrix, where only some combinations of angles and
draughts are used.
To use it the MATRIX INPUT FILE field is available in the input file:
*** MATRIX INPUT FILE
* 1 = YES /0 = NO ; *.csv path & name (If YES, leave all MATRIX PARAMETERS and List
of speeds to 0.0)
0 /path_to_matrix_definition/sparse_matrix.csv
*
An example of matrix input file can be found in /NUMECA_SOFTWARE/finemarine#/_python/_
fine/_marine/matrix.csv.
l Comments can be included in this file by starting the line with "#".
l The first non-commented line needs to be a header with the list of matrix parameters. The
order of this header will be user to read the rest of the file.
l The "speed" column is compulsory, the rest are optional.
l If a column is not present its value will be assumed to be zero.
l Units are as defined in the input file.
#Example of matrix.csv file
FIGURE 3.49
Computation list in a project created with the matrix.csv above and single mesh approach.
"Y" stands for yaw, "R" for roll and "V" for velocity.
Depending on the selected mode of matrix calculation, the body motion setup will be adapted.
l Domhydro workflow:
l For each different draught the mass, CG and inertia matrix will be computed.
l If there are angles (yaw, pitch or roll) the mass, CG and inertia of the draught will be kept.
The sinkage (Tz) neded to keep static iso- displacement will be computed. This extra
sinkage will only be applied if the sinkage degree of freedom is solved during the
computation.
l Rotations are applied around the CG computed by Domhydro.
l The output files from Domhydro are stored under the _mesh folder and renamed with the
computation name.
l If all draughts in the matrix are the same: user-defined mass and CG are allowed. If there are
different draughts the mass and CG need to be automatic as it is not possible to give a list of
masses and CGs as input.
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.
If single mesh is not active one project is created per matrix point as shown in "Matrix project
structure." (p. 130). If more than one speed is given, each speed will have a separate computation.
Yaw and Roll angles are incompatible with the half body configuration.
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.
If single mesh is not active the user can choose if AGR is used or not.
If single mesh is active AGR will be automatically activated. The main AGR settings used will be
the following:
l Criterion: Free surface tensor
l Target grid spacing normal to free surface: 1.3*LOA/1000
Launch parameters
l Number of cores
Number of meshes to be performed at the same time. This option depends on the license profile,
thus please contact your local support team in case of questions. This option is not relevant for
single mesh approach where a single project is created.
To track the progress of each computation launched under the global project the "cwizard.status"
file is created within the project directory each time. Details can be found in "The C-Wizard
Status File: .status" (p. 570).
Example of a Resistance and Seakeeping half-body computation set up can be found in the
following table. User input here stands for parameters entered through the C-Wizard interface and
imposed automatically in the Parameters menu of FINE™/Marine interface.
The main concept of the C-Wizard is to provide default settings for the mesh generation and
computations. A first division is done by general categories such as "Resistance application" (p.
63), "Seakeeping application" (p. 79), "Open water application" (p. 95), and "Planing regime
application" (p. 107). These categories are sufficient to filter the questions to ask to the user and
determine the most important settings automatically. However, even if they are based on best
practices gathered from the user, they should remain conservative enough to be applicable on a
large variety of utilization. For such reason, NUMECA also provides extended applications. They
contain optimized default settings dedicated to particular applications, such as hydrofoil or sailing
yacht resistance, also based on recent investigations and users feedback.
In this chapter the user will find the following applications:
l Hydrofoil resistance
l Sailing yacht resistance
l Trim optimization
Hydrofoil resistance
This extended application is based on the "Resistance application" (p. 63) and on the "C-Wizard
computation matrix" (p. 129). We invite the users to first read these two chapters as well as
"Launching C-Wizard in batch mode" (p. 128) before continuing.
This extension for hydrofoil has been developed in the frame of the America's cup studies. The
main goal is to provide a Velocity Prediction Program (VPP) with the matrix of efforts from the
hydrofoil. The VPP code classically used in the Cup solves the performance of a sailing yacht in
various wind conditions by balancing hull, rudder, hydrofoil and sail forces. As a result, this
extended application is only available in matrix mode and therefore only in batch mode.
A new template, called "cwizard_foilVPP.input" is provided in the installation package under:
/NUMECA_SOFTWARE/finemarine#/_python/_fine/_marine/
As in the rest of matrix applications the different geometry positions and speeds can be given
directly in the input file to obtain a full matrix or through a MATRIX INPUT FILE to obtain a
sparse matrix.
The user can also choose between two approaches with regard to the meshing strategy applied to
the combinations of yaw, pitch, roll, draught and speed per geometry under study, defined under
*** SINGLE MESH in the input file:
l No single mesh: each combination of the matrix has its own mesh, which leads to one project
per combination in the matrix. Therefore, per geometry there will be as many projects as
number of combinations in the matrix and each project will have as many computations as
number of speeds.
l Single mesh: all the combinations in the matrix are computed with a single mesh, which leads
to one project per matrix. Therefore, per geometry there will be only one project with as many
computations as number of combinations in the matrix.
The list here below provides all the differences with the template for the Resistance application.
These defaults can still be changed by the user, but the C-Wizard will not guarantee an optimal
setup anymore.
l The C-Wizard Matrix mode is active.
l The Body configuration is set for an entire body.
l No Body motions to solve.
l The Actuator disk feature is not available.
l All the patches are merged according to their names.
l The y+ is defined and equal to 80.
The center of gravity input will be used as the reference point to apply the pitch and roll angles in
single mesh mode and also to calculate the efforts in both approaches.
Also, some particular expert parameters are automatically added to the setup in "Expert
Parameters" (p. 457) menu:
l The streaking correction is activated ( CIStreakCorrection_ and
CIAgressiveStreakCorrection_).
l The wetted surface is computed automatically and recoded into a file called "body_
wettedsf.dat" (MultifluidsWettedSurf_).
l The velocity clipping is activated to avoid any local and temporary divergence (VelocityClip_
and VelocityClipFactor_).
This extended application is based on the "Resistance application" (p. 63) and on the "C-Wizard
computation matrix" (p. 129). We invite the users to first read these two chapters as well as
"Launching C-Wizard in batch mode" (p. 128) before continuing.
The center of gravity input will be used as the reference point to apply the pitch and roll angles in
single mesh mode and also to calculate the efforts in both approaches.
Also, some particular expert parameters are automatically added to the setup in "Expert
Parameters" (p. 457) menu:
l The streaking correction is activated ( CIStreakCorrection_ and
CIAgressiveStreakCorrection_).
l The wetted surface is computed automatically and recoded into a file called "body_
wettedsf.dat" (MultifluidsWettedSurf_).
l The velocity clipping is activated to avoid any local and temporary divergence (VelocityClip_
and VelocityClipFactor_).
The user defined "Refinement dictionary" (p. 125) allows to apply particular settings for sailing
yacht resistance only if necessary prescribing the keyword "sailingYacht" in the application list.
Trim optimization
This extended application is based on the "Resistance application" (p. 63) and on the "C-Wizard
computation matrix" (p. 129). We invite the users to first read these two chapters as well as
"Launching C-Wizard in batch mode" (p. 128) before continuing.
The objective of the Trim optimization is to find the optimum initial static trim leading to minimal
drag for a given displacement and operational speed. This will allow the operator to distribute the
loads and ballasts on the ship in an optimal way to minimize fuel consumption.
A new template, called "cwizard_resistanceTrimOpt.input" is provided in the installation package
under:
/NUMECA_SOFTWARE/finemarine#/_python/_fine/_marine/
Inputs definition
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
This approach allows to set up a sparse matrix, where only some combinations of draught and
trim are used.
To use it the MATRIX INPUT FILE field is available in the input file:
*** MATRIX INPUT FILE
* 1 = YES /0 = NO ; *.csv path & name (If YES, define only trim unit in MATRIX
PARAMETERS and leave List of speeds to 0.0)
0 /path_to_matrix_definition/sparse_matrix.csv
*
An example of trim optimization matrix input file can be found in /NUMECA_
SOFTWARE/finemarine#/_python/_fine/_marine/matrix_TrimOpt.csv
l Comments can be included in this file by starting the line with "#".
l The first non-commented line needs to be a header with the list of matrix parameters. The
order of this header will be user to read the rest of the file. The three columns (draught, trim
and speed) are compulsory.
l Draught is distance between ship baseline and free surface at midship. The first draught should
correspond to the draught in the imported geometry.
l Units as defined in the input file.
The trim unit (angle or length) still needs to be defined in the input file.
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.
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:
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.
Additional inputs
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.
If single mesh is not active the user can choose if AGR is used or not.
If single mesh is active AGR will be automatically activated. The main AGR settings used will be
the following:
l Criterion: Free surface tensor
l Target grid spacing normal to free surface: 1.3*LOA/1000
Mesh
FIGURE 3.50
Refinement sectors for drag based wrench
Sector 1 is horizontal and Sector 2 is aligned with the shaft direction. If a trim is applied to the
ship both sectors follow the rotation.
Solver settings
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.
Trim given as a length is not compatible with automatic body reference length.
The way the grid dependence study is aimed here is by refining systematically the initial
HEXPRESS™ generated mesh while keeping the same Surface refinements in all meshes using
the C-Wizard facilities. This ensures the whole volume being refined systematically and not only
the area around the Solid patches.
C-Wizard's initial meshes contain a number of cells N in each direction (X, Y, Z) with the
following relationships starting from Medium:
l Ncoarse = 3/4*Nmedium
l Nfine = 5/4*Nmedium
Considering this the following workflow can be followed for the grid dependence study
performed using C-Wizard.
3.10.1 Workflow
1. Create a user defined file with mesh parameters for the Solid patches. To do so use the
approach employing the "Refinement dictionary" (p. 125) that will be automatically interpreted by
the C-Wizard. Template file cwizard_refinement_dictionary.csv can be found in /_python/_fine/_
marine/.
This dictionary should keep the same Number of refinement on the Solid patches for all
mesh levels (from Coarse to Fine) while changing the Diffusion level as:
l 1 for Coarse,
l 2 for Medium,
l 3 for Fine mesh level.
This will ensure that the distance covered by the refinement is the same among all meshes
since the Diffusion is a measure of how far from the Solid patches the refinement propagates
in number of initial cells. More details can be found in HEXPRESS™ User Guide.
Here the Initial cell sizes have a relationship of 2/4, 3/4, 4/4, 5/4 which are the largest cells on
each mesh. Diffusion is D= 1,2,3 and 4: one initial cell next to the Solid patch is refined by
default (Number of refinement is 1) and then diffusion fills D initial cells.
2. During the C-Wizard Mesh setup procedure in the Refinement dictionary file (*.csv) attach
the generated cwizard_refinement_dictionary.csv when selecting the User defined option.
To prepare extra meshes beyond the Fine level continue the same pattern in the Initial mesh:
l Mesh 4 will have an initial mesh in each direction corresponding to 6/4*Nmedium,
l Mesh 5 will have 7/5*Nmedium, etc.
The Diffusion also needs to increase to 4 and 5.
SELF-PROPULSION
While investigating ship power requirements, free- running model experiments or self- propulsion
simulations can be very useful. Regarding the fact that measurements of the actual ship propeller thrust
are not usually available, numerical self- propulsion simulation can support better mapping from
desired to actual thrust within a shorter time frame and reduced costs.
In CFD, a general approach is adopted respecting the available numerical algorithms what normally
leads to several computations to be performed before reaching the self- propulsion point. For the
described challenges, FINE™/Marine suggests a particular dynamic library which eases and speeds the
self-propulsion studies up.
In this section
4.1 Introduction 152
4.2 Computation procedures 153
4.3 Input 161
4.4 Output 165
4.5 Recommendations 167
Four types of computations are available depending on the known/ unknown variables and how
the propulsion system is modeled:
l Type I: fixed ship speed [m/s] and computed propeller rotational velocity [rad/s];
l Type II: fixed propeller rotational velocity [rad/s] and computed ship advancing speed [m/s];
l Type III: fixed delivered horsepower (DHP) [W] and computed both propeller rotational
velocity [rad/s] and ship advancing speed [m/s];
l Type IV: fixed thrust horsepower (THP) [W] and computed ship advancing speed [m/s].
Type I, Type II and Type III are intended for computations where the real propeller is considered
in the computation through the usage of the sliding grid technique. Nevertheless, Type IV is only
for computations in which the propeller is modeled with an actuator disk.
The most typical propulsion tests, as described by the International Towing Tank Conference
(ITTC), are performed with a model captive to the carriage of a towing tank. For a given target
speed, runs at different propeller rotational speeds (RPS, or revolutions per seconds) are
performed and the net towing force is measured. Objectives here are to find the propeller RPS that
will lead to a given towing force indicating that the self-propulsion point has been reached by
balancing the propeller thrust and the total resistance.
These above- mentioned results can be obtained with the computation Type I of the self-
propulsion dynamic library. In a single run the library will compute the correct RPS of the
propeller for each imposed ship velocity ensuring that the propeller thrust will compensate the
ship drag forces (including the residual force that can be non zero). Residual force here can be the
towing force of the carriage or additional forces due to the specific case conditions.
Current limitations:
l Only computations with the ship advancing in the X-direction;
l Only computations with a steady-state converged solution, i.e. not valid for seakeeping
simulations;
l Only one propulsion unit per hull in the simulation;
l For computations of Type I, Type II and Type III only right handed propellers are allowed
(with respect to an axis going from the stern to the bow of the ship);
l For computations of Type IV with activated tangential force, the initial ratio torque/ thrust
will be kept constant during the simulation.
Before launching the self-propulsion plugin, the user must have completed the setup of the
computation parameters (an example for computation Types I, II and III can be found in the
Advanced tutorial 2 on the self-propulsion of the KCS). When the real propeller is present in the
computation, thus computation of Type I, Type II or Type III, in the Body motion parameters
menu the user must select the Dynamic library as an Imposed type of motion for the propeller.
However, when the propeller is considered into the computation through an actuator disk model,
thus computation of Type IV, in the Actuator disk parameters menu the user must select
PROPELLER CODE as a force distribution.
When executing the self-propulsion plugin for a given computation, it invites the user to fill in the
values for the different parameters involved in the self-propulsion study. Once this input step is
done, the plugin performs two actions within the folder of the computation:
1. It generates an input file called SPinputs.dat;
2. It copies into this folder the compiled library file isis_dynamic_library.so for Linux OS and the
isis-dynamic_library.dll for Windows OS.
FINE™/Marine searches for the files with names isis_dynamic_lib.so (.dll) and SPinputs.dat ,
therefore they must not be renamed.
In case the user would like to manually perform the actions done by the plugin, the above-
mentioned files can be found at the following locations:
1. Type I, Type II and Type III: In .../_ data/isis/dynamic_ lib/SP_ sliding_ grids/linux64/ for
Linux OS and ...\_data\isis\dynamic_lib\SP_sliding_grids\win64\ for Windows OS.
2. Type IV: In .../_ data/isis/dynamic_ lib/SP_ actuator_ disk/linux64/ for Linux OS and ...\_
data\isis\dynamic_lib\SP_actuator_disk\win64\ for Windows OS.
In these last folders, the file SPinputs.dat is provided as a template file, in which the numerical
and physical parameters have to be particularized for the computation under study. This file is also
described in the The Self-propulsion Dynamic Library file: SPinputs.dat section.
Results of the computation applying the dynamic library are stored in the output file SPResults_
XXX.dat for each processor, where XXX is the number of the processor. Detailed description of
outputted data for each type: "The SPResults_XXX.dat file" (p. 580).
1. Launch the self-propulsion plugin and fill in the requested parameters or manually complete
Propeller and vessel names should be defined in the same way as in the Body definition menu
through the FINE™/Marine GUI. Otherwise, the computation may crash.
It controls the clockwise/ counterclockwise rotation of the propeller. If not changed, by default it
will be taken as 1 by the solver.
Specific inputs:
l Type I: Vessel speed [m/s]
l Type II: Propeller rotational velocity [rad/s]
l Type III:
l Propeller rotational velocity [rad/s] (estimation)
l Power of the propeller (DHP) [W]
Optional input:
l Additional constant wrench applied along the x axis [N]: (real)
It can be used when there is a carriage towing force or tugging conditions to be taken into
account for the simulation.
The value of 30.3 Newtons used in the SPinputs.dat template is for the KCS hull computation
case. It should be changed according to the user case conditions.
Advancing velocity of the vessel becomes mandatory as well when the residual force is non
zero (namely, Additional constant wrench applied along the X- axis), otherwise the residual
force will be changed to zero and therefore not taken into account.
The limiter should not be activated from the first time step when the ship advancing speed or the
rotational speed of the propeller is either small or zero.
=============================================================
===========================
l Each time step, the dynamic library also writes a file SPResults_ XXX.dat for each
processor, where XXX is the number of the processor. Each of this file contains the
following data distributed among the following columns:
itt : current time step
tc : current value of the time step
F_ship(tp) : vessel drag at the previous time step tp
F_propeller(tp) : thrust of the propeller at the previous time step tp
(F_ ship+F_ propeller+F_ wrench)(tp) : sum of thrust, drag and residual force at the
previous time step tp
Delta n(tp) :variation of the rotational speed of the propeller from the previous time step tp
(only for Type I and Type III)
n(tc) : value of the rotational speed of the propeller to be applied at the current time step tc
(only for Type I and Type III)
Type IV
A current limitation concerns the frequency update of the actuator disk (see "Definition" (p.
290) of the Actuator disk): it is mandatory to use an update every time step (Frequency = 1).
1. Launch the self-propulsion plugin and fill in the requested parameters or manually complete
the SPinputs.dat file with the computation parameters as it is described next:
General inputs:
l Name of the vessel: (string)
Vessel name should be defined in the same way as in the Body definition menu through the
FINE™/Marine GUI. Otherwise, the computation may crash.
The value of 30.3 Newtons used in the 'SPinputs.dat ' template is for the KCS hull computation
case. It should be change according to the user case conditions.
Advancing velocity of the vessel becomes mandatory as well when the residual force is non
zero (namely, Additional constant wrench applied along the X- axis), otherwise the residual
force will be changed to zero and therefore not taken into account.
With 4 or 5 parameters provided, the Dynamic library normally will reach the operating point
conditions without additional modifications required. However, the default parameters are
defined to provide the stability and robustness of the algorithm, while it might be reasonable to
tune the computation with Expert parameters in order to increase the convergence speed of the
computation.
Expert parameters:
l Estimated thrust coefficient of the propeller at operating point Kt=Thrust/
(rho*Omega**2*D**4) [-] Thrust in [N] and Omega in [rps]: (real)
The convergence speed of the computation is related to the value of the thrust coefficient (Kt).
The closer the estimated thrust coefficient (Ktest) gets to the real value at operating point, the
faster will be the convergence speed together with the stability ensured. However, this may
lead to stability issues during the computation in case of inappropriate choice of parameter
value.
l Estimated advance coefficient at operating point J=Vship/(Omega*D) [-] Vship in [m/s]
and Omega in [rps]: (real).
To cope with potential stability issues and to avoid possible computation divergence, a limiter
is introduced. It can be activated and controlled by the following parameters after a given
number of time steps.
l Number of time steps before the limiter is activated: (real)
The limiter consists in bounding the value of the rotational speed of the propeller at the time
step (n+1) when knowing its value at the time step n.
The limiter should not be activated from the first time step when the rotational speed of the
propeller is either small or zero.
l Maximum variation of vessel speed between two consecutive time steps n and n+1 when
limiter is activated. Expressed in percentage of the value of omega at time step n: (real)
l Number of time steps before the controller is activated: (real)
4.3 INPUT
To run a simulation employing the Self- propulsion Dynamic Library, an input file called
SPinputs.dat should be completed with the parameters of the case study. An input data is
organized depending on the simulation types described in the previous paragraphs.
This parameter is also available in FINE™/Marine GUI through the Body motion menu in the
Dynamic parameters . For instance, to model the towing tank constant tugging speed, it could be
necessary to activate the Non follower force option.
Advancing velocity of the vessel becomes mandatory when the residual force is non zero
(namely, Additional constant wrench applied along the X- axis), otherwise the residual force will
be changed to zero and therefore not taken into account.
*** Propeller rotational velocity, [rad/s]: decimal number
The rotational velocity of the propeller at operating point must be imposed by the user in case of
the solved vessel speed, and will be estimated in case of fixed power.
*** Power of the propeller [W]: decimal number
The power of the propeller at operating point. Must be defined only for the fixed power
simulation (Type III).
Expert input parameters [optional input]:
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.
4.4 OUTPUT
The SPResults_XXX.dat output file is created when the dynamic library for self-propulsion is
used. At every time step, the dynamic library writes for each processor a file where XXX is the
number of the processor.
Each of the SPResults_XXX.dat files contains the following data, depending on the type of the
computation carried out:
Type III: Fixed delivered horsepower (DHP) [W] and computed both
propeller rotational velocity [rad/s] and ship advancing speed [m/s].
4.5 RECOMMENDATIONS
1. As for the standard resistance computation, the large time step can be used until the trim and
sinkage of the vessel are stabilized. Few time steps can be sufficient to run after the
acceleration ramp on the imposed velocity has reached its target velocity value.
2. Overestimating the propeller thrust coefficient (Kt) is better for robustness, however
underestimating can increase the convergence speed. Difference between the estimated thrust
coefficient (Ktest) and the real thrust coefficient (Kt) at operating point above 50% can be
acceptable.
3. It is advised to activate the limiter at about ¾ of the velocity ramp (namely 150 time steps if
200 time steps are used for the velocity ramp).
4. Perform 4 rotations of the propeller at least with the small time step to make sure convergence
is reached. In practice, several dozen propeller rotations can be needed.
5. If the dynamic library is used during the restart, activate the dynamic library after 3 time steps
at least to avoid the influence of potential peaks that could occur during the restart.
6. The closer to the operating point it comes, the lower the estimated thrust coefficient can be
applied to accelerate the convergence. Computation restarts could be a good solution in order
to reach the operating point faster.
GENERAL PARAMETERS
The General Parameters page, as shown in FIGURE 5.1 , can be used to specify the time
configuration and dependence of the equations to solve.
FIGURE 5.1
General parameters page
In this section
5.1 Unsteady Computation Interface 171
5.2 Best Practice on Time Accurate Computations 171
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.
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.
General advice on how to perform time accurate computations is provided in this section.
Initialisation Procedure
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.
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.
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
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.
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.
FLOW MODEL
The Flow Model page, as shown in FIGURE 6.1, can be used to specify several characteristics of the
flow:
l the mathematical model to:
l choose between laminar and turbulent flow,
l edit the gravity intensity,
l reference parameters defining the Reynolds number linked to Fluid-1, defined in the Fluid Model
page and the Froude number of the computation.
In this section
6.1 Mathematical Model 176
6.2 Gravity Intensity 184
6.3 Reynolds and Froude Numbers 185
When working with Laminar flows, turbulent component should not be taken into consideration
during the simulation.
In FINE™/Marine, available non-turbulent models are:
l Laminar: dynamic viscosity will be the laminar kinematic viscosity;
l Euler: dynamic viscosity will be set to 0 and all Solid Boundaries will be set to the Slip Wall
condition.
Information about Boundary condition types can be found "Solid Wall Boundary Condition" (p.
195)
When selecting turbulence Navier-Stokes models, turbulence is taken into account through the
chosen turbulence model. In FINE™/Marine, several turbulence models are available:
l Spalart-Allmaras,
l k-epsilon (Launder-Sharma),
l k-omega (Wilcox),
l k-omega (BSL-Menter),
l k-omega (SST-Menter),
l EASM (Explicit Algebraic Stress Model),
l DES-SST,
l DES-SST-F1,
l DES-SST-F2.
For all turbulence models, additional equations are solved, and consequently suitable initial and
boundary conditions are required. This is automatically done by the interface, see the Uniform
Values section.
Spalart-Allmaras is not compatible with wall-function for the solid walls boundary condition.
A. Introduction to Turbulence
k- ω (SST- Menter) is the default and represents the recommended turbulence model for all basic
hydrodynamic computations. However, the EASM turbulence model demonstrates slightly better
results for a reasonable extra CPU cost especially in the wake of the ship or the propeller for instance.
To get more accurate results, one best practice would be to start from the k- ω (SST- Menter) and
make a restart using EASM model for few extra time steps.
See Section 2 of the theoretical manual for more details about all turbulence models.
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+:
u+= /
Low-Reynolds models resolve the viscous sublayer and are well suited for y 1 + values below 1
whereas high-Re models apply analytical functions to the log-layer and are appropriate to y 1 +
values ranging from 30 to 300 (it depends on the extension of the buffer layer for the considered
flow). For y 1 + higher than 30, Wall-function boundary condition can be used whereas No-slid
(wall resolved turbulence model) should be preferred for y1+below 1.
FIGURE 6.2
Boundary layer profiles
Picture from White, F.M., Viscous Fluid Flow, McGraw Hill, 1991.
Moreover, one can notice that the logarithmic function does not apply for separated flow. When it
is expected that get a significant amount of separation, a low-Reynolds number turbulence model
is more appropriate. In that case, wall-function should not be used.
One way to estimate ywall as a function of a desired y1+ value is to use a truncated series solution
of the Blasius equation:
When using wall functions the following formula can be used to choose an adequate value of y+:
Thanks to a special treatment in the flow solver, any value of y + from 1 to the upper limit stated
above can be set with a wall function. However, the range of maximum turbulence production [10,20]
should be avoided for y + of first cell since this leads to errors of 3% to 4% on the estimation of
viscous stresses.
The y+ value for the Menter k-ω turbulence model should actually be closer to 0.2 than to 1 when
not using wall-function.
Note that the reference velocity, V ref, can be taken from the body velocity. The reference length,
L ref, should be based on the body length since an estimation of the boundary layer thickness is
implied in this calculation. For instance, in the case of a marine simulation, one could use the boat
length, or the so-called length between perpendiculars, as reference length. It refers to the length
of a vessel along the waterline from the forward surface of the stem, or main bow perpendicular
member, to the after surface of the sternpost, or main stern perpendicular member. This is
approximate, of course, as the thickness of the boundary layer will vary widely within the
computational domain. Fortunately, it is only necessary to place y 1 + within a range and not at a
specific value.
A y+ estimation tool is available in HEXPRESS™ in the viscous layer insertion menu. The same tool
is also used in the C-Wizard during the mesh setup.
Another method of estimating y wall is to apply the 1/7th velocity profile. In this case, the skin
friction coefficient Cf is related to the Reynolds number:
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
The resolution method employed in the flow solver requires approximately 9 nodes across a free
shear-layer, and approximately 15 across a boundary layer to provide grid independent results for
turbulent flows. If wall functions are used, the boundary layer only requires approximately 9
nodes.
Of course the flow field under consideration will consist of shear layers of which the width varies
substantially throughout the flow field. The user must therefore decide what is important to
capture. The number of nodes in stream wise direction should be determined by what resolution
adequately represents the studied geometry. Regions of local high gradients, such as keel leading
or trailing edges or any geometrical corners, should contain a relatively high number of nodes.
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.
These models can be classified in Detached Eddy Simulation (DES). A DES approach is based
on an implicit splitting of the computational domain into two zones. In the first region near solid
walls, the conventional RANS equations have to be solved. Within the second region, the
governing equations are the filtered Navier-Stokes equations of the LES approach.
1. When to use it
DES should be used if the expected flow solution is dominated for strong unsteadiness.
However, this model will be far more expensive because of the LES component and the lack
of spatial symmetry in the instantaneous flow solution. DES model is then not recommended
for marine applications (k-ω (SST-Menter) is most of the time more accurate and far less
expensive) but can be used for aerodynamic or mono-fluid applications.
2. How to use it
l (optional) run a first steady computation with k-ω (SST-Menter) model,
l restart with an unsteady simulation using DES model until stability of the signal,
l restart the computation activating the mean variables from the output menu (see "Mean
Flow Variables" (p. 479)).
As an example: Cell size is about 14 mm for JBC ship from the Tokyo Workshop 2015
(model scale).
l Y+ must be below 1. Hence a target of 0.2 or 0.3 should ensure to be below 1 while
inserting the viscous layers.
4. Simulation settings for the restart (as soon as DES is activated)
l Unsteady mode
l Recommended turbulence model DES version: DES-SST (the versions F1 and F2 do not
generally bring more flow information).
l Numerical schemes for Turbulence and Momentum: BLENDED with UPWIND of 0.05
(5%).
l The time step is the most difficult to estimate since it depends on the flow structures to be
captured. A first rule of thumb says that we can have (classic is 10
times higher) so that the ship sees 1000 times the same particle.
l 20 non linear iterations with 2 order of gain.
Due to the fact, that turbulence is not solved for the Euler type of equations the following advices
could be followed:
1. Flow Model should be set as Laminar
2. Boundary Conditions for the Solid walls set as SLIP (zero shear stress). Else, the Wall-
function condition can be applied to the Solid boundaries in case the convergence is slow and
hard to reach.
3. Dynamic viscosity is not possible to set as zero now, so it should be reduced to a small value
tending to zero.
It is important to notice, that the convergence of such simulation is less stable, same time the
number of non-linear iterations is recommended to be increased in general.
When gravity is taken into account, the Gravity Intensity (FIGURE 6.3) should be edited. One
input is required which corresponds to the gravity intensity along Z-axis for 3D projects and Y-
axis for 2D projects.
FIGURE 6.3
Gravity Intensity
When a mono-fluid computation is performed, the gravity intensity is set automatically to 0 by the
solver. It is thus not present in the interface.
When the gravity is taken into account in the Navier-Stokes equations, the source term:
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.
FLUID MODEL
Every FINE™/Marine project contains at least one fluid with corresponding properties. In
FINE™/Marine, the fluid can be defined by:
1. using the default fluid(s) properties. They correspond to salt water and atmospheric air in case of
multi-fluid flow,
2. creating a new fluid by editing the name and properties.
When an existing project is opened, the fluid is defined by the properties as given in the project file.
Presently, only Newtonian liquids with uniform density can be simulated.
This menu also allows to a model passive scalar field. This field is not interacting with the other fluids.
Its objective is to use the information from the other fluids to be passively convected.
In this section
7.1 Mono-Fluid Project 187
7.2 Multi-Fluid Project 188
7.3 Passive scalar 190
In the Fluid model menu, the fluid properties can be defined: the Name of the fluid, the Dynamic
viscosity and the Density. All modifications are applied to the current project only.
FIGURE 7.1
Fluid Model Page for Mono-Fluid project
Usually, Fluid-1 corresponds to the liquid water. Hence, the interface provides the complete
database of water properties: clicking on the "drop" button in the Fluid model menu will access
the table of fresh and salt water. The user can select a line from the table, presenting the following
parameters: temperature, density, dynamic viscosity and kinematic viscosity. Clicking Ok button
will confirm the choice and set this parameter to Fluid-1. Presented values refer to the ITTC
standards.
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.
The water properties table is available in both Mono- and Multi-fluid projects.
In the page Initial Solution, the free surface location can be changed. The default value is set to 0
[m] along the Z-axis, see Uniform Values for more details about the Initial solution page.
FIGURE 7.4
Interface position
In the Numerical Schemes page, the mass fraction discretization scheme can be changed. The
default model is BRICS, see Multi-Fluid Equations.
FIGURE 7.5
Discretization Scheme for Multi-Fluid Computation
In the Under- relaxation parameters page, the mass fraction is also available, see Under-
Relaxation Parameters.
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'.
When the passive scalar is active, the scalar value can be defined per patch on SOLID and
EXTERNAL boundary conditions types (see "Boundary Conditions " (p. 192)).
The type of numerical scheme to solve the transport equation is selectable in the "Numerical
Models" (p. 373) menu.
Passive scalar choice is also available for volume, surface and point probes (see "Probe
Variables" (p. 464)) to see the evolution in time of the scalar field. It is also present as a mean
output variable (see "Mean Flow Variables" (p. 479)).
BOUNDARY CONDITIONS
During the HEXPRESS™ grid generation process, the type of boundary conditions must be defined in
the Boundary Conditions page:
l Solid,
l External,
l Mirror,
l Full non-matching.
This chapter gives a description of the available boundary conditions in the Boundary Conditions
page in the FINE™/Marine project set-up.
See also: Turbulence models in the Theory Guide.
When selecting the Boundary Conditions page, the parameters window appears as shown in
FIGURE 8.1.
A characteristic of the Boundary Conditions pages is their subdivision into two areas. The left
area always contains a list of the different patches, and the right area represents the selected
boundary condition type. A patch can be identified by the name of the block face to which it
belongs, or by the name given in HEXPRESS™. For the selected patch(es), the right area is
where the boundary condition parameters are set.
One or several patches may be selected in the left area by simply clicking on them. Clicking on a
patch deselects the currently selected patch(es). It is possible to select several patches located one
after another in the list by clicking on the first one and dragging the mouse over the next ones or
holding the <Shift> key between the first patch and the last one. To select a group of patches that
are not located one after another in the list, the user should click on each of them while
simultaneously holding down the <Ctrl> key.
It is also possible to select all the similar patch(es) by pressing the right-click button of the mouse
on the selected patch(es).
When a patch is selected, it is also highlighted in the graphics area, where the mesh topology of
the project is displayed.
If the Inlet or Outlet boundary conditions type was selected in HEXPRESS™, a warning message
will appear as soon as the user enters the FINE™/Marine GUI: they are not available for
FINE™/Marine projects since only External , Solid and Mirror boundary condition are possible.
These conditions should be replaced directly in HEXPRESS™ as soon as the following warning
message appears:
FIGURE 8.2
Warning message due to presence of INLET or OUTLET boundary condition(s)
If the same names are set for different patches in HEXPRESS™, the interface will automatically add
The Solid wall boundary condition page is customized according to the type of calculation
(inviscid or viscous). Several possibilities are available depending on the type of flow. These
boundaries can be set as laminar or turbulent.
FIGURE 8.3
Solid Wall page
Slip Wall
This type of boundary condition corresponds to a zero shear stress at the wall: the tangential
component of the velocity is different from 0 and the turbulent production due to shear is
neglected.
When dealing with multifluid simulations, the part of the body which is always surrounded in the
fluid with a very low density, can be set to Slip wall. The Reynolds number is much less important
and the turbulence effects can be neglected.
No Slip Wall
The No Slip (wall resolved turbulence model) condition imposes a zero velocity on to the
boundary.
This condition can be used for a laminar flow or a turbulent flow using Low-Reynolds turbulence
models.
The Wall-function is currently limited to k-ε, k-ω and EASM models and does not exist for Spalart-
Allmaras.
FIGURE 8.4
Warning message for the flow model page
Once activated in the menu (see "Fluid Model" (p. 622)), the passive scalar can be activated on a
given patch and its value defined individually.
FIGURE 8.5
Passive scalar value
The external boundary condition is provided to treat velocity and pressure conditions. But it is
also possible to impose a wave generator or an Overset type for the specific calculations
involving the "Overset grid management" (p. 423).
Thanks to this boundary condition type, it is possible to initialize the velocity, the mass fraction
and the turbulence by using default values or entering constant values.
FIGURE 8.6
Constant Velocity Far Field: 0 m/s.
The imposed variables at this boundary type depend on the local flow direction with respect to the
boundary patch: the flow is locally entering or leaving the domain. As a consequence, a Dirichlet or a
Neuman condition will be applied. The code will automatically adapt the condition to the correct
situation and control the mass flow rate.
It is also possible to enter a user defined profile for Vx, Vy, Vz velocity components separately
but also for Turbulent quantities. This is done by selecting fct(space) instead of Constant Value:
FIGURE 8.7
User Defined Far Field
When fct(space) is selected, the user has to specify the Profile type. When a profile is selected,
the user has to define it in the Profile manager accessible by clicking on the button next to
profile data.
FIGURE 8.8
Profile manager window
The Profile Manager allows to define profiles used to interpolate the corresponding physical
variables at the boundary. The user can either manually enter the values into the columns of the
Profile Manager or import an external file.
This external file must be created with the extension .p and be imported using the Import button.
The values of the physical variables stored in this file can come from any source: experiments,
previous computations, etc. It is also possible to import CGNS data.
In case of a 2D profile, the quantity is not represented in the graphics area of the profile manager.
The theta angle is defined as . It should be defined in radians and goes from
. It follows the convention: angle = 0 at 3 o'clock. Counterclockwise is positive.
Profiles should cover the patch full length or area. Indeed, the flow solver can interpolate the values
from the profile on the mesh but it is not possible to extrapolate.
The profile is graphically represented on the right part of the window. When putting the mouse
over a green cross, the interface indicates which point it corresponds to.
In the Profile Manager it is also possible to Export the profile for backup or later usage but also
to Clear the profile.
In the column title of the Profile manager : u means Vx, v means Vy, w means Vz.
.p file format
Here is a description of the format to create the external profile (.p file):
Line 1: a string defining the name of the quantity. It can be Vx, Vy, Vz, Turbulent kinetic energy
or Turbulent dissipation.
Line 2: interpolation type (see the available "Interpolation types" (p. 201)) and the number of
points of the profile curve.
The next lines can consist in different types of information:
l For 1D interpolation profiles, the 1st column is the coordinate, the 2nd one is the physical
value and the 3rd one is always 0.
l For 2D interpolation profiles (except x, y and z and r, θ and z), the 1st two columns are the
coordinates and the 3rd one the physical value.
l For 2D interpolation profiles for x, y and z and r, θ and z, the 1st three columns contains the
coordinates. For the velocity, the next three columns contain each velocity component whereas
for the turbulent quantity, 1 column containing the physical value is enough. This information
can be provided by a CGNS file (*.cgns) or a .p profile.
Interpolation type
1 1D interpolation along x
2 1D interpolation along y
3 1D interpolation along z
4 1D interpolation along r
5 1D interpolation along θ
51 2D interpolation along x and y
52 2D interpolation along x and z
53 2D interpolation along y and z
54 2D interpolation along r and θ
55 2D interpolation along r and z
56 2D interpolation along θ and z
61 2D interpolation along x, y and z
62 2D interpolation along r, θ and z
TABLE 8.1 Interpolation types
Example
The following lines give an example of the data profile format for the quantity Vz (from 0.1 to
0.5m/s) with an X-profile (from 0 to 1m) defined with 5 points:
Vz
15
0 0.1 0
0.3 0.2 0
0.6 0.3 0
0.8 0.4 0
1 0.5 0
CGNS format
It is also possible to import a CGNS file. The flow solver can only read triangulated CGNS files.
It is not possible to probe the Velocity, Turbulent Kinetic Energy and Turbulent Dissipation in one
FINE™/Marine simulation and directly impose the resulting CGNS file. It should come from
CFView™.
Mass fraction
For the Mass fraction, the user can chose between the default value and a user defined value. For
the user defined value, the choice between Fluid-1 and Fluid-2, corresponding to the fluids from
the Fluid model menu.
For the turbulence it is also possible to activate the option From turbulence level initialization .
This is similar to what is already present for the Initial Conditions menu.
For this type of boundary condition (Dirichlet), the pressure is imposed during the initialization of
the computation. It gives access to two different types of conditions described below.
FIGURE 8.9
Prescribed pressure condition
If the Z-axis is oriented along the gravity vector, the pressure value is set to -ρfluid g(z(t)-z0). This
value will evolved during the computation if the mesh is moving vertically or according to the free
surface position. The fluid is free to enter or exit this boundary.
This condition is recommended for the top and the bottom patches of the domain in case of a 3D
project with multi-fluid flow for boat simulation.
This boundary condition cannot be used together with a user-defined pressure (thanks to a Fortran
program, see Files Used as Initial Data Profile since the flow solver will overwrite this user-defined
pressure.
It is possible to update the mass fraction on this boundary thanks to the expert parameter
CIFarField_ (by default, it is not active).
Frozen pressure
This boundary condition keeps the pressure constant and equal to 0 during the computation.
It should be preferred for hydraulic projects, for mono-fluid computation or for the exit of a multi-
fluid computation where this boundary is not affected by the gravity (for instance, the top of a
domain).
This boundary condition can be used together with a user- defined pressure (thanks to a Fortran
program, see Files Used as Initial Data Profile.
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.
the following figure illustrates a cell at the vicinity of a boundary (dashed): F means "Fluid" and
B means "Boundary". If a zero pressure gradient is applied on B, the gradient at B is equal to its
value in F and the pressure is extrapolated from F to B according to the hydrostatic equilibrium if
the gravity vector is not the zero vector. The pressure on the boundary is then computed by the
following formula
In any case (prescribed or zero pressure gradient), at B, velocity fluxes and velocity component
are solved according to the mass conservation constraint in cell F.
8.2.5 Overset
This boundary condition is implemented for the "Overset grid management" (p. 423) support. It
can intersect with other physical and solid boundaries existing in all the domains of the simulation.
It has no impact on the physics of the flow but allows to transfer the information between the
different grids of the simulation.
Regular waves
where
(k
The Direction of propagation (displayed by a yellow arrow in the graphics area) is prescribed
with the data of the corresponding cosine director values along X and Y axis.
It is recommended to generate waves that only propagates along X or Y axis. For incident waves, the
best practice is to modify the orientation of the ship to keep the wave generator in a X or Y plane.
It is also recommended to precisely define the reference point (displayed in yellow in the
graphics area) on the patch. Hence, the computation starts with a wave kinematic without normal
fluxes: velocity vector is parallel to the plane of the wave generator. Otherwise, the reference
point can be used to apply phase shifts: if the point is in X = 0, Y = 0 and the EXT patch crossing
(0,0), the oscillator will start moving from Y = 0 in X = 0. Now, the oscillator is not in X = 0, the
only effect will be a phase shift.
For this Boundary condition, a first, second, or third order Stokes wave can be used. Choosing
order 2 and then order 3, depends on the physics of the project and the Stokes wave theory. It will
increase the precision of the wave shape close to the external wall but not far from it: the
difference will be negligible after 2 periods.
When clicking the button Estimate, the wave order is computed according to Le Méhauté (1976)
An introduction to hydrodynamics and water waves using the values of the Depth (h), the wave
Period (τ), the wave Height (H) and the absolute value of gravity intensity g taken from the
"Flow Model" (p. 174) menu. The scheme below illustrates the range of applicability of each
wave order and how to determine it based on the values of the abscissa h/(gτ2 ) and the ordinate
H/(gτ2):
The red line represents the limit of validity of the Stoke's theory, whereas the green line is the
border between first and second order and the purple line the border between second and third or
higher order waves. Only the propagation of intermediate depth and deep water waves can be
simulated and it is recalled that the maximum wave steepness ( H /L) for a periodic and
propagating deep-water wave is 0.14.
The default wave order and in case its estimated value gets into the undefined area above the red
line on the picture, is defined as 1.
Generally speaking, a linear wave has a sinusoidal surface profile with small amplitude and
steepness, while a nonlinear wave has larger amplitude (finite-amplitude), sharper crests and
flatter troughs than the linear wave. Thus defining the Wave order correctly can provide better
accuracy for the wave simulation.
More details can also be found here.
The Wave generator settings are defined as global parameters. The corresponding patches cannot be
edited separately.
where f' is the stokes wave frequency in the body reference frame, U b the velocity vector of the
wave source (same as of the boat), L the wave length, and f' the frequency in the Galilean
reference frame. In case the source is moving away from the reference point, the above formula
becomes:
1. Under the Plugins/Predefined menu, the Wave generation info tool is dedicated to the setup
of a wave generation project. The tool computes useful information for wave generation
simulations such as frequencies, time step, wave celerity, etc...
2. Time configuration should be set to Unsteady (see General Parameters).
3. At least 2 orders of gain for non-linear iterations are necessary to reach a correct accuracy. For
this purpose, set the Maximum number of non-linear iterations to 20 and the Convergence
criteria to 2 (see Control Variables)
4. Restart computation while activating the Wave generator is not recommended.
Irregular waves
Main assumptions
l Ocean waves are irregular and random in shape, height, length and speed of propagation. A
real sea state is best described by a random wave model
l Each sea state, in given meteorological conditions, has a precise power spectrum
Implementation
The Irregular wave set-up is available in the Boundary Condition menu for the External
boundary condition Wave Generator. When the Irregular condition is activated, several spectra
and the User-defined spectrum becomes available.
Only the 1st order of irregular waves is implemented for the moment.
FIGURE 8.13
Irregular waves Boundary condition
Available spectra
l ITTC
l modified Pierson-Moskowitz spectrum according to the ITTC conference of 1978
l JONSWAP
l Pierson-Moskowitz
After the spectrum was selected, the following parameters will become available:
991
0.552300000000000 1.425134561970092E-008 0.200072553915353
0.556822222222222 2.105653169018277E-008 -3.10241674047480
0.561344444444444 3.059213503130416E-008 -1.11056951161608
0.565866666666667 4.373966352698112E-008 -1.79666237050452
0.570388888888889 6.159070885437247E-008 1.44797659527557
0.574911111111111 8.547564616889585E-008 0.835759044159744
0.579433333333333 1.169912378314590E-007 -3.13185364267893
0.583955555555556 1.580259532187931E-007 -2.53878755253289
...
983 lines here are omitted.
The first line has the number of waves frequencies (n). Following lines contain: the frequency (fi,
[s-1]), spectral density (Si, [m²s]), initial phase of the wave component
( ,[rad]) that should be between [-π;π]. The initial phase is defined at the Reference Point.
Direction of propagation and Reference point have a similar definition as for the regular waves.
The Depth, Direction of propagation and the Reference point should be specified together
with the spectrum data file.
General recommendations
l The duration of the simulation is a key to achieve the target wave energy spectrum. For
seakeeping experimental tests, at least 100÷200 waves has traditionally been used (typically
0.5÷1 hour), which is often defined as satisfactory if linear effects only are considered.
Respecting this, the number of waves to encounter can be set to 100 during the numerical
simulation
l The mesh defines what frequencies will be captured. The user needs to decide what are the
higher frequencies to be kept and define the mesh with the respect to this condition
l Ensure that the refined mesh region can capture the highest waves (in Z-direction)
Once activated in the menu (see "Fluid Model" (p. 622)), the passive scalar can be activated on a
given patch and its value defined individually.
Wave generator and Overset types are not compatible with passive scalar feature.
FIGURE 8.14
Passive scalar value
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.
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.
Non conformal interfaces are present as soon as FNMB (Full Non Matching Boundary)
conditions are defined and computed in HEXPRESS™ (see HEXPRESS™ User Manual for
more information). These interfaces will transfer the information of the flow between several
domains. There is no user input required in this menu. These patches will be present in the
Sliding patch motion tab of the Mesh management menu as well (Mesh Management chapter).
By default the resolution of the sliding grids is explicit. For specific cases where the sliding grid
domain does not advance and sees an incoming flow, some discontinuities may appear in the
sliding grid interfaces. In that case, switching to implicit resolution may help avoiding these
discontinuities. To do so, set the expert parameter _SLI_implicit_dom_coupling to YES in the
Expert parameters tab of the Control variables menu (More details can be found in the
"Sliding grids" (p. 681)).
When using implicit resolution of the sliding grids with BoomerAMG linear pressure solver, a special
attention should be taken with the initial conditions. If the initial solution is not compatible with Div
(U)=0 (for instance U=1m/s at the Inlet but U=0m/s inside the domain) then the solution might be
wrong.
BODY DEFINITION
The Body definition menu allows to manage the definition of one or several bodies, sub-bodies.
Since sometimes patch names are not relevant enough to know where the patches are located, information on
the concerned domain is provided in the last column.
It is possible to sort patches by Domain and by Bodies - patches . Initial ordering is done by the
domain name in A-Z order, also patches of the same domain go in the A-Z order. To switch between
the sorting criterion ( Domain or Bodies-patches) the user can click on a column title - an arrow will
appear next to the title. Arrow up means A-Z sorting, arrow down is for Z-A.
In this section
9.1 Definition 217
9.2 Identifier 218
9.3 Group 219
In FINE™/Marine, a body is defined as a set of faces which share the same kinematics. As a
result, all the entities moving with the same kinematics must be defined by only one body.
Global fluid forces acting on each body are calculated and recorded in the "eff*.dat" files. In
some occasions, one would like to know forces on some parts of a body. For this purpose, the
notion of sub-bodies has been then introduced.
A sub-body is a part of a body on which fluid forces are calculated separately. Fluid forces on
sub-bodies are recorded just after the global body forces in the "eff*.dat" files. They are defined
by the following label: "BodyName SubBodyIndex".
It is important to remember that sub-bodies are not necessarily closed bodies and this can have an
impact on the meaning of the output forces. In case of a keel from a mono-hull sailing yacht for
instance, the keel can be defined as a sub-body. However, the keel could be a non closed body
since the top patch could belong to the hull. As a consequence, the pressure integration to
compute the forces is not complete on this sub-body. The meaning of the lift force should not be
taken as an absolute value but rather as a relative value while comparing designs or speeds. It
should be however correct for the drag force for instance since the missing top patch does not
contribute too much to the drag.
A maximum of 100 and 200 total bodies/sub-bodies can be created for the moment for respectively
multfluid and monofluid computation.
Each face has its own identifier defined in the face connectivity file. It is composed of six digits:
the first three are used to define the boundary condition, whereas the last three are used to define
index bodies (one digit) and possibly sub-bodies (the two last digits). Among the boundary
conditions flag, the first digit defines the mesh deformation condition.
FIGURE 9.2
Identifier
Only solid patches and non-conformal interfaces are shown in this menu.
For a non-body face flag (index of body = 0), the index of the sub-body is also used to distinguish
the different parts of external boundaries (one can, for instance, change the boundary condition using
the tool "change face flag", after generating the mesh, see Boundary Conditions Manipulation).
9.3 GROUP
One patch can be selected in the left area by simply left-clicking on it. Clicking on a patch
deselects the currently selected patch(es).
It is possible to select several patches located in the list by clicking on the first one and holding the
left mouse button while selecting the next one. Another way is to select the first patch of the list,
then hold down the <Shift> key and left-click on the last patch of the list.
To select a group of patches that are not located one after another in the list, click on each of them
while holding down the <Ctrl> key.
Several patches can be grouped by clicking on the Merge button once they are selected. A name
entry box will appear asking for a group name. The name of the group will appear in red in the
list. It is possible to add a patch to an existing body by selecting them and clicking on the Merge
button.
The Delete body button removes the group and its patches are displayed individually in the list.
Clicking with the left-mouse button on the plus sign left of a group name in the list will
display the patches included in this group.
When a patch is selected, it is also highlighted in the Graphics Area window where the mesh
topology of the project is displayed.
FIGURE 9.3
One body creation
It is also possible to create a sub-body. For this purpose, display the patches included in a group.
Select one or several patches using the left-mouse button and the <Ctrl> or <Shift> key. Click on
Create sub-body to finish the action. The sub-body group is now available inside a body.
FIGURE 9.4
Creation of the sub-body
BODY MOTION
This chapter describes the available laws of motion in the FINE™/Marine interface for each body and
its respective six degrees of freedom. A fixed, imposed, or solved body motion can be set up for each
body and performed by the flow solver for two different parametric systems. Special connections
between bodies can also be defined.
In this section
10.1 Reference Frame 223
10.2 Fixed Degree of Freedom 227
10.3 Imposed Law of Motion 229
10.4 Solved Law of Motion 242
10.5 Basic recommendations 258
10.6 Multibody definition 260
10.7 Virtual body 266
10.1.1 Definition
FINE™/Marine uses the Galilean frame as a reference frame to define the body motions. It is
recommended to keep the usual hydrodynamic axis system during the definition of the project:
l X-axis represents the body marching
l Y-axis is left handed (port side)
l Z-axis corresponds to the opposite of the gravity
The mesh follows the body during the computation according to the imposed body motion and
regridding strategy. For instance, the body (and so the mesh) has a velocity vector noted:
Hence, the velocity vector of the fluid with respect to the body is defined by:
In CFView™, the velocity vector U f' = U f - U b should be computed to obtain the flow field relative
to the body.
The degrees of freedom (d.o.f.) represent the possible translations and rotations of the body. In
FINE™/Marine, they are noted (Tx, Ty, Tz) for the translation and (Rx, Ry, Rz) for the rotation
along X, Y, and Z-axis respectively. Rotations are applied around the Reference point if no
degree of freedom is solved or around the Center of gravity if at least one degree of freedom is
solved.
The degrees of freedom Tz, Rx and Ry are frozen in the whole interface when the mesh configuration
is 2D.
A number is added to each d.o.f. depending on the frame configuration. A "0" will indicate that
the degree of freedom is computed according to the physical reference frame, noted 0 = (0,β0 ),
where β represents the axis base. A "1" or "2" will indicate that a d.o.f. is computed according to
the previous frame rotation. This configuration is possible using Cardan Angles. The frame linked
to the body "B" is noted B= (G,βB), with G the gravity centre.
To study the behavior of a boat under sails efforts for instance, a new parametric system was
required to define the orientation of the bodies. This allows to fix, impose or solve each d.o.f.. In
FINE™/Marine, it is then possible to define the rotation angles by the Cardan angles. They
consist in the decomposition of three successive rotations represented on FIGURE 10.2:
FIGURE 10.2
Orientation with Cardan Angles
FIGURE 10.3
Cardan Angles represented on the DTMB geometry
The reference configuration of the body is defined as the mesh reference: Bi = (G i ,β Bi ) is the
frame linked to this configuration.
The primary configuration (noted with subscript p) is defined by the virtual configuration of the
body rotated by the rotation from βBi to β0 . In that case, the frame attached to the boat coincides
with β0 and (ψp,θp,ϕp) = (0,0,0).
The inputs required by the interface in the Motion definition thumbnail are the three Cardan angles
(ψ0i,θ0i,ϕ0i) to rotate from the primary configuration to the reference configuration.
It is recommended to mesh the geometry with an orientation close to the equilibrium position to keep
an optimal mesh quality during the whole computation.
D.o.f. for translations are not affected by the Cardan angles specification. They always refer to the
primary configuration.
The Show/Hide button will display the new reference frame defined with Cardan angles as soon as
they are different from 0.
When Cardan Angles are not activated, the degrees of freedom linked to the rotation possibilities, are
limited to the following triplets:
The Dynamic Parameters thumbnail is not available in case of a fixed body (i.e. all d.o.f. are set to
Fixed).
The Motion Variables thumbnail in the Outputs menu is also not available in case of a fixed body,
see Motion and Force Variables.
The Imposed law of motion can be chosen independently for one or all degree(s) of freedom.
Some parameters are required to define the motion law.
l Motion Law: defines the motion law applied on the corresponding degree of freedom. For
each imposed law, parameters are required (click on the Edit button to open the corresponding
page)
FIGURE 10.6
Imposed Motion
l Reference point: corresponds to the three coordinates (X,Y,Z) of the reference point in the
reference configuration. If no degree of freedom is solved this point is used as rotation center
(if imposed motion includes rotation) and to compute the resultant moment. If there is one or
more solved degrees of freedom the Center of gravity will be used instead.
The Show/ Hide button will display the reference point in the graphics area.
If a project contains several bodies, the laws have to be defined for each body. By clicking on the
body name, the interface will display the settings to be defined for each body. One can also select
multiple bodies together using the <Ctrl> key and apply the settings at once.
Each d.o.f. has its own laws of motion. There are all described in the next sections. Each law will
get its own default values according to the parameters defined in the previous menus.
Imposed or solved motion offers the possibility to define mesh deformation techniques (see the
description of this menu in Domain Mesh Management tab.
In this case, only one value is necessary to define the law of motion: the speed of the body. It will
remain constant during the computation.
FIGURE 10.7
Constant speed
For the classical ramp profile, the initial velocity V 0 will be applied to the body from the
beginning of the computation until time T 0 , where a linear velocity ramp will start. The ramp will
reach a target velocity V1 at time T1.
FIGURE 10.8
Classical Ramp Profile
For the 1/4 sinusoidal ramp profile, the initial velocity V 0 will be applied to the body from the
beginning of the computation until time T 0 , where a quarter of a sinusoidal ramp will start. The
ramp will reach target velocity V1 at time T1.
For the 1/2 sinusoidal ramp profile, the initial velocity V 0 will be applied to the body from the
beginning of the computation until time T 0 , where half of a sinusoidal ramp will start. The ramp
will reach a target velocity V1 at time T1.
where:
l α0 corresponds to the amplitude
l ω is the pulsation, defined by ω = 2π/T (the period should be entered, noted T)
l ϕ is the dephasing
The 1/2 sinusoidal ramp profile will start at the time T0 and stop at the time T1.
FIGURE 10.11
Sinusoidal Motion with 1/2 Sinusoidal Ramp Profile
The Planar Motion Mechanics (PMM) sway motion has been introduced to define a sinusoidal
motion along Y-axis (d.o.f.: Ty).
The motion can be described by the sway amplitude η0 , and the number of PMM rotations per
minute N. The transitory phase is modeled by a sinusoidal ramp profile which will start at the time
T0 and stop at the time T1. The motion is then described by:
l Transverse translation: Ty = ηPMM = -η0 sin(2πN(t-T0)/60)
l Transverse velocity: Vy = νPMM = -η0(2πN/60)cos(2πN(t-T0)/60)
l Transverse acceleration: Ay = d(νPMM)/dt = η0(2πN/60)²sin(2πN(t-T0)/60)
FIGURE 10.12
PMM Sway Motion
The Planar Motion Mechanics (PMM) yaw motion has been introduced to define a sinusoidal
motion along Z-axis (d.o.f.: Rz).
The motion can be described by the yaw motion amplitude ψ0 , the number of PMM rotations per
minute N, and the drift angle β. After the transitory phase between T 0 and T 1 , the motion can be
described by:
l Yaw angle: ψ = -ψ0 cos(2πN(t-T0)/60) + β
l Yaw rate: rPMM = ψ0(2πN/60)sin(2πN(t-T0)/60)
l Yaw acceleration: d(rPMM)/dt = ψ0(2πN/60)²cos(2πN(t-T0)/60)
FIGURE 10.14
PMM Yaw Motion
Without coupling this motion with the PMM sway law, one will not probably get a symmetric path. It
will be harmonic, but most probably not symmetric.
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
This law is dedicated to the Z-axis rotation (d.o.f. Rz). The center of gyration Cgyr is required for
the 1/4 sinusoidal ramp profile: the initial rotating velocity ω o will be applied to the body from the
beginning of the computation until time T o , where a quarter of a sinusoidal ramp will start. The
ramp will reach a target rotating velocity ω1 at time T1.
FIGURE 10.16
1/4 Sinusoidal Ramp Profile for Z-axis Gyration
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.
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).
This law copies the motion of one degree of freedom from another body during the computation.
FIGURE 10.19
Relative or absolute modification of the DOF position
Like all other motion laws it can be used for physical bodies in Body motion or for a domain
with independent motion in Mesh management. For Tx, Ty, Tz, Rx, Ry and Rz all unlinked
bodies will be available for copy. For Rn all bodies linked to another one with a rigid or pin
connection will be available.
To be able to drive dynamically the motion of bodies (especially relative rotation of a body linked
to a pin joint) a specific dynamic library is integrated as a function of different inline variables
(forces, position of bodies,...).
To achieve such a functionality, an imposed motion type dynamic library as motion law should
be chosen. In this case, nothing else has to be added.
Though there is no possibility to edit the motion through the interface, the button will be grayed
out.
The d.o.f. imposed by this motion law can be controlled through the position, velocity or
acceleration.
The imposed value for the current time (tc) can depend on forces acting on bodies and sub-
bodies, and/ or kinematics of bodies at the previous time step (tp).
10.3.12 User-defined
A user-defined law allows the user to define his own imposed motion law defining a chart. This
chart is available for each d.o.f. as a function of the time. It can be set up manually or directly
imported into the interface. The solver will interpolate the data using cubic splines, except near the
boundaries for initial and final times.
The left part of the window consists in entering (t, DOF(t)) values, in the two corresponding
columns, "t" referring to the time and "DOF (t)" referring to the position/ angle of the
corresponding d.o.f.. For instance, "DTx" in the figure above is the variation of the position of the
center of gravity (or the reference point in case there is no solved motion) along X-direction.
By pressing <Enter> after each input value, the profile is updated in the graphics part. It is also
possible to Import/ Export profiles from/ to file. The format of the file is defined with two
columns: one for the time and the second for the evolution of the d.o.f.. The Clear Profile button
clears the current profile.
The profile must have at least two defined pairs (t,DOF(t)) of values. Besides, the first pair has to
start with t=0. Another constraint is that the time values should increase. If all these conditions are
not respected, a warning will appear, saying that the profile is not allowed.
A file will be automatically created in the computation folder corresponding to every user-defined
d.o.f. of the computation. This file can be found under the name: projectname_
computationname_body_component.p.
The file consist 2 columns: one for the time and the second for the relative displacement (resp.
orientation change) of the DOF for the concerned body with respect to the reference
configuration.
DOF of rotation has to be defined in radian as the other laws. If non-null initial Cardan angles for
motion reference axis are defined, the second column of the file then gives the modification of
Cardan angles with respect to these initial Cardan angles, since the reference configuration is the
starting point. Value for the relative motion can be non-null at a time t=0.
As soon as one d.o.f. is switched to Solved in the Motion Definition page, the solver will solve the
Newton's law to compute the new position of the body, based on its inertial properties. Hence,
new parameters have to be defined, located in the Dynamic Parameters tab. Their definition is
detailed in the following sections.
Solved motion also offers the possibility to define the mesh deformation technique (see Domain
Mesh Management for more information) and to activate the Quasi-Static (QS) approach (see
Quasi-Static Approach for more information).
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.
The degrees of freedom for which their motion is unknown and should be computed during the
computation, should be defined as Solved. the following figure is an example of a free trim (Ry1)
and sink(Tz) simulation with an imposed forward motion. It is possible to solve one, several or all
d.o.f. at the same time. As a consequence, the combination of Fixed, Imposed and Solved degrees
of freedom is allowed. For solved rotations the rotation point is the Center of gravity.
FIGURE 10.22
Motion definition with solved motion
A. Introduction
When dealing with simulation to reach an equilibrium position (steady-state solution), the first
method is to use a fully unsteady approach, i.e. to couple at each time step the flow motion and
the Newton's law. To be stable, the required time step should be small enough.
To relax this condition and decrease the CPU time, the quasi-static (QS) method has been
developped. It is based on a succession of predicted body attitudes. These attitudes are evaluated
using an ad-hoc quasi-static approach.
This procedure remains stable even for larger time steps, enabling the use of the sub-cycling
acceleration method for the fraction volume equation.
B. Layout
By default, the quasi-static approach is not activated. This approach is only available for 3D
configurations and the conditions to activate this approach are:
l Cardan angles activated,
l Multi-fluid activated,
l Time configuration is steady.
This method does not require the values for the Inertia matrix, the added mass and damping
coefficients. Defaults can be conserved.
Only Tz0, Rx2 and Ry1 are concerned by the QS approach. In this case, a "Solved" motion type
means "Solved motion with the QS approach".
The menu on the right part shows the status of the QS approach related to each concerned d.o.f.:
l not available means that the conditions to activate the QS method are not all respected,
l not active means that the QS approach is available but the motion type of the d.o.f. is not
defined as Solved,
l Linear or Smoothlaw shows the selected law for the QS approach.
The Edit button allows to modify the parameters. When clicking on it, a separate window
appears.
The law is the same for the three d.o.f.. The choice can be made between Linear and Smooth
l Since the motion is imposed rather than solved at each time step, the motion solving is much
more stable, especially during the transient.
l If correctly used, the method leads to monotonic solutions.
l At low Froude numbers, the motion solution does not oscillate, removing the need for long
simulation periods to come to a stable result.
l The quasi-static leads to the same results as the 'classical' approach (Newton's laws).
l The method can conceptually be used at all Froude numbers (settings changed accordingly)
but the method is not recommended for high Froude numbers when dynamic forces are
dominant. Indeed, the predictions can be too important forcing the user to drastically reduce
the under relaxation parameters which will increase the convergence time.
D. Best Practice
It is more convenient to use dT3 > dT2 to let the time to the flow to be well converged between
two successive equilibrium predictions, using a smooth evolution law.
Under- relaxation parameters should be small enough if the user would like to predict the
equilibrium position quite often. More generally, higher the number of time steps between
evaluations is, higher the under-relaxation parameters should be.
For typical ship resistance simulations at Froude around 0.2, it is recommended to:
l Release the ship motions from the beginning
l Define dT2 = 18Δt and dT3 = 22Δt
l Relaxation parameters (for all DOF's):
l 0.2 for Froude < 0.3
l 0.15 for 0.3 < Froude < 0.5
l 0.10 for Froude > 0.5
For more guidelines based on several applications, please read "Basic recommendations" (p. 258)
chapter.
A. Inertial Data
A solved body motion requires inertial parameters, such as mass, position of center of gravity, and
inertia components.
FIGURE 10.25
Inertial Data
First of all, the geometry configuration must be specified. If the case is modeled with a symmetry
plane, the flow solver has to know if the computation is performed on half of a body. If Half
body is selected, the output forces will be given on half body. However, since the following
parameters must be given for the entire body, the code will adapt them automatically according to
the choice for the geometry configuration.
The first parameters are the coordinates (X,Y,Z) of the body gravity center in the initial reference
frame and the second parameter is the body mass.
The Show/Hide button will show the gravity center in the graphics area.
Finally, when the rotations of the body have to be solved, the inertia matrix needs to be defined,
and its components have to be evaluated at the body center of gravity in the reference frame. The
first three components are related to the inertia momentum (A 0 =Ixx , B 0 =Iyy , C 0 = Izz ), and the
last three to the inertia products.
For simulations in which only one rotation is solved, only the inertia momentum and the two inertia
products related to the axis of rotation are required. For instance, if only the pitch motion Ry1 (y-axis
rotation) is solved, B0, D0 and F 0 should be set to the correct values . The other inertia product E0 can
be set to 0 but the other inertia momentum A 0 and C0 must be positive and different from 0, i.e. 1.
Finally, the determinant of the inertia matrix cannot be equal to 0.
The FINE™/Marine package proposes an external executable called domhydro which computes the
inertia matrix, as well as the numerical mass of the body and plenty of other values. More details are
provided in the Domhydro section.
For a 2D case, only the momentum inertia C0 is useful (the interface freezes the other components of
the matrix). In order to keep the invertible matrix, it is mandatory to put non-zero values for A 0 and
B0 (the interface enters the value 1 for these components).
When solving the motions of the body, instabilities can appear coming from the dependence of
fluid forces on body acceleration. To ensure stability, a virtual added mass term can be added on
each side of the Newton' law (the right-hand side being treated explicitly). These additional terms
have the same function as an under relaxation coefficient.
Coupling parameters are not available for bodies with an Imposed motion type.
FIGURE 10.26
Coupling Parameters
The following options are available for estimation of the Added mass coefficient:
l approximate,
l accurate,
l user defined.
The first two Estimation modes are created to calculate the added mass coefficients within the
solver procedures through the Laplacian operator resolution. This evaluation can be done with the
defined Estimation frequency: by specifying a 0 value the estimation will be performed only
once at the beginning of the simulation; any other value will define a number of non-linear
iterations for the estimation periodicity.
The Accurate Estimation mode can allow to determine the matrix of added mass coefficients as
the potential code does, although it can also increase the total simulation time. The Accurate
method includes the operator resolution inside each non linear iteration whereas for the
Approximate method it is not.
It is important to mention, that an Accurate estimation is not needed if only the stabilization of the
flow/motion coupling is required. Then an Approximate estimation value can be chosen just high
enough to ensure stability. A classical value for the added mass coefficient is equal to 1.0.
For sea keeping simulations, the default User defined is already good. The accuracy of the
simulation is usually more dependent from the mesh settings, time step, etc., more than the
estimation of the added mass. In case the added mass is still important, the Approximate should
be enough since it does not have a huge impact during the simulation.
When setting these parameters to a very high value (for instance, Tx=1000), the D.O.F. is frozen, as
for a fixed motion in case of a new computation, or it can be frozen preserving its previous
characteristics in case of a restart.
For the multiple bodies calculations, when one or several bodies are linked to the selected body
with the certain connection type (Motion definition menu), an option to Take linked bodies into
account for the added mass estimation becomes available within the Coupling parameters
menu. The Estimation mode for at least one D.O.F. shouldn't be User defined.
When the aim of the computation is to reach an equilibrium position of a ship, transient states are
out of interest. To obtain this state more rapidly and avoid high amplitudes oscillations due to
transient states, a Damping coefficient can be added to the Newton's law for the trim and sinkage
degrees of freedom, for instance.
These terms do not affect the equilibrium position, since the damping term is a function of the
velocity of the concerned D.O.F. The evaluation of this damping term is based on the analogy of
a 1-D damping spring-mass system, where the hydrostatic force plays the role of the feedback
force. The damping term, which is proportional to the water plane area, is calibrated to be on the
critical state when the damping coefficient is imposed equal to one. In fact, the water plane area is
multiplied by this damping coefficient to generate the applied damping term.
If the damping coefficient is defined with a value higher than 1.0, the damping term will have a
stronger and reverse impact.
This damping coefficient should not be used to perform real unsteady simulations.
C. External Forces
FINE™/Marine gives possibilities to impose various additional external forces acting on bodies:
l Constant wrench (thanks to force, torque and calculus point) linked to the body,
l Drag based wrench to take into account the global force (for the propeller, for instance, the
force but not the torque).
l Spring wrench
l Damping wrench
In case of rigid motion, the user can choose to activate the Drag based wrench to initialize the
computation for a future computation with the Actuator disk. See also: "Actuator Disks" (p. 637).
The boat must move in the X- direction in the primary frame, since the update is based on force
balancing in that direction.
The Show/ Hide button will display the external forces in the graphics area as soon as an input is
different from 0. These values and their representation take the Cardan angles into account.
Constant Wrench
With these inputs, it is possible to specify respectively: the Cartesian components of the imposed
force, the Cartesian components of the torque and the Cartesian coordinates of the calculus point
of this wrench. All this data has to be given in the initial reference frame.
This wrench can typically be used to simulate a propeller force or a towing force. Hence, one has
to specify the Cartesian components of the propeller shaft orientation (respecting the Cartesian
components of the towing force orientation). The last are the Cartesian coordinates of the point
where the propeller (respecting the towing force) acts on the body.
To block the direction of the external force the Non follower force can be activated. An
explanation about the difference in calculation follower and non follower force can be found in
the External Tools chapter. This functionality can be activated in case the application point of the
force can vary, while the direction of force action should stay constant. The force is then not
dependent of the body motion. For instance, this can be useful to simulate the wind force action
on a sail or a towing tank carriage motion.
The forward speed of the ship has to be parallel to the X-axis (positive or negative). However, a body
motion with an high angle compared to 0 along X-direction is not allowed since we assume the boat
is moving in the X-direction. This can cause a problem with gyration motion or the boat moving in
the Y-direction. However, for Y-direction motion, one can define a Cardan angle of 90deg.
The sign of the orientation vector has no influence here since the imposed force is always in the
opposite direction of the drag.
The magnitude of the force is determined such that its projection on X-direction is equal to the Fx
component. The direction and the application point move with the boat just like a propeller. Drag
wrench force is updated only at the beginning of each time step using the drag of the previous time
step.
Spring wrench
Force and moment components calculated during the simulation will receive the stiffness values
of the spring load at the application point in the primary frame of the body and will be applied to
the specified D.O.F.'s.
For example, for the rotation stiffness, moment components along axes will be defined by the
product of the rotational stiffness by the angular deviation of the given Cardan angles (roll, pitch
and yaw).
Even for half- body computations, the stiffness of the spring to be defined is the total stiffness
corresponding to the one of the entire body computation.
Damping wrench
Similarly to the Spring wrench conditions, this will add coefficients (C d >0) to the force and
moment components with respect to the specified application point.
All loads are computed with respect to the primary configuration considered as non-loaded
configuration. Rotational damping is defined related to the axis of the Cardan angles respectively
(Rx2,Ry1,Rz0).
D. Initial Conditions
For a body with solved motion, initial kinematics have to be specified. For instance, an initial
displacement can be imposed deduced from the position in the reference mesh. It can be
composed of a translation and a simple rotation along X- axis, Y- axis or Z- axis only. The
corresponding data for imposing an initial displacement are:
FIGURE 10.29
Initial Displacement
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.
Depending on the physical conditions of the case study following advises can be used for the
computation setup:
Motion parameters
Control variables
Motion parameters
Control variables
See the FAQ Wave generation and damping guidelines for time step selection recommendations.
Use 12-22 as Maximum number of non-linear iterations, considering that 16 will be the best
compromise between the accuracy and CPU time.
High Froude number ship motion (solved trim and sink study)
It is strongly recommended to perform high Froude number study in 2 steps. The first step
consists in estimating the final hydrodynamic equilibrium position. Three options are proposed:
l use experimental data or your own estimation methods
l use the Savitsky method provided by the C-Wizard in planing regime mode
l perform a first CFD simulation and check the converged dynamic position (see the Resistance
advices)
The second step consists in performing the final calculation using the estimated position and
starting from the cruise speed. The boat is then meshed in its estimated position.
Motion parameters
Control variables
When multiple bodies have been created in the Body definition menu, in the Bodies menu, the
list of bodies will be displayed without the reference to domains. An option becomes accessible: a
special link can be defined between the bodies. First of all, one should pick the body the selected
body from the tree will be attached to.
FIGURE 10.30
Link between bodies
RIGID connection
For a RIGID connection, no input is required. It allows to fix a body with another one, to follow
its motion.
PIN connection
For a PIN connection, the axis and the center of the connection should be defined through the
Edit button. This connection is typically used to link a propeller or a rudder to a ship.
It gives access to an imposed degree of freedom for rotation, named "Rn". The "n" refers to the
axis defined with Edit button of the link. Please refer to Imposed Law of Motion for the definition
of each motion law.
FIGURE 10.32
Rn degree of freedom
The vectors represented in the graphics area are originated at the PIN connection point and
directed in the normal direction. The rotation direction is defined thanks to the speed sign of the
imposed rotation law. In case the rotation starts off negative and ends up positive or vice versa,
two arrows are added.
If a connection is chosen, the Cardan angles are grayed out and the selected body receives the Cardan
angles from the body it is attached to.
Dynamic parameters
"Dynamic Parameters" (p. 248) can be specified for linked bodies with RIGID and PIN
connection type, even if the motion is Imposed or Solved. In this case, the inertial effects are
transmitted to the parent body through additional external forces.
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:
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.
By defining the Motion type of a linked body as Solved, the Dynamic parameters menu is
activated and all parameters are available for modifications.
FIGURE 10.35
Motion definition frame for a Solved Motion type of a linked body
In addition to the Inertial data, Coupling parameters, Initial conditions menus having the
same options comparing to the non- linked body case, the External forces menu provides
additional settings for the Wrench from parent body.
FIGURE 10.36
Wrench from parent body definitions for the Solved motion of the linked body
For the sliding boundaries computation case, it can be advised to create a specific link Rotation cut
also described into the "Sliding Patch Motion" (p. 270) In this case, the motion of the sliding
boundary inherits the motion of the parent body except if one or all D.O.F. are rotation type.
The inertial effects are not integrated directly into the inertial parameters of the parent body. As a
consequence, it will converge only if the inertia parameters of the linked bodies are relatively small
compared to the inertial parameters of the parent body, since they are treated explicitly.
As it is explained in the Mesh Management chapter, created from the sliding patch(es) virtual
body can be treated somehow as the rigid body regarding it's motion definitions. After the body
has been created within the Mesh management page, it will be automatically added into the
Bodies list of the Body Motion menu with the name Virtual_body_#.
FIGURE 10.37
Body motion menu: virtual bodies motion parameters
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".
In this section
11.1 Multidomain definition 269
11.2 Sliding Patch Motion 270
11.3 Domain Mesh Management 274
11.4 Independent domain motion 281
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.
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.
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.
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.
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.
If non-conformal boundaries are not present in the current domain, the Sliding patch motion is not
available.
Starting from FINE™/Marine v4.1 creating the virtual body based on Sliding patches is available.
Attention should be payed to the FINE™/Marine v3.1 projects: Body Definition, Body motion and
Mesh Management setting will be defined as Defaultswithout virtual bodies definitions.
To create a virtual body from the sliding patch(es) select from the Sliding patch motion Patches
menu the future virtual body patch(es) and click Create virtual body.
FIGURE 11.5
Virtual body from sliding patches creation
From now created Virtual_body_# will be added into the Bodies list of the Body Motion menu.
Concerning the Domain mesh management, mesh deformation strategy will follow the motion
from the Virtual_body_#.
Initially, a virtual body creation benefit is to make it possible to impose a motion of the domain as
a rigid body, link it to another virtual or rigid body and etc., to treat the sliding patches somehow
as a rigid body. With respect to this, the Body Motion menu receives the list of Bodies including
the Virtual_body_# . Description of available options for the virtual body management can be
found in the Virtual body section. It is also possible to create links to a virtual body within the
Mooring, Tugging and Actuator disc additional models.
It is also possible to control some results for the virtual bodies computations. Details can be found
in the Body/Sub-body Management.
FIGURE 11.6
Domain Mesh Management
When clicking on the domain in the tree on the left side of the menu, the Domain Mesh
Management tab is opened. The list of the Source of domain rigid motion will contain all the
bodies and sliding patches of the current domain.
The pilot body should be selected. By default, the first body from the list is selected. This option is
useful as soon as multiple bodies are present. Indeed, the pilot body will drive the domain mesh
displacement whereas the other ones will not have an influence of the domain displacement.
For the Mesh displacement definition , the following data should be specified to associate a
regridding strategy to each d.o.f.:
l Rigid motion means that the mesh will follow exactly the body without being deformed, giving
the possibility to perform motions of arbitrary amplitudes
If the mesh deformation definition for the domains only contains "rigid mesh deformation", then
there is no need for the sliding patches to be linked.
l Weighted deformation means that a body-fitted mesh will be generated, using an analytical
weighted deformation technique for the body motion related to this d.o.f..
If one domains has a "weighted deformation" for any degree of freedom in its mesh definition
then the user has to group the sliding patches corresponding to the domain manually and link it to
its parent body of the domain with a "rigid" connection.
For only one moving body in an unbounded domain, the domain can follow exactly the body
without being deformed. If only Rigid is specified for each degree of freedom, the motion will be
applied to the whole domain. The motion of arbitrary amplitudes in any direction and orientation
is possible since the domain follows exactly the body motion.
In the case of free surface simulations, it is better for accuracy to keep the free surface position
with respect to the external boundaries. As a consequence, if it is requested to impose or solve a
body with a trim, a sinkage or a roll motion, it is better that these degrees of freedom do not affect
the external boundaries: they have to be treated by a deformation mesh technique (imposing
limited amplitudes of motion for these degrees of freedom). This can be done by putting Weighted
Deformation instead of Rigid for the concerned degrees of freedom.
Tx, Ty and Rz are the only degrees of freedom which do not affect the position of the free surface
relatively to the external boundaries. Hence, Tz and Ry should be set up as Weighted deformation (as
done by default).
For sliding patches linked to the rigid or virtual body, it is possible to disconnect/connect mesh
kinematics from/to the body kinematics.
FIGURE 11.8
Specific mesh management control for sliding patches
This option can be useful when the outer sliding patch is connected to the body, but the mesh of
the domain should rotate. There, it is necessary to disconnect the mesh kinematics from the body
kinematics, which would not be the case if the "Body itself" option has been selected. For
instance, it can be the case of boat motion with the ducted propeller: here the mesh of the
propeller domain should rotate, while the outer sliding patch as a duct is connected to the boat
motion.
Choosing Body itself or Domain rigid motion source will have no effect, if the sliding patch is
linked to the same body as the mesh rigid motion is copied from.
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.
This method is a steady-state approximation. The flow in each rotating cell is solved using the
rotating reference frame equations. The approach does not account for the relative motion of the
adjacent domains of simulation (which may be moving or stationary), the mesh remains fixed for
the computation. This is equivalent as freezing the motion of this rotating domain in a specific
position and observing the instantaneous flow field around a solid body in a particular position (a
propeller for instance) . Hence, the method is often referred to as "frozen rotor approach" in the
literature.
In the motion history the rotation variable ( Rz0) will be reflected as zero, but the angular velocity
variable ( dRz0) will contain the correct rotation speed.
Even if this approach is an approximation, it can provide information of the flow for many
applications. For instance, the method can be used for propeller applications in which the hull/
pod and propeller interaction is relatively weak, and the flow is relatively uncomplicated at the
interface between the moving and stationary domains. Another potential use of the method is to
compute a flow field that can be used as an initial condition for a transient sliding grid calculation,
such as a self-propulsion simulation for instance: during the first phase of the simulation, the
method can be activated in the domain of the propeller until the ship equilibrium is found. The
method should be then deactivated in a restart simulation to apply the standard guidelines for ship-
propeller interaction with sliding grids.
When using the Rotating frame method in mono- fluid configuration (such as an open water
simulation), an unsteady computation is required to be able to apply the motion parameters to the
body. Nonetheless, no time accuracy requirement is present here. A large time step value together
with a reduced number of non-linear iterations comparing to the standard approach are recommended.
Thanks to this method a propeller open water computation with a single domain configuration,
can be run in a significantly reduced computational time without a loss in accuracy. Performed
studies for the open water propeller case showed the following results: the number of non-linear
iterations can be reduced to 4 (could be also acceptable with only 2 but the user is invited to check
the difference), the time step value should be calculated such as the propeller will perform a
complete rotation in 20 time steps.
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.
To control the behavior of the grid deformation independently from the fluid boundary conditions,
Expert parameters for the Boundary conditions for grid deformation are presented. In simple
words, applying available conditions for grid deformation will control the way the boundary
nodes are going to move when the mesh deformation is used, independently of the rigid motion.
With weighting deformation technique, it only have an effect on the boundary condition which is
applied when computing the weighting coefficient.
Up to FINE™/Marine v2.3, the boundary conditions of the grid deformation are equal to the
boundary conditions related to the computation of the weighting coefficients and the fluid boundary
conditions are linked together.
Keeping the default settings (Dirichlet condition) without the specific treatment works for the
most of the cases. But, for specific needs, for example in a case of a foil fixed to a bottom wall
(without using sliding grids), the foil cannot be rotated using the weighting deformation technique
and the default allocations of the regridding boundary condition (slip or no slip), is considered as a
Dirichlet condition for the computation of the weighting coefficient. The weighting coefficient is
then set up by a value equal to 0 for all faces belonging to the bottom. Hence, no modification of
the position of the nodes is applied when the body rotates, what will lead to problems.
To apply the suitable boundary condition for the weighting coefficient, a symmetry condition (or
a Neumann condition which are equivalent for this case) has to be set on the bottom patch. The
goal is then to be able to change the boundary conditions for the computation of the weighting
coefficient when it is needed.
FIGURE 11.10
Boundary conditions for grid deformation
The boundary condition Free corresponds to Neumann conditions; No- slip for Dirichlet
conditions; Bottom (shallow water) for shallow water condition; Mirror condition supports
mirroring of the mesh deformation.
Bottom (shallow water) distributes the mesh deformation between ship bottom and domain
bottom uniformly, allowing more mesh deformation to be absorbed than with standard setup. It
can only be used on the domain bottom patch, and in a project where the vertical direction is the Z
axis.
For users working in batch mode, in the .bcs file, the first boundary condition flag can have 3
digits: grid deformation boundary condition uses the first digit, the last two are used for the Fluid
boundary condition. For example, a Far Field condition (10 with the old format for the boundary
condition in the .bcs) will now receive the flag 410.
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.
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.
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.
INITIAL SOLUTION
A FINE™/Marine computation is starting from an initial solution. The following initial solution types
are available:
l uniform values,
l from file.
Each of these types is described in the next sections. The initial solution is set for the complete
computational domain. It is not possible to define different initial solution types for different parts of
the domain.
In this section
12.1 Uniform Values 285
12.2 Restart from a Previous Computation 287
When selecting Uniform values on the Initial Solution page, the physical values used for the initial
solution can be modified as shown in the following figure.
FIGURE 12.1
Constant initial solution
The physical values are uniformly used as initial solution over all the domain, except on the
boundaries. The variables for which initial values need to be specified are the Initial velocity
components.
The turbulent data are automatically computed by the interface and then by the solver. They
depend on the fluid(s) parameters and the flow model characteristics. It is also possible to define
the initial turbulence level by activating the Turbulence level button. The list of initial turbulent
quantities is the following one:
κ = Turbulent kinetic energy (K-ω and K-ε models only),
The turbulence level, noted a, is used to define the turbulence velocity scale noted Vs with the
formula:
with Vref the reference velocity defined in the Flow model menu.
Increasing the turbulence level is recommended for internal flows but not for external ones. In this
last case, the turbulence level initialization should be kept inactivate.
The turbulence length, noted Ls, corresponds to a reference length for the turbulence initialization.
It can be different from the reference length defined in the Flow model menu.
νt
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.
To continue using the results from a previous computation, the button Restart from previous
computation must be selected in the Initial Solution Parameters page. The possible computations
to restart from is available in the drop down list.
FIGURE 12.2
Restarting from file
To restart from a previous solution, it is required that some solution files are already present, as the
simulation definition file with extension .sim. See "Backups" (p. 481) for the complete list of
mandatory files.
The "eff_*.dat", "MvtBodyName.dat" and "body_param.dat" files contain respectively the global
fluid forces, the body movement and the data related to the body. They have also to be present in
the computation folder to make a restart.
For instance, it is possible to increase smoothly the imposed velocity after a first run at a lower speed,
see Imposed Law of Motion to know how to change the velocity.
When performing a restart, the simulation should be done in the same conditions for a good post-
processing analysis. For instance, new residuals in the ".res" file or new motion outputs in the "Mvt_
body.dat" file can be accumulated without any problem but the Monitor (see Monitoring) will not be
able to read these new outputs. To overcome this limitation, one should not import the convergence
history.
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.
In this section
13.1 Definition 290
13.2 Properties 296
13.3 Best Practice on Actuator Disk Capabilities 300
13.4 Basic Equations 302
13.5 User-defined 304
13.6 Propeller code coupling 306
First of all, it is necessary to activate the Actuator disk feature by clicking on the Activate
Actuator Disk menu.
FIGURE 13.1
Actuator disk activation menu
As soon as the model is active, the computation will contain at least one Actuator Disk.
FIGURE 13.2
Actuator Disk default parameters
FINE™/Marine allows to define how the body forces will be acting on the Actuator disk. When
Body force update is active, the following options are available:
FIGURE 13.3
Body force update selection menu
Body drag
The Thrust of the Actuator Disk is automatically updated during the computation such that it
ensures the equilibrium of the forces in X-direction at a prescribed interval in a manner of Thrust
= (Σ External forces - Drag). External forces can be the constant wrench, the mooring and
tugging lines or dynamic libraries for the external forces. If Body force update is set not active,
the value of the Thrust during the computation will equal the one specified in the interface.
If no external force is imposed on the body, the update will simply impose Thrust=Drag in absolute
value.
The prescribed interval for the force update corresponds to the parameter named Frequency
which can be employed as the number of Time steps for an unsteady computations or the number
of Iterations for a steady computation.
The ramp is only applied when T, n or Power is imposed. Body drag does not take into account this
parameter.
For the BODY DRAG type of force update it is possible to define the Force distribution with
the following options:
l DEFAULT: If the center of the mesh control volume is located inside the actuator disk, then,
the actuator disk body force assigned to this control volume will be equal to the force density
at the center of the control volume times the volume of the control volume. This model is not
adequately applicable for the simulation of ducted propellers.
Results can be slightly different from the previous versions but nothing is changed for user.
Body forces are uniform in angular direction but changes in radial direction for the DEFAULT
law.
l USER-DEFINED : the user can provide his own body force distribution by using user
defined dynamic library (a complete description of the dynamic library is given in the "User-
defined" (p. 304) section).
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
FIGURE 13.4
Example of an Open water data file format
If the Thrust and Torque are out of the range of values given inside the open water performance data,
the solver will use the extreme values so that no extrapolation is performed, only interpolation within
the provided range of values. Hence, for the particular case of the bollard pull, values for J=0 (or
close to J=0) should be given as well.
When OPEN WATER DATA is selected, new entry appears in the Actuator disk properties
menu and allows to specify the path to the .dat file in the Open water data menu
FIGURE 13.5
Open water data file specification
FIGURE 13.6
Revolution rate selection menu
When the User imposed is selected, the entry to enter the value in [RPS] appears below the box.
FIGURE 13.7
User impose value for Revolution rate
When Revolution rate is set to 0 it means that it will be solved, whereas if it has a non-zero value
- it is considered as prescribed. The User imposed option can be used to solve the body velocity.
Propeller code
Here the body forces will be determined by an external propeller code (usually a potential code)
provided by the user through a dynamic library. A RANSE potential code coupling approach
contains following steps:
1. RANSE code computes the flow around the hull and provides the inflow condition to the
potential code.
2. Every N iterations or time steps, the propeller performs a simulation for a rotating propeller.
Effect of the propeller is represented by body forces.
3. Those body forces are added into the right hand side of the Navier-Stokes equation. They are
also taken into account when solving the motion equation for the boat.
More information can be found in the "Propeller code coupling" (p. 306) section.
When Body force update option is used, the vessel must advance in the X-direction in the primary
frame, since the update is based on force balancing in that direction.
Activate tangential force controls whether the tangential force is activated or not in the
computation. It is not necessary to activate the tangential force to obtain a good prediction of the
resistance.
Half boat simulation with an Actuator Disk in the middle of the symmetry plane are possible as long
as the Activate tangential force option is not active.
The Show/Hide button will display the Actuator Disk definition in the graphics area. These values
and their representation take the Cardan angles into account.
13.2 PROPERTIES
l Impose power: in case of body force update option is active using the open water data, if the
propeller revolution rate is not defined and the power value is higher than 0.001. Then the
actuator disk will operate with this prescribed power. It corresponds to , n being the
revolution rate and Q the torque. It is the power delivered at the shaft after the gear box.
l Impose maximum power : in case of body drag or open water data, with prescribed
revolution rate, the revolution rate might be reduced if the engine power is higher than the
maximum power.
l Thickness of the propeller: virtual thickness of the propeller along the shaft direction.
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.
l Revolution rate: defines the rate to reach the required Thrust. This parameter is not used by
the flow solver as such but is transferred to the external dynamic library. See also the details
provided in Actuator disk "Global parameters" (p. 291).
l Center coordinates (X, Y, Z): Cartesian coordinates of the propeller's center. It is the real
center of the disk (center +/- half of the thickness to define the disk in axial direction).
l Shaft direction (pointed to the wake): direction of the propeller force. Normalization is not
required.
in case the Body force update option is not used the shaft direction is not strictly defined.
Otherwise, the direction is aligned with the imposed forward direction of the body (typically the
X-direction is applied).
l Linked to body: name of the body which the propeller is attached to, see "Body Definition"
(p. 215) to know how to create a body. The actuator disk does not necessarily touch the body.
Besides, FINE™/Marine allows to perform computations with several actuator disks. They can be
created through the interface. For this purpose, clicking on Add will create a new disk in the list,
as a copy of the selected one. Clicking on Remove will delete the active disk and its properties.
FIGURE 13.9
Disks list
The actuator disk approach consists in adding a source term of forces field in the Navier Stokes
equations in order to take into account the propeller effects. Nevertheless, this method is
approximate and all the propeller effects will not be computed with precise details.
The most precise results can be obtained by using the Thrust and Torque capabilities. These
values should be specified through the page Actuator Disk, see Special Characteristics
In reality, the thrust is unknown because it is depending on the flow behavior. However, once a
steady velocity is reached, the thrust is equal to the drag. That is the reason why it is possible to
activate the option Self Update. With this option, the code will automatically update the intensity
of the thrust at the given frequency by the intensity of the drag.
For instance, let's define the following variables:
l Thrust: T
l Initial thrust: T0
l Torque: Q
l Initial torque: Q0
Initial input values should be imposed for the torque and the thrust. The thrust T will be equal to
the drag every updates during the computation, and the torque Q is determined by the equation:
For instance, if T 0 = 1N and Q 0 = 0.3Nm or T 0 = 100N and Q 0 = 30Nm as initial input values,
the results will be the same. Only the ratio is important as demonstrated by the above equation.
If the propeller torque Q 0 is not known, it is however possible to estimate its magnitude from open
water test of the propeller.
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.
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.
l It is recommended to generate a mesh with a fine enough grid density inside and near the
actuator disk. A few hundreds is a good compromise. In practice, 20 cells in the thickness of
the disk are recommended and the number in the radius can be chosen to create isotropic cells.
In other words, based on the cell size in the thickness, the same cell size should be used in the
radius direction.
l The initialization of the actuator disk can be quite long if a disk is badly located (inside the
solid body for instance). Since the GUI represents the inputs in the graphics area to help the
user to verify the settings, it is good to take the time to define the actuator disk zone precisely.
l Defining the inner radius of the actuator disk inside the solid wall can happen with conical hub
for instance. However, for the "Wake_flow_pp" (p. 745) tool, the inner radius should be
adjusted to be inside the flow. Otherwise, interpolation errors will occur and decrease the
quality of the solution of this tool.
l If a half domain computation is performed with a propeller located at the mirror plane, then,
this mirror plane needs to be located at y=0. Tangential force must not be activated in this case.
l If a user launches a computation in batch directly with v7.1, with a .sim file < v2.3 including
actuator disk active and Cardan angles different from 0, computation will stop with a warning
saying that the implementation has changed: "Cardan angles are now taken into account with
the actuator disk model. Please create the .sim file with the graphical user interface."
l To simulate Ducted Propellers it is advised to use at least the UNIFORM force distribution,
and if possible USER DEFINED based on real force distribution. The use of DEFAULT
force distribution will lead to under-estimation of the propeller thrust.
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:
The user can provide his own body force distribution by using user defined dynamic library. The
axial force distribution fa and the tangential force distribution ft is assumed to be function of radial
and angular position only. They are constant in the axial direction. Integration of force distribution
f a and f t on the actuator disk volume should be equal to propeller thrust T and torque Q
respectively, namely:
Here, Dx, Rin and Rout are the thickness, the inner radius and the outer radius of the actuator disk
volume respectively. An example of user defined body force distribution program is given bellow:
Subroutine ad_forces(idisk, Rin, Rout, Dx, Q_imp, &
T_imp, Ri , Angle,Fni,Fti)
implicit none
integer, intent(in) :: idisk
double precision, intent(in) :: Rin,Rout,Dx,Q_imp,T_imp,Ri,Angle
double precision, intent(out) :: Fni,Fti
!---------------------------------------------------------------------!
! idisk : actuator disk index
! Rin : inner radius of the actuator disk
! Rout : outer radius of the actuator disk
! Dx : thickness of the actuator disk
! T_imp : imposed thrust of the actuator disk
! Q_imp : imposed torque of the actuator disk
! Ri : radius of the current position where body force is to
! be defined
! Angle : Angular position of current point
! Fni : output axial force density
! Fti : output tangential force density
!---------------------------------------------------------------------!
double precision:: rhp,Ca,Cb,rp,rs,pi
pi=3.1415926535897d0
The flow solver can handle any number of boats (limited to 99) with any prescribed and/or solved
motion. An arbitrary number of propellers can be attached to each boat. Paralleled computation
with adaptive mesh refinement and automatic load balancing is fully supported. Each block
interpolates the velocity at the inflow plane located at a prescribed position in front of the
propeller for all points at the inflow plane found inside the block. The interpolated results are
collected and distributed to all blocks so that each block contains required inflow conditions for all
propellers. Those inflow conditions as well as all other information such as the kinematic for all
boats can be transferred to the potential code using a user-defined dynamic subroutine. The
potential code can be either integrated directly into this dynamic subroutine, or launched from it
using a system call. Data exchange with disk files will be necessary in the last case. The user-
defined subroutine can manage freely the computation for all propellers at each block. It is not
necessary that all blocks perform all computations for all propellers. The first bloc performs the
BEM computation for the first propeller, the second bloc performs the computation for the second
propeller, etc. If you have 3 propellers and use only 2 blocs, then, it is the first bloc that performs
the BEM computation for propeller 1 and 3 propeller.
Data exchange between FINE™/Marine and the potential code is performed with a local
cylindrical coordinate system linked to each propeller. This local coordinate system does not
move with the boat, nor rotating with the propeller. The origin of this local coordinate system is
defined at the center of the propeller. The axial direction of this coordinate system is aligned with
the axial direction of the propeller pointing from the boat to the wake. Facing the boat, counter
clockwise direction is the positive angular direction. Radial direction is pointed outward. Angle
change from 0 at y=0 to 2π.
A uniform grid in this cylindrical coordinate system is generated at a prescribed distance in front
of the propeller to provide the inflow condition to the potential code (see figure below). The axial,
tangential and radial velocity components are provided to the potential code with a three-
dimensional array Va(i,j,k), Vt(i,j,k) and Vr(i,j,k). The first index i ranges from 1 to Nr (variation
in the radial direction). i=1 is located at Ri, the radius of the propeller shaft. i=Nr is located at Ro,
the outer radius of the propeller blade. The second index j ranges from 1 to Nt. It is the variation
in the circumferential direction (tangential). At j=1, the angle is zero, while at j=Nt, the angle is
2π. Nr and Nt are controlled by the expert parameter ActuatorDiskInternMeshDim_. The last
index k ranging from 1 to Ndisk is the index of the propeller. The reference is at 0 angle which is
at 3 o'clock as illustrated on the figure by the red line in the disk.
An identical grid, but located at the centre of the propeller is employed to represent the body force
computed by the potential code. Axial body force distribution f a and tangential body force
distribution f t defined at each node of this grid need to be provided by the potential code to
FINE™/Marine. The force distribution should be defined such that integration of the forces on the
actuator disk plane represented by this grid provides the propeller thrust T and torque Q, namely
Here, Rin and Rout are the inner radius and the outer radius of the disk respectively.
The body force is the force acting on the fluid. Hence, the axial force should be positive. Radial
body force is not taken into account in FINE™/Marine. Those body forces are distributed inside a
cylindrical volume with a prescribed thickness.
The grid representing the inflow plane is moved in the computational domain according to the real
position of the propeller. The position of the propeller in the computational domain is defined by
the position of its centre and the normal vector (nx,ny,nz) pointing from the boat to the wake. The
virtual propeller with its inflow plane is first translated to its real position at the computational
domain. Then, a first Cardan rotation around the Z1 axis with an angle of rotation equal to atan2
(ny,nx) is performed, (X1,Y1,Z1) being the Cartesian coordinate system on which the
computational grid is defined. After this rotation (see figure below), the new axis X2 is aligned
with the normal vector (nx,ny,nz) projected into the X2-Y2 plane. A second Cardan angle
rotation around the Y2 axis with an angle of rotation equal to:
FIGURE 13.11
Cardan angle rotation
The interface for the user defined dynamic library for the external propeller code is given below.
The above example gives the default force distribution law described in the third section of this
chapter. It is provided for illustration purpose only, since the resulting body forces do not depend
on the inflow velocity as it should be for a true propeller code.
Subroutine ad_propeller_code &
(mybloc,nbody,ID_Body,tc, &
CGref_R0,CGtc_R0,Theta1tc, &
Drag_Total, &
Xdisk,Ydisk,Zdisk,ADnx,ADny,ADnz, &
ADnx_c,ADny_c,ADnz_c,Rin,Rout, &
Xdisk_wake,Ydisk_wake,Zdisk_wake, &
x_wake,y_wake,z_wake, &
u_wake,v_wake,w_wake, &
ua_wake,ut_wake,ur_wake, &
Fa_Pcode,Ft_Pcode,Fr_Pcode, &
T_imp,Q_imp,An_imp, &
ndisk,nr,nt,AD_Body_number, &
Xdisk_c,Ydisk_c,Zdisk_c, &
The radial body force Fr_Pcode is not taken into account in the current implementation.
The propeller code must provide the propeller thrust T_imp and torque Q_imp, as well as the
propeller rate of revolution An_ imp if the propeller code adjusts the revolution rate of the
propeller. Values specified by the user for T_imp, Q_imp and An_imp are also provided as input
data through the actuator disk menu, to the propeller code. It is the propeller code which should
decide how to use them. Hence, we can distinguish two different scenarios:
1. In a computation with prescribed propeller rate of revolution for example, An_imp will be
considered as the prescribed propeller rate of revolution and the propeller code will not change
this value. User is free to choose its unit (RPS for instance). The input values for T_imp and
Q_imp will not be used by the propeller code. However, they must contain the output results
obtained by the propeller code.
2. In a computation with a self updated propeller rate of revolution, T_imp can be considered as
the expected propeller thrust, An_ imp can be considered as the estimated initial rate of
revolution. The propeller code must adjust the propeller rate of revolution to obtain the
expected thrust T_imp and provides the resulting torque Q_imp and rate of revolution An_imp.
A uniform grid with polar coordinates system is employed to define the inflow velocity. The same
grid (but located at the centre of propeller) is used for the definition of body forces. The radial and
angular coordinates at each point of this grid is uniquely defined with the number of grid points in
the radial direction nr and in the tangential direction nt, as well as the inner radius Rin and the
outer radius Rout. Additional information defined in the reference frame such as the centre of
propeller Xdisk,Ydisk,Zdisk and the inflow plane Xdisk_wake,Ydisk_wake,Zdisk_wake, the shaft
direction ADnx,ADny,ADnz, the Cartesian grid of the inflow plane x_wake,y_wake,z_wake and
the Cartesian velocity component at the inflow plane u_wake,v_wake,w_wake etc. are provided
for user's convenience. They can be useless for the propeller code.
MOORING
It is possible to compute the flow around a ship, which has docked for instance, thanks to the
simulation of a mooring line. In that case, the mooring line will be attached to the body at the fairlead
point and to the anchor point. In reality, the anchor point is in the sand, on a dock or on an offshore
platform for instance. The mooring is implemented in FINE™/Marine to take into account the effect of
one or several mooring lines on one or several bodies. The first section will describe the necessary
input to perform such a computation with one or several mooring line(s). The second section details the
implementation.
In this section
14.1 General Parameters 314
14.2 Special Characteristics 314
14.3 Forces Definition 316
First of all, it is necessary to activate the mooring feature by clicking on the Activate Mooring
option. As soon as the menu is opened, the computation will contain at least one mooring line.
FIGURE 14.1
Mooring is not active
FINE™/Marine allows to perform computations with several mooring lines. They can be created
through the interface. For this purpose, clicking on Add will create a new line in the list. Clicking
on Remove will delete the active line and its properties.
FIGURE 14.2
list of mooring lines
FIGURE 14.3
Configuration with four mooring lines
In 2D, the Z coordinates are grayed out since there are not used by the solver.
The fairlead position does not have to be exactly onto the body surface. The force will act on the
body thanks to the Link to body parameter.
Cardan angles are not taken into account. Hence, all coordinates should be specified in the primary
configuration (see Reference Frame ).
The Show/Hide option allows to display the selected mooring line in yellow in the graphics area.
Each mooring line is seen as a spring. Hence, the force of the mooring line F ML defined by the
spring can be written:
where K stands for the stiffness, ΔL is the variation of the spring length and T is the initial tension
of the mooring line.
When solving the Newton's law (i.e. for a solved motion, see Solved Law of Motion for more
explanations about this motion), this force is then taken into account:
where F is the force applied on the body, m is the mass of the body and a is the body's
acceleration.
After each time step, the tension obtained on each mooring line, will be stored in a separate file called
"tension_line.dat", available in the computation folder.
Even for half-body computations, the stiffness of the mooring line to be defined is the total stiffness
corresponding to the one of the entire body computation.
TUGGING
Tugging lines have been developed to give the possibility to simulate tugboats for instance in
FINE™/Marine or more generally any simulation which involves 2 bodies linked by one line or more.
In this section
15.1 General Parameters 318
15.2 Special Characteristics 318
15.3 Forces Definition 319
First of all, it is necessary to activate the tugging feature by clicking on the Activate Tugging
option. As soon as the menu is opened, the computation will contain at least one mooring line.
FIGURE 15.1
Tugging is not active
FINE™/Marine allows to perform computations with several tugging lines. They can be created
through the interface. For this purpose, clicking on Add will create a new line in the list. Clicking
on Remove will delete the active line and its properties.
FIGURE 15.2
list of tugging lines
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.
l No forces in case of compression: helps to avoid compression of tugging lines if needed. If the
option is active and while in compression, the tugging lines forces are equal to 0.
FIGURE 15.3
Tugging parameters menu
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 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.
CAVITATION
The numerical modeling of cavitation is based on the resolution of a transport equation similarly to
what is done for the free surface. But, in this case, source terms are added to model vaporisation and
condensation of the phases liquid/vapour. Three different models have been implemented: Merkle,
Sauer and Kunz models. The objective of this chapter is to present the settings to use these models and
use cavitation in FINE™/Marine simulations.
In this section
16.1 Parameters 322
First of all, it is necessary to activate the cavitation by clicking on the "Activate Cavitation"
button.
FIGURE 16.1
Cavitation activation
l mono-fluid: the Reference pressure will correspond to the Pressure imposed by the external
Boundary condition "Prescribed pressure", which is 0.
l multi-fluid: the Reference pressure will correspond to the Pressure at the Free surface, which is
also 0 by Default.
The Vapour pressure in Cavitation model is to be set relatively to this Reference pressure, so in the
case Pref=0, the Vapour pressure ( Pv) value will become negative.
where
The Pref becomes more important if the User choose to define σ value instead of the Pv due to that it
will be deduced from σ and the Pref.
l Fluid density: information about the density of the main fluid (fluid-1)
l Vapour density and viscosity: density and viscosity of the vapour
l Reference pressure: reference pressure for the cavitation
l Cavitation reference velocity: reference velocity for the cavitation.
One has the choice between two solutions to define the vapour pressure, using the coefficient s or
directly the value of the vapour pressure.
l σinit: initial cavitation parameter
l σ: target cavitation parameter
l Vapour pressure init: initial vapour pressure
l Vapour pressure: target vapour pressure
knowing that the parameters are linked by the formula:
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
FIGURE 16.3
Cavitation parameters
First of all, one should pick one model among the list: Sauer, Merkle or Kunz. Then, depending
on the selected cavitation model, different inputs are required:
l for Sauer: Nuclei density
l for Merkle and Kunz: Liquid product coefficient, Liquid destination coefficient and Cavitation
reference length.
FIGURE 16.4
Cavitation model
UNCERTAINTY QUANTIFICATION
The physical variation present in the system can be found in literature as irreducible uncertainty,
variability and inherent uncertainty, this uncertainty is the natural variability that is inherently present.
Due to the physical variability, operational uncertainties are always present when considering a real
physical processes. Examples of operational uncertainties can include free stream conditions like
pressure, velocity, turbulence and for instance cavitation production terms and etc. By measurements
one should be able to find probability density functions for these parameters.
FINE™/Marine provides an uncertainty quantification (UQ) module called Non-Deterministic Data,
which uses the Non-Intrusive Probabilistic Collocation Method (NIPCM) introduced by Loeven, 2010,
and allows to treat operational uncertainties such as boundary conditions and some model parameters.
The selection of quantities to be attributed with an uncertainty and the choice of the uncertainty is
straight forward here and the generation of non-deterministic sub-computations is automatically done
by the in FINE™/Marine GUI. The NIPCM method is applied to the parameters of the and their values
are automatically modified following the imposed uncertainty law.
Polynomial chaos methods (PCM) represent one class of non-deterministic methods which gained wide
acceptance in the CFD community for propagation of the uncertainties in numerical simulations, where
the random quantities are subjected to a spectral representation via a polynomial chaos expansion
(PCE). PCMs show interesting advantages with respect to the perturbation methods. PCMs can handle
more general types of uncertainties while they seem to be more computationally efficient as the basic
Monte Carlo methods. Anyhow, reliable conclusions could be started, for particular applications, only
after completing a comparative assessment of the user-selected non-deterministic methods.
General framework for the computation including the uncertainty quantification analysis is as follows:
1. Define parameters to be uncertain during the computation.
2. Specify input distributions for uncertain parameters by selecting the Probability Density Function
type (PDF).
3. Perform non-deterministic parent computation.
4. Perform deterministic computations for every collocation point.
Computing collocation points and weights based on PDF's of the uncertain parameter(s) together with
constructing the stochastic solution using all obtained deterministic solutions, e.g. mean/ variance fields,
uncertainty bars or probability density functions are done thanks to the Non-Deterministic Data and
Non- Deterministic Results modules within the FINE™/Marine software.
In this section
17.1 Parameters 330
17.2 Results 336
17.3 Report file 341
17.4 Recommendations 342
Before creating a deterministic computation, the user has to create a non- deterministic
computation (usual FINE™/Marine computation). Then, the deterministic computation will be
created based on the non-deterministic computation (parent computation).
The non-deterministic module can be activated in the Additional Models/ Non-Deterministic
Data part of menu. Select Activate Non-deterministic data to enable options for the further
setup. It will be suggested to select uncertainty for quantities in the Boundary Conditions and
Cavitation model menu.
FIGURE 17.1
Non-deterministic module activation window.
In the Boundary Conditions page, a check box uncertain will appear at the right side of the
boundary condition available for the uncertainty analysis. By checking the uncertain box
corresponding boundary condition will be marked as an Uncertainty entry.
Parameters to be possibly selected as an uncertain:
From External Boundary Conditions
Far field:
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:
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.
Sparse grids can give negative weights for sub-computations which is considered to be admissible be
method.
Example
number_of_points 100
00
0.010101010101010102 1.4613474490780709e-005
0.020202020202020204 0.00011601194732412229
0.030303030303030304 0.00038850903048303503
0.040404040404040407 0.00091370627391922316
0.050505050505050511 0.0017704751368160471
0.060606060606060608 0.0030349384765434905
...
It is also possible to export the probability density function (PDF) into a '.p' format file by using
the button export.
At the bottom of the Non-deterministic Data page the total number of sub-computations to be
created will be displayed. By changing any of described before parameters this number will be
updated with respect to all changes imposed. Deterministic computations will have variations of
uncertain values and it's possible combinations.
Option of using results of the non-deterministic run into the deterministic ones can be applied by
checking the box Restart sub-computation from the parent.
By pressing the Generate computations button deterministic sub-computations will be created
according to the given parameters and this page will be automatically closed.
If the Non-deterministic datacheck box will be unchecked after the deterministic computations has
been created, the last will be deleted. In this case, following warning message will be displayed:
FIGURE 17.4
Warning message when the Non-deterministic mode is disabled.
After finalizing creation and setup of the parent non- deterministic computation together with
deterministic sub-computations, modifications into the parent are not recommended anymore. This is
due to the fact that changing defined here uncertainty parameters settings can influence the results in
an undesired way.
Launching of computation can be performed as usually: through the FINE™/Marine GUI or with
the python commands described in the Uncertainty Quantification section.
17.2 RESULTS
After running the desired deterministic computations (including parent non- deterministic
computation), the user can find results on the corresponding page - Computation control/Non-
Deterministic Results .
FIGURE 17.5
Non-Deterministic Results: specifying the percentage of results to be used
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.
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:
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:
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.
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
...
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.
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).
The Internal wave generator (IWG) creates waves in the domain based on a momentum source term
applied to the Navier-Stokes equations. More natural than imposing a wave generator on a boundary
condition, it ensures a clean wave signal at all times. The feature is especially relevant for fixed bodies
such as platforms, where waves reflected from the body could reach back the upstream boundary of the
domain. The generator is located inside the domain instead of in a boundary and it should be used in
combination with sponge layers placed near both ends of the domain to damp the waves.
The internal wave generator will generate waves that propagate following the X-axis of the global
reference frame. The waves can be generated in +X, -X or both directions from the source point.
Current limitations:
l The IWG has only been validated so far for fixed domains without any moving body;
l Irregular waves cannot be generated in both +X and -X direction;
l Waves will propagate only along X-direction, to simulate oblique waves, the body should
be rotated;
l Restart computation while activating the IWG is not recommended.
Parameters
Activating the Internal wave generator in the Additional models menu will make the
parameters describing the regular and irregular waves available:
Common parameters
l Depth: distance between free surface at rest and the bottom of the domain in meters. It is
displayed by a blue arrow in the graphics area. More information in the Boundary
Conditions"Wave Generator" (p. 205) section.
l Source location: wave generation point coordinate in X. It is shown as a yellow point on the
graphics area with one or two yellow arrows indicating the direction of propagation of the
waves.
l Direction of propagation: choose the direction of propagation of the waves from the wave
generator: Positive X, Negative X, Both
Link to domain: possibility to select the domain the internal wave generator is linked to, in
order to follow its motion.
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.
l Available spectra:
l ITTC
l Pierson-Moskovitz: modified spectrum according to the 1978 ITTC conference.
l JONSWAP: proposed after analysing data collected during the Joint North Sea Wave
Observation Project. Takes into account that the sea state continues to develop through
non-linear wave-wave interactions even for very long times and distances. This spectrum
extends Pierson-Moskowitz to include developing sea states.
l JONSWAP 3 parameters: additionally to the JONSWAP spectrum parameters, allows to
control the significant wave height.
l User-defined
After the spectrum was selected, the following parameters will become available:
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.
991
0.552300000000000 1.425134561970092E-008 0.200072553915353
0.556822222222222 2.105653169018277E-008 -3.10241674047480
0.561344444444444 3.059213503130416E-008 -1.11056951161608
0.565866666666667 4.373966352698112E-008 -1.79666237050452
0.570388888888889 6.159070885437247E-008 1.44797659527557
0.574911111111111 8.547564616889585E-008 0.835759044159744
0.579433333333333 1.169912378314590E-007 -3.13185364267893
0.583955555555556 1.580259532187931E-007 -2.53878755253289
...
983 lines here are omitted.
The first line has the number of waves frequencies (n); following lines contain: the frequency
(fi, [s-1]), spectral density (Si, [m²s]), initial phase of the wave component
( ,[rad]) that should be between [-π;π]. The initial phase is defined at the Reference Point.
Direction of propagation and Reference point have a similar definition as for the regular
waves.
The Depth, Direction of propagation and the Reference point should be specified together
with the spectrum data file.
Remarks
The complete summary of the best practice is provided in the FAQ Wave generation and damping
guidelines. This feature should be used in combination with "wave damping" (p. 351).
General
1. Under the Plugins/Predefined menu, the "Wave generation info" (p. 38) tool is dedicated to
1. The IWG has a length of 1 wavelength centered on the source point, therefore the wave
requested by the user is not generated immediately at the source, but after a certain distance.
1.5 wavelengths should be kept between the source point and the body or area where the wave
signal is analyzed.
2. Wave damping areas should be placed at both ends of the domain to absorb the waves and
avoid any reflection. The recommended length of the sponge layer at each end is 3
wavelengths.
WAVE DAMPING
Wave damping is a sponge layer that damp free surface waves to avoid any undesired reflections at
the boundaries of the domain. The damping term is automatically adapted according to the scale of the
problem ensuring its efficiency for all wave simulations.
Sponge layer damping acts as a porous media using Darcy's law to damp the momentum in Z
direction. The damping term acts on the momentum on Z direction and it is adapted according to
the scale of the problem. This damping method can be used both with the Boundary condition
wave generator and with the Internal wave generator and it should be preferred over the previous
Advanced parameters for Multifluid Smoothing.
More information can be found in Choi, Junwoo and Sung, Bum Yoon,“Numerical simulations
using momentum source wave-maker applied to RANS equation model”, Coastal Engineering, 56
(10), pp. 1043 - 1060, 2009.
This feature can be used in combination with waves generated from the boundary condition
("External Condition" (p. 196)) or from the internal wave generator ("Internal wave generator" (p.
343)).
Parameters
Activating the Wave damping in the Additional models menu will make the parameters
defining the sponge layer available.
The parameters Smin and Smax are used to specify the length of the damping area(s) in X and Y
directions. The values proposed by default correspond to the domain boundaries meaning that no
damping is applied. Once the values are changed the damping zone will be represented
graphically.
In 3D projects Y-direction defaults for Smin and Smax should be kept to avoid any damping in
the Y direction, which would distort the wave signal. In 2D projects only the X direction is
available to define the damping area.
If no damping is needed in one direction Gmin should be identical to Smin, and Smax should be
identical to Gmax. Any difference will create a damping zone.
MODAL APPROACH
The present Modal approach offers an efficient two- way coupling solution for the fluid structure
interaction (FSI) simulations, whereby the structure is represented by its mode shapes and natural
frequencies. The modal equations are solved inside the fluid flow solver in order to retrieve the
deformation of the structure and to take it into account in the flow calculation. It presents the
advantage to involve only one solver reducing thereby the complexity of the computational set up.
Functionality is based on the resolution of the modal equation of the structure. As starting point, a
structure code is used to compute modal shapes and eigen frequencies. With these data FINE™/Marine
software will compute the deformation of the structure by solving the modal equation.
FIGURE 20.1
Parameters: Modal approach
A specific license key is required to be able to use this module. Please contact your local support team in case
you do not have it yet.
Details can be found in the paper published by F. Debrabandere, B. Tartinville, C.Hirsch "A
Staggered Method Using a Modal Approach for Fluid- Structure Interaction Computation" also
available at www.numeca.be .
Activating the Modal approach in the Additional models menu will make the Coupling
parameters page available.
To have body(ies) in the list of Bodies, in the Body Motion menu it should have an Imposed
motion type and no Solved motion for any of D.O.F.'s. Bodies with imposed motion are listed on
the left, their corresponding parameters on the right.
FIGURE 20.2
Coupling activation
Advanced >>> button shows the expert parameter Map the loads on the non- deformed
configuration set as on by default.
Checking the Coupling activation in the Coupling parameters and pressing Edit... button will
make the Modal structures configuration menu available.
After specifying the "Structure file" (p. 357), the Number of modes to be used during the
computation should be set. By default, it is specified equal to the number of modes provided
within the "Structure file" (p. 357).
Visual definition of what are the mode shapes can be presented as follows:
FIGURE 20.4
Mode shapes used for the Vortex vibration calculations: a) Mode 1, b) Mode 2, c) Mode 3, d)
Mode 4
Non-zero Cardan angles are not supported in the flow solver for bodies with activated Modal
approach.
For unsteady computation, the time step is strongly recommended to be less than one third of the
period of the highest mode to avoid possible divergence.
To compute and save the weighting coefficients for the mesh deformation it is also possible to
perform a pre-processing step by launching the sequential solver in batch mode with an "-init_
modal" option such as:
isiscfdmarine71 -a -init_modal -print
Here the pre-processing step will not checkout a flow solver license and will compute and save
the weighting coefficient only. This will help to decrease the time of initialization for Radial Basis
Function (RBF) interpolation used to handle the computational domain deformation according to
the solid body displacement.
Mesh deformation method using Radial Basis Function (RBF) supports large structure
deformations supporting the good quality deformed meshes in such cases.
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.
<Comment line>
Number of dimensions : <#dimensions>
Number of modes : <#modes>
Number of nodes : <#nodes>
20.3 OUTPUTS
Information about the amplitudes and it's time derivatives calculated during the simulation are
written into the "Mvt_ bodyname.dat" file that is stored within the computation folder. The
structure of the file is explained in "The motion file: Mvt_bodyname.dat" (p. 578).
Calculated quantities can be also opened into the "Monitoring" (p. 487). Here the Quantities to
display: Amplitudes will display the resulting modal deformations parameters read from the
"Mvt_bodyname.dat" file with respect to the Modes simulated during the computation.
For the fluid structure interaction computation cases to monitor the convergence history of
"Unsteady Forces and Moments" (p. 494) the SaveConvEfforts_ can be activated (set to YES)
on the Advanced page of Control variables menu. Results can be opened within the Monitor™
same time with the other quantities.
Laminar- turbulent transition is a complex and not yet fully understood phenomenon. Among the
numerous parameters that affect the transition one can list: the free stream turbulence intensity, the
pressure gradient, the Reynolds number, and the surface curvature. In the transition process,
phenomenon of the laminar separation bubble can play a significant role. Strong adverse pressure
gradient makes laminar boundary layer to separate from the solid body surface. For the described
challenges, FINE™/Marine suggests the Transition model. The available implementation is based on
the Local Correlation-based Transition Modeling (LCTM) concept, where experimental correlations are
being integrated into the standard convection-diffusion transport equations using local variables.
To give an example of application, consideration of transition effects is important to estimate
performance of devices based on lifting bodies such as ship appendages (rudders, stabilizers, propulsion
systems) or marine current turbines.
FIGURE 21.1
Parameters: Transition model
Details can be also found in the paper of: Menter, F.R., Smirnov, P.E., Liu, T. et al., "A One-
Equation Local Correlation-Based Transition Model",Flow Turbulence Combust (2015) 95: 583.
doi:10.1007/s10494-015-9622-4
This model is based on adding the transport equations for the Intermittency (γ). The Intermittency
acts on the production term of the Turbulent kinetic energy transport equation in the SST
turbulence model to simulate laminar/turbulent flows. Experimental correlations are evaluated
inside the boundary layer only. Coupling with the k-omega (SST) is done by modification of the
original equations for the Turbulent kinetic energy (k) and the specific dissipation rate of turbulent
frequency (ω) with the additional Turbulent kinetic energy production and destruction terms to
ensure the proper generation of k at transition points for arbitrary Turbulence intensity (Tu) levels.
Please note, that sufficient experimental information should be available for an appropriate
Transition model performance, meaning generally the imposed initial conditions of the experimental
setup.
Current limitations:
l Available only when k-omega (SST-Menter) Turbulence model is applied.
21.2 PROCEDURE
The following steps suggest the example of a complete procedure for the simulation, in which the
experimental conditions for the Turbulence level are known and can be used for the flow
initialization.
3. Perform only the pre-processing step in Task Manager or launch it in batch with the tool
"hexpress2isis" (p. 722): this will prepare the files to be run with the solver (including conversion,
partitioning or concatenation of previous results)
4. Initialize the turbulence level with a user input data files as described in "Files Used as Initial
Data Profile" (p. 592)
Also, an example of init_isiscfd.f file mentioned in the procedure for Initial data profile creation
can be found below.
c
c
c
c Loop on boundary faces
c
n_begin=n-nvar_bnd
do i=1,nvar_bnd
i1=n_begin+i
c
c Boundary condition flag in 3.1 release:
c ABBCCDDEE
c with:
c A: mesh deformation flag
c BB: boundary condition flag
c CC: body index
c DD: sub-body index
c EE: domain index (starting from 1)
c
c Identification of the wall by face flag
c
if (flag(i).eq.1010101 .or. flag(i).eq.401010001) then
u(i1)=real(0.0)
v(i1)=real(0.0)
w(i1)=real(0.0)
k(i1)=real(0.0)
aw(i1)=real(0.0)
end if
end do
c
Note that the values of the Fluid density, Dynamic viscosity, Inlet velocity, Incidence, Turbulence
intensity and Viscosity ratio will depend on the test case conditions.
6. If the example file provided above has been used and a.out launch is finished with success,
three new files are generated and should be used to initialize the Boundary conditions for:
l Velocity: v.bin
l Turbulent kinetic energy: k.bin
l Turbulent frequency: aw.bin
7. Copy the generated files into the computation folder.
8. Modify the computation .sim file with the following lines, considering the new initialization of
Velocity, Turbulent kinetic energy and Turbulent frequency:
*
*** R/W : VELOCITY (T)
*
v.bin
*
*** R/W : TURBULENT KINETIC ENERGY (T)
*
k.bin
*
*** R/W : TURBULENT FREQUENCY (T)
*
aw.bin
21.3 EXAMPLES
Some aspects (grid, boundary conditions, ...) need to be noted when creating a project using the
Transition model. Otherwise it may not be able to improve the simulation, even provide worse
predictions (for example: with inaccurate inlet turbulence variables).
Grid requirements
As the Transition model is based on local values in the boundary layer and solves a transport
equation for the Intermittency, this requires a suitable grid refinement along the Solid walls.
The size of first cell must be sufficiently small to reach a lower than one or in the order of one
(as for all low- Reynolds turbulence models). Moreover too large expansion ratios must be
avoided for the clustering in the normal direction. It is advised to keep an expansion ratio lower
than 1.2.
The refinement location along the streamwise direction is also important for a good transition
prediction. In general, transition predictions will require more points along the streamwise
direction than fully turbulent predictions. A large number of points is requested mainly for
separation induced transition with possible reattachment. The refinement should be concentrated
around the area of possible separation bubbles and reattachment.
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:
NUMERICAL MODELS
The Numerical schemes and Under- relaxation parameters pages allow to define the numerical
parameters of the computation. They are described in the next section.
In this section
22.1 Numerical Schemes 375
22.2 Under-Relaxation Parameters 378
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,
See section 1.2 of the Theoretical Manual for more explanation about the numerical schemes.
Multi-Fluid Equations
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).
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.
The different discretization schemes for the passive scalar are listed below. They are only
available for computation when a passive scalar model is active (see Fluid model).
l GDS,
l AVLSMART.
In this page, it is possible to change the under-relaxation parameters. The list is the following:
l Velocity components
l Pressure
l Velocity flux
l Correction
l Turbulent kinetic energy
l Turbulent frequency
l Mass-fraction (available for Multi-Fluid only)
l Cavitation (available for Cavitation models only)
FIGURE 22.2
Under-relaxation parameters
An Adaptive grid refinement algorithm is implemented in the FINE™/Marine flow solver which
automatically refines the mesh during the computation. The first part of this chapter introduces this
feature, whereas the second part explains the input required through the interface. The chapter ends
with advice on how to use this method.
In this section
23.1 Introduction 380
23.2 Refinement Criteria 382
23.3 Grid Quality 400
23.4 Limiting Box 404
23.5 Refinement Control 407
23.6 Best Practice 412
The adaptive refinement is an iterative process in which the mesh is dynamically adapted to the
requirements of the solution, during the computation. The decision on where to refine the mesh is
based on the physics of the flow. Mesh adaptation is a powerful tool which is useful for a wide
range of applications, since it can:
l Accurately capture flow details, such as waves, wake flows and boundary layers, and
trailing vortices behind ships and propellers. Since adaptive grid refinement is local, it can
create much finer meshes around small details than what is feasible with static meshes.
l Create efficient meshes, by inserting fine cells only there where they are really needed. For
example, unsteady flows change in time; therefore, a non-adapted grid must be fine in all the
positions where the local phenomena will ever be during the simulation. On the other hand,
adaptive grid refinement can place the fine grid only where the flow features are now, and
change the grid as the flow evolves. Thus, a great reduction of the total number of cells is
possible.
l Simplify the computations, by allowing easier meshing in HEXPRESS™. For example, in
certain situations, it is no longer necessary to create free-surface meshes with HEXPRESS™.
Also, one can be sure that all relevant flow features are captured, without placing volume
refinement boxes.
l Assure the accuracy of overset computations, by smoothing out the transition in cell sizes
over the interface between domains (See also "Overset grid management" (p. 423)).
The refinement is cell-based: existing cells are subdivided into smaller cells to locally create a
finer grid. The refinement can be Isotropic or Directional (dividing cells in one direction only):
this reduces the total number of refined cells when flow features are aligned in a specific direction
(e.g. the water surface). The method contains several types of criterion which determine where the
grid has to be refined.
The refinement procedure is called repeatedly during the flow computation, with a given number
of time steps between each call.
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.
We recommend to use the adaptive grid refinement method conservatively when working on new
problems, to first get experience and limit the total number of cells generated. It is easier to go from
coarse to fine meshes than the opposite.
The evolution of the number of cells during the computation is given in a file called nb_cell.dat ,
which is stored by the solver. The "Results Analysis" (p. 552) tool of the FINE™/Marine interface
has an option to save this evolution as a plot inside a picture.
Since the adaptive grid refinement method changes the mesh files, the refined mesh is stored as an
output of the computation in the computation directory.
First of all, it is necessary to activate the adaptive grid refinement feature by clicking on the
Activate grid refinement option.
FIGURE 23.2
Adaptive grid refinement activation menu
Once the adaptive grid refinement is active, the Criterion page is open. This page contains the
main parameters which control the position and size of the refined cells: the refinement criterion,
which indicates the physical features on which the refinement decision is based, and the
refinement threshold which is the global indicator of the mesh fineness.
Surface-capturing criteria
Combined criteria
Other criteria
Parameters
The Refinement target values control the number of cells during the computation:
l Refinement criterion threshold: this parameter specifies the intensity of the refinement. The
principle of the grid refinement is, that the mesh is adapted in order to get in each cell: "the
criterion in the cell times the cell size is equal to the threshold". Therefore, a low value causes
a large part of the grid to be refined, while a high value causes only very local refinement.
Also, the cell sizes are directly proportional to the threshold: if the value of the threshold is
halved, all the refined cells become twice smaller.
FIGURE 23.4
The effect of reducing the refinement threshold. The right figure has a threshold that is half the
one for the left figure.
For Surface-capturing criteria, the threshold is called Target grid spacing normal to free surface ,
since it directly indicates the size of the refined cells.
l Minimum size limit for refined cells: cells that are smaller than this parameter in a direction,
are not refined in that direction. The default (0) means that there is no restriction.
For Hessian and Combined criteria, it is mandatory to choose a minimum cell size larger than the
thickness of the first cells in the boundary layer.
The quality of the refined grids is better when a fixed threshold is used. A useful approach for a
series of computations is to use a target number of cells for one computation, to establish the right
order of magnitude for the threshold, and then to run the entire series of computations with this
fixed threshold.
l Use number of cells as target: when activating this option, a new input Target number of
cells is required. Instead of specifying a refinement threshold (see the next item) to indicate the
desired amount of refinement, it is possible to specify the desired total number of cells in the
refined grid. The threshold is then automatically adjusted to meet this specification.
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.
Several criteria are available which refine the mesh around the position of the free surface, or at
the edges of cavitation pockets. For these criteria, the refinement threshold has a special property:
its value corresponds to the desired grid size in the direction normal to the water surface.
The mesh must be refined in a zone around the free surface for safety. The criterion does not do
this automatically, it only refines where the volume fraction is between 0.1 and 0.9. Thus, it is
essential to set buffer layers (see also "Grid Quality" (p. 400)). At least two full buffer layers are
advised.
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 is a directional refinement criterion, it refines the mesh in a direction normal to the free
surface. When the surface is at an angle to the mesh, this results in isotropic refinement, but when
the surface is aligned with the mesh, the cells are refined in one direction only. This criterion is the
preferred choice for free-surface refinement.
FIGURE 23.6
Free surface tensor criterion
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.
Multisurface (tensor)
Similar to the Free surface (tensor) criterion, this criterion controls refinement of the free water
surface, the surface of cavitation pockets, or both.
FIGURE 23.8
Multisurface criterion
Individual target cell sizes can be specified for each surface type. Internally, the flow solver will
convert individual Target grid spacing cell sizes into a single Threshold value and a
multiplication factor for the cavitation refinement criterion. Activating one or both of the Target
grid spacing to surface Free surface or Cavitation surface checkboxes will allow the User to
enter the desired cell size in the chosen area.
Refinement criteria based on the Hessian matrix of second spatial derivatives create refinement
throughout the computational domain. Since second derivatives are related to interpolation errors
for linear reconstructions, the Hessian gives a rough indication of the zones where the truncation
error for a finite-volume discretization is high. The Hessian matrix is:
For this directional refinement criterion the Hessian is based on the pressure. Thus, the criterion
targets flow features like stagnation points, pressure peaks, and vortex cores. Combined with a
Free surface criterion (see also "Combined criteria" (p. 393)), the pressure Hessian is very useful
for capturing waves.
FIGURE 23.10
Pressure Hessian tensor criterion
This isotropic refinement criterion uses the norm of the pressure second spatial derivative matrix.
The pressure Hessian is evaluated the same way as for the Pressure Hessian (tensor) criterion
but produces more cells since all cells are refined isotropically.
FIGURE 23.11
Pressure Hessian isotropic criterion
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.
The flux-component Hessian criterion is computed from Hessians of the pressure and velocity
components, weighted according to the way they appear in the fluxes. A typical flux is for
example , so the criterion is chosen as:
where the velocity is . The power factor α is in general taken equal to 0.5.
The maximum of two tensors is computed using an approximate procedure. Numerically, the
gradients are computed with a Gaussian evaluation plus misalignment corrections; they are
already known in flow solver. The pressure gradient is then smoothed but the velocity gradients
are not. Finally, the second derivatives are computed by differentiating the gradients using a
weighted Least-squares evaluation.
For the choice of the Threshold, since the velocity Hessians are scaled to the same dimension as
the pressure Hessian, the same initial guess as for the Pressure Hessian criterion can be used (see
above).
The flux-component Hessian criterion creates refinement in the boundary layers, parallel to the
wall. For the Wall-function boundary conditions, the gradient in the first layer of cells on the
boundary (and therefore the refinement criterion) depend very strongly on the thickness of this
layer. Therefore, it is important to make sure that this layer is never refined parallel to the wall, by
imposing a minimum cell size that is larger than the thickness of the first layer of cells.
Finally, since the Flux component Hessian criterion reacts to all the flow features, it can create
large numbers of refined cells. It may be useful to limit the number of cells created by selecting a
relatively large threshold, or a large minimum cell size (which means that the finer details of the
boundary layer will not be resolved). Finally, if the far wake is of no interest, refinement far
behind a body can be prevented by setting a limiting box (see also section about "Limiting Box"
(p. 404) parameters).
For Hessian-based refinement of free-surface flows, the Hessian criterion is combined with a
surface capturing criterion. The criteria are combined into one tensor criterion by taking a
weighted maximum of the two tensors. We still want the threshold (Target grid spacing normal
to free surface) to indicate directly the desired cell size, as for the free-surface criterion, so a
weighting factor c is applied only to the Hessian criterion:
C(S,i) being the value of the criterion for the free surface tensor and C(H,i), the one for the pressure
Hessian. This gives a (approximate) maximum of the two tensors.
Like for the multisurface criterion, the User must specify separate thresholds for each of the
combined criteria: a value Tr for the free-surface refinement and TrH for the Hessian-based
refinement. These thresholds can be chosen according to the guidelines given above for the
individual criteria. Internally, the flow solver converts these separate values into one threshold and
computes the weighting factor as
FIGURE 23.13
Combined criterion refinement targets
This criterion is a combination of the Free surface (tensor) criterion and the Pressure Hessian
criterion. Advice on their use can be found in "Free surface (tensor)" (p. 387) and "Pressure
Hessian (tensor) " (p. 390) paragraphs.
For cavitating flow generally, the Pressure Hessian criterion is combined with the Multisurface
(tensor) criterion.
FIGURE 23.15
Multisurface + Pressure Hessian combined criterion
Since the Multisurface (tensor) criterion can also be used as a pure free-surface criterion, the
combined criterion can replace the Free surface + Pressure Hessian criterion . For this
combined criterion, up to three thresholds can be specified. The first threshold corresponds to the
free-surface criterion, the second to the cavitation surface criterion and the third to the Hessian.
One of the first two thresholds may be set to zero, in which case the respective criterion is
deactivated.
For accurate wake/boundary layer simulation of flows with free surface or cavitation, the Flux
component Hessian criterion is combined with the Multisurface criterion.
Since the Multisurface criterion has the same behaviour as the Free surface (tensor) criterion
and can be used to capture the free surface in non-cavitating flows, no separate Free surface +
Flux component Hessian criterion has been provided.
For this combined criterion, up to three thresholds can be specified. The first threshold
corresponds to the free-surface criterion, the second to the cavitation surface criterion and the third
to the Hessian. One of the first thresholds may be set to zero, in which case the respective
criterion is deactivated.
Three gradient criteria are available: the gradient of the pressure, the gradient of the velocity or the
vorticity itself. These criteria give isotropic refinements.
This criterion improves the mesh continuity between overlapping meshes to ensure a better
transfer of data interpolation for the Overset type of computations. The criterion checks the cell
size at the overlapping boundaries of each domain and refines the mesh of the other domain, such
that its cell sizes are not more than two times larger.
This criterion is always active when any other physical criterion are used in combination with
adaptive grid refinement method (except "Surface capturing criteria" (p. 386) for which the
criterion is not compatible). If the criterion is used on its own, it only ensures a smooth transition
between cell sizes; it cannot be relied upon to refine a very coarse background mesh enough to
capture a flow. Therefore, the original meshes in both domains must be reasonably fine already.
Available only if Overset grid is active in the "Overset grid management" (p. 423) menu.
If the cells are (an)isotropic in the overlapping domain, then the background or the other overlapping
domain will be refined (an)isotropically.
FIGURE 23.20
Example of resulting mesh for simulation with Overset continuity only criterion used
To control the criterion behavior the Minimum cell size limit for refined cells is available as well
as parameters of the "Grid Quality" (p. 400), "Limiting Box" (p. 404) and "Refinement Control"
(p. 407) menus. If the criterion is used on its own, only the Control parameters need to be set.
The default values can be kept for the other menus.
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
Therefore, if a cell has a refinement criterion high enough to pass the threshold, after one buffer
step all of its neighbour cells also have a refinement criterion above the threshold. The number of
layers can be set to zero if needed, the default is 1 buffer layer.
For each 'fractional' buffer layer (FIGURE 23.22 b)), the following procedure is applied to the
refinement criterion qi in each cell i (k goes from 1 to the Number of layers copying fraction of
value):
with 0 < c < 1. The fractional copy will diffuse the value of the criterion among the neighbour
cells. If the criterion value in the neighbour cells is bigger than the value of the criterion in the
reference cell multiply by the fraction ratio, the cell will not be refined. For non-smooth criterion,
this guarantees a smooth transition in cell size from often-refined cells to the original grid size.
The default is 1 buffer layer with a fraction of 0.6.
If "full" and "fractional" buffer layers are required, the "full" one is first applied by the flow
solver and then the "fractional" one.
FIGURE 23.22
Buffer types
Grids for viscous computations may have special boundary layers close to the walls. Options are
available to protect these boundary layers during grid refinement. The measures typically affect a
'column' of boundary layer cells laying above one wall face. The possibilities are:
1. keeping the cells of a column together during redistribution,
2. preventing refinement in the boundary layer,
3. ensuring that all cells of a column have the same refinement.
Measure 2 is not absolute, it may be overridden by grid quality constraints. Measure 3 however, is
enforced. Which measures are applied, depends on the choice of the user:
l For Longitudinal direction only, measures 1 and 3 are taken, and 2 only in the direction
normal to the wall. In other words: only refinement perpendicular to the wall is allowed.
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.
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.
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.
By default the boxes are not active. Besides, coordinates are set to very large size to be sure that the
box will have no influence by default.
FIGURE 23.24
Box refinement page
Isotropic/directional refinement
With this choice, grid adaptation according to the selected refinement criterion will be performed
in the restricted area defined by a box displayed in yellow in the graphics area, which is set by
specifying its minimum and maximum coordinates in x, y, and z-direction.
FIGURE 23.25
Effect of Isotropic refinement restriction: x-refinement restricted by Xmax.=1.05 (left); no box
restriction(right)
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.
The Control page contains several parameters, of different types, which control the global
behaviour of the grid refinement algorithm. The first two parameters control the frequency of the
adaptive grid refinement method during the computation:
l Number of steps before first call to refinement procedure (default: 50): the solver will wait
50 time steps (unsteady and multi-fluid/steady computation) or 50 iterations (mono-fluid/steady
computation) before calling to the adaptive grid refinement method for the first time.
l Number of steps between calls to refinement procedure (default: 50): this input represents
the number of time steps (or iterations) between two calls to the adaptive grid refinement
procedure.
FIGURE 23.27
Frequency of refinement
The next control concerns the available memory for the computation.
l Maximum number of cells per partition:this is the maximum number of cells per partition
that is allocated at the beginning of the computation; the number of cells per partition cannot
exceed this number. On a machine which is used only to run the simulation, it makes sense to
choose this parameter such that all available memory is allocated (and thus potentially available
to store the refined grid). The right choice depends on the available memory of the machine, it
must be chosen with care on computers that have limited memory available, like IBM clusters.
The default is 500,000 cells. On a standard PC, often up to 1,500,000 cells can be chosen. For
limited memory machines, a rough guideline is a maximum of 100,000 - 150,000 cells for each
GB of memory per partition.
The final two options control supplementary actions which can be performed together with the
grid refinement:
l Reinitialize solution after first refinement: when this option is activated, the grid refinement
in the first time step is performed iteratively. After the first refinement step, the flow solution
(notably the volume fraction and the pressure) is reinitialized, using the same procedure which
is used before the computation. The grid is then refined again, and the solution is reinitialized.
This procedure is repeated until the refined grid no longer changes. The goal of this procedure
is to get a good definition of the jump in the volume fraction on the refined grid, with a
minimal thickness (2-3 cells). It eliminates the simulation time necessary to gradually compress
the jump in the volume fraction from the thickness which it had on the original grid (2-3 cells
on the original grid, so at least 4-6 cells on the refined grid), to the minimal thickness on the
refined grid.
This option is recommended for any simulation with "Surface capturing criteria" (p. 386) or
"Combined criteria" (p. 393), except for the cases where the grid refinement only cuts the original
cell size in two. There, it may be acceptable to start the grid adaptation only after the flow field
has converged on the original grid. For unsteady flows (where the free surface must be well
defined from the beginning), this choice is mandatory.
When using this option, the initial refinement must be performed during the first time step (i.e.
Number of steps before first call to refinement procedure set to 0).
Caution: if the initial position of the water surface corresponds to a grid plane, it will create no
refinement at the free surface location. To avoid this situation, one can switch the expert parameter
raffCritCiSmooth_ to YES.
If the computation using the Adaptive grid refinement is specified as a Restart from previous
computation in the "Initial Solution" (p. 284) menu a confirmation menu will appear:
Upon confirming this setting will be updated and Reinitialise solution after first refinement will
not be available for an active computation.
l Project refined grid onto body surfaces:this method projects the adaptively refined mesh
(containing a body) onto a triangulated surface file giving the desired shape for this body. The
linear interpolation that is used to position the new nodes during grid refinement, does not put
these nodes onto the body surface. In order to capture the geometry accurately, the refined grid
has to be reprojected onto the body geometry. The implementation is based on a triangulated
surface file (.its file), created from the triangulation of the domain description file (.dom file).
The .its file is generated by the hexpress2isis tool.
The projection method is also used with optimization suites (see Projection chapter).
Furthermore, several Advanced >>> parameters are available. For standard computations, these
can be left unchanged.
l Base free surface criterion on smoothed mass fraction: when activated, the free surface
criterion is based on a smoothed field of the mass fraction. This option should be used when
the initial free surface corresponds to a plane of the mesh or when the free surface travels fast
through the mesh (ex: falling objects). Using this option, it is advised to decrease the number
of Number of layers copying full criterion value, since it has the more or less the same
effect.
l Use criterion diffusion by convection: when this parameter is active, buffer layers are created
by convecting the initial refinement, using the current flow field, for the duration of the time
between two subsequent refinement steps. This buffer is created by making use of the cell face
CFL number. The larger the face CFL number, the more buffer layers are created in the
direction of the face; and thus, the buffer layers follow the motion of the fluid. This option is
only useful for unsteady problems with violent motion of the free surface, like impact flows.
l Limit scalar product check to zone where criterion is non-zero: activates the angle check
only in the regions where the refinement criterion is non-zero.
l Allow directional derefinement: this parameter allows to perform the cell coarsening in a
directional manner. Except for debugging purposes, this parameter must always be kept
activated.
l Maximum number of refinements of initial cells: this parameter limits the number of times
that a cell can be refined with respect to HEXPRESS™ mesh. The default (100,000)
corresponds to a value big enough so that there is no imposed limitation.
In general, there is no reason to change this default. To limit the amount of refinement, it is
recommended to impose a minimum cell size instead.
l Conditional refinement factor: if this parameter is set to a value larger than 1.0, cells with a
criterion value below this value times the threshold are not always refined, but only if one of
their neighbour cells is refined as well (thus, refinement is conditional upon a neighbour being
refined). The effect is, that the resulting grid will be smoother; fewer zones appear where cells
are alternately refined and not refined.
l Number of repetitions: when this parameter is set to more than 1, the refinement procedure is
called multiple times in one refinement step. This allows a more complete adaptation of the
grid to the current solution, which may be needed for unsteady simulation on strongly refined
grids.
For all the criteria employing the Hessian matrix calculation, Computation of the pressure
Hessian becomes available with the given selection of the calculation type:
FIGURE 23.30
Computation of the pressure Hessian
Hessian based criteria use the Hessian matrix of the numerical solution which second derivative
operators are discretised. Approximation of the solution can be build with the Third-order Least
Squares approximation or the Smoothed Gauss. With respect to the Least-squares evaluation,
the Smoothed Gauss evaluation gives significantly smoother meshes with higher mesh quality in
general. It is especially suitable for the computation of wave fields and of strong vorticity.
However, due to the smoothing it is less capable of detecting vortex cores of long trailing vortices,
which will therefore attract less refinement than with the Least Squares Hessian. For such
simulations, the Least Squares evaluation may be preferred.
FIGURE 23.31
Cavitation foil computation: SMOOTHED GAUSS (left) and LEAST-SQUARES (right)
applied
The following best practices are available for adaptive grid refinement:
The general principle of the free surface criterion is that it adds greater precision to the free-
surface definition for simulations on meshes that are already reasonably fine. It is not a criterion
which can create a refined mesh starting from a uniformly very coarse one. Also, a general
principle is that the best simulations are obtained when the original HEXPRESS™ mesh is very
regular. The cells in the original mesh must be as nearly rectangular as possible.
Directional refinement at and around the free surface is made for:
l Resolution of strong and breaking waves,
l Sharp surface capturing,
l Wave propagation / reflection.
The criterion is of particular interest for ships with free trim and sinkage, where the exact position
of the free surface is difficult to predict before the simulation. Another key application is the
accurate resolution of ship-generated waves, for example for aft-ship shape optimization or multi-
hull interaction studies. Finally, for surface-piercing hydrofoils, the free-surface capturing grid can
be generated entirely with adaptive grid refinement, so simulations for different immersion depths
can be performed on the same original grid.
The initial grid must be sufficiently fine below the free surface in order to resolve the orbital velocity
of the wave field that is simulated, as the adaptive grid refinement only provides a finer grid at the
location of the water surface.
When using the adaptive grid refinement method for the first time, a good approach can be to
perform a simulation without it and then make a restart activating the method. In case of wrong
settings, this will avoid to start the simulation from scratch again.
Apart from these very general considerations, there are differences in the settings which must be
taken for the grid refinement, depending on the speed of displacement of the water surface with
respect to the mesh. Here, the treatment of three typical cases is shown.
The flow is steady or nearly steady. The water surface moves little with respect to the mesh, even
if high Courant numbers are chosen. The ship may have imposed or solved motion. The basic
principle of the automatic refinement is to refine cells to half the size of the original grid.
Original mesh : Make a standard mesh, except that the grid size at the water surface in Z-
direction is chosen as L/500 instead of L/1000. Put a refinement box around the undisturbed
water surface (together with the internal surface) such that the entire region where the water
surface will end up is filled with L/500 cells. Typical dimensions for the box are from 0.1L in
front of the ship to 0.3L – 0.5L behind the ship in X, and from the centreline to 0.4L beside the
ship in Y. The thickness in Z depends on the Froude number and the ship's shape.
Criterion: Free surface (tensor) and the threshold is set to L/1000 * 1.3. Do not impose a
minimum cell size.
Grid quality: Set 2 full criterion copy layers, 0 fraction layers. Longitudinal refinement only in
the boundary layer.
Box: Allow Z-refinement in the whole domain. It can be suppressed in the last part of the domain,
but in this case a surface of grid faces must correspond to the undisturbed water surface, otherwise
the water height will be defined imprecisely (the outflow faces define the water height in the
entire domain for subcritical flow). X- and Y-refinement is restricted to a box that contains the
whole domain up to about 1.0L in front of the outflow boundary. Thus, waves are damped out
before they reach the outflow side.
Control: The first refinement when the acceleration of the boat is clearly over (usually between
300 to 500 time steps), then use a frequency of 25 time steps. An alternative is to start from the
first time step with Reinitialize solution after first refinement. Projection on the ship's surface is
in general not necessary.
Time step value: Uniform time steps are generally sufficient. However, for the uniform time step
law, it is good to remember that refining more increases the Courant number during the
simulation.
Grid checks and troubleshooting: It is advised to check a refined mesh visually, like any other
part of the solution. Points to watch out for are:
l Do the refined cells have the right size (L/1000) ? If not, adjust the threshold.
l There are no zones with excessive refinement? The cells should be cut in two in a thin zone
around the free surface, so there is a problem if large packs of strongly refined cells appear
somewhere. If this happens, create an original mesh with more fine cells or impose limiting
boxes for the refinement to damp out the waves.
l The water surface is completely contained within the fine-grid zone of the original grid? If not,
create an original mesh with more fine cells.
In this type of flow, the free surface moves with respect to the grid but this movement is not very
violent. The flow is fully unsteady and it is important to set low Courant numbers in order to
preserve the sharpness of the water surface. Again, the grid is refined to half its original size. This
is extremely effective as the wave can be propagated with the same precision as on a twice finer,
non-refined grid.
Original mesh: Create a mesh as for the calm water case. Place a refinement box from the inflow
boundary to at least L/2 behind the ship in X, and over the entire width of the domain in Y, to
create a fine grid which carries the waves. If the waves move parallel to the X-axis, the cell sizes
in this box can be large in Y-direction. In X-direction, choose lambda/40 as cell size, in Z-
direction it should be the minimum of L/500 and H/6 (lambda, H are the wave length and height).
One may place another refinement box closer to the ship to impose a smaller cell size in Y,
however especially the size in Z should be constant from the inflow boundary to behind the ship,
around the surface.
Criterion: As for calm water.
Grid quality: As for calm water, except set 2 - 3 full criterion copy layers since the flow is
unsteady.
Box: Z-refinement in the whole domain. X-refinement in the region of the refinement box given
above. Y-refinement only close to the ship. For waves parallel to the X-axis it is important not to
allow Y-refinement near the inflow as this helps to keep the grid regular.
Control: First refinement after 0 time steps, then every 2 time steps. Reinitialize solution after first
refinement. Projection is not necessary. From the Advanced menu, select Limit scalar product
check to zone where criterion is non-zero. This also helps to keep the unsteady mesh clean.
Grid checks and troubleshooting: Points to watch out for are:
l Cells have the right size (L/1000) ? If not, adjust the threshold.
l The refined zone is a fine band around the surface? There is no excessive refinement in the
entire region where the waves pass? (Check this early in the computation, so it can be stopped
in time if necessary). This problem can in general be resolved by setting Limit scalar product
check to zone where criterion is non-zero.
l The water surface is always contained within the automatically refined mesh? This must be
checked in time since the computation is unsteady. When in doubt, use surface probes (Cut
plane) to check. If this happens, reduce the time step, reduce the number of time steps between
refinements (but do not choose less than 2) or increase the number of full criterion copy layers.
l The water surface is completely contained within the refined zone of the original mesh?
Impact
This type of flow is characterized by very rapid, violent motion of the water surface. A time step
Surface-piercing hydrofoils
The case of a surface-piercing lifting hydrofoil is very similar to a ship in calm water, with the
exception that at high speeds, the waves generated by the hydrofoil are much longer than the
dimensions of the foil itself. This implies that the fine mesh to capture the free-surface can be
generated entirely with the Free surface adaptive grid refinement, so simulations with different
immersion depths can be performed on the same initial grid. The same settings as for the ship in
calm water apply, except for the following points.
Original mesh: The mesh is only refined around the hydrofoil, no internal surface or refinement
box around the water surface location is required. Therefore, the water surface can be placed
anywhere.
Criterion: A reasonable value is about b/100*1.3, where b is the hydrofoil span.
Criteria based on Hessian matrices adapt the mesh throughout the computational domain. These
criteria have the capacity to generate an adapted fine mesh starting from an initial mesh that is
coarse everywhere. Typical applications include wake flow simulation, vortex capturing, and the
precise computation of pressure peaks. The Hessian criteria on their own are meant for: mono-
fluid flow; for free-surface flow, see "Combined criteria" (p. 393).
Two types of Hessian criterion are available (section "Criteria based on second spatial
derivatives" (p. 389)) : the Pressure Hessian (denoted here as PH) and Flux component Hessian
(FCH) criterion.
Original mesh: since the refinement criterion will create most of the fine mesh, the initial mesh
can be quite coarse. However, it is important that the mesh is regular, i.e. that most cells are
rectangular and aligned with the coordinate axes. If this is not the case, put in a large refinement
box with coarse cells around the free surface, everywhere where the flow is of interest, in order to
get a regular grid and thus a better refined grid.
The FCH refines in the boundary layer, which means that even on the surface of bodies, the initial
mesh can be coarse. The PH criterion does not react to the boundary layer (only to pressure
variations outside), which means that it is preferable to have a slightly finer initial mesh on the
surface, to resolve the boundary layer. In all cases, it is advised to insert the usual number of
layers in the viscous layer mesh.
Criterion: The choice of the criterion depends on the purpose of the simulation. In general, the
FCH is the more all-round criterion but the PH generates less refined cells.
l Wake flow: Flux component Hessian,
l Vortex tracking: Pressure Hessian captures the vortex cores, but if any vortex- wake
interaction is expected, Flux component Hessian is the better choice,
l Pressure distribution and forces: if the mesh on the body is fine enough for the boundary layer,
Pressure Hessian can be used. When starting from uniformly coarse meshes, Flux
component Hessian is recommended.
l Interference between multiple bodies: if the interference is dominated by pressure effects,
Pressure Hessian can be used.
Choose the threshold according to section "Criteria based on second spatial derivatives" (p. 389).
In brief, a good initial guess for the threshold is: . For the constant , we have the
following rough indication for ship-type flows: 0.2 corresponds to a reasonably coarse mesh, 0.1
is medium-fine, and 0.05 gives a very fine mesh.
These criteria can be used for multi-fluid flows in the same situations where the Hessian criteria
would be used for mono-fluid flows (section "Criteria based on second spatial derivatives" (p.
389)). A further application is the capturing of any type of surface wave, which can be performed
with the Free surface + Pressure Hessian criterion starting from a coarse mesh without any
initial free-surface refinement.
Original mesh: The grid around bodies can be generated as for the Hessian criteria. For the free
surface, it is not neessary to insert a lofted surface or a fine refinement box in HEXPRESS™.
However, please check that the mesh is regular and orthogonal where the wave field will be. If
needed, this can be improved by inserting a large, coarse refinement box.
Criterion: The advice is the same as for the Hessian criteria. For flows where the wave field is
the point of interest, the Free surface + Pressure Hessian criterion is recommended. The free-
surface threshold is chosen the same as for an equivalent simulation with a Free surface criterion,
please see section "Surface capturing criteria" (p. 386) for the proper values. The Hessian
threshold can be set as in section "Combined criteria" (p. 393) , with the choices for a1 as given
above for the Hessian criteria. In this case, a part of the criterion is non-smooth, so the target
number of cells option should not be used.
Grid quality: Criterion diffusion is as for the Free surface criteria: 1-2 full layers for steady
flow, 2-3 for unsteady flows, or more if the interface motion is violent. Fractional layers may be
important if there is a big difference in the size of the original grid and the refined mesh at the
surface. Boundary layer protection is chosen as for the Hessian criteria.
Box: Do not use a limiting box for refinement in Z-direction. The Z-refinement must go all the
way to the inflow and outflow boundaries in order to impose a correct water level. Limiting boxes
in X-, and Y-direction can be used, it is recommended to use a box which excludes the outflow
part of the domain (at least 1.0L from the outflow boundary), in order to diffuse waves, wakes,
and vortices. If the far wake is deemed not important, the limit of this box can be moved forward.
Control: Use the Reinitialize solution after first refinement option, in order to get a good initial
definition of the free surface. As a result, the Number of steps before the first call to
refinement procedure must be set to 0. A frequency of 25 time steps is advised for steady
simulations, and 2-4 for unsteady simulations. For the projection, see the "Criteria based on
second spatial derivatives" (p. 389).
For unsteady flow and steady flow with mesh deformation, it is advised to use the Limit scalar
product check to zone where criterion is non-zero option to allow derefinement of the high aspect
ratio cells at the outside of the domain.
Grid checks and troubleshooting: see the "Criteria based on second spatial derivatives" (p.
389).
Mesh set up
Prepare the mesh with usual precision to capture the free surface correctly.
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.
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.
Different methods are available to analyze the refinements produced by the adaptive grid
refinement method.
The file 'nb_cell.dat' is created in the computation directory when automatic grid refinement is
activated. This file shows the evolution of the total number of cells created during the
computation. If it increased a lot whereas it was not expected, the first idea is to try to modify the
settings of the automatic grid refinement to produce less cells (increase the threshold, decrease the
diffusion, etc.).
The evolution of the number of cells from this file can be checked in a form of a plot using the
"Results Analysis" (p. 552) tool.
The flow solver stores in memory the mesh and the solution. For the adaptive grid refinement,
since the size of the mesh will vary during the simulation, the data to store in memory tables will
also vary. Hence, the flow solver will allocate large tables and partially fill them up. It is up to the
user to define this allocation with the maximum number of cells per partition (see dedicated
parameter in "Refinement Control" (p. 407)).
The main idea is to look at the refinements from vertical or horizontal cutting planes or from the
boundaries of the domain. For domain boundaries, just select the mirror or external patches and
display the mesh on them. This allows to verify the cells size or the cells density, especially for
free surface criteria. Concerning the cutting planes, precise the direction of interest (using the
normal X, Y or Z) and progressively translate the cutting plane using the Step scrolling button
from the Cutting plane menu.
FIGURE 23.32
Cutting plane menu to check the refined grid
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
Overset grid approach provides capabilities for solving complex case configurations, especially for
large body motions. This approach is also known as Overlapping grids or Chimera approach. When
working with multiple domains configuration, the key element is the possibility to use an arbitrary
overlap of the computational grids.
FIGURE 24.1
Illustration of overlapping grids
FIGURE 24.2
Overset grid management menu
This method should not be preferred when standard approaches can be applied such as mesh
deformation or sliding grids, for instance. The first reason is that the overset grid approach relies
on multiple interpolations between several computational grids (more than sliding grids) which
can lead to difficulties for mass conservation or local flow transfer. As a result, the user might
observe convergence instabilities including forces oscillations.
Overset grid method is not yet fully operational especially for extreme shallow water, squat effect
and grounding and require further calibration. Also, precise guidelines are not yet available for all
kind of applications. However, the user is invited to read the "Best practices" (p. 430) section.
The compatibility between adaptive grid refinement and overset grid is available. The adaptive
grid refinement method will then work following two objectives: ensuring the physical criterion
but also ensuring the mesh continuity between the overlapping grids at the zone of the
interpolation. Hence, the number of created cells can be important especially since the adaptive
grid refinement refines isotropically.
Step 1
Two domains or more are created: typically a background domain containing the physical
boundaries and a separate domain surrounding the solid body of interest. Both regions are meshed
separately.
Step 2
The outer boundaries of the overlapping domain are set to Overset in the "External Condition"
(p. 196) page of the Boundary conditions menu.
Step 3
The relationship between the computational grids should be defined in the Overset grid
management menu explained in "Parameters" (p. 427) section.
As the overlapping domain moves within the background region, the overlapping cells will
evolve during the simulation. Information is transferred between the two regions through these
overlapping cells thanks to the so-called procedure of blanking:
l active: regular discretized equations are solved,
l blanked: no equations are solved, cells temporarily or permanently non-active,
l interpolated: value are updated respecting active cells located in another domain.
Example of an overset project type is provided below:
For instance, modeling the ship, rudder and propeller motions can be performed combining
"Sliding Patch Motion" (p. 270) and Overset grid approach.
24.3 PARAMETERS
The general concept of the Overset grid management is based on creating multiple domain
configurations and defining them with appropriate parameters. For each Domain specification,
the following choices are available:
FIGURE 24.5
Active Overset Grid menu
The Background domain is always considered behind an Overlapping domain using Overset.
Hence, if we consider solid walls from a background domain inside an overlapping domain, they
will be invisible for the flow. We can define the background domain as overlapping or the
Background domain can be specified as having a physical boundary present with the Is a
physical boundary condition present? selection. This can be important when intersection of
Background external boundaries with an Overlapping or Linked boundaries is expected. In
such case, when the option is selected as Yes, physical boundary of the Background domain will
behave as an Overset boundary.
Parameters provides an option to specify the allowed Distance between the physical boundaries
of the Background domain and other domain boundaries.
Bodies on domain boundaries are Expert parameters that allow to select in the list of solid
bodies which ones belong to a domain boundary in case there a chance that the body of interested
disappeared during the simulation, hidden by an overlapping domain .
To provide connection between domains, data exchange is supported with the following
interpolations:
l Least-squares
l Distance-weighted
To ensure the second order accuracy the Least-squares interpolation is generally used with the
specified minimum interpolation coefficient threshold value. To control the interpolation method
manually an expert parameter OversetMinInterCoeff_ described in "Specific Numerical
Parameters" (p. 693) can be used. By changing its value to 0 the use of distance-weighted
interpolation will be enforced.
Overset grids technology is not applicable when combined with the Fee surface (directional)
"Refinement Criteria" (p. 382) of an adaptive grid refinement due to its non-tensorial nature.
Therefore a tensorial free surface criterion should be used instead.
Overset grids technology is not compatible with the "Specific Numerical Parameters" (p. 693)
reverseRenumbering_.
The solver does not all that the definition of a body changes during a simulation. Hence,
overset cannot hide patches which are defining a body during a simulation. In other words, all
patches that will be hidden, cannot belong to a body.
General flow analysis for the overset projects has no major difference compared to the other types
of projects. But it is also possible to get the visualization of the status of the cells: active, blanked
and interpolated. The information is contained inside a scalar field automatically saved in the
standard outputs at the end of a simulation with overset approach. This scalar field is also
available as an optional field for probes reconstruction in the Output menu "Volume Probes" (p.
471) under the name Blanking. In CFView™ this variable is available in the Quantities menu as
a Scalar data. This field is not mandatory but allows CFView™ to proper display the flow at the
interpolation zones.
In addition, the Preferences menu of CFView™ allows to Hide blanked cells when working
with representations.
More details can be found in the Flow Quantities Visualization chapter of CFView™ User
manual.
Mesh generation
When creating the mesh project within HEXPRESS™ for an overset computation type the
following recommendations can be considered:
l for the Background domain specific refinement zones in the zone of Overlapping domains
can be created so that the transfer of information would be optimal. Cell sizes at boundaries of
the overset grids should match as much as possible the cell sizes of the background domain;
l when possible, the mesh for all the domains should be done with the domain aligned with
Cartesian axes and then rotated at the end of the mesh generation using the Grid > Mesh
transformation... menu in HEXPRESS™ or Initial conditions menu of the "Dynamic
Parameters" (p. 248) in FINE™/Marine interface. This will ensure a better quality mesh and
support domain position changes in an easy way.
Considering the study for the Ship having the rudder box and a rudder. The difficulty can appear
if the rudder is of Overlapping type and the external boundary will be in a gap between the
Rudder and the Rudder box of the ship.
As it is illustrated an External boundary of the Rudder domain should be in the middle of the gap
between the Rudder and Rudder box Solid patches. Considering the Euler mesh generation, 8-10
cells between the Solid patch and its domain boundary should be generated to avoid possible
interpolation error. For the case of viscous layer inserted 8-10 cell should be respected starting
from the last layer of the viscous layer.
FIGURE 24.8
Interpolation representation by Blanking considering the Ship domain
Numerical setup
Considering known specifics of an overset approach the following advices can be applied:
This figure illustrates the case where the body is very close to the border of the whole
computational area. A part of the mesh from the body can go out of the computational area. To
treat this configuration, the only way is to use the option background with physical boundary
to indicate the importance of the background domain boundaries. Indeed, there is an important
rule to remember: an overlapping domain always has the priority against the background
domain. Hence, if one wants to keep the solid boundary from the background activated during
the simulation, it must be declared with this option. In other words, a background domain is
always blanked by an overlapping grids except when a physical boundary is defined on it. In such
case only, all cells from the overlapping grid exiting the computational area will be blanked.
The picture at the bottom shows a wrong practice: the distance of protection is bigger than the
distance between the body and the border of the background domain. The body might be
blanked. A minimum distance should always be respected: in practice, the height of the viscous
layers plus few cells for instance (4 at least).
l Using VelocityClip_ "Numerical Corrections" (p. 688) Expert parameter can be
recommended for complex motions cases to avoid the local divergence of the solution due to
interpolation errors. It should not be present at the end of simulation (checking the .std file) or
active for cells influencing the solution (to be checked in CFView™);
l Interpolation will be more and more difficult if the number of overlapping domains increases at
the same location. This can lead to a more noisy signal.
l Error message in the .std file stating: "Fail to find a donor point for ..." can be linked to the
motion of an Overlapping domain being too fast relatively to the Background domain.
Improving the cell sizes matching between domains or reducing the Time step value can help
to avoid this error. Another possibility is the incorrect definition of Bodies on domain
boundaries.
24.6 EXAMPLES
Several examples of the Overset grid management menu settings for different computational
cases can be found below.
Two domains are created, one for the life boat and one for the background flow, see FIGURE
24.1.
FIGURE 24.10
Setup for the Life boat launch case
Set-up:
l background: fluid domain with the Solid walls of the channel,
l dtmb: overlapping domain with the DTMB hull as a Solid body.
FIGURE 24.11
Setup for the PMM test in confined water case
FIGURE 24.12
Setup for the Overtaking maneuver case
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.
Set-up:
l RUDDER: overlapping domain with the rudder as a Solid body,
l prop: overlapping domain with the marine propeller as a Solid body,
l KCS_2: overlapping domain with the KCS hull as a Solid body,
l big_domain: fluid domain defined as background.
Here, only 3 domains could have been sufficient as well. The background domain is not
necessary here if the domain and the mesh for the KCS is sufficiently good to capture the wake.
In this case it is also possible to combine the overlapping grid approach with the sliding grids by
specifying the sliding patches for the prop domain and providing the proper configurations also
described in "Sliding Patch Motion" (p. 270).
PROJECTION
This projection menu is only available under the license (no additional cost).
The projection method is also used in the adaptive grid refinement feature.
In this section
25.1 Workflow 439
25.2 Projection Strategy 439
25.3 Examples 440
25.4 General Parameters 440
25.1 WORKFLOW
The mesh is projected onto a triangulated surface file in a simple, flow solver specific format: the
".its" file ("ISIS-CFD Triangulated Surface"), whose format is described in the Triangulated
surface file chapter.
For a given mesh, the initial ("baseline") ".its" file is generated by "hexpress2isis", based on the
".dom" file of the HEXPRESS™ mesh. A computation on the initial mesh can then be started.
Optimization suites can deform this baseline (the initial ".its" file) into different variants (new
".its" files) for subsequent computations on different hull forms.
Pre-requisites:
l The ".its" files must be topologically equivalent to the original ".its" file (same number of
surfaces and triangles),
l The computation must contain a solid body.
Projection of the body surface nodes onto the triangulated surface is performed at the very
beginning of a computation and directly after each adaptive grid refinement step.
It is assumed that the geometry of the body is given in a triangulated surface file with extension
".its". During the basic projection, for each node in the mesh that lies on the surface of the body,
the triangle in the ".its" file that lies closest to the node is searched. The node is then moved to the
surface of this triangle.
The information of which node lies on which triangle is recorded and saved (in an internal file).
When the same mesh is later projected onto a different triangulated surface with the same
topology, this information is used to project each node onto the new position of its original
triangle. This feature is essential for optimization, in order to conserve hull topology features like
edges; cells may not "flow around" an edge when the surface is deformed for a new design.
Therefore, a new ".its" for a new design must be topologically compatible with the original (or
baseline) ".its" file. It means that the new ".its" design must have the same number of surfaces and
of triangles (but with different triangle node locations of course).
In both cases, after the surface nodes have been projected onto the triangulated surface, the entire
mesh is deformed in order to adapt it to the new position of the surface nodes.
25.3 EXAMPLES
As an example, three scenarios of one or more computations are described. The type of projection
is indicated as "AT" (node on arbitrary triangle), or "PT" (node on predefined triangle). For
optimization, it is assumed that a first ("baseline") computation is performed on the original grid,
followed by several computations on hulls that have been deformed by the optimizer.
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.
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.
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.
CONTROL VARIABLES
This section describes global and expert parameters for the management of steady or unsteady
computations.
In this section
26.1 General Parameters 443
26.2 List of Available Time Laws 448
26.3 Sub-cycling Acceleration 454
26.4 Expert Parameters 457
The General tab of Computation Control/Control Variables page allows to define some
global parameters for the selected computation.
Unsteady computations
Local high mesh densities or clustering of cells have an impact on the number of nonlinear
iterations to impose. Hence, it is advised to increase this value in case of local important
refinements. This will ensure a better convergence order. The user is invited to check the tutorials,
democases and FAQ to know how many non linear iterations should be used for practical cases.
l Save solution every: every x time step(s), the solver saves the flow solution and creates output
files (where "x" is the number defined in the FINE™/Marine interface),
l the maximum Number of time steps to be computed (default is 1000 for every laws),
l Time step law: selection of the time step law among the possible choices described in the List
of Available Time Laws ,
l Activate sub-cycling acceleration: allows to activate the sub-cycling acceleration (see Sub-
cycling Acceleration ),
l Reset time law parameters : allows to reset the time law parameters to default values,
according to the current Lref and Vref values from the Flow model menu.
l An Advanced>>> button provides the access to the specific Pressure solver parameters and
is available for both Steady and Unsteady computations.
FIGURE 26.3
Pressure solver parameters advanced settings
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.
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
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:
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:
FIGURE 26.6
Sinusoidal Law Scheme
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:
FIGURE 26.7
Hyperbolic Law Scheme
This law is adaptive: the time step is not known in advance and will be adapted at each time step
to reach the target Courant number. For this law, Co is the aimed Courant Number, N is the
number of time steps, Δtmax is the maximum time step and Tmax is the time of the simulation.
Default values:
FIGURE 26.8
Adapted Courant Number Law Scheme
The checked cells Courant number is the one close to the free surface (which means with the mass
fraction in the range [0.1;0.9]). The Courant numbers far from the free surface are out of interest.
It is important to know, that the time step law adapted to Courant number does not guarantee that
the Courant number will be always under the excepted value. Indeed, since this law is based on
the Courant number calculated from the previous time step, the solver estimates what will be the
time step for the next one. If high velocity fluctuations are observed around the free surface, this
Courant number changes a lot, hence the law can give Courant number slightly above the
objective.
Introduction
FIGURE 26.9
Sub-cycling acceleration method
The checked cells Courant number is the one close to the free surface (which means with the mass
fraction in the range [0.1;0.9]). The Courant numbers far from the free surface are out of interest.
This method is available for both steady and unsteady free surface simulations. However, in
the unsteady mode, this method has not been validated enough; thus the symbol BETA has
been added. This functionality must be used with care and it is provided only for testing and
not for production.
Layout
When activating this option, the interface requires the same extra inputs for each time law:
FIGURE 26.10
Activation of the sub-cycling acceleration method
The name of the other parameters may change when activating the sub- cycling acceleration. For
instance, some input parameters are renamed by adding the "Global" to indicate that these values are
associated with the global simulation (velocity/pressure coupling).
For each time law, the interface gives information in italic about the influence of the sub- cycling
acceleration on the time step.
Example
The following example is based on the linear time law. Lref and Vref are equal to 3.048 m and
1.531 m/s respectively, without solved motion. In that case, 5 maximum sub-cycles have been set
to reach a target Courant number of 5. The initial time step ΔTi is then multiplied by 5 (and its
name changed to "Global ΔTi") and the same for ΔTf (please check the description of the formula
used to compute default values in the Linear Law section). The final time step used for the global
simulation is 0.0995, whereas the minimal final sub-cycling time step used for the advection of the
volume fraction equation is 0.0199 in that case.
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.
Remarks
l A simple way to control the sub-cycling procedure is to voluntarily limit the number of sub-
cycles to a given value. In this case, one can put a very low value for the target Courant
number. In that case, the sub-cycle Courant number will be approximately equal to the global
Courant number divided by the number of splits.
l If a global time step is too important for a simulation with solved d.o.f., the flow/motion
coupling will become instable. To overcome this difficulty, the quasi-static method should be
used too (see Quasi-Static Approach). This procedure will remain stable even for larger time
steps.
l The association of the sub-cycling acceleration method with the time step law 'Adapted to
Courant number' can be more convenient. In this case, the specified Courant number does not
take into account the sub-cycling process. Indeed, for the velocity/pressure coupling, it can be
a large Courant number (for instance, equal to 100). Consequently, to limit the maximum sub-
cycle Courant number, one can specify a large Target courant number (for instance, equal to
20). The maximum number of sub-cycles should be high enough so that the Target Courant
number can be achieved. In this example, one would set the Maximum number of sub-cycles
to equal to 100/20=5 (actually, it should be bigger than 5 (so here equal to 6), otherwise the
number of sub-cycles will be just at the target or below, leading to a sub-cycling time step too
high to reach the desired value of the sub-cycling Courant number).
l The optimal CPU gain is obtained around 10 splits. Hence more that 10 splits are not
recommended, since the global time steps will be too large and the global convergence will be
too difficult. Besides, the time spent to solve the mass fraction equation will not be negligible
anymore and will lead to a possible saturation of the method.
Under the Expert parameters tab of the Computation control/Control Variables page a list of
non-interfaced expert parameters is available. As stated in the interface, these parameters should
not be modified unless explicitly stated in this manual. See the "List of Expert Parameters" (p.
678) for a description and available options.
In addition the Evaluation Of The Gradient is available in this menu to ease the process of
selection. The different possibilities for evaluation of the gradient are:
l STANDARD LEAST SQUARE,
l LEAST SQUARE + WEIGHTING,
l GAUSS METHOD - CORRECTIONS,
l GAUSS METHOD + CORRECTIONS,
l LEAST SQUARE + WEIGHTING + GAUSS.
OUTPUT
In this section
27.1 Automatically computed variables 460
27.2 Output 461
27.3 Backups 481
These variables do not appear in the output menu because they are automatically generated by the
solver. They are mandatory to make a restart.
If an unsteady computation is selected, the flow solver needs all the previous listed quantities at the
time step T but also at T-ΔT if a second order accurate restart is needed (except the gradients and the
pressure).
For solid wall (with no-slipping boundary or with wall function), the velocity defined at the wall is
not shown, but the extrapolated velocity from the internal cells to the wall. This will allow to check in
CFView™ the velocity distribution near the wall, identify the problematical region when convergence
problems appear, plotting the wall limiting streamline, etc.
27.2 OUTPUT
27.2.1 Interface
This page offers the possibility to prescribe the kinematic parameters to be displayed in the
Monitor (they have no influence on the computation). The page is divided in several sections
described below all related to the degrees of freedom specified in Body Motion menu (see
Degrees of Freedom): translations (including their velocity and acceleration), rotations (with
angular velocity and acceleration).
The selected variables are then saved in the file called MvtBodyName.dat , which is read by the
Monitor.
The last option is dedicated to the frame of the Body force decomposition. The forces and
moments observed in the Monitor can be expressed in the Global frame or in the Body frame of
reference. The moments will be computed on the Reference point if there are no solved motions
or on the Center of Gravityif at least one degree of freedom is solved.
For example:
For the simulation with Solved Trim, where α is the Trim angle.
Note that if half body configuration is used the forces computed by the solver will correspond to
half body.
An example of the Body Motions page is shown on FIGURE 27.1 for a free trim and sinkage
motion with a X-axis forward motion.
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 (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 i = x,y,z (see Forces and moments for more information). Hence, for the component x, R T =
Fx, RF corresponds to FxV and RW+Rf is equal to FxP.
In other words, Fx = FxV + FxP = FxV+ Fx_Form + Fx_WaveMaking
From the above definition: F x P = F x _Form + F x _WaveMaking. But by default we cannot
distinguish.
To know exactly what is the intensity of the wave making resistance, we could do the following
exercise (but time consuming):
l compute the drag D1 for a mono-fluid computation.
l perform the same computation but with the free surface to get the drag D2.
The difference of drag (D2-D1) will give the wave making resistance.
ITTC 57 formula
To verify the experimental data, coming from ITTC 57 formula, one can write as well:
with SDWL the wetted surface, ρ the density of the water and
Flow variables can be periodically saved on disk during the computation for the post-processing
of unsteady simulations.
Regarding the expected memory usage when there are probes specified for the post-processing,
the following example can be useful.
Several studies have been carried out for the cases with mesh sizes from 3 to 18 Mcells and
volume probes for the mesh, hydrodynamic pressure and mass fraction defined.
It has been noticed, that the relation between the probe size and the number of cells is linear, thus
the following result has been obtained:
l Probe size when non-reconstructed: 0.04 Go/Mcells
l Probe size when reconstructed: 0.27 Go/Mcells
Where "probe size non-reconstructed" is the size of all files needed for the reconstruction (located
in project_name/bxxx folders) for 1 volume probe.
And "probe size reconstructed" is the sum of the "probe size non-reconstructed" plus the size of
all the files created during the reconstruction for 1 volume probe.
Information on probes reconstruction procedures can also be found in the Post-Processing chapter.
A. Surface Probes
FINE™/Marine is able to save surface probes during the computation. The advantage is to use
less disk space and to load them into CFView™ very rapidly. However, saving a surface means
that only this surface will be available: if the surface was not correctly defined, the computation
should be started again. This feature should be preferred for making animations or when the
surfaces locations and types are well known and sufficient for the computation analysis.
In this menu, five surface probe types are present and are described below. They can be removed
anytime by pressing the Remove button.
A common parameter to all surfaces types is the probe interval. Save probe every X
timesteps/seconds: it corresponds to the frequency of the probe saving (Probe interval). It is
possible to choose the frequency in terms of time steps or seconds for unsteady simulations.
By default, the surfaces will be saved in CGNS format (following SIDS standards). This format is
the one that CFView™ will be able to open. But the format can be changed thanks the expert
parameter SurfaceProbeFormat_ (see the List of Advanced Parameters), which gives access to
CGNS (simple or double precision), STL and Tecplot formats.
Surface probe is based on dual meshes. As a consequence, the corners of a free surface or a cutting
plane can be not calculated and so not represented.
Very small differences can exist between the 2 modes (surface and volume probes) due to
discretization errors. It is advised to use volume probes if the objective is to get accurate values and
surface probes to get just a trend or for pictures and animations purposes.
FIGURE 27.2
Surface data
Free surface
The free surface corresponds to a probe of the mass fraction, equal to 0.5. There is no property for
this surface probe type.
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.
FIGURE 27.3
Isosurface properties
Cut plane
The position of the cutting plane is given with a normal vector (not necessarily of unit length) and
a point on the plane: the Origin. The variable to be saved on the cutting plane is the Quantity. It is
not mandatory to define a body to follow. If selected, the cutting plane moves according to the
body motion. If no body is selected, the plane remains fixed in space and time.
FIGURE 27.4
Cut plane properties
It is not advised to probe on the external boundaries of the computational domain with a cutting
plane: it can lead to an empty file.
Cylinder probe
Position and main particulars of Cylinder probe can be specified by the Origin coordinates X, Y,
Z; Normal vector coordinates; Radius and Height definitions provided int he Properties part of
the menu. The variable to be saved on the Cylinder probe is the Quantity. It is not mandatory to
define a body to follow. If selected, the probe moves according to the body motion. If no body is
selected, it remains fixed in space and time.
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.
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).
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.
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 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.
For this type of probes no reconstruction is required and data collected during the computation
will be stored into the output file "points_probe.dat".
Two different kinds are available:
l Flow probes: probe a flow quantity at a specified location (X, Y and Z). Flow probes can
follow or not the body.
The available variables for probing are:
l Mass Fraction (Multi-fluid computation only)
l Cavitation Fraction (Cavitation model active)
l Pressure
l Dynamic pressure
l Velocity
l Vorticity
l Courant Number (Multi-fluid computation only)
FIGURE 27.9
Point probe settings
In 2D:Y- component for the wave probe and Z- component for the flow probe are not available.
The output file content will depend on the choice of quantities and consist of: Time step ("Time"),
quantity names selected ("DYNAMIC PRESSURE 1", for instance), probe number, coordinates of
the point where the probe will be taken (X, Y, Z) and the values itself in columns below the name
of the quantity. An example of the "points_probe.dat" file for the Flow probes can be found
below:
#TITLE =(ISIS-CFD:4.1)
#NI_BEGIN VARIABLES
# NAMES "Time", "DYNAMIC PRESSURE 1", "DYNAMIC PRESSURE 2",
"COURANT NUMBER 3", "COURANT NUMBER 4"
#NI_END VARIABLES
#PROBE NO.
#1234
#VARIABLES
# DYNAMIC PRESSURDYNAMIC PRESSURCOURANT NUMBER COURANT
NUMBER MASS FRACTION
#COORDINATES
# X -0.1515000E+01 -0.1565000E+01 -0.1515000E+01 -0.1565000E+01
# Y 0.1270000E+01 0.1270000E+01 0.1270000E+01 0.1270000E+01
# Z 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00
TITLE ="(ISIS-CFD:4.1)"
VARIABLES = "Time", "DYNAMIC PRESSURE 1", "DYNAMIC PRESSURE 2",
"COURANT NUMBER 3", "COURANT NUMBER 4"
ZONE
0.6169750E-02 -0.2308740E+02 0.8416668E+00 0.7618135E+00 0.2637845E+00
0.1233950E-01 -0.1367866E+02 0.1331418E+02 0.6743206E+00 0.2683083E+00
0.1850925E-01 -0.4243391E+02 0.4275235E+01 0.7456950E+00 0.2675107E+00
...
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.
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.
The probes "Correlation R13" and "Correlation R23" are not available in case of 2D projects
The "Residuals" variable gives access to several quantities grouped together under a unique name,
depending on the choice of the turbulence model.
The hydrodynamic pressure is computed from the pressure P (normal stress) by the following
formula:
with P hd representing the hydrodynamic pressure and P hs the hydrostatic pressure. The latter is
defined by the formula:
with ρ the fluid density, g the absolute value of the gravity intensity, z the vertical free surface
position and z 0 the initial free surface position. The value of c represents here the analytically
defined value for the volume fraction (connected to the Multi-Fluid model): when ,
and when .
For the hydrodynamic pressure variable output the flow solver uses the dynamic position of the
boat and it is necessary to keep in mind the following specifics, depending on the type of data is
desired:
l To obtain the same result as given by the flow solver, use the center of face value (Zf)
l To compute face center (Xf,Yf,Zf) and face area vector (Sxf, Syf, Szf) from the surface grid,
import the surface data, interpolate the face centered data to node, and output a postprocessing
data
FIGURE 27.10
Optional output variables page
l The second invariant of the velocity gradient, noted Q, can be computed as:
where Si j = (U i, j + U j,i )/2 is the symmetric part - rate of strain and Ω i j = (U i, j - U j,i )/2 is the
non-symmetric part - rate of rotation.
As a remark, to get a dimensionless quantity Q* from Q, we can write:
l Estimated converged cell size: vector field which gives the expected cell sizes in a converged
mesh, in X, Y and Z-direction, based on the current refinement criterion and threshold from
the adaptive grid refinement technique. This field can be computed every time a solution is
saved. More information can be found in the chapter "Analysis of the refinements" (p. 420).
A mean flow variable corresponds to a time average output for the whole computation. They are
computed by a trapezoidal rule. The list of available quantities is given below:
l Mass fraction (Multi-fluid computation only)
l Pressure
l Viscous stress (fluid to wall) (computed only with "No Slip Wall" (p. 195) Boundary
condition)
l Hydrodynamic pressure (Multi-fluid computation only)
l Velocity
l Vorticity (DES computation only)
l Helicity (DES computation only)
l Passive scalar (when Passive scalar is active)
l Second invariant (DES computation only)
l Turbulent viscosity (Turbulent computation only)
l Turbulent viscosity ~ (Spallart-Allmaras computation only)
l Turbulent dissipation (k-ω or k-ε computation only)
l Turbulent kinetic energy (k-ω or k-εcomputation only)
The probes Correlation R13 and Correlation R23 are not available in case of 2D projects.
Cavitation fraction mean flow variable is not available for the Steady monofluid computation.
Mean flow variables for rotating domain do not have a physical sense since the average is performed
in time but also in space (cells are rotating but not necessarily the flow). In such case, only
computations with "Rotating frame method" (p. 277) would provide relevant information.
27.3 BACKUPS
When a project is finished, it is usually time to back it up. Depending on the available back-up
space, several options are outlined.
From the _mesh folder, only keep the files to be able to generate the mesh in HEXPRESS™. The
extension of these files are .igg, .dom and .bcs. For the settings of the computation, only keep the
.iec file located in the project directory. Within these files, no results are saved.
A minimal backup containing these files can be created from the graphical interface using
Project/Create minimal backup.
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.
For a restart, one can delete all the files dedicated to CFView™ (see previous section). It is not
recommended to delete any other file.
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.
In this section
28.1 Launching Mode 484
28.2 Computation End 485
28.3 Monitoring 487
Once the settings of the computation are correctly defined, it is strongly advised to save the
project and the computation before starting to run the computation. See Main Menu Bar to know
how to save the project and the computation.
It is then possible to start the computation by clicking on the Start button (Serial is selected by
default).
FIGURE 28.1
Launching mode menu
The sequential mode concerns the computations with a relative small amount of cells. They can
be launched directly through the FINE™/Marine interface. On the contrary, for parallel
computations, the interface automatically switches to the Task Manager page (see Parallel
Computations) and allows to define the parallel computation settings.
Once these operations are done, the computation is starting and a new window pops up: the Task
Manager window . It contains the evolution of the status for the current computation. The
iterations (or time steps) can be followed and as well as all information related to the computation.
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.
When quitting the FINE™/Marine interface, all the message windows will remain open and the
tasks will continue. Closing a message window will immediately kill the corresponding
computation.
It is then possible to check to convergence history. This information is stored in the convergence
history file ".res" and can be easily visualized with the Monitor (see Monitoring).
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:
FIGURE 28.3
Task Manager information window
In addition, this pop up gives the opportunity to check the reason why a task failed. In the
example below, the flow solver crashed. The ".std" file of the computation can then be opened
directly in the pop up.
28.3 MONITORING
The Monitor™ can be launched as an external tool, with the command monitor -niversion
marine# where the # is the version of the software or directly from FINE™/Marine interface by
clicking on the Start Monitor button in the main icon bar.
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:
This box contains the list of loaded computation residual files. Two buttons are provided in this
box to Remove or Add residual files through a file chooser. The residual files .res describe the
iteration process of previous or current computations.
When opening the graphic control window, the residual files associated with the running applications
is automatically active.
Monitor™ will also load the Mvt_bodyname.dat and eff_*.dat files from the same computation
directory to visualize motions variables, forces, and moments (see "The eff_*.dat files" (p. 575)
section for their description). For each computation, the user will have the possibility to control
these different quantities depending on the type of simulation and the structure of bodies.
It is possible to make a multiple selection with the Shift or Ctrl key to select several files to display
Quantities unless the selected computations have a different structure of quantities. A different
structure means that available bodies and associated quantities differ between computations.
If several computations are performed at the same time, the curves associated with the different
projects are drawn in different colors. The buttons for the quantities to display act only on the
curves of the file selected through the Residual file menu.
If the loaded results belong to the running computation the Update now button will reload the
latest results of the running computation. The check box Auto update will set this procedure to
be done automatically each time step of the computation.
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
In the Structure of Bodies, the current body/ sub-body can be selected to visualize the results of
the finished or running computation. Names of sub-bodies will follow the names given through
the Bodies and sub-bodies definition menu (see the "Body Definition" (p. 215) section for how
to define the sub-bodies).
FIGURE 28.6
Bodies with sub-bodies selections in the Monitor™
The option to choose several bodies/ sub-bodies at the same time and select a quantity for them
simultaneously (multi-bodies curves plotting) allows user to compare curves between bodies/ sub-
bodies within the same project as well as between different projects.
If one selects Motions as a quantity type, all the sub-bodies become disabled for selection.
Curves for bodies within the same project will be distinguished by a tag at the end of the curves and
special markers (symbols) on the curves. These markers can be circle, triangle, diamond, square, etc...
If the project includes sliding patch(es), the Quantities to display will only give access to the
Motions page with the name Sliding_patches_# .
It is also possible to monitor the virtual bodies. For such projects the Structure of Bodies menu
will include the list of existing virtual bodies with names as Virtual_body_#. Only the Motions
page of the Quantities to display will be accessible. Details on how to create a sliding grid or a
virtual body can be found in the "Mesh Management" (p. 267) section.
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
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 quantities are potentially available for the simulation (it depends if at least
one body has been defined in the interface, see Body Definition). If the quantity is not available in
the project output files corresponding checkbox will be disabled in the interface.
Forces and moments values are stored in the eff_*.dat files. They contain the information about
the global fluid forces and moments for each body and sub-body. If a half-body configuration was
used the forces for half body will be outputted. The moments will be computed on the Reference
point if there are no solved motions or on the Center of Gravityif at least one degree of freedom
is solved.
"F" represents the forces, "M" the momentum, "V" the viscous forces and "P" the non-viscous
forces (also called pressure component). For instance, "eff_FxV.dat" corresponds to the viscous
forces applied on the body along the X-axis.
The main relation for each component is: ,
An other expression is: ,
The suffix "Dyn" means that there is a correction of the quantity to exclude the hydrostatic
pressure (see Optional Output Variables for its expression).
Motions Variables
Motions variables are only related to bodies. If the quantity is not available in the project output
files, the corresponding checkbox will not be present in the interface. Names of the variables
depend on the Cardan Angle activation (see Body Motion) and on the selected outputs in the
Output menu (described in Outputs). They are defined in the Degrees of Freedom section. For
instance, "Tz0" represents the evolution of the translation of the center of gravity of the body
along Z-axis in the initial frame of reference.
The Monitor™ includes the possibility to display body motion relative to the center of gravity (if
no center of gravity is defined in the computation settings, these checkbox will not be visible). In
such case, the Monitor™ presents checkboxes both for the original motion and its relative
counterpart in Motions. The relative motion checkboxes are named by adding "rel" to the motion
name.
FIGURE 28.7
Motion quantities
The Monitor™ reads the "body_ param.dat" file to define the relative motions in addition to the
"Mvt_bodyname .dat" file.
The convergence of the Forces and Moment can be displayed for all the nonlinear iterations.
Amplitudes
For the computations applying the "Modal approach" (p. 353) Amplitudes of the generalized
displacement for each Mode calculated during the simulation will be available for the display.
The generalized displacement is giving the "weight" with which the Mode participates in the
global structure deformation. Quantities available are: "Amp_M1", "dAmp_M1", "d2Amp_M1"
meaning Amplitude of deformation, and its time derivatives. Results are taken from the motion
file: "Mvt_ bodyname.dat" stored for each fluid- structure interaction (FSI), naming Modal
approach computation type.
Actuator disk
The choice for Actuator disk is only present when an actuator disk with open water data is used
in the simulation, more information are available in the "Actuator Disk" (p. 289) menu. Hence,
the Monitor™ offers the possibility to display quantities such as the thrust, the torque and the
active fraction, for each actuator disk. Results are read from the actuator disk file: "eff_AD.dat"
created by the solver (the format is described in "Files Produced by the FINE™/Marine flow
solver" (p. 573)).
When the tangential force is not activated, the quantity Q and Kq are not displayed.
When the user chooses User defined plots, the list of plots is shown below with buttons Add,
Edit and Remove to manage these plots.
The user can add plots using the button Add and they will appear in the list. Each plot has the
associated checkbutton to control the plot visibility. When adding the plot, the user needs to
specify the plot formula in the dialog Add user defined plot.
FIGURE 28.10
Formula definition area
Pressing Help for syntax button shows the help for formula syntax to remember all the
possibilities and limitations offered by this feature.
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.
Hence, here is the formula to prescribe for the Y-component of the moments:
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).
Example
CONVERGENCE CHECKER
FINE™/Marine suggests a particular dynamic library which allows to control the solution convergence.
Named Convergence checker is based on the behavior of a ship or on the stability of the flow and
provides adapted approach for the numerical solution control. This chapter then describes how to track
the convergence and automatically stop the computation when necessary applying provided withing the
Convergence checker functionality.
In this section
29.1 introduction 503
29.2 Criterion and configuration file 503
29.3 Library structure and compilation 505
29.4 Output 506
29.5 Examples 507
Current limitations:
l Not dedicated to fully unsteady simulations like sea keeping, cavitation, etc.
l Incompatible with steady monofluid simulations (but compatible with unsteady monofluid
simulations).
l A maximum of 10 000 last time steps are recorded in the library. Once the limit is reached,
the average and relative errors are computed over the last 10 000 time steps.
This section describes how the convergence criterion works and how to define the configuration
file. The dynamic library called isis_dynamic.so that contains the convergence checker can be
found in _ data/isis/dynamic_ lib/Convergence_ checker of the installation folder (then under
linux64 or win64 depending of the operating system). This library should be placed inside the
computation folder together with the configuration file called convergence_checker.input that
the user must create.
Convergence criterion
The library stops the computation when the two following conditions are met:
where time step number i runs across last X% of time steps, qi is the quantity value at time step i,
the reference value a is the average of the last Z% of time steps.
The quantity qi is considered converged when ε < Y%.
Configuration file
The file convergence_ checker.input should be placed in the computation folder with the
following structure:
STABILITY INTERVAL X
AVERAGE LAST Z
TOLERANCE Y
CHECK QUANTITIES list of quantities
CHECK AFTER N
The lines can go in arbitrary order but the keywords are case-insensitive.
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.
This section is dedicated to users who wants to check or extend the capabilities of the
convergence checker for other applications, or simply to add the convergence checker to another
dynamic library to use them both at the same time.
Structure
The library consists of four Fortran source files and a supplementary shell script to help to compile
it, all stored under _data/isis/dynamic_lib/Convergence_checker. These four files are:
l computation_control.f90,
l solver_quantities.f90,
l session_module.f90,
l logging.f90.
In terms of Fortran, computation_control.f90 contains the external procedure and the other three
files are modules. computation_ control.f90 contains the dynamic library subroutine
computation_control itself that is called by the flow solver. The responsibility of this code is to:
Compilation procedure
The library comes with two scripts build and build.bat to help with compiling the library from its
source. The first script uses GNU Fortran compiler and dedicated for Linux. Compilation was
tested with GNU Fortran 4.8.5 and 4.4.3. The second script uses Intel Fortran and dedicated for
Windows. Compilation was tested with Intel Visual Fortran 12.0 compiler.
When compiling, the directory obj is created near src directory. It can be deleted after successful
compilation. The result of the compilation is the single file called isis_dynamic_lib.so on Linux
and isis_dynamic_lib.dll on Windows and should be placed in the computation folder.
29.4 OUTPUT
The library prints several pieces of information in the .std file of the computation (and hence
visible in the Task Manager information window while running the simulation through the
graphical user interface) to inform the user about the settings that will be used and the current
status of the convergence check:
l Before the first time step, the library gives the settings that will be used.
l When all checks indicate that the simulation is converged, the library reports it as well and
stops the simulation.
29.5 EXAMPLES
TASK MANAGER
Using the Solver menu in FINE™/Marine, computations can be started, suspended or killed. For basic
task management these menu items are sufficient.
The Task Manager provides more advanced features for the management of (multiple) tasks. It
allows the user to manage tasks on different machines on a network, to define parallel computations or
to delay tasks to a given date and time.
Before using the Task Manager for the first time it is important to first read the limitations as listed
below and the next section. This section provides important information for getting started with the
Task Manager . The user should read this section carefully to fully benefit of the capabilities of the
Task Manager .
From FINE™/Marine the Task Manager can be accessed by clicking on the Switch to TASK
MANAGER button on the main icon bar. The interface, as shown in FIGURE 30.3, will appear.
The Task Manager Interface is described in detail including a description of all its capabilities.
Task management through the use of scripts is also possible and has the benefit that it is not necessary
to remain logged on to the machine on which the tasks are launched. See the Task Management Using
Scripts section for more detail on the scripts to use to launch NUMECA software.
Limitations
The task manager have some limitations due to the current PVM and MPI libraries:
l UNIX to PC or PC to UNIX connections are not allowed.
l When a user launches FINE™/Marine on different machines, the connection between these
machines is not allowed.
In this section
30.1 Getting Started 510
30.2 The Task Manager Interface 516
30.3 Parallel Computations 522
30.4 Task Management Using Scripts 533
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.
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.
On Windows, only one pvmd can run and therefore, only a single user can connect to the virtual
machine. If another user wants to use the NUMECA software on the PC as server
(FINE™/Marine) or as client (CFD flow solver), the first user must shut down the pvm daemons
on this machine. To shut down go to the Hosts definition page and click on Shutdown. This will
close the interface and removes all the pvm daemons on the machine. Remove the files
pvml.<userID> and pvmd.<userID> from the directory defined by the PVM_TMP (by default
C:\tmp).
During a FINE™/Marine session all the tasks defined by the user are stored in the "marinetasks"
file in the NUMECA tmp directory. This is the ".numeca/tmp" directory in the home directory of
the user. On UNIX the home directory corresponds to the HOME environment variable. This is
also true on Windows if this variable is defined and, if it is not the case, it is set to the
concatenation of HOMEDRIVE and HOMEPATH environment variables.
On Windows, the home directory can not contain white spaces: if the HOMEPATH variable of the
user contains white spaces, a HOME variable must be defined corresponding to a directory that does
not contain white spaces.
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:
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.
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.
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
"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.
It is also possible to configure hosts definition files through the Administration Wizard. Attention
should be payed here, since it will configure files on the machine on which it was started only. It
will not configure/reconfigure the hosts list on the machine to which the connection will be
performed.
To launch the computation from the Task Manager interface when files have been properly
configured, follow these steps:
FIGURE 30.1
Hosts definition menu of the Task Manager
In the Tasks definition part it is possible to set different Hosts between Subtasks: Pre-processing,
Solver, Post-processing
FIGURE 30.2
Subtasks distribution among different hosts
Task Manager creates the '.log' file of path substitution in NUMECA temporary folder
(.numeca/tmp). Its name is 'paths substitution.log' and contains of information about performed
connections together with path substitutions info and its status.
The Hosts definition page shows the list of available hosts that the interface can be connected to,
the operating system of these machines, their respective connection status and their possible
queuing system if it exists on the machine. If the connection is not OK, it means that the
corresponding computer is no longer visible by the interface. This may occur, for example, if the
computer has been rebooted. Once can try to connect using the Connect button.
FIGURE 30.3
Hosts definition page
Add a Host
When clicking on the Add host... button, the interface asks for a host name and a login name. The
login name is optional. It is needed only if the user's login on the local host and the one on the
remote host are different.
When pressing the Accept button, the host name appears in the host list, with type of operating
system and its connection status. At this point, the host is ready to receive a task.
Remove Host
When clicking on the Remove Host button, the selected host is removed from the list, and is no
longer available. This operation is not allowed when a task is running on the host to be removed,
or when the local host is selected.
Shutdown
When clicking on the Shutdown button, all listed hosts are removed. FINE™/Marine exits as
well. All running tasks are killed. This option is useful when changing the machine where
FINE™/Marine is running on. See Getting Started for more details.
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™.
Task List
In this section, the defined tasks and their status can be controlled. To create a task, click on the
New Task button. The defaults task name can be modified by clicking on the Rename Task
button. The selected task can be removed by clicking on the Remove Task button.
Once a task has been created and defined (see following section), it can be started or stopped by
clicking on the Start, or Stop buttons, respectively.
Clicking the button Save Batch File, a script projectname_computationname.batch (or .bat for
Windows) and a machines.txt file will be created in the corresponding computation folder. This
script enables the user to launch the same computation in batch.
The script is also saved automatically when clicking on Start button from the Launching menu or
the Task Manager.
A task can be delayed clicking on the Delay button by two possible ways: enter the date and time
for when the task should be launched in the dialog box or create a dependency from another task.
For instance, the computation can be started only when the previous task is over. The delayed
task can be disabled using the Cancel button.
When applying the data, a small watch in the task list indicates that the task is scheduled:
FIGURE 30.7
Task List with Delay window to start a task at a later moment
When exiting FINE™/Marine, all the delayed tasks are automatically started and stay in sleep mode
until their starting times are reached. When starting FINE™/Marine again, all the task managers
relating to the delayed tasks, still in sleep mode are killed, and the FINE™/Marine Task Manager
recovers control of these tasks.
This section allows to define the number of partitions for the computation. Information about the
current used .sim file is also displayed.
FIGURE 30.8
Task Definition and Characteristics
This option can be used in case both MPROC and FULLFLEX keys are available in the license file.
To manage the communication types between the cores of the machines during the computation,
the MPI library can be changed selecting between Intel MPI and Open MPI. The
recommendation is to use the Intel MPI library. This choice affects the MPI libraries but also the
flow solver's executable.
Task Definition
In this section, the subtasks of the selected task from the Task List are discussed. A subtask is
defined by its type, its status (it can be pending, running, finished, mismatch or crashed) and the
host on which it is launched. The list of available subtasks are:
l Pre- processing (preparation of the files to be run with the solver (including conversion,
partitioning or concatenation of previous results),
l Solver (execution of the solver),
l Post-processing (reconstruction of the results to be opened by CFView™).
During its execution, each task has its own ".log" file, stored in the computation directory after
execution. For instance, "hexpress2isis.log", "isis2cfview.log",... They contain the output from the
execution of the tools. Please send these log files to your local Support office if necessary
To add/remove a subtask, tick the corresponding subtask. Select the host on which the process
should be started in the pull-down box beneath the task list. The list contains the hosts that are in
the available as defined in the Hosts definition page. The Pause Solver button will suspend the
running computation and save the data (no effect on the pre and post-processing subtasks)
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).
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...
Parallel computation reduces the calculation time of a given problem by splitting the task among a
number of processors, each of which works on part of the problem. Communication between
these different processes is necessary at the partition interfaces to ensure that the solution near the
boundaries is consistent across the different partitions.
A domain decomposition approach is taken to the parallelization of the flow solver. The Metis
library from the University of Minnesota is used to perform the partitioning. This library uses the
graph of the mesh to perform the partitioning, with the goals of minimizing the communication
cost, using a selection of metrics, and balancing the number of grid cells in each partition.
At the interfaces between partitions, the meshes are overlapped by a single cell to facilitate inter-
partition communication. Data in these ghost cells are replaced with the correct value at various
points in the computation procedure where an incorrect value of solution would adversely
influence the calculation. In addition to the cells that share faces, cells that share nodes need to be
communicated in the case of viscous calculation.
Each processor will launch a self-contained instance of the solver using the MPI parallel message
passing interface. Both shared memory and distributed memory are supported as are shared/non-
shared disk configurations.
Parallel computations can be fully defined through the FINE™/Marine interface. The Task
manager page has also been developed for this purpose.
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.
A number of global communications are also necessary during the calculation to make global
variables, such as the residuals, available to all processes.
If the computation is running on different machines or on Clusters, all data need to be visible from all
machines/nodes.
At the end of the computation the outputs from the different processes have to be collected and
the full solution is reconstructed by the "postmetis" tool, see Position and Wake flow section for
more information about it.
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.
FIGURE 30.11
User credential warning
B. Queuing System
Task Manager provides a functionality to work with queuing system in two different modes:
Automatic System and Templates. This section will introduce the two possibilities.
Automatic System
Within the Task Manager, the parallel computation can be set-up on the Sun Grid Engine batch
system (SGE), the Portable Batch System (PBS), the Load Sharing Facility (LSF), the Load
Leveler or the Windows HPC. This system is only available when the interface detects one of
them installed on the Cluster (if several systems are installed, SGE is selected by default). One can
activate or deactivate this section of Task Manager by clicking on Activate checkbox.
l The selection of the Queueshould be first made among the available ones.
l The available Parallel environment is detected by the interface. It can be selected from the
combobox. The names are given by the system administrator.
l The Job Name for the computation should be specified.
The correct 'mpirun' executable corresponding to the parallel flow solver executable can not be
selected directly. It should be compiled for the user's cluster specifically. The selected version of
'isiscfdmpi' should correspond to the compiled version of 'mpirun'. To select the appropriate one, save
the script and edit it to use the one installed on the Cluster.
l Number of partitions and ".sim" file are defined in Task arguments & characteristic part.
l The subtasks are defined in Task definition part.
All the tools, except the solver, require only one node and it will be selected automatically by the
queuing system.
l Once the settings are defined, it is possible to save the queuing system script by clicking on
Save Script button or to save and submit it by clicking on Submit Script button. The script will
be saved in the computation folder with the extension ".pbs" or ".sge" (according to the
detected queuing system). A special suffix depending on if pre-processing, post-processing
and solver are selected, will be added to the name of the file:
l Pre-processing: "_pre" suffix is added,
l Solver: "_solv" suffix is added,
l Post-processing: "_post" suffix is added.
For example:
1. If all the three subtasks are selected and SGE system is detected, the generated script name is
"projectname_computationname_pre_solv_post.sge",
2. If pre-processing and solver subtasks are selected on a PBS system, the generated script name
is "projectname_computationname_pre_solv.pbs",
3. If only pre-processing is selected on a SGE system, the generated script name is "project_
computation_pre.sge".
Template Mode
Template mode allows to create and manage scripts from pre-defined templates. By default, a set
of templates is available for the supported queuing systems SGE, PBS, LSF, Load Leveler and
Windows HPC (with corresponding extension .sge, .pbs, .lsf, .lvl and .bat) under the directory
"finemarine#/COMMON/queuing_templates/_marine". All types of templates are supported for
both Open MPI and Intel MPI (except for Windows HPC).
Functionalities are listed below:
l New: opens a pop-up window where one can choose the template to build the script from.
Clicking on Next opens the Editor.
l Edit: edits the selected template in the Editor,
l Load: loads a template already created in the list,
l Unload: unloads a template from the list,
l Submit Script: submits the selected script to the queueing system.
Two extra options are also present to manage lists of scripts:
l Backup : saves the current list of scripts (the list is stored into the Home directory under
".numeca/marine/" folder)
l Restore: loads a list of scripts
FIGURE 30.13
Template Mode
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.
The general steps involved in running a parallel computation are the following:
1. Create the full project with the FINE™/Marine interface
2. Save the project and the simulation file (.sim)
3. Run hxp2isis_no_interactive tool to create the mesh files readable by the flow solver, see
hexpress2isis
4. Create the required number of partitions with the tool premetis, using "-npar=" argument to
specify the number of partitions, see Mesh Partitioning
5. Create the machines.txt file, see Launch FINE™/Marine flow solver in Sequential mode using
Scripts
6. Launch the computation with the command written in Launch FINE™/Marine flow solver in
Sequential mode using Scripts
7. Run the isis2cfv_no_interactive tool to post-process the results.
From the Task Manager a batch file can be saved containing the instructions to run steps 3 to 7.
The user should define the Number of partitions and Machines selection & balancing and then
press Save Batch file. This will save the corresponding machines.txt and batch files in the
computation directory. When executing this batch file the computation will be launched in the
specified hosts without any interface opening.
The structure of the batch file is shown in the next sections.
The extension of the file should be ".batch". In bold paths to be modified according to the
installation directory and the working directory.
The extension of the file should be ".bat". In bold paths to be modified according to installation
and working directory.
@echo off
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.
To by-pass these defaults, a concept of MPI customizing has been introduced. Two ways are
available:
One can also store in the .numeca/ folder from his home directory, a file called default_mpi . In
this case the user needs to specify some parameters for this mpi:
l NUMECA_MPI_DIR: absolute full path to the directory containing the mpirun to use,
l ISISCFD_MPI_EXEC: type of solver executable (openmpi or intelmpi),
l ISISCFD_LD_LIBRARY_PATH: absolute full path to parallel solver libraries,
l ISISCFD_CLIENT_MPI_RUN: the name of the executable for MPI (mpirun).
An example of this file setting ompi as a default MPI for any computation:
NUMECA_MPI_DIR=NUMECA_INSTALLATION/finemarine71/LINUX/_mpi/_
ompi1.6/bin
ISISCFD_MPI_EXEC=ompi
Default_mp i has the priority compared to the argument -<mpi_version> argument for isiscfd_
parallel virtual command. If there are several FINE™/Marine versions installed on the machine
default_mpi will be applied to all of them.
Example for Intel libraries as default MPI for any new computation
NUMECA_DIR=NUMECA_INSTALLATION/finemarine71/LINUX/_mpi/_impi5.0.3
NUMECA_MPI_DIR=$NUMECA_DIR/intel64/bin
ISISCFD_MPI_EXEC=intelmpi
ISISCFD_CLIENT_MPI_RUN=mpirun
ISISCFD_LD_LIBRARY_PATH=$NUMECA_DIR/intel64/lib
echo $NUMECA_MPI_DIR/mpivars.sh
I_MPI_ROOT=$NUMECA_DIR
. $NUMECA_MPI_DIR/mpivars.sh
Starting from FINE™/Marine v5.1 Intel® MPI library is available and starting from
FINE™/Marine v5.1 it is used by default. The procedure below should be followed once in each
host machine where computations will run. Afterward the services will be restarted automatically
at reboot.
1. Install and start the Hydra service from the directory \NUMECA_
SOFTWARE\finemarine7.1\impi5:
l Open a command prompt "cmd" as Administrator.
l cd NUMECA_INSTALLATION_DIR\finemarine71\impi5
l hydra_service.exe -install
Check in the Windows Task manager > Services tab if the Service impi_ hydra status is
Started. If it is not use the following command to start it:
l hydra_service.exe -start
-delegate argument is mandatory, although -impersonate is also possible, but this will use a limited
domain- based authentication. This does not allow file access to network drives (even if mapped
locally), and should only be used when other options are not working.
30.3.5 Troubleshooting
If the computation is interrupted for an unknown reason, more detailed information can be found
in the shell. The shell contains all relevant information, including MPI error messages. When the
computation is launched, the message can be written into a file with the command "> output.txt"
and should be sent to our local Support office. Please also send the output.list file from each
partition.
Permission denied
If the "Permission denied" message appears when launching the computation, it can be a problem
of rsh or ssh usage. Please check whether it is a true rsh or whether it is a link to ssh. If you are
using rsh, please check that the ".rhosts" file is well configured according to the installation note.
If you are using ssh, please make sure that ssh can work without the need of a password.
If you want to know if the solver is using ssh or rsh, choosing the correct "isiscfdmpi" executable
is explicit for mpich. However, for the other ones, the only way to know it, is to do the following
steps:
1. deactivate rsh
2. launch the executable
3. 2 possibilities:
30.3.6 Limitations
l The distributed memory mode is restricted to homogeneous system. While not strictly
necessary, it is recommended that machines of the same speed are used, as all partitions are of
equal size by default and therefore, require the same computational cost.
l The number of processors should be strictly equal to the number of partitions. It is possible to
run more than one process on a single machine, but each process must be defined separately.
This section provides information on how to launch the installed NUMECA Software from a
shell, without using HEXPRESS™, FINE™/Marine or CFView™ interfaces.
In the next sections the commands available to launch NUMECA software are described in more
detail:
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.
1. Create a template and geometry files (".igg", ".bcs" and ".dom") using the HEXPRESS™
interface.
2. Start HEXPRESS™ to create a mesh from these files by typing:
hexpress -batch -project /user/test.igg -niversion marine71 -print
1. Create a template and geometry files (".igg", ".bcs" and ".dom") using the HEXPRESS™
interface.
2. Start HEXPRESS™ to create a mesh from these files by typing:
c:\NUMECA_ SOFTWARE\finemarine71\bin\hexpress.exe - batch - project
c:\users\mesh.igg
Once the mesh generation has been performed and the set up of the computation has been done,
the pre- processing step can be executed. It consists in a succession of tools that convert
HEXPRESS™ mesh file into mesh files readable by the flow solver and prepare the partitioning
if required. For batch scripting, one can use the following tools and arguments (no question will
be prompted to users):
postmetis -niversion marine71 -print (optional: only required in case of a restart, it should be
launched from previous computation folder)
hxp2isis_no_interactive -niversion marine71 -print (to be launched from the new computation
folder)
premetis -npar=X -niversion marine71 -print (to be launched from the new computation folder)
See the External Tools chapter for a complete description of the tools
Two different ways to launch the flow solver in sequential using batch mode exist:
isiscfd /COMPUTATION_PATH/project_computation.sim -niversion <version> -print
OR
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.
Create Script File "batch.bat". An example of "batch.bat" file for a series of computations:
C:\NUMECA_SOFTWARE\FineMarine71\bin\isis64\isiscfd.exe \\
< C:\users\project\project_computation_1\project_computation_1.sim
C:\NUMECA_SOFTWARE\FineMarine71\bin\isis364\isiscfd.exe \\
< C:\users\project\project_computation_2\project_computation_2.sim
The command line, to start the flow solver, contains its full path name, the full path name of the
".sim" file to launch, and the sequential mode selection:
INSTALLATION_DIRECTORY\isiscfd.exe\\
< COMPUTATION_PATH\project_computation_1.sim
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.
This chapter focuses on the conception of scripts to launch the solver in parallel and explains the
details for both LINUX and Windows operating systems.
It is strongly recommended to read first the chapter "Concept to Run a Parallel Computation in
Batch Mode" (p. 527) first since it explains the full launching procedure.
1. The following command should be used to launch parallel computations by the flow solver. It
is also possible to create a script file "batch.sh" with permission for execution. An example of
a "batch.sh" file for a parallel computation on Linux:
#! /bin/csh
INSTALLATION_DIRECTORY/finemarine71/LINUX/_mpi/_ompi1.6/ -np X -machinefile
"/users/project/computation/machines.txt" /INSTALLATION_
DIRECTORY/finemarine71/LINUX/isis/isiscfdmpi
The first machine (hostname) specified in the file "machines.txt" should be the one from which
the script will be launched.
3. Set permission for execution "batch.sh" by using the command: "chmod 755 batch.sh"
Create input files ".sim" to launch the computation. Therefore before launching the parallel
computation script, the following steps must be performed through the FINE™/Marine
interface:
4. Check that the computation is ready to run (input files already present in the working
directory).
5. Launch the "hexpress2isis" and "premetis" tools from the working directory and follow the
instructions given in the shell
6. Launch the script "batch.sh" by typing the script file name: "./batch.sh".
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.
1. Create a script file "batch.sge" with permission for execution. An example of a "batch.sge" file
for a parallel computation on LINUX:
#! /bin/csh
#$ -S /bin/sh
#$ -o /home/sgeuser/parallel_sge/parallel_sge_computation_1/ parallel_sge_computation_
1.std -j y
#$ -N comput1
#$ -pe mpi 3
#$ -notify
P4_GLOBMEMSIZE=15000000
Export P4_GLOBMEMSIZE
NI_VERSIONS_DIR=/usr/numeca_software/finemarine71
MPIR_HOME=$NI_VERSIONS_DIR/_mpi
cd /home/sgeuser/parallel_sge/parallel_sge_computation_1
$MPIR_HOME/bin/mpirun -np $NSLOTS -machinefile $TMPDIR/machines \
$NI_VERSIONS_DIR/LINUX/isis/isiscfdmpi
where:
For sequential runs, the line " #$ -pe numecampi 3 " must be removed and the final command
must be:
$NI_VERSIONS_DIR/LINUX/isis/isiscfd < /COMPUTATION_PATH/sge_computation_
1.sim
2. Set permission for execution "batch.sge" by using the command: "chmod 755 batch.sge"
3. Check that the computation is ready to run (.bcs file and .sim files already present in the
working directory).
4. Close the interface
We strongly recommend to use the full path of each file and executable to avoid any trouble in
computation start.
1. Create a script file "batch.bat" with permission for execution. An example of a "batch.bat" file
for a parallel computation on Windows:
\NUMECA_SOFTWARE\FineMarine71\bin\isis64\mpiexec.exe -np X -machinefile
"/users/project/computation/machines.txt" \NUMECA_
SOFTWARE\FineMarine71\bin\isis64\isiscfdmpi.exe
where "X" is the number of partitions and "isiscfdmpi" should be replaced by the flow solver
executable corresponding to the machine configuration.
To sum up, the command line, to start the flow solver FINE™/Marine flow solver in parallel,
contains the script name that enables parallel computation (mpiexec), the number of partitions,
the full path name of the file "machines.txt" which contains the definition of the machines that
will be used to launch the computation in parallel and the executable of the solver for parallel
computations:
"mpiexec.exe -np X -machinefile "/COMPUTATION_PATH/machines.txt"
isiscfdmpi.exe"
2. Create Hosts Definition File "machines.txt". A file needs to be created to define the hosts. This
file specifies the machine information of the various processes. Two examples of a
"machines.txt" file:
Example 1: 2 processes on Hostname1
Hostname1
Hostname1
Example 2: 1 process on Hostname1 & 1 process on Hostname2
Hostname1
Hostname2
The number specified in the "machines.txt" file should be equal to the number of processes
required on this machine
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.
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.
Once the computation has been performed, the post-processing step can be executed. It consists in
the transformation of files into a format readable by CFView™. For batch scripting, one can use
the following tool (no question will be prompted to users):
isis2cfv_no_interactive -niversion marine71 -print (it should be launched from the previous
computation folder)
See the External Tools chapter for a complete description of the tool
1. Create a macro file ".py". See the CFView™ User Manual for more details on the format of a
macro file and the commands that it can contain.
2. Launch the macro ".py" by typing: cfview -macro /user/test.py -batch -niversion marine71
The command line to start CFView™ contains its name, the full path name of the macro ".py"
file to launch, and the CFView™ release that will be used. The "-batch" option disables the
display of the CFView™ graphical user interface.
"cfview -macro MACRO_PATH/macro.py -batch -niversion <version>"
1. Create a macro file ".py". See the CFView™ User Manual for more details on the format of a
macro file and the commands that it can contain.
2. Launch the macro ".py" by typing:
NUMECA_SOFTWARE\FineMarine71\bin\cfview.exe -macro <py_path>\test.py -batch
The command line to start CFView™ contains its full path name and the full path name of the
macro ".py" file to launch. The "- batch" option disables the display of the CFView™
graphical user interface.
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.
POST-PROCESSING
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).
In this section
31.1 No probes have been performed 546
31.2 Probes have been performed 546
31.3 Traveling Shot 550
31.4 Results Analysis 552
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
In the situation where the computation contain probes, a pop up will appear with the possibility to
open the last saved results only or to reconstruct the solution including all the intermediate probes.
Open last saved results gives exactly the same results as the situation when no probes have been
performed (see previous section). The traveling shot parameters can be modified (see Traveling
Shot for more information about traveling shot parameters) and the results will be directly opened
in CFView™.
FIGURE 31.2
Post-processing window (probes performed) with traveling shot
Unsteady results
Unsteady results (reconstruction required) button allows to reconstruct all intermediate probes
and load them into CFView™. Traveling shot parameters can be modified (see Traveling Shot) as
well as options for the reconstruction:
l the Available probes frame allows to select the quantities to reconstruct
l As an information, the menu gives the Available number of probe intervals which are
effectively saved during the computation.
l The Interval of reconstruction allows to reconstruct only a given range of probes. By default,
the menu proposes all the probes. It can be in terms of "Time steps" or "Seconds" depending
on the project configuration.
l The Probeskip interval: allows to skip the reconstruction for some probes in a sequence of
interval: "1" means that all probes are going to be reconstructed, "2" means that 1 probe over 2
will be reconstructed, etc... As a consequence, the non- reconstructed probes will not be
available in CFView™.
This choice is not definitive and it is possible to perform again the post- processing with different
parameters.
FIGURE 31.3
Post-processing window to reconstruct probes
Once the reconstruction has been performed, CFView™ will open the partial loader. It gives the
list of available quantities and offers the possibility to load the required time steps, specifying the
initial and final time steps, and to give an interval input to skip some probes. Please read the
CFView™ User Manual for more description about the partial loader.
FIGURE 31.5
Partial loader in CFView™ for surface probes
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).
For simulations with at least one moving body, degrees of freedom (d.o.f.) carried out only by
rigid or weighted mesh displacement (see the Multibody definition section for the information
about the mesh displacement), can be visible or not by selecting a point of view. As in
cinematographic techniques, a traveling shot can be performed on each d.o.f., by attaching the
"camera" to the mesh during the rigid displacement of this d.o.f..
FIGURE 31.6
Traveling shot illustration
This choice is not definitive and it is possible to perform again the post- processing with different
parameters.
For rotation (Rx,Ry,Rz), traveling shot is limited to the following possibilities: (0,0,0) (1,1,1) or
(0,0,1) with "1" meaning active and "0" inactive.
FIGURE 31.7
Traveling shot options
Using the traveling shot will result in getting the Relative Velocity instead of the Velocity in
CFView™.
By pressing the icon on the main icon bar, the Results Analysis tool will be opened
providing tools to analyze the computation convergence but also extract interesting information.
FIGURE 31.8
Results analysis tool
The Results Analysis tool is capable of the following actions for each of the selected
computations in the right side of the Computations list:
The type of post processing should be first selected. The objective can be to create a resistance
curve, make a self-propulsion analysis or check results by quantity.
Resistance curve
Perform resistance curve (averaged selected quantity vs. Froude number) option is available
for the multiple selected computations being selected. Here, the resistance force values (Fx) will
be checked and represented depending on the Body definition structure and averaging settings
applied.
Self-propulsion analysis
Perform self-propulsion analysis option is available for a single computation being selected.
This analysis is based on the inputs and outputs of the selected computation and some extra
information requested to the user, which will depend on how the propulsion unit is considered in
the simulation. The following propulsion coefficients will be reported:
l Propeller advance ratio (J)
l Propeller thrust coefficient (KT)
l Propeller torque coefficient (KQ)
l Propeller torque coefficient in open water conditions (KQ,0)
l Thrust deduction factor (t)
l Taylor wake fraction (wt)
l Propeller open water efficiency (η0)
l Relative rotative efficiency (ηR)
l Hull efficiency (ηH)
l Propulsive efficiency (ηD)
Scenario 1
For the computations classified as Scenario 1, the user is requested to identify the Body ¨ship¨,
the Body ¨propeller¨ and to define the Diameter of the propeller (D) unless the plugin can
automatically retrieve this information from the *.sim and the SPinputs.dat files of the
computation. The latter file will be present in the computation directory only if the user decided to
perform the simulation making use of the "Self-propulsion " (p. 151) dynamic library "Types I, II
and III" (p. 153). See image below for the case in which the user has to define the three
aforementioned parameters.
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
FIGURE 31.10
Results analysis tool - Self-propulsion analysis inputs for Scenario 2
FIGURE 31.11
Results analysis tool - Example of a *.dat file of the open water curve
By clicking on Perform, the self-propulsion analysis will be performed and the results stored in
the "Computed_data.dat" file. However, before doing so it is advisable to average both efforts
and motions by activating the Average efforts and Average motions in the tab Analysis
options.
By quantity
By quantity >>> option gives access to the analysis of individual quantities such as efforts and
motions among others.
FIGURE 31.13
Modal approach: Amplitudes quantities selections
This page provides the access to the settings of available averaging and filtering procedures.
FIGURE 31.14
Analysis options
Filters
Filtering options can be useful for the results better representation or smoothing the curves. For
instance, applying the "Quasi-Static Approach" (p. 244) during the simulation can result in peaks
of convergence, which are not useful regarding the computed values. Thus, Filters can be applied
with the given choices:
l Moving average
l Median filter
The Median filter is especially efficient for deleting peaks relied on the Quasi-Static approach.
The Moving average is efficient for smoothing the results curves.
When Median filter is active and the Window width in time steps is defined as N, filtering
will be applied as follows:
l define the first successive quantity values: q1, q2, …, qn
l construct new sequence of values: q'1 , q'2 , …, q'i, where the q'i is a median of qi and about
N/2 nearest values of sequence q from both sides of qi
Moving average filter works similarly, but it uses averages instead of Median filter.
This page shows all the possible ways to sort and represent the data that can be defined.
Plot options
l Define a range (minimum and maximum) for the X and Y-axis on the plots (no input means no
restriction).
l Double the values for the drag Fx (to do in case of half body simulation)
l Use absolute values for all selected quantities on the plots
l Represent selected quantities on the same plot
l Represent selected computations on the same plot (grayed out when only one computation is
selected).
If nothing selected here, previously selected quantities will be represented separately and for each
computation.
A warning "The following quantities have not been found: Thrust Torque Number of Cells Wetted
Surface" can appear listing the Quantities not available for the plot. This can happen when an option
of Represent selected computations on the same plot have been applied and the selection of
Quantities is not compatible with the output legends formats. For instance, Torque plot together with
the Number of cells will not be available for the suitable scale.
Dimensionless coefficient
When the option is activated, two text boxes appear: "Denominator name" and "Denominator
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.
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
FIGURE 31.16
Example of the Fx force components plot for the Body: DTMB
"Convergence_report_date_time" will also contain of PNG files in case of Resistance curve has
been activated or when the Represent selected computations on the same plot has been applied.
Please note, that legends for the PNG pictures are defined automatically by the Python
libraries. Thus, it cannot be guaranteed that the legend will always be placed at the same
location.
Example
Convergence report
==================
Project: /home/User1/Project_1/resistance.iec
Computation: computation_#
Mesh: /home/User1/Project_1/_mesh/mesh.igg
The following quantities have not been found: Wetted Surface
Average values
Quantity Average Min Max Std. deviation
Fx(Body1) -3.4259381e+01 -3.5224150e+01 -3.2721830e+01 3.8770517e-01
Fx(Body2) -1.6660469e+01 -1.9926500e+01 -1.4808630e+01 1.0654178e+00
Fy(Body1) -4.9440199e-01 -9.3531450e+00 3.0237600e+01 3.7201312e+00
Fy(Body2) 1.2470519e+00 -4.3823220e+00 2.5087720e+01 2.5314469e+00
Mz(Body1) 2.9071903e-01 -2.1124660e+01 1.1449300e+01 6.8705075e+00
Mz(Body2) -4.6927811e-01 -6.4888300e+00 1.1183190e+01 2.7084917e+00
CPU time and convergence
Quantity CPU_Time Physical_Time Iteration
Mz(Body1) not reached
Mz(Body2) not reached
Table of quantity values (filtered quantities are marked by *)
Common quantities
All created by Results Analysis tool files can be opened by text editors including such as Open
Office and Microsoft Excel.
FILE FORMATS
This chapter describes the files used by FINE™/Marine and the flow solver. It is divided into two parts.
The first gives the file format information needed to use FINE™/Marine, while the second one
describes the format of the files used and produced by the flow solver. As FINE™/Marine is intended
to handle the files treatment, knowing the exact format of all the files used in a simulation process is
not required. This chapter is therefore written for advanced users.
In the following description, it is assumed that all the files are related to a generic project called
'project'. The chapter is divided in five sections:
l files produced by HEXPRESS™,
l files produced and used by FINE™/Marine,
l files produced and used by the FINE™/Marine flow solver,
l files used as data profile,
l resource files used to control the layout and which contain default values and reference
information.
In this section
32.1 Files Produced by HEXPRESS™ 568
32.2 Files Produced by FINE™/Marine 568
32.3 Files Produced by the FINE™/Marine flow solver 573
32.4 External preferences file: .dat 583
32.5 External user input file: stop.now 584
32.6 Triangulated surface file 584
32.7 Wall Surface Data Description 585
32.8 Resource Files 590
This section describes the files produced by the grid generator HEXPRESS™ and used by
FINE™/Marine:
l project.igg contains all relevant parameters about the grid generation process in
HEXPRESS™.
l project.dom contains the computational domain definition (geometry and topology).
l project.hex contains the mesh and its connection to the computational domain.
l project.bcs contains boundary conditions information. As described in the Boundary
Conditions chapter, the settings of the boundary condition type is performed in HEXPRESS™
while the physical boundary condition parameters are set in FINE™/Marine. The settings of
HEXPRESS™ are stored in the file project.bc s. This file is used by FINE™/Marine to
initialize the boundary condition types for each patch. It is updated each time the boundary
condition type is changed in HEXPRESS™.
For more details about these files, please refer to the HEXPRESS™ User Manual.
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.
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.
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 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).
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.
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
To change the name of the bodywithin the .input file, it should be written in one word and including
a space at the end of the line.
A global status file that summarizes the progress of every computation launched under the global
project within the "C-Wizard computation matrix" (p. 129) is stored in a project directory.
This file is located in the global directory under the name " cwizard.status" and contains the
following information:
Project Name Geometry Yaw Pitch Roll Draft Status
t1_Y0.0_P2.0_R0.0_D8.0 geom_name 0.0 2.0 0.0 8.0 Finished
t2_Y0.0_P2.0_R0.0_D10.0 geom_name 0.0 2.0 0.0 10.0 Pending
t3_Y0.0_P4.0_R0.0_D12.0 geom_name 0.0 4.0 0.0 12.0 Running
t4_Y0.0_P4.0_R0.0_D14.0 geom_name 0.0 4.0 0.0 14.0 Crashed
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.
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
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.
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™.
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:
This file contains the data related to the body and stored into the computation folder with the
These files contain the information about the global fluid forces and momentum for each body
and sub-body (remark: they do not contain external or actuator disk forces). F represents the
forces, M the momentum, V the viscous forces and P the non-viscous forces (also called pressure
component). For instance, eff_FxV.dat corresponds to the viscous forces applied on the body
along the X-axis. See Forces and Moments for more details. The information about the time T is
as well as the number of non-linear iterations, noted Itnl, are present (remark: for steady mono-
fluid computation, T is always equal to 0). Below, an example for an eff_Fx.dat file for an
imposed forward motion of a body called DTMB in unsteady mode.
#TITLE =(ISIS-CFD:6.1) Var=Fx Fixed_Frame
#NI_BEGIN VARIABLES
# NAMES Fx FxDyn
#NI_END VARIABLES
#NI_BEGIN CALCUL
# MODE UNSTEADY
#NI_END CALCUL
#NI_BEGIN BODY
# NAME DTMB
#NI_END BODY
TITLE ="(ISIS-CFD:3.1-1) Var=Fx Fixed_Frame "
VARIABLES = "T","Itnl","Fx(DTMB)","FxDyn(DTMB)"
ZONE
0.5000000E-01 4 0.1233527E-01 0.6426352E-02
0.1000000E+00 4 0.3146476E-01 0.2555553E-01
0.1500000E+00 4 0.1463032E+00 0.1403937E+00
This file stores the convergence history of the current computation. The residuals are written
according to the non-linear iterations itnl, the time t in seconds and cpums which is the CPU time
per variable in milliseconds. To know more about the definition of the residuals, please read the
Quantities to Display section. An example of .res file is given below:
#NI_BEGIN CALCUL
# MODE UNSTEADY
#NI_END CALCUL
#COLUMNS = itnl t cpums ResU ResV ResW ResP ResK Res`w
TITLE = "(ISIS-CFD:6.1) : Convergence"
VARIABLES = "itnl", "t", "cpums", "ResU", "ResV", "ResW", "ResP", "ResK",
"Res`w"
1 0.330000E-01 0.310522E-01 0.157558E-08 0.121511E-10 0.179463E-04 0.306026E+00
0.342958E-06 0.113064E+01
2 0.330000E-01 0.436903E-01 0.443751E-03 0.732851E-03 0.787221E+00 0.151139E+00
0.728790E-07 0.385368E+00
3 0.330000E-01 0.561916E-01 0.204232E-03 0.319256E-03 0.353062E+00 0.122346E+00
0.259866E-07 0.281035E+00
...
If nvariable is the number of variables in the simulation and cpums is the time per variable in
milliseconds, these values are linked together with the time step CPU cost in [MSEC/PTS] written in
the . std file such as: CPU COST OF THE TIME STEP = cpums/1000*nvariable . The
information is computed only by the first partition to avoid unnecessary communications between
partitions.
The kinematic variables outputs are recorded in a file called Mvt_bodyname.dat. This file is read
by the Monitor to show the evolution of the body motion in time. The information about the time
T is also present. Below, an example for the body called boat is presented.
#TITLE =(ISIS-CFD:#)
#NI_BEGIN BODY
# NAME boat
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).
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
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.
This file is created by the graphical user interface to know the evolution and the chronology of the
computation steps performed by all the tools including the flow solver. It indicates the following
information:
l the computation is over or not,
l the save counter,
l dates of changes,
l the status of each steps,
l pending (nothing has been done for this step yet),
l done (the step has been correctly performed),
l stopped (the step has been stopped by the user),
l mismatch (the step has been previously done but new data are available),
l crashed (the step has not been performed correctly. Ex: missing files, executable has been
killed abruptly, etc.).
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.
This file contains the information about the overset mesh cells status:
l active
l blanked
l interpolated
The information is used to represent the cells graphically in the visualizer. More details about the
overset method can be found in "Overset grid management" (p. 423).
To specify the position and the size of the Graphical Interface appearance a 'preference.dat' file
can be created and stored in /.numeca directory. This option is available for the FINE™/Marine
GUI, HEXPRESS™ and Monitor™.
This file should contain the following info :
l graphical interface name: PRODUCT
l screen location: GEOMETRY
Example
PRODUCT HEXPRESS
PRODUCT CFView
GEOMETRY 1920x1200-0-0
END_PRODUCT
PRODUCT Monitor
GEOMETRY 1920x1200-0-0
END_PRODUCT
GEOMETRY 1520x1200-0-0
END_PRODUCT
PRODUCT FINE/Marine
GEOMETRY 1920x1200-0-0
END_PRODUCT
PRODUCT specifies the product name: "FINE/Marine" for FINE™/Marine, "Monitor" for
Monitor™ , "HEXPRESS" for HEXPRESS™ and "CFView" for CFView™.
GEOMETRY specifies window size and position for that product main window: it has form
widthxheight[+|-]x[+|-]y. [x|y] means x or y here; Numbers width and height specify sizes of the
window in pixels, x and y – position in pixels:
l If x is preceded by +, it specifies the number of pixels between the left edge of the screen and
the left edge of window border;
l If preceded by - then x specifies the number of pixels between the right edge of the screen and
the right edge of window border;
l If y is preceded by + then it specifies the number of pixels between the top of the screen and
the top of window border;
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.
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.
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:
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).
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.
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.
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.
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.
USER-DEFINED PROGRAMS
This chapter describes user-defined programs to be used with FINE™/Marine flow solver to initialize
the flow or insert function depending on time (through a dynamic library).
In this section
33.1 Files Used as Initial Data Profile 592
33.2 Dynamic libraries 594
33.3 Procedure 607
33.4 Examples 610
This section describes the files created by the user and used as initial input data to initialize the
quantities (mass fraction, pressure, velocity,...). For the moment, this can be done through a
fortran program. A template file is provided in the FINE™/Marine package, called init_isiscfd.f,
available in the _data/isis/Src folder of the package. To perform a computation with initial user-
defined conditions, the steps below have to be done in batch mode:
1. define the project in the interface as usual,
2. save the project and the simulation file (.sim),
3. create the mesh with the tool hexpress2isis,
4. convert the mesh files into cell centred configuration with the tool gen_gridcc,
5. compile the fortran program (with g95 or gfortran compiler using the option - frecord-
marker=4),
6. launch the executable a.out,
7. (optional) use the cvrfmt conversion tool to convert the initial data file obtained with init_
isiscfd.f (.bin format) to .cpr or .xdr format according to the extension of the variables names
specified in the .sim file.
8. (optional) if the computation is parallel, perform premetis,
9. launch the computation in batch using the command detailed in Monitoring & Launching
Mode.
In template file init_isiscfd.f, provided _data/isis/Src folder of the package, an example of the
initialization of a parabolic inlet velocity profile is given for a water jet.
c Set the velocity and the pressure field to zero everywhere
u=0
v=0
w=0
p=0
c Loop on boundary faces
n_begin=n-nvar_bnd
do i=1,nvar_bnd
surf=sqrt(surfx(i)**2+surfy(i)**2+surfz(i)**2)
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.
The mass fraction field can also be initialized in a particular area, along any direction. In this
example, water is defined in the zone where X-coordinate is smaller than 0.146 and Y-coordinate
is smaller than 0.292. The Z-coordinate is taken from the simulation generated by the interface,
Ci=1 corresponds to fluid-1 (water by default) and Ci=0 to fluid-2 (air by default).
Ci=0.0d0
c Define the location of the fluid-1
Xslvar=0.146d0
The idea is to give the capability for the user to dynamically impose or control specific settings
during the simulation. By doing this, the user can overwrite the parameters prescribed through the
interface or simply add more physics and external factors to the simulation. This specification
should be done through Fortran programs, provided as templates in the package and called
dynamic libraries.
These libraries are not included in the executable but dynamically linked during the runtime
execution. Thus it allows to keep the library separate reducing it's size and the disk space used.
By calling the library components when needed, it becomes available to impose specific
parameters depending on the study. For example, it is possible to control dynamically bodies
motion (check the Imposed Law of Motion section), impose external forces law or even perform
the self-propulsion study (detailed explanations can be found in Self-propulsion dynamic library).
The template files can be found in _data/isis/dynamic_lib/ of the installation folder and should be
used as follows:
l to impose customized external forces laws: imp_eff_dyn.f90,
l to impose customized motion laws " kinematic_ control.f90 . The subroutine of kinematic
control is called at each non-linear iteration if at least one body has a degree of freedom which
is Solved. Otherwise, it is called at each time step,
l to automatize the simulation of a zigzag ship maneuver, where the rudder is moved according
to ship heading: kinematic_control_zigzag.f90 (see more explanation in "Zig-zag maneuver"
(p. 596))
l to control the computation parameters: computation_control.f90,
l to define customized Actuator disk body forces distribution: ad_ forces.f90 (see more
explanation in "User-defined" (p. 304)),
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.
This maneuver establishes several important characteristics of the yaw response. These are: the
response time (time to reach a given heading), the yaw overshoot (amount the vessel exceeds
±20° when the rudder has turned the other way), and the total period for the 20° oscillations.
Similar tests can be made with different rudder angles and different threshold vessel headings.
Standard zig-zag maneuvering test includes the following steps:
Variables
vship: Ship speed in X direction, with correct sign. It will be kept constant as the ship forward
speed of the ship in its body reference frame during all the computation.
maxexecutes : Number of rudder motions during simulation. The first exacute starts at the
beginning of the computation.
nrudders: Number of rudders.
omega_in: Rudder rotational speed in deg/s.
maxangle_in: Maximum change of rudder angle in degrees (δ).
maxheading: Change of ship heading before counter-rudder is applied, in degrees (Ψ).
firstdirection: Direction of the first maneuver: 0 = port, 1 = starboard, see schematic below.
FIGURE 33.2
Zig-zag dynamic library header
1. Allocate the vector of rudder names depending on the number of rudders the ship has.
2. Find rudder(s) and ship body IDs according to their names.
3. Convert variables to SI units. Set rudder rotation direction according to port/starboard first turn.
4. Define control of rudder angle and ship speed.
5. Define ship speed components Vx and Vy as:
Recommendations
The following general advises can be followed to setup a successful simulation employing the
Zig-zag dynamic library:
1. The project should contain of at least 1 ship and 1 or several rudders,
2. Rudder(s) mesh can be generated considering the "Sliding Patch Motion" (p. 270) or the
"Overset grid management" (p. 423) approach and a PIN connection type to the ship should
be specified for the "Multibody definition" (p. 260).
3. Main setup:
Please note that the half body configurations should not be studied here.
In FINE™/Marine flow solver, there is a local index of the bodies (which can be different from the
one defined in the identifier). If the simulation involves only one body, the index is 1 anyway.
Otherwise, two ways to find the local index of the body in the flow solver:
l using the pointer ID_ Body and the "body flag index" from the ".bcs" file from the
computation folder (which means the body flag index from the identifier).
ip_body = ID_Body(body flag index)
l or using the name of the body:
At each new time step, the dynamic library is called once before entering in the non-linear loop with
the itnl variable equal to 0. Then, it is called at each non-linear with successive values 1,2,...
tp: previous time (last time where position and force are known)
tc: current time
O1ref_R0: reference point of the body indexed ip_body in the primary configuration
1=x
O1ref_R0 ( 2 = y , ip_body )
3=z
Theta1ref: Cardan reference angles of the body indexed ip_body with respect to the primary
configuration
O1tp_R0: current position,velocity and acceleration of the reference point of the current body
indexed by ip_body
1 = x 0 = position
O1tp_R0 ( 2 = y ,1 = velocity , ip_body )
3 = z 2 = acceleration
Theta1tp: Cardan angles and their successive derivatives of the current body indexed by ip_body
1 = x 0 = Cardan angles
Theta1tp ( 2 = y , 1 = first derivative , ip_body )
3 = z , 2 = second derivative
fx_R0,fy_R0,fz_R0: resultant of fluid loads on the body indexed by ip_body in the Galilean
frame
f?_R0 ( ip_body , 0) : load on the whole body
f?_R0 ( ip_body , n°index sub-body) : load limited to the sub-body
fmx_R0,fmy_R0,fmz_R0: moment at the point O1tp_R0 of fluid loads on the body indexed by
ip_body
fm? ( ip_body , 0) : load on the whole body
T1_QS: release times, indexed by the DOF index and by the local index of body (ip_body)
3 = Tz
T1_QS ( 4 = Rx , ip_body)
5 = Ry
A source term of the momentum equation can be modified containing explicit contributions, such
as porous media, or other physical effects.
mybloc: index of the current computation bloc
nbody: number of defined bodies in the simulation
In FINE™/Marine flow solver, there is a local index of the bodies (which can be different from the
one defined in the identifier). If the simulation involves only one body, the index is 1 anyway.
Otherwise, two ways to find the local index of the body in the flow solver:
l using the pointer ID_ Body and the "body flag index" from the ".bcs" file from the
computation folder (which means the body flag index from the identifier).
ip_body = ID_Body(body flag index)
l or using the name of the body:
Name_Body: name of each defined body
do ip_body=1,nbody
At each new time step, the dynamic library is called once before entering in the non-linear loop with
the itnl variable equal to 0. Then, it is called at each non-linear with successive values 1,2,...
The source term dynamic library has the particularity of applying modifications on certain cells: it
can apply a source term on all cells in the mesh; on one particular domain or on cells that fulfill a
geometrical criterion. If the library is used in a parallel computation each partition will work on
the cells assigned to it. Hence we might need to compute the total sum of the source terms we
have applied over all partitions. To do that we need to use the tools provided by MPI.
The following subroutine needs to be added to the library, and can be used in the main subroutine
to compute the global sum of a quantity over all partitions. An complete example is provided
below.
subroutine my_glbsum(res)
include 'mpif.h'
double precision :: res,res1
call MPI_ALLREDUCE(res,res1,1,MPI_DOUBLE_PRECISION,MPI_SUM,
& MPI_COMM_WORLD,ierror)
res=res1
end
Linux compilation
Template files for compiling the libraries build_ Linux64_ *.sh can be found in _
data/isis/dynamic_lib/check_dynamic_lib/src_fortran in the installation folder. To use the MPI
capabilities the option -I needs to be added as follows:
FC=gfortran
/bin/rm *.so
$FC -c -fPIC -I INSTALLATION_PATH/finemarine7.1/LINUX/_mpi/_ompi1.6/include
momentum_source_term.f
$FC -shared -o isis_dynamic_lib.so momentum_source_term.o
/bin/rm *.o
Please adapt the paths according to your installation.
Template files for compiling the libraries build_ Windows_ win64_ *.bat can be found in _
data/isis/dynamic_lib/check_dynamic_lib/src_fortran of the installation folder. To use the MPI
capabilities the options -I and -L need to be added as follows:
del *.dll
PATH_TO_COMPILER\gfortran.exe -I"C:\NUMECA_
SOFTWARE\finemarine7.1\mpich2\include" -fno-range-check -c momentum_source_
term.f
PATH_TO_COMPILER\gfortran.exe -shared -static -mrtd -o isis_dynamic_lib.dll momentum_
source_term.o -L"C:\NUMECA_SOFTWARE\finemarine7.1\mpich2\lib" -lfmpich2g
del *.o
Please adapt the paths according to your installation.
Example
subroutine momentum_source_term()
<All variable declaration as in template, skipped here for clarity>
!Loop over all cells
do i=1,ncell
ipnt_face=IpntCF_CC(i)
iface=IndCon_CF(ipnt_face+1)
iflag=IndFace(IpFace(iface))
domain_index=iflag-(iflag/100)*100
! If domain index is 2 we apply a source term in X direction
if (domain_index.eq.2) then
src_user_u(i)=5.0
!Make the sum in this partition
ftot = ftot + src_user_u(i)*Vol_Cell(i)
else
src_user_u(i)=0
end if
end do
! Make sum over all partitions and print it to std file
call my_glbsum(ftot)
print*, 'Total source term applied: ', tc, mybloc, ftot
33.3 PROCEDURE
1. Copy the fortran routine that is needed (in this procedure "imp_eff_dyn.f90"is used) from the
folder "_data/isis/dynamic_lib/" that is stored in the installation folder into the project directory
normally.
It is advised not to copy these files directly into the computation directory (or at least a copy, or a
symbolic link) to avoid loosing the user-defined program if the computation is deleted later on.
This file should be copied in the folder where the Fortran routine is stored (project directory for
eg.).
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}
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.
All the basic Fortan functions can be used in the dynamic library. For instance, one can print
some information the in ".std" file. For instance:
if (mybloc.eq.1) print*,'Begining of the dynamic library imp_eff_dyn'
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
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))
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.
The script should contain the command open_project() to specify the project to work on.
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").
Script Recording Project/Script.../Save All... is used to save the dynamic recording of all
commands performed by the user since the beginning of its session. Project/Script.../Execute... is
used to run a python script file containing FINE™/Marine commands. A file chooser is opened to
select a file with a ".py" extension. Upon selection of a valid file, the script is executed in the current
session and the result is visualized in the graphical window. Depending on the content of the script,
operations will be added to the current project or a new project will be automatically opened before
operations are performed (the previous project is closed). If the script being run contains a syntactical
error it will be aborted and a message will appear in the shell. Project/Script.../Re-execute Last can
be used to rerun the last script that was run using the Project/Script.../Execute... command. This
option is most useful when writing own scripts manually to rapidly test it on the fly. The supported
commands for writing python scripts are described below, all other commands, even if recorded, are
not officially supported. All actions running in FINE™/Marine GUI cannot be all recorded as python
scripts. When replaying a python script that has been recorded automatically, it may be that the
graphics representations are not identical as in the initial session for instance.
All FINE™/Marine commands are available from the FM module. This means that they must be
accessed by default by using the FM prefix. All commands are defined in the python file FM.py. This
file is accessible in the installation directory INSTALL_DIR/_python/_fine/_marine/FM.py.
It is NumPy package provided to ensure the backward compatibility. Also, to support several tools developed
in Python, the plotting library Matplotlib has been added into FINE™/Marine starting from v3.1-2. Use of other
then provided together with FINE™/Marine package and results obtained are not officially supported by
NUMECA will stay under the responsibility of the user.
The next sections will present the list of supported macros. The ones which are not described are not
supported yet. The last section will be dedicated to dialog boxes creation to interact with scripts.
In this section
34.1 Macro Commands 613
34.2 Dialog Box Creation 669
Computations always requires patches definition (boundary conditions, body creation, etc.). To
provide a convenient access to patches, the BCPatch class has been added. The class can be
combined with other python commands.
l get_name(): gets patch name, e.g. 'Hull' or 'X_mirror'
l set_name(name): sets patch name
l get_block_patch(): gets block ID and patch ID
l get_bc_name(): gets name of boundary condition of this patch, e.g. 'SOL', 'EXT', 'MIR'
l get_bc_type(): gets type of BC and opsel, see Boundary Conditions for values of BC type
l set_bc_type(value): sets type of BC and opsel, value is a list of these two
l set_passive_scalar(on, value):management of the passive scalar for a patch, on is defined as
'True' if the passive scalar is active for the patch and in this case valuedefines the passive
scalar value on the boundary.
l get_passive_scalar():gets the relative information for a given patch (activation and value).
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.
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.
Example
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
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.
FM.set_active_computations([0, 1, (1,0)])
will select computation #0, #1 and the first sub-computation of computation #1.
l reset_computation(). Cleans all the files withing the active computation folder inside the
Project and saves the computation again to be ready to run the simulation. In the case of
success it returns an empty list. If it couldn’t remove folders of some computations, it returns
the list of names of such computations.
l move_computation_down() Moves active computation down by one position.
l move_computation_up() Moves active computation up by one position.
Example
set_active_computations([0, 1, (1,0)]) will activate the parent computations with the index 0,
index 1 and the first sub-computation of computation with the index 1.
l new_ computation (name): creates a new computation with specified name. Project
parameters are duplicated from the active computation.
l save_active_computation(): saves parameters of the active computation to sim-file. Saves
sub-computations, if any present. Can be also used within the Uncertainty Quantification
management; full list of commands for UQ is available in paragraph Uncertainty
Quantification.
Example
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 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.
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.
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.
For the enable_ preprocessing, enable_ solver, enable_ postprocessing command usage when
launching computations within machine network connection it is important to add hostnames of
used machines. Procedures to setup machines connection and how to add the hostname can be
found in the Task Manager. This action can be done only once for each machine. If the machine
hasn't been added to the Task Manager yet, FINE™/Marine GUI will try to add it without the
password.
l disable_ preprocessing (): disables preprocessing computation step and designate it to the
given machine.
l disable_solver(): disables solver computation step and designate it to the given machine.
l disable_postprocessing(): disables preprocessing computation step and designate it to the
given machine.
l set_ machines(k1, machine1, …, kN, machineN): sets machines for the solver with the
number and machine hostname as: machine number k1 has the hostname machine1, …,
machine number kN has the hostname machineN.
l save_queue_job(system, queue, jobname, mpi_version, mpi_path): saves the batch file for
the queuing systems: system can be SGE or PBS; queue corresponds to the pull-down box
Parallel Environment in Task Manager; jobname is a created queuing job name and
corresponds to the entry field Job Name in the Task Manager; mpi_version corresponds to the
box Binary type in the Task Manager; mpi_path is the path to mpi installation to use. It can be
the empty string (in that case mpi installation provided into the FINE™/Marine package will
be used), to check the version used please see the NUMECA_ MPI_ DIR variable in the
generated file. This macro also returns name of the saved batch file, where the file name
depends on the set of selected sub-tasks and the queuing system.
l submit_ queue_ job (system,batchfile) : submits the batch job file to the queuing system.
batchfile is the file name returned by save_queue_job.
Job status
l get_ status (tool) : returns running status of the tool from 'status.dat' file. tool can be
"postmetis", "hexpress2isis", "3dto2d", "premetis", "isiscfd", "isis2hexpress", "isis2cfview"
and "probes2cfview".
l get_ status (tool, param) : returns parameter value from the 'status.dat' file. too l can be
"postmetis", "hexpress2isis", "3dto2d", "premetis", "isiscfd", "isis2hexpress", "isis2cfview"
and "probes2cfview"; param can be "STATUS", "DATE", "NPART", "SAVE_
COUNTER". (not every tool have all parameters).Notice that status.dat' file is locked while
retrieving the data from it.
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.
l task_list(): Returns a list of all Task Manager tasks. The list consists of FM.Task instances.
l get_sim_file(): Returns the .sim file name of the current computation.
l add_task(simfile): add a task associated to the sim file to the Task Manager
l local_machine(): returns the local machine name
l add_machine(machine, arch): adds a host machine. Arch can be 'UNIX' or 'WIN32'
l Launch the current computation with default parameters: serial, on local machine:
t = FM.add_task(FM.get_sim_file()) #add task if none, then reset to defaults
t.launch()
l Launch the current computation on the current machine using n cores:
t = FM.add_task(FM.get_sim_file())
t.set_machines(n, FM.local_machine())
t.launch()
l Do not launch, just save batch file, use 2 cores in machine1 and 8 cores in machine2:
t = FM.add_task(FM.get_sim_file())
t.set_machines(2, 'machine1', 8, 'machine2')
filename = t.save_batch_file()
To avoid using pvm after this step, one can submit the job with os.system( filename)
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)
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)
patch = FM.get_bc_patch(2,4)
parameter = patch.get_parameter_value("Turbulent dissipation")
parameter.set_type("constant")
parameter.set_value(5)
patch.set_parameter_value("Turbulent dissipation",parameter)
l get_far_velocity(): gets the Far field velocity. The far field velocity settings are defined as
global parameters.
l set_far_velocity(x,y,z): sets the Far field velocity. The far field velocity settings are defined as
global parameters. x, y, z specify the coordinate components.
l get_FF_profile_type(block,face,patch): gets the Far Field profile type. Denotes interpolation
direction or "surface" for a surface profile
l set_FF_profile_type(block,face,patch,ptype): sets the Far field profile type. This profile type
will be used for all profiles associated with Far field parameters of the patch, if any.
l get_FF_velocity(block,face,patch): gets the Far field velocity data. Returns 3 pairs of values.
Example:
"constant" 4.6 "profile" "vinlet_01.p" "constant" 0
The first value in a pair is "constant" or "profile". If it's "constant", the second value is a real
number; if not, the second value is a filename, absolute or relative to the working directory.
l set_FF_velocity(block,face,patch,t_x,val_x,t_y,val_y,t_z,val_z): sets velocities of the Far
field patch. Arguments are the same pair that may return get_FF_velocity()
It is convenient to form arguments of set_FF_velocity as the separate list and then pass it to the
function as the variadic argument:
patches = [[1,4],[2,5]]
args = ["profile_data", "vinlet03.p", len(patches)]
for p in patches:
args.append(p[0])
args.append(p[1])
args.append("constant")
args.append(2)
args.append("constant")
args.append(-1)
FM.set_FF_velocity(1,1,7, *args)
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
Example:
grid_bc = get_grid_bc(1, 1, 2)
bc = get_bc_value(1, 1, 2)
l set_ initial_ solution_ computation (name): sets the name of the computation from which
active ones should be restarted
l get_initial_solution_computation(): returns the name of the computation from which restarts
the active one. The returned value can be "" if the computation is initialized by uniform values.
If the returned value is not "", it is the name of an existing computation
l set_initial_solution_type(restart): sets the computation as a restart computation if restart = 1.
Makes the computation start from uniform values if restart = 0
l set_ convergence_ accu (import_ history): allows to import the computation history of the
simulation used for restart: can be set to "YES" or "NO".
l get_initial_solution_turb_parameters(): gets initial solution parameters
l set_ initial_ solution_ turb_ parameters(level,value,length): sets initial solution parameters:
turbulence level, turbulence value, turbulence length.
l get_initial_turbulence(): gets initial turbulence level and frequency.
l set_initial_turbulence(level,frequency): sets initial turbulence level and frequency.
l get_initial_interface_position(): gets the interface position
l set_initial_interface_position(value): sets the interface position, if a multifluid computation is
used.
l get_initial_velocity(): gets initial velocity components.
l set_initial_velocity(vX,vY,vZ): sets initial velocity components vX,vY,vZ.
l restart_from_previous_computation(name,import_history): defines possibility to continue
a computation using the results from a previous computation. name specifies the '.sim' file of a
computation. import_history can be set to 0 or 1. If set to 1 (default), the convergence history
file, which contains all the residuals from the previous computation, will be used as the initial
conditions of the new computation. It is an optional parameter.
Example
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.17 Cavitation
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.
The variable for the Most likely value of "Beta" uncertainty type distribution is the same as for
the Average value of the "Gauss" uncertainty type: average .
l set_ uncertainty_ params (domain, face, patch, quantity, chaos_ order, distribution,
average, variance, min, max, profile): sets uncertainty parameter
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.
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):
Activation
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 = get_internal_wave_parameters(): gets the constructor containing the values set in the
computation. Available values:
l domain = param.get_domain(): gets the domain attached to the internal wave generator, by
its serial ID.
l spectrum = param.get_spectrum(): gets the type of waves to generate
l period = param.get_period(): gets the period for regular waves and the peak period for
irregular waves
l height = param.get_height(): gets the wave height for regular waves and the significant
wave height for irregular waves
l depth = param.get_depth(): gets the depth for all types of spectrum
l gamma = param.get_steepness(): gets the steepness for the JONSWAP and JONSWAP 3
PARAMETERS spectra
l filename = param.get_data_file(): gets the file path for the wave spectrum for the USER-
DEFINED spectrum
l x = param.get_source_x(): gets x coordinate of the wave generation source
l direction = param.get_direction(): sets the direction of wave propagation. BOTH_X is
only available for REGULAR spectrum
Note that if Overset is not activated for "Overset grid management" (p. 423) and Overset
continuity only criterion is set, it will be switched to Pressure Hessian (isotropic)
automatically, since Overset continuity only is applicable only for Overset type of projects.
l get_ overset_ domain_ type (blockID): returns type of the domain: OVERLAPPING = 1,
BACKGROUND = 2 or LINKED = 3.
l set_ overset_ domain_ type (blockID, site): sets the type of thedomain: OVERLAPPING,
BACKGROUND or LINKED.
Example: FM.set_overset_domain_type(0, FM.BACKGROUND)
34.1.23 Projection
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
l set_ transition_ model_ usage (active): enables the transition model if active is non- zero,
disables otherwise.
l get_transition_model_usage(): get 1 if the transition model is activated, 0 otherwise.
l set_transition_scheme(scheme, upwindc): sets the turbulence discretization scheme;
1 - "UPWIND"
2 - "HYBRID"
3 - "CENTERED"
4 - "AVLSMART"
5 - "GDS"
6 - "BLENDED"
7 - "SOU"
l upwindc specifies the level of up-winding.
l get_transition_scheme(): gets the transition discretization scheme.
l set_urex_intermittency(urex): sets the under-relaxation value for the intermittency.
l get_urex_intermittency(): gets the under-relaxation value for the intermittency.
a = FM.ResultsAnalyzer()
a.set_quantities(["Fx","Fz","Tz0","Rz0"])
a.track_averaging_on(1,0)
a.set_averaging_options(10,1)
a.set_Fx_doubling(1)
a.analyze("Convergence_report_21-06-2016_10h-49m-20s")
a = FM.ResultsAnalyzer()
a.track_averaging_on(1,1)
a.set_averaging_options(10,1)
sp = FM.SelfPropAnalysis()
sp.Rttow = 34.98
sp.SFC = 18.2
sp.open_water_file = '/home/user/open_water_file.dat'
sp.ship = ¨ship¨
sp.propeller = ¨propeller¨
sp.D = 0.23
a.set_self_propulsion(sp)
a.analyze("Convergence_report_19-04-2017_12h-09m-35s")
34.1.27 Outputs
Example 1
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 wording and options used throughout this section are directly taken from Tcl/Tk. The reader
is supposed to know basics of Tcl/Tk concepts. The following widgets can currently be
constructed from a python scripts:
l Entry
l Button
l CheckButton
l List
l ComboBox
l Label
These functions and classes aims at mimicking some functionalities of the Tcl/Tk toolkit. It is not
meant to provide extensive functionalities for creating advanced dialog boxes. Only a reduced subset
of features is provided. Any feature not described in the above commands is not available.
34.2.1 Classes
Variable Class
These objects are mostly used with RadioButton widgets to set and query the state of the buttons.
l Variable(value) constructs a variable with the specified initial value.
l setValue(value) sets the value of the variable.
l getValue() returns the value of the variable, as a string.
Command Class
Commands are typically assigned to buttons, entries, lists, etc... and are used to execute an action
when the user presses a button, types enter in the field,... Two constructors are provided:
l Command(function) constructs a command which takes a function as argument
l Command(object, member_function) constructs a command which takes an object and a
member function of its class. The member function must have no argument in its signature.
Example
class MyClass:
def __init__(self):
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
PanedWindow Class
A PanedWindow is a window that is divided into two vertically, with a separator that can be
moved by the user to resize the left or right area.
l PanedWindow(parent) constructs a paned windows in parent.
l getLeftFrame() returns the left frame of the window. The returned object is of type Frame.
l getRightFrame() returns the left frame of the window. The returned object is of type Frame.
NoteBook Class
NoteBooks allow to organise a dialog box in pages that can themselves contain widgets.
Label Class
Button Class
l Button (parent, text, command) constructs a button in parent with text appearing in the
button.
parent must be a container widget (see above)
command is an optional argument that can be either a function that requires no argument or an
object of type Command . Upon pressing the button, the command will be called
automatically.
CheckButton Class
CheckButton are buttons that can have two state: 0 (disabled) or 1 (enabled).
l CheckButton(parent,text,initValue,command) constructs a check button in parent.
parent must be a container widget.
text is the text at the right of the button.
initValue is the initial value of the button and can have the value 0 or 1
command is an optional argument that can be either a function that requires no argument or an
object of type Command. Upon pressing the button, the command will be called automatically.
RadioButton Class
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
List Class
ComboBox Class
The "Marine" module in HEXPRESS™ comes with various plugins including one to
automatically create an internal surface at a Z- constant coordinate. One can open the
corresponding python script in "NUMECA_ INSTALLATION/_ python/_ hexpress_
plugins/Marine/" to see how the script is build. Here is a description of the example (comments
are added and marked by a symbol "#").
Import required libraries: "Tk" for dialog boxes, "string" is dedicated to Python management and
"HXP" to enable HEXPRESS™ macro commands.
from Tk import *
import string
import HXP
The dialog box is defined in a dedicated class. This class will contain 2 separate functions "__
init__" and "apply". The first one defines the dialog box design whereas the second one gives
what the Apply button will do in HEXPRESS™.
class ZConstantDialog(DialogueBox):
def __init__(self):
close.pack(side="right") #the action "pack" will show the button and put it on the right
of the dialog box
apply.pack(side="right")
def apply(self):
Z = self.entry.getFloatValue() #"getFloatValue" gets the value entered for the entry "Z"
as a float
try:
domain = HXP.get_active_domain() #defines "domain" which contains a list of the
active domain
except Exception, value:
Warning(value.args[0])
b = domain.get_xyz_box() #returns the box containing the domain and stores the
information in the variable "b"
Under the Expert parameters tab of the Computation control/Control Variables page is a list of
non-interfaced expert parameters. As stated in the interface, these parameters should not be modified
unless explicitly stated in this manual. This chapter contains a list of all non- interfaced expert
parameters that are described in this manual. To get more information, please contact NUMECA
Support.
In this section
35.1 Actuator Disk 679
35.2 Adaptive Grid Refinement 679
35.3 Sliding grids 681
35.4 Computation Control 682
35.5 Roughness 683
35.6 Impose Velocity Ramp at Far Field 683
35.7 Information shown in the Task Manager (written in .std file) 684
35.8 Mesh Deformation Technique 686
35.9 Numerical Corrections 688
35.10 Coupling Parameters 690
35.11 Multi-fluid Smoothing 691
35.12 Output Data Management 692
35.13 Projection 693
35.14 Specific Numerical Parameters 693
35.15 Regular and Irregular waves 697
35.16 Modal approach 698
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
raffBlockAvg_ Displays average information over all blocks (if NO selected, the information will
be shown per block).
Default: YES
Modified: NO
raffCheckGrid_ Activates the check of the refined grid for the consistency of its connectivities
and the correctness of the interface and internode files. If the computation stops at this check,
please contact your local Support team sending the output file of the computation.
Default: NO
Modified: YES
raffConvBufferMax_ During the generation of convection buffer layers, the maximum number
of layers created is limited to this number.
Default: 12
>raffCritCiSmooth_ In principle, the criterion is calculated from the real volume fraction field,
which is nearly a discontinuity. However for the choice between directional and isotropic
refinement, the orientation of the water surface is needed and this orientation is calculated from a
smoothed volume fraction field. The number of smoothing steps can be specified, although the
default value of 2 is satisfactory. It is also possible to base even the criterion itself on the smoothed
field. This Eexpert parameter can be also applied with the default value through the
FINE™/Marine interface through the Adaptive grid refinement menu on the Control page by
activating the option Base free surface criterion on smoothed mass fraction.
Default: 2
35.5 ROUGHNESS
This approach will model the roughness or the fouling on the hull as a sand grain. See also the
section "Roughness" in the Theoretical Manual for more detailed information.
SandGrainHeight_: height of the sand grain, [m].
Default: 0.001
WallRoughness_Activates the roughness on solid walls.
Default: NO
Modified: YES
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
CIFarField_ Updates the mass fraction at far field boundaries. Advised for free surface
simulation of a body moving up or down with a rigid mesh deformation.
Default: NO
Modified: YES
CIStaticPressure_ Updates the static pressure at far field boundaries. Advised for free surface
simulation of a body moving up or down with a rigid mesh deformation.
Default: NO
Modified: YES
CIStreakCorrection_ Corrects the mass fraction in case of streaking problem.
Default: NO
Modified: YES
CIAggressiveStreakCorrection_ Corrects the mass fraction in case of specific streaking
problem. For instance, Planing regimes on configurations where the bow is not immersed, the
wetted area should be predicted more accurate. CIAggressiveStreakCorrection_ should be
activated together with the CIStreakCorrection_.
Default: NO
Modified: YES
CorrectCIInVL_ Corrects the mass fraction in viscous layers.
Default: YES
Modified: NO
FaceReconsGQNORT_ To increase the robustness of the code, a local criteria based on
geometrical considerations only will control the accuracy of the reconstruction on faces for the
computation of the gradient of any quantity. Explicit corrective terms coming from non-
orthogonality and misalignment of the grid will not be taken into account as soon as misalignment
and loss of orthogonality is detected below the threshold given by this expert parameter. The
proposed criteria is representative of the ratio between explicit and implicit terms. If used, the local
criteria will be taken into account as soon as the grid is modified (mesh deformation and/or grid
refinement). Implementation is done accordingly to the Theoretical Manual in detailed section
1.2.2.1 about considerations relatively to the norm of the "explicit vectors". Note: this criteria is
always active.
Default: 50.0
MaxAffectLayer_ Maximum number of viscous layers affected when the correction of the mass
fraction in viscous layer is active.
Default: 1000
If no viscous layers have been inserted, automatic computation will give MaxAffectLayer_ = 1.
uwCIcorrection_ Activates the under water correction (not advised in presence of spray and
suggested for bubbles of air, well below the free surface). It corrects the mass fraction according
to the pressure (normal stress) value: if
the mass fraction is supposed to be water. "c" is the under water coefficient described below and
"Zmean" is the mean value for Z computed on the wetted area of the body.
Default: NO
Modified: YES
uwCoefCorrection_ Under water correction coefficient (range [0,1]). A negative value can be
used to prescribe the exact value of pressure threshold. In other words, all cells above this
threshold will be considered as water.
Default: 0.3
Range: [0,1] or any negative value
VelocityClip_ Velocity clipping is available by switching this parameter to YES. In this case, the
solver will limit the velocity in all cells to the reference velocity (defined in the Flow model menu)
times the velocity clipping factor defined below.
Default: NO
VelocityClipFactor_ This parameter defines how many times the reference velocity can be
exceeded.
Default: 3
FullAddedMassMatrixUse_ The added mass matrix is in general a 6x6 full matrix. Some terms
can be null if the body has any symmetry plane. In such case, when an added mass coefficient is
specified for one D.O.F. it is similar to specifying only the diagonal terms of the matrix
corresponding to this D.O.F. All the coefficients can be used to relax the different D.O.F. together
in a coupled way, although testing have shown that considering only the diagonal term can be
sufficient fur such cases.
Default: NO
Modified: YES
AddedMassFactor_ Introduces the multiplicative factor to the computed added mass coefficients
matrix.
Default: 1.0
AddedMassMaxNonLinearIters_:Impose the maximum number of non-linear iterations for the
linear system resolution which contains explicit source terms. Can be applied for an Accurate
estimation mode only.
Default: 10
AddedMassMaxNonLinearGain_ Maximum convergence criteria in the non- linear system
resolution while solving the pressure field for the added-mass coefficients calculation.
Default: 0.001
AddedMassUnderRelax_Impose the under relaxation factor while solving the pressure field for
the added-mass coefficients calculation.Can be applied for an Accurate estimation mode only.
Default: 0.7
AddedMassMaxIters_ Maximum number of iterations in the linear system while solving the
pressure field for the added-mass coefficients calculation.
Default: 200
AddedMassMaxGain_ Maximum convergence criteria in the pressure linear system while
solving the pressure field for the added-mass coefficients calculation.
Default: 0.001
AddedMassIluLevel_ ILU level in the pressure solver while solving the pressure field for the
added-mass coefficients calculation.
Default: 1
AddedMassPressureFieldFile_ Saving the pressure field solved for the added-mass coefficients
calculation for each D.O.F.
Default: -
AddedMassConvergenceFile_ Saving the convergence file of the added mass calculations.
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
35.13 PROJECTION
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
RBF_ function_ controls the Radial Basis Function (RBF) interpolation used to handle the
computational domain deformation according to the solid body displacement.
Default: 4
WeightingModalCoeffsModifLaw_ Law of modification of the nodal weighting coefficient for
the mesh deformation for the fluid-structure interaction. When the weighting coefficient is equal to
1, the entire rigid deformation of the solid body is applied to the cell. On the contrary, for a value
of 0, the cell does not move.
Default: 0.8 .07
EXTERNAL TOOLS
This chapter describes the external tools available in the FINE™/Marine package. They are all available
in the FINE™/Marine installation folder.
Launching on Linux
On LINUX OS, they can be launched directly by typing the following command, thanks to the
NUMECA start script:
tool_name -niversion marine71 -print OR tool_namemarine71 -print
with # being the patch number.
Launching on Windows
On Windows OS, the user should specify the full path of the tool:
NUMECA_INSTALLATION_DIR/bin/isis64/tool_name.exe -print
A -local argument can be added to work with local files. The current working directory will be checked for
the necessary files. Please make sure that the tool can use this functionality by reading the list of available
arguments in this Chapter.
A -relative argument can be added to work with a relative path instead of the full path. Please make sure that
the tool can use this functionality by reading the list of available arguments in this Chapter.
Specifying the -auto option alone will work only when launching the tools from the computation folder
directly. Everything will be treated automatically with no input required. If it is important to launch the tool
from the directory other than the computation folder using the -auto option, the simulation file (.sim) directory
should be specified with the -sim= option.
In this section
36.1 introduction 700
36.1 INTRODUCTION
Rhinoceros® is a powerful CAD software widely used in the Marine industry. The FINE™/Marine
plug-in is designed to ease the export of geometries from Rhinoceros® to HEXPRESS™ using a STL
format (stereo- lithography). It makes your geometry ready for HEXPRESS™ and even for the
automated setup prepared by the C- Wizard. As an example, the patch naming process is perfectly
adapted for the use of the Refinement dictionary .
This export process is directly embedded in the Rhinoceros® interface through a new FINE™/Marine
menu. Three tools are proposed and documented in the following sub-sections:
l Export STL only
l Export and open HEXPRESS™
l Export and launch the C-Wizard
The plug-in is available under license. To upgrade your license, please contact your local software provider or
the NUMECA support office.
The license server version should be at least v11.14 . It is available in the FINE™/Marine package starting
from v7 or as a standalone in the Customer area.
Important information is written in the Rhinoceros® console, please widen it. Information written by the plug-
in starts with " > ".
Current limitations:
l The plug-in is limited to one single body as an input.
Monohull with appendages need to be merged into one single closed poly-surface.
Multihulls can only be treated in two configurations:
l If the deck joining the two hulls is modeled.
l If the starboard hull (with Y-negative) is deleted and the plug-in is set for a Half-body
computation.
l Thin surfaces in the geometry definition cannot be managed by the plug-in.
l The Export and launch the C- Wizard mode can only be used with the latest
modifications in the C-Wizard, hence with the last FINE™/Marine v7 package.
36.1.1 installation
The installation process of the plug-in is simple. Just follow the procedure:
l Close Rhinoceros®.
l Double click on the FINEMarine_Plugin.rhi file from the FINE™/Marine package (located
in _data\Script\), the installation process starts.
l Complete the installation process.
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.
This mode helps exporting a clean geometry from Rhinoceros® to HEXPRESS™ using the STL
format in few minutes.
The export process performs the following steps:
l Checking the geometry quality;
l Preparing the domain for half or full body computation;
l Triangulating the geometry;
l Naming the patches;
l Exporting in a single STL file.
If an export has already been performed, a new export will not overwrite the former file. The former
file will be incremented with a suffix _#.
Important information is written in the Rhinoceros® console, please widen it. Information written by
the plug in starts with " > ".
Current limitations:
l The plug-in is limited to one single body as an input.
Monohull with appendages need to be merged into one single closed poly-surface.
Multihulls can only be treated in two configurations:
l If the deck joining the two hulls is modeled.
l If the starboard hull (with Y negative) is deleted and the plug-in is set for a Half-body
computation.
l Thin surfaces in the geometry definition cannot be managed by the plug-in.
B. Domain creation
The plug-in is applying the FINE™/Marine guidelines concerning the recommended domain size
(see What are the best dimensions for the computational domain?) using the answers provided at
the two following questions:
1. Will the domain be in Half or Full body configuration?
This information will then be kept in the name of the created STL file with _hb for half body
configuration and _fb for full body configuration.
If the future computation will be performed on several speeds, taking the highest one allows to be
more conservative.
C. Boolean operation
In case of Half body configuration, the next operation to perform is the Boolean difference. In
case of Full body configuration, this operation is not performed. As the Boolean operations can be
difficult to perform in Rhinoceros®, two semi automated methods have been implemented and are
tightly coupled with the triangulation step.
l The first method is using the MeshBooleanDifference command, to first mesh the geometry
and then perform the Boolean difference on the mesh. In this method the plug-in is trying to
find the correct triangulation by itself. To overcome the instabilities of the Rhinoceros®
commands, the user is regularly asked if the Boolean operation has been correctly performed,
and also if the triangulation is fine enough to advance to the next step.
l The second method is using the BooleanDifference command and then the Mesh command.
This method is used if the first one fails. The drawback of this method is that it can require to
slightly move the geometry (around E-6 m) to make the Boolean operation work [2].
If a displacement has been performed, the information is reported in the Rhinoceros® console.
If none of the methods can achieve the Boolean operation, one should reconsider the input geometry.
In case of a Half body computation, this step is embedded in the previous one.
In case of a Full body computation, the following window will pop-up.
The meaning of each parameter is given in the Rhinoceros® meshing FAQ [ 3 ]. The most
efficient values to control the meshing are:
l density,
l minimum edge length,
l maximum distance, edge to surface.
The Preview button allows to visualize the mesh without moving to the next step. Press OK only
when the triangulation is satisfactory.
E. Patch naming
One of the main advantages of the plug-in is to be able to export a colored STL (with names).
After properly defining the triangulation, the patches need to be named. An initial list of names
following the refinement dictionary standards from the C-Wizard are proposed (see "Refinement
dictionary" (p. 125)). When two different selections have the same name (e.g. Deck), the recorded
name will get an incremented index _# (e.g. Deck_1 and Deck_2).
Pay attention if two patches are separated with a very thin patch!
Custom names can be entered by typing them. They are then recorded in the proposed list for an
easier use.
Do not click on another button in the Rhinoceros® interface during the patch naming. The name of
the command will mistakenly be taken as a patch name.
Once the last patch is entered, the following step is automatically starting.
If the export process doesn't start, it means that one or more (tiny) mesh part (s) have not been
entered. They can be found using the Rhinoceros® tools. Be careful if the tiny patches are not
connected.
The export process will now begin. At the end, a single file will be created. Depending on the
configuration (half or full body), the file will be named as follow:
l filename_hb.stl
l filename_fb.stl
The created STL file can now be properly imported in HEXPRESS™. While the process is fully
integrated when using the Export and open HEXPRESS™ or Export and launch the C-
Wizard mode, it is also possible to use the STL file outside the scope of the plug-in.
Import in HEXPRESS™
To fully use the features of the plug-in, it is important to import the STL using the names already
set in Rhinoceros®: activate the Use existing groups option in the STL import (STL Group
Tool):
FIGURE 36.4
Import procedure in HEXPRESS™ keeping the names
G. References
[1] https://www.rhino3d.com/
[2] https://wiki.mcneel.com/rhino/booleanfaq
FINE™/Marine and HEXPRESS™ needs to be installed on the same machine to use this mode.
If an export has already been performed and the STL file hasn't been moved or renamed, the plug-in
will detect it. It is then proposed to proceed to HEXPRESS™ using the existing file or to perform a
new export.
Performing a new export will not overwrite the former file. The former file will be incremented with
an _#.
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 the C-Wizard using the existing file or to perform a
new export.
Performing a new export will not overwrite the former file. The former file will be incremented with
an _#.
36.2.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.
FIGURE 36.5
Illustration of a problematic case where water is considered inside the body
l For a simple cube in 2D, "domhydro" cannot distinguish a 2D from a 3D configuration. In this
case, one can force the check with the argument -dim=2 or -dim=3.
l For a 3D cube, adding a vertex to each edge of the cube makes it possible for "domhydro" to
recognize the 3D configuration.
domhydro can be launched with a geometry non-aligned with the Cartesian axis as long as this
configuration is in hydrostatic equilibrium. In addition, domhydro can consider these initial angles
as Cardan angles to provide the user with the inertia matrix in that reference frame.
Two modes are implemented in this tool: h2p and p2h. Each one has its own objective described
below:
l h2p: in this mode, the body is assumed to be at the hydrostatic position. As a result, the tool
provides extra information on the body's characteristics. They are listed below:
l Wetted surface: total and projected (on the XZ-plane)
l Water plane area
l Total volume
l Immersed volume
l Volume in the air
l Mass
l Center of buoyancy: X(CoB), Y(CoB), Z(CoB)
l Center of gravity: X(CoG) Y(CoG) Z(CoG)
l Estimated center of gravity with respect to the wetted body surface
l Estimated center of gravity with respect to the entire body surface
l Estimated Inertia tensor with respect to the wetted body surface: I(CoG)|(x,y,z)
l Estimated inertia tensor with respect to the entire body surface: I(CoG)|(x,y,z)
l p2h: in this mode, the parameters of the body are known (mass, position of the center of
gravity), and the tool computes iteratively the hydrostatic and the equilibrium positions.
The equilibrium position corresponds to the hydrostatic position with all the degrees of freedom
free. Indeed, one can decide to freeze one or several degrees of freedom to compute the
hydrostatic position.
In p2h mode, the tool computes the following information, including the rotation and the
translation to apply on the domain in HEXPRESS™ if necessary (one can use the 'Move Part'
feature, see HEXPRESS™ User Manual to know more about it):
l Rotation axis
l Rotation angle
l Point of rotation (gravity center)
l Vertical translation
l New position of the gravity center
l Cardan angles (Yaw Rz0, Pitch Ry1, Roll Rx2 in final position (deg.))
In both modes, the outputs are written in a file called 'domainfilename _domhydro_ mode _b#.out'.
The template is always the same and "domhydro" writes NA in case the parameters were not
computed by the selected mode and "b#" indicates the index of the body.
l Domhydro tool also allows to determine the forces and moments applied to a body for a user-
specified additional modification of orientation (e.g. it calculates the forces and moments
associated with a roll angle of 2 degrees). This can be done by employing the '-hip' function:
This function can only be called in the batch mode, by adding '-hip'.
"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.
The tool must be launched from the shell and some inputs are requested. All these information are
required and must be given to the tool. However, default values are automatically chosen for the
specific mass of the fluids and the gravity intensity. They can be overwritten using arguments,
given in the list below. Furthermore, arguments can also be used to run the tool in a script. For
instance,
In Linux:
domhydro -niversion marine71 -print <-arg1=> ... <-arg2=> ...
In Windows OS:
C:\...\finemarine71\bin\isis64\domhydro.exe -print <-arg1=> ... <-arg2=> ...
The units to be used in domhydro are: length in m; angle in deg.; mass in kg; density in kg/m3 ;
gravity in m/s2; force in N; moment in N•m.
The complete list of inputs and their respective arguments are given below. If the arguments are
not given when typing the command, questions will be prompted in the shell.
Project configuration
Points tolerance
This tolerance should have the higher order when the fine domain triangulation has been applied.
Body configuration
-idb= : body index (integer) - the index corresponds to the "#" from all the "_b#" added in the
boundary condition menu
-geom= : eb (entire body) or hb (half body)
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)
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
Expert parameters
Function application will require from the user the following information.
Body configuration
l body index (integer) - the index corresponds to the "#" from all the "_ b#" added in the
boundary condition menu
l entire body (eb) or half body (hb) geometry
Cardan angles
Geometry configuration
E. Examples
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
In case the boat is not in its primary configuration, values different from 0 should be entered for
the initial Cardan angles.
l additional modification of the orientation (deg.): D_Rz0 D_Ry1 D_Rx2, with D_Rz0=0
D_Ry1=0 D_Rx2=2, which corresponds to the new orientation of the boat.
2. "domhydro" returns the new hydrostatic position of the boat and the domain transformation to
apply in HEXPRESS™ to put the boat in its new position, including the new Cardan angles.
In case the boat is not in its primary configuration, the corresponding values should be entered
for the initial Cardan angles.
Here is an example of a computation of a hydrostatic position. The case is a cube with the
following characteristics:
l center of gravity coordinates: (0,-1,-3), mass: 2000 kg, dimensions: 2x2x2m, centered on point
(0,0,0).
l gravity: -10 m/s², water density: 1000 kg/m³, air density: 0 kg/m³
l follower force with intensity (0,14142.136,-14142.136) N is applied on the application
point with coordinates (0.,3.,1). The result is illustrated below:
FIGURE 36.6
Follower force
36.2.2 setup_infos
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™.
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.
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
hexpress2isis
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.
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
These mesh files cannot be loaded in the FINE™/Marine interface (HEXPRESS™ meshes only).
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.
3dto2d
The FINE™/Marine flow solver has the capability to do a computation on a 2D mesh. However,
HEXPRESS™ always generates a 3D mesh with one cell in Z-direction. This tool offers the
possibility to transform the "false" 2D mesh from HEXPRESS™ into a "true" 2D mesh (no cell
in the Z-direction) by applying a transformation on the nodes and faces files (grid files for
FINE™/Marine flow solver created by "hexpress2isis"). The computation will be then much
faster.
This tool is still present for backward compatibility and does no action by default. If one still wants to
impose the 3D to 2D conversion, the "-FORCE" option should be used. In that case, the 2D mesh files
will be stored in the "_mesh" folder.
Indeed, starting from v2.3-0 of the package, the conversion is automatically performed by the
flow solver when a pseudo-2D configuration is detected and when adaptive grid refinement
method is not active. Consequently, 2D mesh files are never saved in "_mesh" folder anymore.
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
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
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
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.
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:
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.
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.
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)
Starting from v2.3, - sim= can be omitted for batch scripting, even if it still works with -sim= option
as well. The designed behavior is the following:
1. Use the ".sim" file specified by the -sim= option when this option is given,
2. If -sim= option is not given, then check the existence of "Current_Folder.sim" file. If this
".sim" file exists, then use it. Otherwise, ask the user to give the ".sim" file interactively.
36.8.1 extract_wall_surface_grid
This tool extracts the data from the wall surface grid from the wall_data.bin file. It can be used to
extract the friction force from the solid walls.
This tool computes forces and moments by section on a body. The body marching is assumed to
be in the X-direction by default but one can change it using -cut=y or -cut=z arguments. The body
is then divided into N sections, from Xmin to Xmax (minimum and maximum X-coordinates
respectively) along X-direction, separated by a ΔX computed by the formula:
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
The 'forces_ by_ section' tool can be launched only on the same platform as the one used for the
computation.
The following data files are required for the tool: "current_part_number.dat" (in case of a parallel
computation), "wall_surface_grid.bin" (in case of a parallel computation, see Wall Surface Grid for
more information), the file "wall_data.bin" or "wall_data.cpr" (found in the bxxx partition folders in
case of parallel computation, see Output Data for more information) and the computation ".sim" file.
The number of sections available in this tool is limited by the maximum cell size of the target body
or sub-body. Any cell can not be cut by more than one time. As big cells are usually can be placed on
the deck area, creating a sub-body without the deck will allow to increase the number of sections.
36.8.3 isis2cfview
This tool converts FINE™/Marine flow solver results to CFView™ format. Available options for
"isis2cfview" are:
-help : Display this help information
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.
If there is any strange behavior observed on the pressure field near the solid wall, especially at the
edge of a surface, this may due to the new unbounded interpolation. In this case, use "- average"
argument.
Starting from v2.3, - sim= can be omitted for batch scripting, even if it still works with -sim= option
as well. The designed behavior is the following:
1. Use the ".sim" file specified by the -sim= option when this option is given,
2. If -sim= option is not given, then check the existence of "Current_Folder.sim" file. If this
".sim" file exists, then use it. Otherwise, ask the user to give the ".sim" file interactively.
For users working in batch, an equivalent tool exists. It performs all the default operations
automatically (which means that no question are prompted to users). Its name is "isis2cfv_ no_
interactive" and should be launched from the computation folder when the computation is over.
To gain time, "isis2cfview" now is not calling "isis2hexpress" when it is not needed (no mesh
motion/deformation: no motion imposed, no Adaptive grid reginement applied, for instance). For
the reconstruction a .cfv file is created with the relative path to the HEXPRESS™ mesh:
"project_folder/_mesh/mesh_name.hex"
Since this, it is recommended to store the mesh always inside the "project_ folder/_ mesh"
directory, otherwise the path should be defined manually.
Use - keep_hex option to skip the "isis2hexpress" mesh conversion with the limitation that the
hexpress mesh needs to be found in the "project_name/_mesh" folder.
36.8.4 isis2cgns
This tool converts FINE™/Marine flow solver results to unstructured CGNS binary format
containing information about the mesh, surface and volume data. The data are node centred.
Available options are:
This tool uses the files "Hexa_ Cell_ Topology.bin" and "faces_ 4tecplot.cpr" generated by
"hexpress2isis" if the mesh has been generated by HEXPRESS™. For this purpose, the expert
parameter called thirdPartyPostProc_, should be set to "YES" in the interface.
36.8.5 isis2ensight
This tool provides the post-processing data in Ensight 6 binary format. Please use "postmetis" first
to concatenate the results of parallel computations.
As polyhedron element is not supported by Ensight 6, special face connectivity file ("faces_
4tecplot.cpr" for instance) needs to be generated during the mesh conversion step using the tool
"hexpress2isis". The data file "Hexa_ Cell_ Topology.bin" generated by "hexpress2isis" is
mandatory for "isis2ensight"and it must be located in the current folder. The data are node
centered.
This tool uses the files "Hexa_ Cell_ Topology.bin" and "faces_ 4tecplot.cpr" generated by
"hexpress2isis" if the mesh has been generated by HEXPRESS™. For this purpose, the expert
parameter called thirdPartyPostProc_, should be set to "YES" in the interface.
36.8.6 isis2fv
This tool provides the post-processing data in FieldView 11 binary format. Please use "postmetis"
first to concatenate the results of parallel computations.
It is possible to use polyhedron elements. Besides, both volume and surface data are supported.
Surface data are the exact surface data used in the computation except at the solid wall where the
value close to the wall is applied. The data are cell centred for the surfaces and node centred for
the volume.
36.8.7 isis2hexpress
This tool converts FINE™/Marine flow solver mesh to HEXPRESS™ format in case of moving
grid. Available options are:
-help : Display this help information
-local : Work in current folder
-relative : Work with relative path
-sim= : Specify the .sim input data file
-mesh= : Specify HEXPRESS™ mesh file
36.8.8 isis2hexpress_concat
This tool is used automatically by "isis2cfview" to reconstruct a ".hex" file in case of adaptive
grid refinement. But it can also be used to reconstruct a ".hex" file based on FINE™/Marine flow
solver mesh files only. It can be useful for users who want to reconstruct the final ".hex" even if
they have lost their original ".hex" files for instance. Available options are:
-help : Display this help information
-local : Work in current folder
-relative : Work with relative path
-sim= : Specify the .sim input data file
-mesh= : Specify HEXPRESS™ mesh file
-new_mesh= : Specify the new HEXPRESS™ mesh file
-isis_mesh= : Specify FINE™/Marine flow solver mesh file (probe only)
-isis_face= : Specify FINE™/Marine flow solver faces file (probe only)
-isis_fsister= : Specify FINE™/Marine flow solver face sister pointers file (probe only)
-body_ts= : Identifier of the traveling shot body (0 in case there is no body for traveling shot)
-dof_ts= : Activated degrees of freedom for the traveling shot (Tx Ty Tz Rx Ry Rz), 1 means
active, 0 inactive.
This tool is still present for backward compatibility purpose. Please check "isis2tec360" tool for the
newest version.
This tool provides the post-processing data in Tecplot 7 ASCII format. Please use "postmetis"
first to concatenate the results of parallel computations.
As polyhedron element is not supported by Tecplot 7, successful conversion is not always
ensured. Hence, a special face connectivity file ("faces_ 4tecplot.cpr" for example) has to be
generated during the mesh conversion step using "hexpress2isis".
"isis2tec" searches in the current folder a file called "Hexa_Cell_Topology.bin" generated by
"hexpress2isis". If this file is found, output post- processing data contains only hexahedron
elements. Is this file is not found, non-conform element is splitted into tetrahedron element.
Surface data and 2D data are supported. However, surface data are not exactly the surface data
employed in the computation, but the extrapolated value from inside the domain.
To create the files "faces_ 4tecplot.cpr" and "Hexa_ Cell_ Topology.bin" automatically, the expert
parameter called thirdPartyPostProc_, should be set to "YES" in the interface.
Starting from v2.2-2, a least squared interpolation based on linear base function is employed to
preserve linearity of the solution. However, as for any high order interpolation scheme, under-shot
and over-shot may happen. When such behavior is observed, "isis2tec" switches back to simple
average except for the pressure field. Also, when the grid aspect ratio is too high (grid aspect ratio
> 50), simple average is used except for the pressure.
At the wall, the solution is interpolated using the value defined at the wall as well as the value
defined in the cell center position next to the wall. Hence, for low Reynolds number model,
velocity at the wall is not equal to zero.
When using wall function, as the velocity field is discontinuous, interpolated velocity field at the
wall is used.
At the edge of the mesh, as numerical solution is not defined in the edge, extrapolation is used and the
result may be not correct. Hence, if one performs Pdyn=P+ρgz and visualize Pdyn, there can be some
kinks. This is not an interpolation problem but a boundary condition itself. To visualize the dynamic
pressure (Pdyn), it is better to output this quantity directly from the code.
This tool provides the latest compatibility with Tecplot360 post-processing software.
This tools uses the FINE™/Marine flow solver mesh files (nodes and faces generated by
"hexpress2isis" or nodes and faces generated by the flow solver when the refinement is checked).
"isis2tec360" does not use a special connectivity file, as "faces_4tecplot.cpr" for example. And, it
is not necessary to check the expert parameter called thirdPartyPostProc_ in the interface.
The flow quantities in the flow solver are stored at the center of cells. "isis2tec360" used a least
squared interpolation to write the flow quantities at the nodes of the mesh. At the wall, the
solution is interpolated using the value defined at the wall as well as the value defined in the cell
center next to the wall. Hence, for low Reynolds number model, velocity at the wall is not equal
to zero.
"isis2tec360" write the data into Tecplot's binary format if the suffix of the files is ".plt" and in
Tecplot's ASCII format is the suffix of the files is ".dat". The volume and surface files can have a
different suffix.
Before to use "isis2tec360", please use "postmetis" first to concatenate the results of parallel
computations. Otherwise, please use the "-auto mode" (recommended). Here is the complete list
of arguments:
-help= : Display the help information
-local= : Work in current folder
-sim= : Specify the .sim input data file
-tec_vol= : Specify the Tecplot volume file
-tec_surf= : Specify the Tecplot surface file
-auto : Default actions only
-mean : Post-processing for mean flow only
-probe= : Post-processing for probe files only
-isis_mesh= : Specify FINE™/Marine flow solver mesh (probe only)
-isis_face= : Specify FINE™/Marine flow solver faces file (probe only)
-isis_fsister= : Specify FINE™/Marine flow solver face sister pointers file (probe only)
-average : Use simple average interpolation
-body_ts= : Identifier of the traveling shot body (0 in case there is no body for traveling shot)
-dof_ts= : Activated degrees of freedom for the traveling shot (Tx Ty Tz Rx Ry Rz), 1 means
active, 0 inactive.
By default, launching "isis2tec360" with the option -auto provides the following outputs:
l velocity,
l pressure,
l Y+
l turbulence quantity variables.
To add other outputs "isis2tec360" should be used without the option -auto.
Wall shear stress is added in the list starting from the FINE™/Marine v5.1 release.
36.8.11 isis2vtk
This tool converts FINE™/Marine flow solver results in the VTK(Visualization ToolKit) Binary
Appended .vtu Format. VTK supports a wide variety of visualization algorithms including: scalar,
vector, tensor, texture, and volumetric methods; and advanced modeling techniques such as:
implicit modeling, polygon reduction, mesh smoothing, cutting, contouring, and Delaunay
triangulation.
The "-auto" mode is recommended to be applied for this tool. Below is the complete list of
arguments provided:
Available options
-help : Display this help information
-local : Work in current folder
-sim= : Specify the .sim input data file
-vtk_vol= : Specify the volume VTK file
-vtk_surf= : Specify the surface VTK file
-vtk_format= : Specify the file format (ASCII or BINARY)
-vtk_standard= : Specify the VTK standard (LEGACY or XML)
-local_vtm: Save the VTM files in the current folder in the case of XML
VTK standard
36.8.12 post_surface
Post-treatment of the surface probe files (for both serial and parallel computations) is done with
the tool "post_surface". This tool gives global surface files as output, in different possible formats.
Currently available formats are CGNS, Tecplot and STL. This tool is used during the automatic
reconstruction of an unsteady computation with surface probe. It can also be used manually to
reconstruct the "wall_data.cpr "file.
36.8.13 probes2cfview
probes2cfview is the reconstruction tool available in serial mode starting from v2.3-0 and in
parallel mode starting from v3.1-3. It allows to reconstruct an unsteady solution within CFView™
starting from all intermediately saved probes computed by the FINE™/Marine flow solver into
readable solution files for CFView™. The tool is automatically launched by GUI with the settings
defined by the user in the post-processing management window (see Post-Processing) but can be
also used in batch.
FINE™/Marine should be installed and available through numeca_start script (it corresponds to
the default installation, see Installation Note for more information).
On Windows OS, the user should specify the full path of the tool:
Create a text file containing the command line and save it with extension ".bat". Copy it to the
computation folder where it needs to be used and double click on it to execute it. The "pause"
command can be added to keep the command line window open after execution showing any
error messages that may occur.
l Example content for .bat file to launch isis2cfview:
NUMECA_INSTALLATION_DIR\bin\isis64\isis2cfview.exe -print
pause
l Example of content for '.bat' file to launch probes2cfview:
python NUMECA_INSTALLATION_DIR\bin64\probes2cfview.py
pause
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 script creates a log file, running from GUI or in batch. The default name of this file is
"reconstruction_script.log".
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.
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.
To launch probes reconstruction in parallel the same probes2cfview tool should be used, but from
now on the hosts definition file and the launcher should be defined. Using the parallel option
decreases the time used for the reconstruction and will depend on the OS profile and the hardware
configuration. Please note, that in case of a machine network, performance of the parallel
reconstruction can also dependent on the speed of the connections within the network.
Steps to follow:
1. Create the machines file (for instance, "machines_ reconstruction.txt") in the computation
directory consisting machines host names that will be used for the probes reconstruction. File
should have the same structure as "machines.txt" file for parallel computation management.
Please see Launch FINE™/Marine flow solver in Parallel using Scripts for more details.
2. Launch the tool specifying machines file and the launcher type, for instance as follows:
probes2cfview -niversion marine# -print -machines machine_reconstruction.txt -launcher
openssh
If -niversion was not specified, the tool will define the version based on the directory structure of
the FINE™/Marine installation.
If no launcher type was specified probes2cfview will use nirsh as included in the
FINE™/Marine installation.
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.
A. Description
This tool is essentially dedicated to be used as post-processing data into CFView™ but also for
potential codes for extra computations using the wake flow. It allows to interpolate the
computational result to a propeller inflow plane in the wake.
When applied to a configuration with half domain, it is assumed that the y-mirror plane is y=0.
See CFView™ User Manual for details about Plot3D format import.
Where to find it
The tool can be directly launched from CFView™ interface under the Macros menu. In that case,
you can refer to Wake Flow Tool.
It can also launched in batch as described here below.
FIGURE 36.8
Arguments 1: -rp1=0 -h=0
FIGURE 36.10
Arguments 3: -rp1=3 -rp2=6 -h=0.4
l It is possible to output the data in preferred format using the user-defined dynamic libraries.
E.g., the following Fortran code will output an *.AWESOME file:
iunit=20
open(UNIT=iunit,FILE='wake_flow.AWESOME',STATUS='unknown')
write(iunit,*)'Zone I=',nt,'J=',nr
do i=1,nr
do j = 1,nr
write(iunit,'(9e15.6)')&
xo(i,j),yo(i,j),zo(i,j),&
uo(i,j),vo(i,j),wo(i,j),&
u_a(i,j),u_t(i,j),u_r(i,j)
end do
end do
close(iunit)
All double precision arrays except r_1d and angle_1d are 2D arrays with ( nr,nt) as dimension. All
arguments are of (Int) type.
To use this dynamic library copy the text into a '*.f90' file and modify it to have the desired
output. You will find the step by step procedure on how to compile it in the Procedure section.
Once you have the compiled library "isis_dynamic_lib.so", copy it into the computation directory.
When launching the wake flow tool from a shell or from the CFView GUI the library will be
detected and the user-defined output ('wake_flow.AWESOME' in this example) will be written.
The "Wake_flow_pp" tool imports the necessary data from the '.sim' file:
1. Imposing the default values by using the "-auto" option:
In this conditions, the ship's speed is used as a referenced velocity and the propeller diameter is
set to twice the outer radius. For a Fixed Body computation, the specified in the '.sim' file
reference velocity will be used for normalization.
Propeller diameter and ship speed can be specified by the "- D=xxx " and "- V=xxx " options
respectively.
E.g., to obtain the wake flow without any normalization, the User can launch the "wake_flow_
pp" tool with the "-D=1 -V=1" parameters set. Other data will be imported directly from the
'.sim' file.
2. If no actuator disk is defined in the '.sim' file, the tool will ask for the following input:
l Center of the wake flow plan: X, Y and Z coordinates of the actuator disk center. It will be
the center of the wake flow plane;
l Inner and outer radius of the propeller: inner and outer radius of the wake flow plane;
l Propeller diameter
l Normal vector of the wake flow plan (pointed towards the wake): X, Y and Z components
of the normal vector of the wake flow plane;
l Distance of the wake flow plane to the propeller: distance between the center of the
actuator disk and the wake flow plane;
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.
Propeller diameter and the reference velocity are used in this case for normalization only.
"PROPELLER CODE" option can be also specified in the '.sim' file (see the "Propeller code
coupling" (p. 306) section for details).
For this case, the wake flow will be interpolated in front of the propeller at the distance
prescribed in the '.sim' file. Otherwise, the wake flow is interpolated at the propeller plane.
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".
This python script, stored in "_ data/cfview/" folder from the installation directory, allows to
reconstruct an unsteady solution, readable within CFView™ starting from all intermediately
saved probes computed by the FINE™/Marine flow solver into readable solution files for
CFView™. The key features are listed below:
l Easy reconstruction launched with few inputs,
l All available probes from FINE™/Marine v2 are selectable for reconstruction,
l The computation can be done in sequential or parallel mode, with fixed, imposed or solved
motion, as well as grid adaptation,
l The user can choose to work with the "-local" option if required to work locally.
Limitations
l All the probes should be saved at the same interval (both iteration and time intervals are
supported),
l "Time Label" in CFView™ will give you the index of the probes list and not the actual value
of the time step,
l A restart in a different computation cannot be postprocessed. As a possible workaround, one
can restart in the same computation folder (the duplicate option can also used to keep an
intermediate backup).
Requirements