Вы находитесь на странице: 1из 348

IGG ™

Interactive Grid Generator

User Manual

contains:

IGGTM v4.9

NUMERICAL MECHANICS APPLICATIONS


IGG ™
User Manual
Version 4.9-c (April 2005)

NUMECA International
5, Avenue Franklin Roosevelt
1050 Brussels
Belgium

Tel: +32 2 647.83.11


Fax: +32 2 647.93.98
Web: http://www.numeca.com

NUMERICAL MECHANICS APPLICATIONS


Contents

CHAPTER 1: Getting Started 1-1


1-1 What is IGG™ ? 1-1
1-2 Structure of the Manual 1-2
1-3 Installation and Settings 1-2
Basic Installation 1-2
Platform Compatibility 1-3
Expert Display Options 1-3
Graphics Driver 1-3
Background Color 1-3
1-4 How to Start IGG™ Interface 1-4
1-5 Terms and Concepts 1-5
Block Shape Control 1-5
Grid Control 1-7
Internal Grid Lines 1-8
Internal Faces 1-9
Block, Face, Edge, Segment Numbering and Active Entities 1-9
Grid Generation 1-11
Boundary Conditions 1-12
1-6 Visualization 1-13
Geometry 1-13
Grid 1-13

CHAPTER 2: IGG™ Graphical User Interface 2-1


2-1 Overview 2-1
2-2 GUI description 2-2
Menu bar 2-2
Toolbar 2-3
Quick Access Pad 2-4
Control area 2-5
Message area 2-6
Keyboard input area 2-6
Mouse coordinates 2-6
Information area 2-6
Grid parameters area 2-7
Viewing buttons 2-7
X, Y, and Z projection buttons 2-8
Coordinate axis 2-8
Scrolling 2-8
3D viewing button 2-8
Rotate about x, y or z axis 2-9
Zoom in/out 2-9
Region zoom 2-9
Fit button 2-9
Original button 2-9
Cutting Plane 2-9
Graphics area and views 2-10

IGG™ i
Contents

2-3 GUI interaction 2-11


Keyboard short cuts 2-11
Default mouse bindings 2-14

CHAPTER 3: Meshing fundamentals 3-1


3-1 Introduction 3-1
3-2 Basic Block Creation 3-3
Creating a block defined by two opposite vertices 3-3
Creating a block by its eight vertices 3-3
Creating a block by extrusion from an existing block 3-4
Creating blocks by duplication of existing block(s) 3-5
Block extension 3-6
3-3 Block Shape mapping 3-8
Moving a vertex 3-8
Adding and deleting vertices 3-9
Vertex Snapping 3-10
Vertex locking 3-11
Edge Mapping 3-11
Edge mapping onto disjointed curves 3-12
Edge mapping on surface 3-13
Faster vertex movement 3-13
3-4 Edge grid control 3-14
Fixed Point Control 3-15
Segment Control 3-16
3-5 Face generation 3-19
Face generation by bilinear interpolation 3-19
Face projection 3-20
Mapping onto a surface 3-21
Finer control on the face generation 3-21
Face generation history and face regeneration 3-22
History visualization 3-22
Face regeneration 3-23
3-6 Block generation 3-24
3-7 Internal edges 3-25
3-8 Internal faces 3-27
3-9 Defining patches and boundary conditions 3-28
3-10 Connections 3-30
Patch connections 3-30
Matching and non matching connections 3-30
Full non matching connections 3-33
Topological connections (vertex, edge, segment) 3-35
Vertex connection 3-35
Orphan vertex connection 3-36
Topological edge connection 3-37
Segment connection 3-37
Connection tools 3-37

ii IGG™
Contents

Connecting face grids 3-38


Full non matching connections 3-39
Disconnecting entities 3-40
Visualizing connections 3-40
3-11 Blocks grouping 3-42
Block groups usage 3-42
Managing groups 3-42

CHAPTER 4: Basic Tutorials 4-1


4-1 Overview 4-1
4-2 Geometry Tutorial 4-2
Curves creation 4-2
Curve selection 4-3
Curve visualization 4-3
Curve Saving 4-5
Surface Creation 4-5
Creation of a lofted surface 4-5
Creation of a Coons patch 4-6
Creation of a surface of revolution 4-7
Surface visualization 4-7
Surface selection 4-8
Adding curves to the surface 4-8
4-3 Grid generation tutorial 4-10
Case description 4-10
Project configuration 4-12
Importing and creating the boundary curves 4-12
Importing the pressure and suction sides 4-13
Creating boundary curves 4-13
Creating and placing the block 4-13
Grid points clustering 4-17
Clustering the boundary layer area 4-18
Clustering in the wake area 4-19
clustering in the leading and trailing edges areas 4-20
Grid Generation 4-20
Boundary condition settings 4-22

CHAPTER 5: Butterfly mesh 5-1


5-1 Introduction 5-1
5-2 IGG™ butterfly implementation 5-3
Terminology 5-3
Generation method 5-3
Butterfly shape control 5-4
5-3 Butterfly dialog box 5-8
"General variables" frame 5-9
Preferential direction 5-9
Buffer blocks 5-9

IGG™ iii
Contents

Creation from uniform clustering 5-10


"Section control" frame 5-11
Section number ID 5-11
Preferential direction buffer depth 5-11
Radial depth 5-11
Control points parameters 5-13
Section interactive control 5-13
"Clustering" frame 5-14
Number of radial points 5-14
Radial clustering 5-14
Clustering reciprocity 5-15
Butterfly command buttons 5-16
5-4 Butterfly management 5-17
Creation specificities 5-17
Blocks naming and numbering 5-18
Interaction with the butterfly topology 5-18
Forbidden operations 5-20
Visualization of butterfly blocks inner mesh 5-21
Cells volume calculation 5-22
Grid quality checking 5-22
Butterfly regeneration when using template 5-22
Block transformation 5-23
Block duplication 5-23
Imposition of an initial solution in FINE™ 5-23
Current limitations 5-24

CHAPTER 6: Templates and Scripts 6-1


6-1 Introduction 6-1
6-2 Templates 6-2
Introduction 6-2
Fundamental assumptions 6-2
Using the template option 6-3
Analyzing the input geometry 6-3
Creating the template project 6-3
Geometry options 6-3
Grid options 6-4
Vertex positioning 6-4
Replaying the template on the modified geometry 6-4
Troubleshooting 6-5
Input file format 6-5
6-3 Scripts 6-6
Introduction 6-6
Python Language Overview 6-6
Adding Commented Lines 6-6
Support for Mathematical Operations 6-6
String Handling 6-7
Lists Handling 6-7

iv IGG™
Contents

Control Flow 6-8


Function Definition 6-8
File Handling 6-9
Error Handling 6-9
Creating and Using Modules (library of functions) 6-9
Running a Script File 6-10
IGG™ Script Commands 6-11
Project Commands 6-11
Geometry Commands 6-12
Global Functions 6-12
Point and Vector Classes 6-13
Range Class 6-14
Curve Class 6-14
Surface Class 6-16
Topology and Grid Classes Commands 6-17
Block Class 6-18
Face Class 6-22
Patch Class 6-23
Edge Class 6-24
Segment Class 6-24
BlockGroup Class 6-25
Vertex Class 6-25
Topology Placement 6-26
Connection Commands 6-26
Quality Checking Commands 6-27
MultiStage Module 6-28
Examples 6-31
6-4 Templates versus scripts 6-33

CHAPTER 7: Quick Access Pad 7-1


7-1 Overview 7-1
7-2 Geometry subpad description 7-3
Point page 7-3
Cartesian Point 7-3
Curve-Curve Inters 7-3
Curve-Plane Inters 7-3
Curve page 7-3
Polyline 7-3
CSpline 7-3
Arc 7-3
Trim 7-4
Group 7-4
UnGroup 7-4
Surf-Surf Inters 7-4
Surf-Plane Inters 7-4
Set Name 7-4
Surface page 7-4

IGG™ v
Contents

Lofted 7-4
Revolution 7-4
Coons 7-4
Linear Sweep 7-4
Offset 7-5
From Face Grid 7-5
Set Name 7-5
Edit page 7-5
Copy 7-5
Mirror 7-5
Translate 7-5
Rotate 7-5
Scale 7-5
7-3 Grid subpad description 7-6
Create page 7-6
Insert New Block 7-6
Insert New Block by picking vertices 7-7
Insert New Face 7-8
Extrude Range 7-9
Duplicate Block 7-11
Block by Sweeping 7-13
Block by Face translation 7-13
Block by Face Expansion 7-14
Block by Face Rotation 7-14
Create Butterfly 7-14
Delete Block(s) 7-14
Insert/Edit page 7-15
Insert Vertex 7-15
Insert Fixed Point 7-15
Insert Internal Grid Line 7-15
Internal Point 7-15
Internal Face 7-16
Cluster Points 7-16
Transform Blocks 7-16
Extend Block 7-17
Split Block 7-18
Split Block at internal faces 7-18
Merge Blocks 7-18
Connect page 7-18
Edge - Edge 7-19
Face - Face 7-20
Whole grid 7-20
Show Vertex Connections 7-21
Show Edge Connections 7-21
Show Segment Connections 7-21
Show Face Connections 7-21
Generate page 7-22
2 Bnd Interpolation 7-22

vi IGG™
Contents

4 Bnd Interpolation 7-22


Face Generation Tool 7-22
Project Face 7-22
Block 6 Bnd 7-24
Regenerate Faces 7-24
Show History 7-25
7-4 View subpad description 7-26
Geometry Groups page 7-26
Block Groups page 7-27
Grid page 7-29

CHAPTER 8: File Menu 8-1


8-1 Overview 8-1
8-2 File menu description 8-1
Open 8-1
New 8-2
Scripts --> Edit 8-2
Scripts --> Save All 8-2
Scripts --> Execute 8-2
Scripts --> Re-execute Last 8-3
Save --> Save 8-3
Save --> Save As 8-3
Save --> Save As Fine 6 8-3
Import -> IGG Project 8-3
Prefix 8-3
Importation operations 8-4
Import -> IGG Data 8-4
Import -> External Grid 8-5
Import -> Face Grid 8-5
Import -> Topology 8-6
Import -> IGES Data 8-6
Import -> PLOT3D 8-7
Import -> CGNS 8-8
Import -> GridPro 8-8
Export -> IGES 8-9
Export -> Geometry Selection 8-9
Export -> Geometry Control Points 8-9
Export -> Block Coor 8-9
Export -> Face Coor 8-10
Export -> Patch Coor 8-10
Export -> Segment Discretization 8-10
Export -> PLOT3D 8-10
Replay Template -> Import IGG Data 8-11
Convert Data 8-11
Convert Data -> Rotate Data 8-11
Convert Data -> Scale Data 8-12
Convert Data -> Translate Data 8-12

IGG™ vii
Contents

Convert Data -> Mirror Data 8-12


Convert Data -> Swap Data 8-13
Convert Data -> Reverse Sequence 8-13
Convert Data -> Cartesian_Cylindrical 8-13
Convert Data -> Extract 2D from 3D 8-13
Convert Data -> Extract Curve 8-13
Convert Data -> Grid : IJK_KJI 8-14
Convert Data -> Grid : 2D_3D 8-14
Convert Data -> Data : Expand Surface 8-14
Print -> As PostScript 8-14
Print -> As Bitmap PostScript 8-14
Print -> As PNG 8-15
Preferences 8-15
Tolerances page 8-15
Geom Tol (abs) 8-15
Geom Tol (rel) 8-15
Topo Tol (rel) 8-16
Pick Aperture 8-16
Saving page 8-17
Graphics page 8-17
Layout page 8-18
Project Configuration 8-18
Quit 8-20

CHAPTER 9: Geometry Menu 9-1


9-1 Overview 9-1
Basic Geometry Entities 9-1
Curve Orientation 9-2
Geometry tolerance 9-2
Absolute tolerance 9-2
Relative tolerance 9-2
Attraction 9-2
9-2 Geometry menu description 9-3
Draw CSpline->Free 9-3
Draw CSpline->On Surfaces 9-3
Draw CSpline->On Surface + Projection 9-4
Draw BSpline->Free 9-4
Draw B-Spline->On Surfaces 9-5
Draw B-Spline->On Surface + Projection 9-5
Draw Polyline->Free 9-5
Draw Polyline->On Surfaces 9-6
Draw Polyline->On Surface + Projection 9-6
Circular Arc->Normal-Center-Point-Point 9-7
Circular Arc->Normal-Point-Point-Radius 9-8
Circular Arc->Point-Point-Point 9-10
Create Points->Cartesian Point 9-11
Create Points->Curve-Curve Intersection 9-11

viii IGG™
Contents

Create Points->Curve-Plane Intersection 9-11


Create Curve->Surf-Surf intersection 9-11
Create Curve->Surf-Plane inters->Point-Normal 9-12
Create Curve->Surf-Plane inters->Normal to Curve 9-12
Create Curve->Surf-Plane inters->Point-Point-Point 9-13
Create Curve->Extend Curve 9-14
Create Curve->Offset Curve (Cst) 9-14
Create Curve->Offset Curve (Linear) 9-14
Create Curve->Group 9-15
Create Curve->UnGroup 9-15
Create Curve->Trim 9-16
Create Surface->Lofted 9-16
Create Surface->Revolution 9-17
Create Surface->Coons Patch 9-17
Create Surface->Linear Sweep 9-18
Create Surface->Offset 9-18
Create Surface->From Face 9-18
Edit->Copy 9-18
Edit->Translate 9-19
Edit->Rotate 9-19
Edit->Scale 9-19
Edit->Mirror 9-20
Edit->Convert to CSpline 9-20
Modify Curve->Add Control Point 9-20
Modify Curve->Remove Control Point 9-21
Modify Curve->Project 9-21
Modify Curve->Modify Point 9-21
Modify Curve->Modify Point On Surface 9-22
Modify Curve->Discretization 9-22
Modify Curve->Divide 9-22
Modify Curve->Reverse 9-22
Modify Curve -> Set Name 9-23
Modify Surface->Discretization 9-23
Modify Surface->Representation 9-23
Modify Surface->Add uv Curves 9-23
Modify Surface->Divide 9-24
Modify Surface-> Set Name 9-24
Select->Cartesian Points 9-24
Select->Control Points 9-25
Select->Curves 9-25
Select->Surfaces 9-25
View->Curves 9-26
View->Surfaces 9-27
View->Hide Selected Cartesian Points 9-28
View->Hide Selected Curves 9-28
View->Hide Selected Surfaces 9-28
View->Control Points 9-28
View->Curve Orientation 9-28
View->Lofting curves 9-28

IGG™ ix
Contents

View->Prepare View 9-28


View->Clear View 9-29
View->View Wireframe 9-30
View->View Solid 9-30
Delete Cartesian Points 9-30
Delete->Curves 9-30
Delete->Surfaces 9-30
Distance 9-30

CHAPTER 10:Grid Menu 10-1


10-1 Overview 10-1
Boundary Conditions setting 10-1
Coarse Grid Levels 10-2
10-2 Grid menu description 10-4
Periodicity 10-4
Grid Settings 10-5
Resizing of one block 10-8
Limitations 10-9
Boundary Conditions 10-9
Patch browser 10-10
Filters 10-10
Patch type specification 10-10
Patch definition and editing 10-11
Automatic connectivity search 10-12
Mirror boundary conditions 10-13
Connections 10-13
Automatic search 10-13
Tips and tricks 10-14
Manual Connectivity Settings 10-15
Full non matching connections 10-16
Grid Quality 10-19
Quality criterion definitions (Block page) 10-21
Criterion class 10-21
Criteria definition 10-21
Quality criterion definitions (Boundaries page) 10-23
2D project particularities 10-24
Negative cells 10-24
Internal Grid line/Create from grid 10-26
Internal Grid line/Delete 10-26
Internal Grid line/Index 10-26
Internal Face/Create 10-27
Internal Face/Delete 10-28
Internal Face/Index 10-28
Create Edge/Copy Edge 10-28
Create Face/Linear 2Bnd 10-28
Create Face/Linear 4Bnd 10-29
Create Face/Generation Tool 10-29

x IGG™
Contents

Grid Page 10-29


Internal Grid Lines Page 10-33
Create Face/Project onto Surfaces (N) 10-34
Create Face/Project onto Surfaces (T) 10-34
Create Face/Rotate Edge 10-35
Create Face/Copy Face 10-35
Create Face/Copy Face Range 10-35
Create Block/Linear 2Bnd 10-37
Create Block/Linear 4Bnd 10-37
Create Block/Linear 6Bnd 10-38
Create Block/Smoothing 10-38
Create Block/Elliptic/Multigrid 10-38
Create Block/Elliptic/Multigrid Parameters 10-39
Create Block/Elliptic/SLOR 10-40
Create Block/Butterfly 10-40
Create Block/Change axis 10-40
Create Block/Split 10-41
Limitations 10-41
Create Block/Split at internal faces 10-43
Create Block/Merge 10-43
Limitations 10-43
Create Block/Sweeping 10-44
Create Block/Extrude Normally 10-45
Create Block/Translation 10-46
Create Block/Rotation 10-47
Grid Density/Clustering 10-47
Clustering types 10-49
Clustering groups 10-50
Clustering convergence 10-51
Segment optimum settings 10-52
Grid Density/Copy 10-53
Grid Density/Move Pt 10-54

CHAPTER 11:View Menu 11-1


11-1 Overview 11-1
Views 11-1
View repetitions 11-1
11-2 View menu description 11-2
Patch Viewer 11-2
Sweep Surfaces 11-3
Sweep Cells 11-4
Show Unmapped vertices 11-5
Coarse Grid 11-5
Repetition 11-6
View Position 11-6
Face Displacement 11-7
View Depth 11-7

IGG™ xi
Contents

Perspective 11-7
Hidden lines 11-7
Insert Text 11-8
Delete->Delete Text 11-8

CHAPTER 12:Input and Output Files 12-1


12-1 Overview 12-1
12-2 Input Data Files 12-1
Curve data files 12-1
Surface data files 12-3
Wireframe surfaces 12-3
Multiple wireframe surfaces 12-4
Lofted surfaces 12-4
Combined curve and surface data files 12-5
Block data files 12-5
12-3 Grid file format 12-7
CGNS file 12-7
Boundary Conditions file format 12-7
Format description 12-8
12-4 PLOT3D file format 12-12
Single-block file 12-13
Multi-block file 12-13

CHAPTER 13:Tutorials 13-1


13-1 Mesh Generation in pipes 13-1
Introduction 13-1
Geometry Definition 13-2
Meshing the larger cylinder 13-4
Meshing the small cylinder 13-6
Generating the block grids 13-9
Butterfly topology creation 13-9
Connecting the blocks 13-10

INDEX

xii IGG™
CHAPTER 1: Getting Started

1-1 What is IGG™ ?


IGG™ is a powerful structured grid generator software designed to facilitate the generation of
multi-blocks structured grids around complex 2D and 3D geometries. It is a fully interactive system
combining interactive 3D graphics capabilities with advanced GUI capabilities.
An optional module, AutoGrid, allows to perform fully automatic grid generation for turbomachin-
ery problems. Complex grids can be generated by using AutoGrid, including splitters, seal leakage
and more in a few minutes.
IGG™ provides a geometry module dedicated to the importation and manipulation of external CAD
geometries. Additionally it provides tools for the creation of simple and more advanced NURBS
curves and surfaces. This module can be used to close an incomplete geometry model or to create a
geometry model from scratch.
Starting from this geometry, IGG™ provides powerful tools to perform the meshing process. Initial
blocks can be created very rapidly and interactively deformed onto the geometry. The mapping of
the block boundaries is done instantaneously so that the real shape of the blocks is obtained at any
time. When more control is needed over the boundary shape, control vertices can be easily added or
removed and moved interactively. A powerful snapping feature automatically attracts the vertices
to the closest point, curve or surface.
Through its concept of tolerant vertex, blocking can be performed on geometries presenting gaps
without going through a CAD repair stage. IGG™ automatically closes the gaps to a given level of
tolerance.
The Grid module provides tools to generate face and block grids in a flexible way. Algebraic and
elliptic smoothers can be used to generate surface and volume meshes. Projection or mapping on
CAD surfaces insure the generation of body fitted meshes. Additionally IGG™ provides unique
features for controlling the quality of the grid through the concept of internal edge and internal
faces.
To facilitate the grid generation process IGG™ provides connection tools which enable to perform
connections at different levels of the grid generation process: topological connections, block bound-
aries connections and face grid connections.
Finally IGG™ provides full support to the CGNS standard. Using this file format, grids generated
with IGG™ can be readily understood by more and more solvers.

IGG™ 1-1
Getting Started Structure of the Manual

This chapter provides a discussion over the following topics:


• Structure of the manual,
• System requirements,
• How to run IGG™,
• Terms and concepts.

1-2 Structure of the Manual


The structure of the IGG™ manual consists of several dedicated chapters which can be summarized
as follows:
• Chapter 1 describes the basic terms needed to understand IGG™ functionalities.
• Chapter 2 describes the GUI and the different interaction modes with the system.
• Chapter 3 describes the fundamentals of meshing and the most commonly used options.
• Chapter 4 provides a basic hands-on tutorial for geometry modelling, topology decomposition
and structured grid generation. It is highly recommended to follow this chapter before going any
further with IGG™.
• Chapter 5 to Chapter 11 provide a detailed description of each functionality available in the dif-
ferent modules. Each chapter is a description of a menu contained in the IGG™ interface.
• Chapter 12 describes IGG™ file formats for importing and exporting data.
• Chapter 13 provides more advanced tutorials showing the grid generation for more complex
configurations.
The first four chapters provide a complete overview of IGG™ and are recommended for first time
use. Following chapters provide more detail to serve as reference during the use of IGG™.

1-3 Installation and Settings


1-3.1 Basic Installation
When using IGG™ for the first time it is important to verify that IGG™ is properly installed
according to the installation note. The installation note provided with the software should be read
carefully and the following points are specifically important:
• Hardware and operating system requirements should be verified to see whether the chosen
machine is supported.
• Installation of IGG™ according to the described procedure in a directory chosen by the user and
referenced in the installation note as ‘NUMECA_INSTALLATION_DIRECTORY’.
• A license should be requested which allows for the use of IGG™.
• The license should be installed according to the described procedure in the installation note.

1-2 IGG™
Installation and Settings Getting Started

• Each user willing to use IGG™ or any other NUMECA software must perform a user configu-
ration as described in the installation note.
When these points are checked the software can be started as described in the installation note or
section 1-4 of this users guide.

1-3.2 Platform Compatibility


IGG™ projects are 100% compatible across heterogeneous platforms. For example, an IGG™
project can be started on an NT platform, continued on a SGI machine and reloaded on a DEC,
without any modification.

1-3.3 Expert Display Options


a) Graphics Driver
The Graphics area of IGG™ interface uses by default an OPENGL driver that takes advantage of
the available graphics card. When the activation of OPENGL is causing problems, IGG™ uses an
X11 driver (on UNIX) or MSW driver (for Windows) instead.
It is possible to explicitly change the driver used by IGG™ in the following ways:
On UNIX:
in csh, tcsh or bash shell:
setenv NI_DRIVER X11
in korn shell:
NI_DRIVER=X11
export NI_DRIVER
The selection will take effect at the next session.
On Windows:
• Log in as Administrator.
• Launch regedit from the Start/Run menu.
• Go to the HKEY_LOCAL_MACHINE/SOFTWARE/NUMECA International/Fine# register.
• Modify the DRIVER entry to either OPENGL or MSW.
The selection will take effect at the next session.

b) Background Color
The background color of IGG™ can be changed by setting the environment variable
NI_IGG_REVERSEVIDEO on UNIX/LINUX platforms or IGG_REVERSEVIDEO on Windows
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 UNIX:
in csh, tcsh or bash shell:
setenv NI_IGG_REVERSEVIDEO ON
in korn shell:
NI_IGG_REVERSEVIDEO=ON
export NI_IGG_REVERSEVIDEO
The selection will take effect at the next session.

IGG™ 1-3
Getting Started How to Start IGG™ Interface

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

1-4 How to Start IGG™ Interface


In order to run IGG™, the following command should be executed:
On UNIX and LINUX platforms type: igg <Enter>

 When multiple versions of IGG™ are installed the installation note should be consulted
for advice on how to start IGG™ in a multi-version environment.
On Windows click on the IGG™ icon in Start/Programs/NUMECA software/fine#. Alternatively
IGG™ can be launched from a dos shell by typing:
<NUMECA_INSTALLATION_DIRECTORY>\fine#\bin\igg.exe <Enter>
where NUMECA_INSTALLATION_DIRECTORY is the directory indicated in section 1-3.1 and #
is the number corresponding to the version to be used.

1-4 IGG™
Terms and Concepts Getting Started

1-5 Terms and Concepts


This section describes the terms and concepts used in this manual. For more details on a specific
topic consult the index to see where it is described in the manual.
IGG™ is a structured multi-block grid generator. The grid generation process can be decomposed
into two major steps: the blocking step, also called topological decomposition, and the meshing
step.
Blocks are used to decompose complex 3D domains into simpler meshable sub-regions. To create a
mesh, blocks are created, initially simple cubes, and adapted to the geometry by deforming their
boundaries (edges) so that they lie onto geometry curves or surfaces. Blocks can be created as
needed and they are connected together to insure non overlapping filling of the domain. The crea-
tion, geometry capturing and connection operations all together define the topology of the mesh.
Due to the structured approach, blocks are constrained to be bound by exactly six faces, each face
having four edges. Furthermore each edge is shared by exactly two faces. There are consequently
12 edges for a block.
Blocks can be thought of as cubes whose edges are deformed to lie onto the CAD geometry. The
following picture shows two blocks deformed to lie on the geometry.

Block 1

Block 2

FIGURE 1.5.0-1 Edges deformed and positioned on a geometry.

1-5.1 Block Shape Control


The shape of a block is directly defined by the shape of its grid edges (edge belonging to a block
face). These grid edges are supported and handled by topological edge(s). These topological edges
are used to capture the geometry and must not be confused with a grid edge (more commonly called
edge). A topological edge is defined and controlled by two vertices, defining its geometrical limits.
By default each grid edge contains one topological edge, thus two vertices. Furthermore vertices are
shared at block corners, yielding a strong topological consistency between the edges of a block.
There are consequently by default eight vertices for each block, as shown in the following figure.

IGG™ 1-5
Getting Started Terms and Concepts

geometry curve

FIGURE 1.5.1-1 Edge vertices and edge mapping onto a curve.

The shape of an edge is directly controlled by the position of its vertices and of its topological edges
onto the geometry entities (points, curves or surfaces).
• The positioning of a vertex on a geometry entity is called "vertex snapping".
• The positioning of a topological edge on a geometry entity is called "edge mapping". It means
that the topological edge is deformed to lie on the geometry entity.
IGG™ automatically detects when the two vertices of a topological edge lie on a same geometry
entity and performs automatic mapping of the topological edge onto that geometry entity. IGG™
performs an automatic mapping when:
• two vertices lie on a same curve,
• two vertices lie on different curves but can be considered as lying on the same curve at the
vertex tolerance,
• two vertices lie on a same surface,
• two vertices lie on a surface and a curve belonging to that surface (i.e. trimming curve).
When one of the vertices of a topological edge does not lie on any geometry entity, IGG™ draws a
straight line for the topological edge.
Very often the input geometry is defined by a set of curves that all together define a closed region.
These curves are however most of the time not connected in the sense that no topological informa-
tion exists to go from one curve to another.

To cope with this frequent case, IGG™ provides a method to easily insert additional vertices ( )
in the definition of an edge. The following figure shows an example of two curves lying next to
each other. Using only one topological edge with two vertices, the edge would be a straight line.
The insertion of an additional vertex allows to capture the junction of the curves and therefore the
mapping of the edge onto the two curves.

curve 1
curve 2

Vertex required to map the edge on both curves

FIGURE 1.5.1-2 Internal vertex insertion in an edge.

1-6 IGG™
Terms and Concepts Getting Started

When inserting the internal vertex into the edge, the initial topological edge is replaced by two new
topological edges (a topological edge is delimited by two consecutive vertices). Therefore the first
topological edge can be mapped on curve 1 and the second one on curve 2. In fact, at each internal
vertex insertion, the number of topological edges of the grid edge is increased by one. Therefore an
edge defined by N vertices has exactly N-1 topological edges.
The following figure shows an example of an edge being defined by several topological edges.

topological edges
start vertex
end vertex

internal vertices

FIGURE 1.5.1-3 Grid edge defined by 4 vertices (3 topological edges)

IGG™ provides a tolerance mechanism to deal with input geometries presenting small gaps. A tol-
erance is attached to each vertex participating in the definition of an edge. When a vertex is placed
at the junction of two curves, as in the following figure, IGG™ attempts to fill the possible gap (if
existing).

Small tolerance Greater tolerance

Curve 1 Start vertex

Gap Intermediate
vertex
Edge

Curve 2 End vertex

FIGURE 1.5.1-4 Use of the vertex tolerance for edge mapping

As shown, there is a gap between curve 1 and curve 2. To map an edge on these two curves, the
"start" and "end" vertices have to be positioned firstly, then an intermediate vertex must be inserted
on the edge and moved to the curve 1 end point. If the tolerance of this intermediate vertex is too
small, the edge cannot map the curve 2. If it is sufficient, the edge also maps the curve 2, filling in
the gap with a straight line.
When gaps are big, the tolerance can be controlled for each vertex separately.

1-5.2 Grid Control


Once block edges are well positioned to capture the geometry, grid points can be positioned on
edges.

IGG™ 1-7
Getting Started Terms and Concepts

Due to the structured approach, the edges varying along a same direction (I, J or K) are constrained
to have the same number of points. The number of grid points can be controlled independently for
the I, J or K directions.
However the grid point distribution along an edge can be controlled independently for each edge.
This distribution is controlled by segments. A segment is an entity controlling a range of grid points
on an edge. Using these segments, the clustering (distribution) can be locally controlled along the
edge. By default, each edge has one segment. Moreover, for each new created segment, grid points
are distributed at equal intervals (uniform spacing).

The creation of segments in an edge is done by insertion of fixed points ( ), as shown in the fol-
lowing figure:

segment 1
Start vertex segment 2 End vertex

segment 3

Fixed point shared by


segments 1 and 2

Fixed point shared by


segments 2 and 3

FIGURE 1.5.2-1 Edge division in segments using fixed points.

Fixed points define the limits of the segments. They also control the range of grid points controlled
by the segments. Changing the index of a fixed point changes the number of points in the surround-
ing segments.
Fixed points are by default constrained to move along their edge. When more flexibility is needed,
fixed points can be attached to vertices. Such fixed point is no more constrained to move along its
edge.

1-5.3 Internal Grid Lines

Edge 2

Edge 3 Edge 6 Edge 4

Edge 5

Edge 1

FIGURE 1.5.3-1 Two internal edges added to the face

1-8 IGG™
Terms and Concepts Getting Started

Internal edges ( ) are used to obtain a better control of the grid quality during face grid genera-
tion. They enable to decompose a face grid into smaller, more manageable areas and can be manip-
ulated in the same way as boundary edges. These edges can be mapped onto geometry curves,
divided into one or more segments, on which the distribution can be specified. Figure 1.5.3-1 shows
a face with two internal grid lines, which decompose the face into 4 sub-regions.
During the creation of internal grid lines, IGG™ automatically intersects the boundary edges as
well as the other existing internal edges. At each intersection IGG™ creates a fixed point attached
to a vertex. This vertex-fixed point is shared by the edges and insure topology and grid consistency
at any time (indeed internal grid lines cannot be separated at their intersection with other edges).

1-5.4 Internal Faces


Internal faces ( ) are used to obtain a better control of the grid quality during block grid genera-
tion by inserting controllable faces within the blocks. They decompose a block into smaller regions
which can be independently generated and manipulated.
Internal faces are bound by four edges. These edges have the same general orientation as the bound-
ary edges of the block and are manipulated in the same way.
When creating new internal faces, IGG™ identifies all crossing faces and creates a new internal
edge at each intersection. These edges are shared by the crossing faces to insure a consistency dur-
ing block generation.
Internal faces can be manipulated much in the same way as boundary faces:
• Their boundary edges can be mapped onto the geometry,
• Internal grid lines can be added,
• They can be projected on geometry surfaces,...
The internal faces are taken into account during block generation when using a six boundary inter-
polation.

1-5.5 Block, Face, Edge, Segment Numbering and Active Entities


Each entity defining the grid topology (block, face, edge, segment) is identified by an index in
IGG™.
Each block is defined by a local IJK coordinate system giving a natural naming convention for the
faces. Faces, edges and segments are further numbered and identified by indices as indicated in the
Figure 1.5.5-1.
According to these conventions, entities are referenced as follows:
• A block is identified by one index, describing its position in the grid. For example, block
"1" identifies the first block of the grid.
• A face is identified by its block and face indices. For example, face "2 4" refers to the face
4 of block 2.
• An edge is identified by its block, face and edge indices. For example, edge "1 5 2" refers to
the edge 2 of the face 5 of the first block.
• A segment is identified by its block, face, edge and segment indices. The segment index is
simply the segment position in the edge, according to the edge orientation. For example,
segment "1 5 2 3" refers to the third segment of the edge "1 5 2".

IGG™ 1-9
Getting Started Terms and Concepts

Since an edge is shared by two faces it can be accessed by two identifiers. For example, the edge
"1 2 4" (block 1, face 2, edge 4) is the same as the edge "1 6 2" (block 1, face 6, edge 2). Further-
more each edge has a natural orientation given by the positive direction of the I, J and K axis, as
shown in the previous figure. On the other hand, segments have the same orientation as their under-
lying edge.

FACES K = Kmax EDGES


2 3
J = Jmax 2
4 2 4 2
5 3
1 4
I=1
BLOCK 3 2
1 2 1
K 3 4 4
J 3 2
6 1
3 1 4 3
I = Imax
I J=1 1 4
1
K=1

SEGMENTS
Edge 2

Edge 3 Edge 4

Axis 2
Seg 1 Seg 2 Seg 3

Edge 1
Axis 1

FIGURE 1.5.5-1 : Standard notation for the block, faces and orientation of edges

Active block, face, edge and segment


Some operations like face grid generation, visualization... must be operated on specific entities. In
IGG™, these operations are performed on the active entities. There is always one active segment,
edge, face and block in a session. They are highlighted in the graphics area and can easily be recog-
nized from non active entities.
Activation of an edge, face or block is done by simple left mouse click on the desired entity in the
graphics area. When several entities lie at the same position, the left-click operation may need to be
repeated until the proper entity is highlighted. Alternatively, an entity can be activated by entering
its identifier through the keyboard. For example, to activate the block 2, face 4, edge 1, type ’2 4 1’
in the keyboard input area and press <Enter>. The entity will be activated.
This activation mode can be used at any time in IGG™, as long as another menu option is not used
(i.e. curve creation).

1-10 IGG™
Terms and Concepts Getting Started

1-5.6 Grid Generation


After the grid points along the block boundaries (edges) have been correctly positioned, the faces
grid must be generated. Then the block grid generation can be performed by using these faces grid
previously generated. The grid boundaries can have slope and/or line continuity or be totally dis-
continuous at the block interfaces.
Faces can be generated by using the following options:
• Algebraic grid generation: two- or four-boundary interpolation (linear or cubic) from the
face edges ( ).
• Mapping a face on a geometry surface. Mapping is performed by linear interpolation from
the face edges in the geometry surface space ( ).
Blocks can be generated by using the following options:
• Algebraic grid generation by two-, four- or six-boundary interpolation (linear or cubic)
from the block edges ( ).
• Translation of a face grid, combined with rotation and scaling ( ).
• Expansion of a face grid along face normals according to a user-specified distance ( ).
• Rotation of a face grid around a coordinate axis ( ).
• Sweeping of a face grid along an arbitrary curve, combined with rotation and scaling ( ).

Moreover the following options can be applied on a grid initially created:

• Projecting a face grid onto a set of geometry surfaces ( ).


• Overall or local smoothing (in a user-specified region of a face or block grid) by the ellip-
tic method ( ).
Algebraic methods based on transfinite interpolation are the most attractive options, due to fast real
time generation for face and block grids. The smoothness of such algebraic grids can be improved
by using the elliptic smoother.
The algebraic grid generation is based on the transfinite interpolation methods with linear
(Lagrange) interpolants. The grid generation options can be explained as follows:
• Linear six-boundary transfinite interpolation
This type of algebraic generation is based on the determination of internal grid points of a block
by linear (Lagrange) interpolation from the surface grids generated on six boundary faces (not
applicable to face grids). Thus the grid conforms to the point distributions defined over the six
boundary faces. The surface grid normal lengths have no effect on the grid, since the orthogo-
nality is not considered for linear interpolation.
• Linear four-boundary transfinite interpolation
With this option, the internal grid points in a face or block are generated by linear (Lagrange)
interpolation from four boundaries. In the case of face grids, the user-specified grid point distri-
butions on four boundary edges are used for interpolation. Such a grid can also be considered as
a bilinearly blended Coons patch.
The block grids are obtained from the grid created on four boundary faces, on which a variable
coordinate index is common (faces 1, 2, 3 and 4 for common I index, faces 1, 2, 5 and 6 for
common J index and faces 3, 4, 5 and 6 for common K index). The grid normal length distribu-
tions defined on the boundary curves or the surface normal lengths specified for the boundary
faces have no effect on the grid, since the orthogonality is not considered for this case.

IGG™ 1-11
Getting Started Terms and Concepts

• Linear two-boundary interpolation + user-specified stretching


This technique has been introduced as a two step generation process using the opposite bounda-
ries of each block. The face grids are generated by linear interpolation from the two opposite
boundary edges (e.g. edges 1 and 2). The grid points along constant index lines between these
two edges are then redistributed according to the user-defined grid point distributions on the
other opposite boundaries (e.g. edges 3 and 4). Thus the grid conforms to distributions defined
on all four boundaries, as in the four-boundary case.
The block grids are created by interpolation from the grid on two opposite block faces (e.g.
faces 1 and 2). Then, the interior grid points are redistributed according to the user-defined point
distributions on one of the other two opposite faces (e.g. edges 3 and 4 of face 3 or 4). Again,
there is no consideration of boundary orthogonality.
 If grid overlapping occurs when using one of the algebraic grid generation methods,
please do not panic. Due to very tight grid point spacing or high degree of orthogonality
constraints, the grid points may overlap initially. Simply try to smooth the grid locally or
as a whole in several iterations, until overlapping disappears.
• Overall or local smoothing:
The smoothness of algebraic grids can be improved by a few iterations with the elliptic solver.
A local region of smoothing can be specified within the face or block grid by mouse or key-
board. The default smoothing area covers the overall grid.
• Sweeping a face grid:
This method is similar to the translation of a block face for the generation of a block grid. How-
ever, the base grid (e.g. face 1) is swept along a specified sweep edge. The grid points along the
sweeping edge are created according to the user-specified point distribution. Sweeping can also
be combined with rotation and scaling.
• Rotating a face grid:
This option is especially suitable for the generation of grids around turbomachinery compo-
nents. A face grid can be rotated around any coordinate axis at a user-specified angle to form the
block grid. For blade passages, the pressure side can be rotated around the axis of rotation at an
angle of blade pitch and the resulting block grid can be intersected by a geometry surface repre-
senting the suction side stored in the geometry repository.

1-5.7 Boundary Conditions


Each block face can be divided in a certain number of patches on which will be applied the bound-
ary conditions. It allows, for a same face, to have several different boundary conditions.
Boundary conditions setting consists of imposing to each patch of the grid a type describing the
physics of the flow. The boundary conditions setup is normally performed when the grid has been
generated.
The following standard notation is used to identify the type of the boundary condition applied on a
patch:
• UND : undefined type.
• INL : inlet.
• OUT : outlet.
• EXT : external. Used to impose farfield conditions.
• SOL : solid. Used for walls.
• SNG : singular. Used for patch degenerated into a line.
• MIR : mirror. Used to impose a symmetry plane.

1-12 IGG™
Visualization Getting Started

• ROT : rotating. Used for rotor-stator interaction.


• CON : matching connection.
• NMB : non matching connection.
• PER : periodic matching connection.
• PERNM : periodic non matching connection.

1-6 Visualization
1-6.1 Geometry
Understanding the input geometry model is essential to perform fast and efficient meshing. Geome-
try models tend to be more and more complex and composed of lot of curves and surfaces. To facil-
itate the manipulation and visualization of these entities a grouping option is provided. Grouping
allows to:
• create and delete new groups,
• add curves and surfaces to a group,
• selectively visualize or hide one or more groups.
This organization in groups allows to display very fast only few geometry entities, and can greatly
help during the interactive placement of blocks on the geometry. Interactive snapping of vertices
can then be performed on a restrained number of entities avoiding the risk of interference with other
unnecessary entities.

1-6.2 Grid
The visualization of the grid is possible for different types of entities involved in the grid generation
process. Selective visualization ( ) can be applied to:

• vertices,
• fixed points,
• boundary grid points,
• face grids (wireframe or shaded representation).
The visualization of each type of entities can be easily controlled using the scope of visualization.
The visualization scope can be used to visualize an entity for the active segment, edge, face, block
or grid.

IGG™ 1-13
Getting Started Visualization

1-14 IGG™
CHAPTER 2: IGG™ Graphical User
Interface

2-1 Overview
This section describes the appearance and use of the IGG™ Graphical User Interface (GUI).
The IGG™ GUI is divided into several main components as shown in the figure of the following
page and which are listed here below:
• Menu bar
• Toolbar
• Quick Access Pad
• Control area
• Graphics area
The following sections describe these components as well as two important features of the GUI:
keyboard short cuts and default mouse bindings.

IGG™ 2-1
IGG™ Graphical User Interface GUI description

2-2 GUI description


Current project name

Toolbar
Menu bar
Quick Access Pad

Graphics area

Control
area Keyboard input area Viewing buttons

Message area

Grid parameters area Mouse coordinates Information area

FIGURE 2.2.0-1 IGG™ Graphical User Interface.

2-2.1 Menu bar


The menu bar contains a part of available options of IGG™. Menu items can be activated using
click and drag or click and release modes.
The pull-down menu Modules is a dedicated menu which allows to switch between the different
modules of IGG™: IGG™, AutoGrid, FINE™/Turbo.
All menus are described in detail in the dedicated chapters.
IGG™ provides a way to keep pull-down menus permanently on the screen using the "tearoff" fea-
ture. When tearoff menus are enabled, a dotted line appears as the very first item of each pull-down
menu. Selecting this line will isolate the menu in a permanent window on the screen.

2-2 IGG™
GUI description IGG™ Graphical User Interface

Tearoff menus can be enabled by editing the file ’~/.numeca/igg.resources’ and modifying the line
"set app(tearoff) 0" to "set app(tearoff) 1" or adding the line "set app(tearoff) 1".

2-2.2 Toolbar
The toolbar contains five icons providing fast input/output options and three icons for often used
operations. These are also available through the menu bar (See in the related chapters the complete
description of the icon functions).

TABLE 1.

Icon Description
Opens an existing project previously created by IGG™.
See the File/Open menu item description on page 8-1.

Saves the current work in the files of the current project.


See the File/Save/Save menu item description on page 8-3.

Closes the current project and opens a new empty one.


See the File/New menu item description on page 8-2.

Used to import CAD data stored in the standard IGES format.


See the File/Import/IGES Data menu item description on page 8-6.

Used to import external curves and surfaces stored in an ASCII IGG™ format.
See the File/Import/IGG Data menu item description on page 8-4.

Used to check the grid quality.


See the Grid/Grid Quality menu item description on page 10-19.

Used to check the negative cells.


See the Grid/Negative cells menu item description on page 10-24.

Used to measure distance between geometry or grid entities.


See the Geometry/Distance menu item description on page 9-30.

Moreover, it contains a set of buttons allowing to control the vertex attraction.

FIGURE 2.2.2-1 Toolbar vertex attraction control

This set of four buttons provides an easy visualization and control of the vertex attraction. This ver-
tex attraction is controlled by vertex. Each button can be toggled individually and it enables or dis-
ables the corresponding attraction mode. The entities on which a vertex can be attracted,
corresponding to the four attraction modes (respectively from left to right), are the following:
• Cartesian and curve end points
• Curves
• Curves intersection

IGG™ 2-3
IGG™ Graphical User Interface GUI description

• Surfaces
To control the attraction mode of a vertex, buttons are used as follows:
1. Move the mouse over a vertex.
2. Select it by a left-click. The current attraction mode of the vertex is instantly shown through the
buttons.
3. Move the mouse to the attraction control zone and select the appropriate mode(s).

2-2.3 Quick Access Pad


The Quick Access Pad is located in the left part of the GUI. It contains icons and more evolved
options providing a fast access to the more used functions of IGG™. Some of these functions are
only accessible through the Quick Access Pad whereas others are also accessible through the menu
bar, so that their description will be referenced to these menus.
The Pad is divided into three subpads, each of which can be toggled by a simple mouse left-click:
• Geometry subpad
• Grid subpad
• View subpad
All the commands and options accessible with these subpads are described in detail in chapter 7
“Quick Access Pad”.
The three subpads are composed of pages containing icons or more evolved options. The icons per-
form specific function related to the subpad and the page. Each page can also be toggled by a sim-
ple mouse left-click.
The Geometry subpad commands and tools allow the creation and the modification of geometry
entities like points, curves and surfaces. It consists of four pages; three for geometry entities crea-
tion (respectively point, curve and surface creation) and one for curves and surfaces editing.

FIGURE 2.2.3-1 Geometry subpad

The Grid subpad commands and tools allow the creation and the manipulation of blocks and
related entities like vertices, fixed points, internal faces, internal grid lines,...

2-4 IGG™
GUI description IGG™ Graphical User Interface

FIGURE 2.2.3-2 Grid subpad

The View subpad allows viewing operations on the geometry and the grid. In particular, the two
first pages provide options permitting the creation and the visualization of geometry and block
groups.

FIGURE 2.2.3-3 View subpad

2-2.4 Control area


The control area is composed of six major areas:
• Message area

IGG™ 2-5
IGG™ Graphical User Interface GUI description

• Keyboard input area


• Mouse coordinates
• Information area
• Grid parameters area
• Viewing buttons

Each one is described in the following sections.

2-2.4.1 Message area


This area has several display functions:
— Display of warning messages notifying the user
— Display of request messages asking the user for inputs from Keyboard input area or
Graphics area
— Display of general information messages (current function options,...)

2-2.4.2 Keyboard input area


Most of the options in IGG™ require numerical inputs from the user. For example, rotating a curve
around a given line requires to specify the direction of the line, its origin and the rotation angle.
The keyboard input area is provided to allow such inputs. When an option requires numerical
inputs, a message is indicated in the Message area. Without leaving the graphics area, the user can
then type the required data. The keystrokes are automatically echoed in the keyboard input area and
the user has the possibility to modify the inputs. The input is acknowledged after pressing <Enter>.
Entering scalar values: a scalar value is specified by a floating number followed by <Enter>.
Valid values are 5 1.32323 -0.1234 1.4E-5.
Entering vectors: a vector is specified by typing its three components separated by a blank and fol-
lowed by <Enter>.
The Keyboard input area can also be used to select the active block, face, edge or segment. Sim-
ply enter the related indices separated by blanks and press <Enter> to make the corresponding
entity active. This obviously causes the update of the Grid parameters area.

2-2.4.3 Mouse coordinates


This area displays the mouse cursor coordinates in the Graphics area. If the cursor is out of it, it
indicates the last cursor position in it.

2-2.4.4 Information area


This area gives general informations (about edges, curves,...). For example, when moving a vertex
and attracting it to a curve, the name of that curve is displayed in this area.

2-6 IGG™
GUI description IGG™ Graphical User Interface

2-2.4.5 Grid parameters area

Active block, face, edge and segment indices


Number of blocks, faces, edges and segments
for the active topology

This area shows very useful informations about the grid:


• Active Block, Face, Edge and Segment indices
• Number of grid blocks, active block faces, active face edges, active edge segments
• Block:
— Number of active block points
— Number of grid points
— Name of the block
— Number of points in each block direction
• Face: constant direction and the corresponding index
• Edge: constant direction according to the active face and the corresponding index
• Segment: number of points on the segment
• The maximum multigrid level available in the I, J and K direction
If the name of the active block is "invalid", it means that any block has been created yet or all the
blocks have been deleted.

2-2.5 Viewing buttons


The Viewing buttons are used to perform viewing manipulations on the active view, such as scroll-
ing, zooming and rotating. The manipulations use the left, middle and right buttons of the mouse in
different ways. The sub-sections below describe the function associated with each mouse button for
each viewing 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.

 During viewing operations, IGG™ automatically removes from the active view all
‘heavy’ graphics representations such as solid model or color shading. This is done to
keep a reasonable speed during rotation, translation or zoom operations. The complete
picture is restored after a viewing operation is finished. A ‘full visibility’ can be explic-
itly requested during viewing operations by calling the File/Preferences dialog box and
setting the visibility flag to Full in the Graphics page.
 Viewing manipulations can be done while another action is already undertaken (for
example, a vertex displacement). That action is temporarily stopped until the viewing
operation is finished; then, the action can be performed just like before the viewing. This

IGG™ 2-7
IGG™ Graphical User Interface GUI description

is useful when operations have to be executed in very distant areas of the model. Moreo-
ver, to avoid the displacement of the mouse cursor over the correct viewing button, sev-
eral viewing commands and tools are accessible with keyboard short cuts listed in the
dedicated section of this chapter (see section 2-3.1 on page 2-11).

2-2.5.1 X, Y, and Z projection buttons


These buttons allow to view the graphics objects on X, Y or Z projection plane.
• Left : press this mouse button to project the view on an X, Y or Z constant plane. If the same
button is pressed more than one time, the horizontal axis sense changes at each press.

2-2.5.2 Coordinate axis


The coordinate axis button acts as a toggle to display different types of coordinate axis on the active
view using the following mouse buttons:
• Left : press to turn on/off the display of symbolic coordinate axis at the lower right corner of
the view.
• Middle : press to turn on/off the display of 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.
• Right : press to turn on/off the display of IJK axis at the origin of the active block (in Block
Viewing Scope) or of all the blocks (in Grid Viewing Scope). (For more informations about the
viewing scope, see the View/Grid page of the Quick Access Pad).

2-2.5.3 Scrolling
This button is used to translate the contents of active view within the plane of graphics window in
the direction specified by the user. Following functions can be performed with the mouse buttons:
• 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 automatically calculated by measuring the distance between the
initial clicked point and the current position of the cursor.
• Middle : press and drag the middle mouse button to indicate the translation direction. The trans-
lation is continuous in the indicated direction. Release the button when finished.
The translation speed is automatically calculated by measuring the distance between the initial
clicked point and the current position of the cursor.

2-2.5.4 3D viewing button


This button allows to perform viewing operations directly in the graphics area. Allowed operations
are 3D rotation, scrolling and zooming.
After having selected the option, move the mouse to the active view, then:
• Press and drag the left mouse button to perform a 3D rotation
• Press and drag the middle mouse button to perform a translation
• Press and drag the middle mouse button, while holding the <Shift> key, to perform a zoom
• To select the centre of rotation, hold the <Shift> key and press the left mouse button on a geom-
etry curve, a vertex or a surface (even if this one is visualized with a wireframe model). The
centre of rotation is always located in the center of the screen. So, when changing it, the model
is moved according to its new value.
 This 3D viewing tool is also accessible with the <F1> key.

2-8 IGG™
GUI description IGG™ Graphical User Interface

2-2.5.5 Rotate about x, y or z axis


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

2-2.5.6 Zoom in/out


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

2-2.5.7 Region zoom


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

2-2.5.8 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 user’s eyes).

2-2.5.9 Original button


The original button is used to fit the content of the view and to give a default orientation to the cam-
era.

2-2.5.10 Cutting Plane


This option displays a movable plane that cuts the geometry and the blocks of the mesh. The plane
is symbolically represented by four boundaries and its normal, and is by default semi-transparent.
After having selected the button,
• Press and drag the left mouse button to rotate the plane
• Press and drag the middle mouse button to translate the plane

IGG™ 2-9
IGG™ Graphical User Interface GUI description

• Press <x>, <y> or <z> to align the plane normal along the X, Y or Z axis
• Press <n> to revert the plane normal
• Press <t> to toggle the transparency of the plane (to make it semi-transparent or fully transpar-
ent). It is highly advised to deactivate the plane transparency when using X11 driver to increase
the execution speed.

2-2.6 Graphics area and views


The graphics area is the region of the screen dedicated to the display of all graphical objects created
by the system. These graphical objects may be distributed in different windows called ’views’ in
the IGG™ terminology. Up to four views can be displayed simultaneously in the graphics area.
The position of the views and the camera orientation for each view can be specified with the View/
View Position menu.
Although several views can be visible at a time, only one can be active. This view is identified by a
red border and is called the ’active view’. The active view can be changed with the left mouse but-
ton.

2-10 IGG™
GUI interaction IGG™ Graphical User Interface

2-3 GUI interaction


2-3.1 Keyboard short cuts
IGG™ provides short cuts for the most commonly used options which allow to activate options
without accessing the menus. A short cut consists of a single key or a 2 keys combination and is
indicated at the right of each menu item, when available. To use a short cut:
•Move the mouse to the graphics area
•Press the key corresponding to the short cut. The menu option is activated automatically.
For example, the selection of curves can be activated using the Geometry/Select/Curves menu or
simply by pressing <s> in the graphics area.
A list of the available short cuts is given in the following table.

TABLE 2.

Short cuts Function


Alt-e Sets the viewing scope to Edge mode.
See the Quick Access Pad View/Grid page description on page 7-29.
Alt-f Sets the viewing scope to Face mode.
See the Quick Access Pad View/Grid page description on page 7-29.
Alt-b Sets the viewing scope to Block mode.
See the Quick Access Pad View/Grid page description on page 7-29.
Alt-g Sets the viewing scope to Grid mode.
See the Quick Access Pad View/Grid page description on page 7-29.
Alt-s Toggles solid representation of selected surfaces.
See the Geometry/View/View solid menu item description on page 9-30.
Alt-w Toggles wireframe representation of selected surfaces.
See the Geometry/View/View wireframe menu item description on page 9-
30.
Alt-x Used to insert an internal face.
See the Grid/Internal Face/Create menu item description on page 10-27.
Ctrl-o Toggles the visualization of curves orientation.
See the Geometry/View/Curve Orientation menu item description on
page 9-28.
Ctrl-e Closes the current project and opens a new empty one.
See the File/New menu item description on page 8-2.
Ctrl-y Used to import external curves and surfaces stored in an ASCII IGG™ for-
mat.
See the File/Import/IGG Data menu item description on page 8-4.
Ctrl-g Saves the current work in the files of the current project.
See the File/Save/Save menu item description on page 8-3.
Ctrl-a Toggles the display of the Quick Access Pad.
See the File/Preferences menu item description on page 8-15.

IGG™ 2-11
IGG™ Graphical User Interface GUI interaction

TABLE 2.

Short cuts Function


Ctrl-q Used to end the current session.
See the File/Quit menu item description on page 8-20.
Ctrl-z Toggles the block faces grid.
See the Quick Access Pad View/Grid page description on page 7-29.
Ctrl-l Toggles grid points.
See the Quick Access Pad View/Grid page description on page 7-29.
Ctrl-j Toggles edges.
See the Quick Access Pad View/Grid page description on page 7-29.
Ctrl-m Toggles blocks shading.
See the Quick Access Pad View/Grid page description on page 7-29.
Ctrl-x Used to set the active coarse grid levels.
See the View/Coarse Grid menu item description on page 11-5.
Ctrl-c Used to select curves to be displayed.
See the Geometry/View/Curves menu item description on page 9-26.
Ctrl-f Used to select surfaces to be displayed.
See the Geometry/View/Surfaces menu item description on page 9-27.
Ctrl-t Toggles the selected curves control points.
See the Geometry/View/Control Points menu item description on page 9-
28.
Ctrl-p Used to display the control point coordinates.
See the Geometry/Select/Control Points menu item description on page 9-
25.
Ctrl-s Used to select surfaces.
See the Geometry/Select/Surfaces menu item description on page 9-25.
Ctrl-d Deletes the selected curves.
See the Geometry/Delete/Curves menu item description on page 9-30.
Ctrl-r Deletes the selected surfaces.
See the Geometry/Delete/Surfaces menu item description on page 9-30.
Escape Stops the current tool.
Page-Up Used to zoom in on UNIX.
Page-Down Used to zoom out on UNIX.
Used to translate to the right the active view.
Used to translate to the left the active view.
Used to translate to the top the active view.

Used to translate to the bottom the active view.

F1 Used to perform a 3D viewing.


See “3D viewing button” on page 2-8.
F2 Used to perform a zoom in/out.
See “Zoom in/out” on page 2-9.

2-12 IGG™
GUI interaction IGG™ Graphical User Interface

TABLE 2.

Short cuts Function


F3 Used to fit the content of the view.
See “Fit button” on page 2-9.
F4 Used to fit the content of the view and reset the camera orientation.
See “Original button” on page 2-9.
> Opens the segment clustering dialog box.
See the Grid/Grid Density/Clustering menu item description on page 10-
47.
H Performs a four boundaries interpolation on the active face.
See the Grid/Create Face/Linear 4Bnd menu item description on page 10-
29.
I Performs a six boundaries interpolation on the active block.
See the Grid/Create Block/Linear 6Bnd menu item description on
page 10-38.
N Opens the project face dialog box.
See the Quick Access Pad Grid/Generate page description on page 7-22.
S Opens the grid settings dialog box.
See the Grid/Grid Settings menu item description on page 10-5.
T Opens the periodicity dialog box.
See the Grid/Periodicity menu item description on page 10-4.
X Opens the boundary conditions dialog box.
See the Grid/Boundary Conditions menu item description on page 10-9.
a Draws an arc by specifying the center and two points.
See the Geometry/Circular Arc/Normal-Center-Point-Point menu item
description on page 9-7.
b Draws a bspline.
See the Geometry/Draw BSpline/Free menu item description on page 9-4.
c Draws a cspline.
See the Geometry/Draw CSpline/Free menu item description on page 9-3.
e Used to change in a cyclic way the mode of the viewing scope.
See the Quick Access Pad View/Grid page description on page 7-29.
f Opens the generation tool dialog box.
See the Grid/Create Face/Generation Tool menu item description on
page 10-29.
i Used to insert a new vertex in an edge.
See the Quick Access Pad Grid/Insert/Edit page description on page 7-15.
m Used to modify a curve control point.
See the Geometry/Modify Curve/Modify Point menu item description on
page 9-21.
p Draws a polyline.
See the Geometry/Draw Polyline/Free menu item description on page 9-5.
s Used to select curves.
See the Geometry/Select/Curves menu item description on page 9-25.

IGG™ 2-13
IGG™ Graphical User Interface GUI interaction

TABLE 2.

Short cuts Function


t Toggles vertices.
See the Quick Access Pad View/Grid page description on page 7-29.
w Opens the view position dialog box.
See the View/View Position menu item description on page 11-6.
x Opens the sweep surfaces dialog box.
See the View/Sweep Surfaces menu item description on page 11-3.
y Opens the copy distribution dialog box.
See the Grid/Grid Density/Copy menu item description on page 10-53.

2-3.2 Default mouse bindings


• Left button bindings (<1>): when the cursor is in the Graphics area, the left button is used for
entity selection and positioning. The entities that can be selected by a simple click and release
are listed here below:
— Segment: as soon as a segment is created and is visible within the limits of the views, it can
be interactively selected with the mouse to become active. The selected segment is automat-
ically displayed in yellow with an arrow showing its orientation and general informations
about it is shown in the Information area. When the parent edge (which is also active) com-
prises several segments, the non active ones are displayed in pink.
— Face, Block: when a segment is selected, its parent face is displayed in white and its parent
block in red which means that both become active. As a segment can belong to several faces
or several segments can lie in the same place, multiple clicks on a segment will change the
active face and/or active block.
— Vertex, Fixed point: when the cursor is close enough, these entities are displayed in yellow
which means that they can be selected. When selected, an entity can be moved by simply
dragging the mouse and replaced with a second click and release. A Fixed point can be
moved only along its parent edge.

As said in the previous section, the left mouse button is also used to select the active view
among the views displayed in the graphics area.

• Right button bindings (<3>): when the cursor is in the Graphics area, the right button gives
access to a wide variety of tools and commands from pop-up menus.
This gives an efficient way to do an operation without continually moving the cursor to the pull-
down menus of the Menu bar or the Quick Access Pad icons.
The pop-up menus and the commands associated depend on the entity lying under the mouse
cursor. Some menus are directly accessible by the right mouse button whereas others are acces-
sible with the right mouse button in conjunction with a keyboard key. For example, press the
<Ctrl> key and the right mouse button over a vertex gives access to a pop-up menu specifying
the vertex attraction features.
The following figure shows two examples of pop-up menus and the way to access them:

2-14 IGG™
GUI interaction IGG™ Graphical User Interface

Press <3> over a segment Press <Ctrl> + <3> over a vertex

FIGURE 2.3.2-1 Two pop-up menus accessible with a right-click (<3>)

IGG™ 2-15
IGG™ Graphical User Interface GUI interaction

2-16 IGG™
CHAPTER 3: Meshing fundamentals

3-1 Introduction
Blocks are used to decompose the space into smaller regions that can easily be meshed using alge-
braic or elliptic methods. They are constrained to have exactly six faces that may possibly be
degenerated. There is no theoretical limit to the number of blocks being used to completely cover a
domain. Two approaches can be used to mesh a problem: use the minimum number of blocks to
avoid increased complexity in block management or use more blocks as they are needed. In the first
case, block shapes might be significantly distorted to capture the geometry and the generation of
meshes with good quality might be more difficult. In the second approach the shape of the blocks
may be simpler and their placement on the geometry may be facilitated, at the expense of more
blocks to control and additional management of connections between blocks.
The complete procedure to generate a mesh on a given geometry can be decomposed into sev-
eral logical steps:
1. Create block topologies and map their shape to the geometry;
2. Control edge grid parameters on blocks such as the number of points or distribution;
3. Define patches;
4. Connect blocks together to ease later meshing process;
5. Generate the face grids for each block;
6. Generate the block grids.
The execution order needs not strictly follow the above enumeration. It is for example possible to
add new blocks to already existing blocks and connect them at a later stage or to define patches
after face grid generation. This chapter introduces all the concepts needed to generate a mesh with
IGG™.
The chapter describes the following:
•Basic block creation;
•Block mapping to the geometry;
•Edge Grid Control;
•Face grid generation;
•Block grid generation;
•Internal edges and faces insertion;

IGG™ 3-1
Meshing fundamentals Introduction

•Patch definitions and boundary condition settings;


•Connections;
•Blocks grouping.

3-2 IGG™
Basic Block Creation Meshing fundamentals

3-2 Basic Block Creation


This section describes the various methods to create a block in a project using fast interactive place-
ment of the block vertices (corners).

3-2.1 Creating a block defined by two opposite vertices


1. Click on the Insert New Block icon.
2. Move the mouse to the desired location and left-click the mouse to place the first vertex.
 The current vertex can be attracted to a curve or a visible vertex by moving it close to the
desired entity. See section 3-3.3 on page 3-10 for more details on vertex snapping.
3. As the mouse is moved around, a box attached to the cursor appears. The box boundaries
represent the 12 edges of the new block.
4. Left-click to place the second (opposite) vertex.
 The position of a vertex can also be defined by entering directly its absolute coordinates
in the keyboard input area.
The orientation of the block, defined by the IJK axes, appears at a default corner that can be
changed in the next steps. The IJK axes always appear right-handed.

FIGURE 3.2.1-1 IJK axis placement

5. To change the origin of the IJK axis repeatedly press the <o> key.
6. To change the orientation of the IJK axis press the <s> key.
7. Left-click to complete the block creation. When the block is created the vertices of the
block are drawn using solid square markers.
 At any stage the right-click cancels the block creation.
Changing the position of the vertices is explained in section 3-3.1 on page 3-8.

3-2.2 Creating a block by its eight vertices


1. Click on the dedicated icon.
2. Move the mouse to the desired location and left-click to place the first vertex.
 The position of the vertex can also be defined by entering its coordinates in the keyboard

IGG™ 3-3
Meshing fundamentals Basic Block Creation

input area. Attraction to existing vertices or curves is also possible.


3. Repeat the operation to place the other three next vertices defining the first face.
4. When the first four vertices are specified, a 3D block appears following to the cursor.

first vertices

current vertex

FIGURE 3.2.2-1 Block placement by vertices.

The movement of the cursor can be locked in one direction by pressing one of the following
key:
•<x>, <y> or <z> to lock the movement in the specified direction,
•<n> to lock the movement perpendicular to the first face,
•<v> to lock the movement in a user defined direction. The direction must be entered as a
vector direction through the keyboard input area,
•<u> to unlock.
5. Repeat the click operation to place the other vertices defining the block.
 The placement of the block can be accelerated by middle-clicking the mouse one or two
times (depending of the current creation status). This will give a default position for the
remaining vertices.
When all the corners are defined, the IJK axis appears at a default corner that can be changed in
the following optional steps:
6. To change the origin of the IJK axis repeatedly press the <o> key.
7. To change the orientation of the IJK axis press the <s> key.
8. Left-click to complete the block creation.

After all the vertices have been defined, IGG™ attempts to automatically perform a mapping of the
edges of the new block onto the geometry, as the latest stage of the creation process.

3-2.3 Creating a block by extrusion from an existing block


The creation of a block by extrusion from an existing face of another block is very convenient as it
can save a lot of intermediate steps, like internal grid line creation, manual connections,...
Using this option, blocks are automatically connected at each level: vertices, topological edges, grid
points (segments) and patches.

3-4 IGG™
Basic Block Creation Meshing fundamentals

To create a block by extrusion:


1. Click on the dedicated icon.
The following dialog box is opened:

Patch selection
Active face range

2. Select in the graphics area the face from which the block will be extruded. The face of
extrusion is highlighted in red.
3. In the dialog box, select the range of the face to extrude (see the reference chapter for more
details on how to select the range). The range appears in red in the graphics area.
4. Select the direction of extrusion:
Average Normal: computes the extrusion direction by averaging the normal to the face at
each grid point (unique direction).
Normal to Face: performs the extrusion for each grid point in the direction orthogonal to
the face at the grid point. This direction will most of the time vary from one grid point to
another.
User Direction: performs an extrusion along a unique, user-defined direction.
5. Select the magnitude of the extrusion. This parameter determines the length, along the
extrusion direction, by which the new block will be extruded, in absolute units.The default
value is an average of the reference face size.
6. Press the Extrude button to perform the final operation.
A new block is created.
 When the range of extrusion covers the reference face only partially, internal grid lines
are automatically created in the reference face. These internal grid lines are used to con-
nect the new block to the existing block.

 During the extrusion, the vertices, topological edges, segments and patches are automat-
ically connected. See the reference chapter about the limitations.

3-2.4 Creating blocks by duplication of existing block(s)


1. Click on the dedicated icon.
The following dialog box is opened:

IGG™ 3-5
Meshing fundamentals Basic Block Creation

2. In the dialog box, select the block(s) which will be duplicated: active block, blocks selected
by their indices or blocks contained in a group.
3. Select the number of duplication that will be performed for each selected block.
4. Select the transformation that will be applied to the duplicated block(s): rotation, transla-
tion or scaling.
5. Select the topology creation mode:
No Topology: only the block mesh is duplicated.
Topology from Grid: block edges are created by using the boundary grid points of the
duplicated block. Therefore a slight shape difference can appear between the duplicated
edge and the original one if this one is mapped on a geometry entity. Only the boundary
edges and the corner vertices are reproduced.
Duplicate Geometry: all block entities are reproduced and edges will have exactly the
same shape as those of the initial block.
Vertex snapping: same as previous option. Moreover, IGG™ tries to snap the duplicated
block vertices on the neighboring geometry.
6. Press the Apply button to perform the duplication.

3-2.5 Block extension


This option allows to extend an existing block, starting from one of its faces. This option does not
create a new block, but rather prolongates a block along the I, J or K direction, allowing to construct
blocks incrementally in an efficient way.

3-6 IGG™
Basic Block Creation Meshing fundamentals

Reference face with internal grid line New reference face position 2 grid points

21 grid points 21 grid points

K K
Newly created internal face
J I J I

FIGURE 3.2.5-1 Block extension along the J direction

During an extension operation, IGG™ automatically inserts a new internal face at the position of
the reference face and increments the number of points of the block along the extension direction.
This allows to keep the current shape of the block unchanged while being able to extend it. Internal
edges are inserted in the new internal face at the same position and with the same shape as internal
edges of the reference face.

 The connections of the reference face (vertices, edge, segments and patches) are deleted
during the extension operation. A warning appears when a deletion of connections is per-
formed.

To extend a block:
1. Click on the Extend Block icon.
2. Select the reference face with the left mouse button (<1>). Middle click (<2>) to acknowledge
the face selection and to start the block extension.
3. One vertex of the reference face is selected and can be moved with the mouse. The whole refer-
ence face is translated at once, according to the vertex movement. This vertex can be placed in
the same way as when moved alone, and in particular its coordinates can be entered in the key-
board input area.
4. Left-click to end the block extension.

IGG™ 3-7
Meshing fundamentals Block Shape mapping

3-3 Block Shape mapping


The mapping of a block shape consists of deforming its edges so they partly or completely lie onto
the geometry. The operation is essentially done by moving the vertices attached to the edges and by
automatic mapping of the edges onto geometry curves or surfaces.
This section describes how to:
• Move a vertex,
• Insert and delete a vertex,
• Snap a vertex to curves or surfaces,
• Control edge mapping,
• Control vertex tolerance.

3-3.1 Moving a vertex


To move a vertex of a block:
1. Make it visible with the Toggle Vertices icon (see section 7-4.3 on page 7-29).
2. Move the mouse to the desired vertex and left-click.
Subsequent mouse movement will move the vertex. The edges attached to the vertex are auto-
matically following the vertex.
 When the vertex is close enough to another vertex, curve or surface, it is automatically
snapped to this entity. See section 3-3.3 on page 3-10 for more detail on vertex snapping.

 The edges are automatically mapped onto the geometry when the vertices used by the
edges are on a same curve or surface. Controlling the mapping is explained in a next sec-
tion (section 3-3.5 on page 3-11).
3. Left-click again to fix the vertex position.

To move a whole edge, face or block:


To accelerate the placement of vertices, it is possible to perform collective movements of vertices
(all vertices of an edge, face or block) at once. The following lines explain the movement of a
whole face:
1. Left-click to select the desired face to move.
2. Move the mouse to a vertex of the face and right-click.
A pop-up menu appears, showing three menu items dedicated to collective movements.
3. Select the Move Face option.
4. Move the selected vertex to its new location.
All the vertices of the active face are moved together with the selected vertex.
5. Left-click to fix the vertex and face positions.
 The <e>, <f> or <b> short cuts can be used to perform a collective movement of an edge,
face or block respectively. In this case, the reference vertex must be selected first, then
press the proper key binding.

3-8 IGG™
Block Shape mapping Meshing fundamentals

3-3.2 Adding and deleting vertices


By default edges are controlled by two vertices which appear as filled black squares. Additional
vertices can be inserted or deleted to allow finer control over the block shape. These vertices are
drawn using hollow squares.

 Vertex insertion is required when an edge of a block needs to be placed on several geom-
etry curves. In this case, one vertex is required at the junction of each curve. The same
principle holds when edges need lying on several surfaces.

curve 1
curve 2

Vertex required to map the edge on both curves

FIGURE 3.3.2-1 Mapping an edge on several curves

When a grid edge is defined by more than two vertices, the edge is said to have several topological
edges. Topological edges are entities defined by two consecutive vertices. They can be controlled
independently.
To insert a new vertex in an edge:
1. Click on the Insert Vertex icon in the Quick Access Pad/Grid/Insert/Edit page.

" Use the short cut <i> to activate the Insert Vertex in a faster way.

2. Move the mouse to the desired edge. A small marker is displayed when the candidate edge
has been identified.
3. Left-click to insert a new vertex.
4. Move the vertex and left-click again to fix its position.
5. This vertex can subsequently be moved as described above.
 The insertion of a vertex splits the existing topological edge into two new topological
edges. The edge mapping control is explained in section 3-3.5 on page 3-11.

To delete an existing vertex:


1. Move the mouse to the vertex. The vertex is highlighted when the mouse pointer is in the
close vicinity.
2. Right-click to pop-up a menu for the vertex. Notice that this menu is context sensitive and
only displays menu items when applicable to the vertex.
3. Select the Delete Vertex menu item to delete the vertex.
 Vertices at the corner of a block or vertices at the intersection of internal edges cannot be
deleted to keep block consistency.

IGG™ 3-9
Meshing fundamentals Block Shape mapping

3-3.3 Vertex Snapping


Vertex snapping is the feature that automatically attracts the vertex to points, curves, curve end-
points or surfaces, when it falls within a small aperture. When a vertex is snapped to a curve, it is
attracted by the curve. When a vertex is snapped onto a surface, the surface is highlighted in a blue
wireframe mode.
To snap a vertex to a curve:
1. Select the vertex to move.
2. Move it close to a visible curve.
 When several curves exist at a nearly same location, a zoom (<F2>) or 3D viewing oper-
ation (<F1>) can be performed on the desired curve, then the placement of the vertex can
be resumed.
When the vertex falls within the pick aperture, it is automatically attracted and the name of the
curve appears in the status bar.
3. Left-click to fix the new position.
To snap a vertex to a surface:
1. Select the vertex to move.
2. Move it close to the desired surface. The surface is highlighted in a blue wireframe mode
when it snaps the vertex.
 When several surfaces are stacked onto each other, IGG™ takes the one closer to the
user. To change the current surface, middle-click repeatedly (surface sweeping) until the
vertex lies on the proper surface. The new surface is highlighted in a blue wireframe
mode and its name appears in the status bar.
The vertex can then be moved to its new position.
3. Left-click to finish the operation.

To Control the vertex snapping:


Vertex snapping can be selectively enabled or disabled for curves, curve end-points, curves inter-
section or surfaces. The control is done on a vertex basis and is done as follows:
1. Move the mouse to the vertex.
2. Right-click while holding the <Ctrl> key. The pop-up menu in the margin appears.
3. Enable or disable the snapping for the desired type of entity.
 The curve or surface on which a vertex is snapped is indicated in the status bar, when the
mouse is over the vertex.
The vertex snapping can also be controlled through the toolbar as follows:
1. Move the mouse to the vertex and select it by left-clicking on it.
2. Move the mouse over the toolbar (therefore the vertex follows the cursor) and enable or
disable the snapping for the desired type of entity by pressing the corresponding button.
3. Place the vertex.

3-10 IGG™
Block Shape mapping Meshing fundamentals

3-3.4 Vertex locking


By default a vertex is allowed to freely move in the 3D space and can be snapped to curves or sur-
faces that are far from the current vertex position. It is possible to constrain the movement of a ver-
tex by locking it to a geometry entity. When a vertex is locked, IGG™ performs the snapping
operation on the locked entity first. If the snapping fails (i.e. the vertex was moved away from the
entity), the snapping is then performed on the other visible entities.

 Using the locking mechanism, the movement of the vertex is constrained to a small box
surrounding the vertex and snapping to geometry entities will only occur if the entities
intersect the box.
To lock a vertex:
1. Select the vertex and snap it to the desired entity.
2. Press the <l> key to lock the vertex on that entity.
A small box surrounding the vertex appears, showing that it is locked. Subsequent movements
will be done preferably on the entity.
3. To unlock the vertex, press the <l> key a second time.
 <l> is a toggle key that successively activates or deactivates the locking.

3-3.5 Edge Mapping


Edge mapping is the feature that automatically maps the edges of a block onto the geometry as soon
as its vertices lie on geometry entities. As discussed previously, a grid edge is defined by two or
more vertices. The mapping is performed for each piece between two consecutive vertices (topo-
logical edges).
A mapping is performed when:
• Two successive vertices lie on a same curve,
• Two successive vertices lie on different curves but can be considered as lying on the same curve
at the vertex tolerance,
• Two successive vertices lie on a same surface (or its boundaries),
• Two successive vertices lie on a surface and a curve belonging to that surface (i.e. trimming
curve).

edge 2 mapping disabled

Placing a face

edge 3 edge 4
mapped on curve mapped on curve

single curve edge 1 mapped on curve

FIGURE 3.3.5-1 Placing a face on a single curve.

IGG™ 3-11
Meshing fundamentals Block Shape mapping

It is sometimes necessary to disable the mapping of some topological edges for specific types of
entities. This is for example the case when a face of a block needs to be placed on a single curve, as
shown in Figure 3.3.5-1.
In this example the edges 1, 3 and 4 are mapped onto the curve. The edge 2 should close the gap of
the open part of the curve. By default, this edge is also mapped onto the curve, since its vertices lie
on this curve. To make the edge close the face it is consequently needed to disable the curve map-
ping for that edge.

 By default the mapping on curves and surfaces is activated for all edges.
To control the edge mapping for a topological edge:
1. Move the mouse to the edge.
2. <Ctrl> right-click on the edge. The pop-up in the margin appears.
3. Select one option to disable/enable the mapping on curves, surfaces or both.
4. Select the option again to reactivate curve or surface mapping.

3-3.6 Edge mapping onto disjointed curves


It may happen that geometry curves imported in IGG™ present small gaps where they should nor-
mally join. IGG™ provides a tolerance mechanism allowing to automatically fill gaps without add-
ing additional vertices. This tolerant mapping is accomplished by giving a tolerance to each vertex
defined in the project. As seen in section 3-3.2 on page 3-9, a vertex is required at the junction of
each curve on which an edge should be mapped.

Small tolerance Greater tolerance

Curve 1 Start vertex

Gap Intermediate
vertex
Edge

Curve 2 End vertex

FIGURE 3.3.6-1 Use of vertex tolerance for edge mapping

When the gap is relatively large, the mapping on one of the curve may not succeed at first. To remedy this
problem the tolerance of the vertex can be increased.
To control vertex tolerance:
1. Move the mouse to the vertex. The vertex is highlighted when the mouse pointer is in the
close vicinity.
2. Right-click to pop-up the menu for the vertex.
3. Select the Set Tolerance menu item.
Vertex tolerance entry An entry is popped up to enter the new vertex tolerance. This tolerance is relative. The abso-
lute tolerance is calculated by taking into account the length of the curve.
 The mapping of a topological edge is done by taking an average tolerance of the two sur-
rounding vertices of the edge.

3-12 IGG™
Block Shape mapping Meshing fundamentals

3-3.7 Edge mapping on surface


When two consecutive vertices of an edge lie on a same surface, IGG™ automatically maps the
portion between the two vertices (topological edge) onto the surface. To map this topological edge,
IGG™ works in the (u,v) parameter space of the surface. In the case of very bad surface parametri-
zation (dependent on the way the surface was generated by a CAD system), the edge shape could be
irregular and not correspond to a shortest path between its two vertices. In these cases, adding inter-
mediate vertices to the edge would not help in a satisfactory way.
To circumvent this limitation another type of mapping has been introduced, giving much better
solutions in these extreme cases. It consists of intersecting the surface by a plane passing through
the two vertices and with a normal calculated by IGG™.
To change the mapping mode for a given topological edge:
1. Move the mouse to the desired topological edge.
2. <Ctrl> right-click on the edge. The pop-up menu in margin appears.
3. Select the “Surf Map 2” option. It automatically disables the “Surf Map 1”.
The edge will be automatically remapped onto the surface using the second mapping type. This
mode may fail when the vertices of an edge lie far apart on folded surface. In that case, introducing
one or more additional vertices will solve the problem.

 Since the default edge mapping works in most cases, the second mapping type should
only be used when the surface parametrization leads to poor results.

3-3.8 Faster vertex movement


When the number of curves or surfaces is large or when surfaces are over-defined (lots of control
points), the interactive movement of a vertex may be significantly slowed down by the dynamic
mapping of the edges which is performed automatically for each new vertex position. To accelerate
the interactive movement the dynamic mapping can be temporarily disabled as follows:
1. Left-click to select the vertex.
2. Hold the <Ctrl> key and move the vertex.
The vertex will be snapped to curves or surfaces, as usual, but the mapping of the edge is tem-
porarily disabled.
3. Release the <Ctrl> key to resume full edge mapping.
4. Left-click again to fix the vertex position. The edge mapping will then be performed at that
time.

IGG™ 3-13
Meshing fundamentals Edge grid control

3-4 Edge grid control


The meshing of a block starts by controlling the grid parameters along the boundaries of the block
such as number of points in the I, J and K directions or the clustering along each edge.
Grid points density along edges is controlled by segments. Segments are entities controlling a
range of grid points and are delimited by two fixed points. They are mainly used for two purposes:
• to locally control the distribution and clustering of grid points along an edge,
• to control the number of grid points along edges.
By default an edge has only one segment extending over the whole edge. Adding more segments to
an edge is done by inserting fixed points into existing segments. This insertion divides a segment
into two new ones.

segment 1
Start vertex segment 2 End vertex

segment 3

Fixed Point shared by


segments 1 and 2

Fixed Point shared by


segments 2 and 3

FIGURE 3.4.0-1 Edge division in segments by using fixed points.

Inserting fixed points into an edge is useful to:


• divide grid edges into segments,
• capture corners in a geometry. A grid point is then required to be exactly at the corner posi-
tion,
• insure grid consistency.
This last case occurs when internal grid lines are inserted in a face as shown in the following figure.

fixed point automatically inserted


during Internal Grid Line insertion

FIGURE 3.4.0-2 Fixed Point insertion through internal grid line creation

3-14 IGG™
Edge grid control Meshing fundamentals

During the creation of internal grid lines (IGL), IGG™ automatically inserts a fixed point and a ver-
tex into all crossing edges (boundary edges or existing internal grid lines). Any subsequent modifi-
cation of that vertex/fixed point will modify the internal line and the boundary edges consistently.

3-4.1 Fixed Point Control


A fixed point is defined by an index (grid point index) on the edge to which it belongs. When a
fixed point is at the intersection of two or more internal grid lines it has several indices, one for each
edge. The index of a fixed point directly affects the number of points of its surrounding segments.
By default, a fixed point is constrained to move along its edge. More flexibility can be given to the
position of the point by attaching it to a vertex. This is very useful when a fixed point needs to be
placed at a geometric corner. In this case, attaching the fixed point to a vertex and placing the vertex
to the corner position will achieve the desired effect.
This section describes how to:
• create and delete fixed points,
• attach a fixed point to a vertex,
• change a fixed point index.

To Insert a fixed point:


1. Visualize the grid points for the desired edges (See section 7-4.3 on page 7-29)
2. Click on the Insert Fixed Point icon in the Quick Access Pad/Grid Insert/Edit page.
3. Move the mouse to the desired edge near a grid point to fix. A small marker is displayed
when the insertion can be performed.
4. Left-click to insert a new fixed point. The index of the fixed point will be that of the closest
grid point.
5. Move the point and left-click again to fix its position.
6. This fixed point can subsequently be moved as described here below.
To Move a fixed point:
1. Move the mouse to the desired fixed point. The index of the fixed point will appear when
it can be selected.
2. Left-click to start moving the point. The fixed point is constrained to move along the edge
to which it belongs.
As the fixed point is moved, the two segments surrounding the point are automatically updated
and their grid points distribution automatically recalculated.
 The face grids touched by this operation are automatically regenerated using an algebraic
4 boundary interpolation. If these faces were generated using other options, like smooth-
ing or projections on surfaces, they will need to be explicitly regenerated with the
Regenerate Faces option (see section 3-5 on page 3-19).
3. Left-click to stop the modification.

To Delete a fixed point:


1. Move the mouse to the desired fixed point. The index of the fixed point will appear when it
can be selected.

IGG™ 3-15
Meshing fundamentals Edge grid control

2. Right-click to pop-up a menu for the fixed point. Notice that this menu is context sensitive
and only displays menu items when applicable to the fixed point.
3. Select the Delete menu item to delete the fixed point.
 Fixed points at the intersection of two internal edges cannot be deleted.
Changing the index of a fixed point:
1. Move the mouse to the desired fixed point. The index (indices) of the fixed point will
appear when it can be selected.
 When fixed points are at the intersection of two internal grid lines or when they are con-
nected to others (as a consequence of connected segments), several indices will appear.
2. Right-click to pop-up a menu for the fixed point.
3. Select the menu item corresponding to the desired index that will be changed.
A prompt will appear to enter the new index in the keyboard input area.
4. Enter the new value and press <Enter>.
Changing the index of the fixed point automatically changes the number of points controlled
by its surrounding segments, as shown in the figure.

s3 s3
s2 s2
Kmax = 51 Kmax = 51
K = 31 K = 31
s1 s1
K = 21 K = 17
Changing first point index
s1 - 21 points s1 - 17 points
s2 - 11 points s2 - 15 points
s3 - 21 points s3 - 21 points

FIGURE 3.4.1-1 Changing the index of a fixed point

 When a fixed point is belonging to an internal edge or to an internal face, IGG™ keeps
grid consistency by automatically changing the index for the internal edge or face.
Attaching a fixed point to a vertex:
1. To attach a fixed point to a vertex, the vertex must first exist. If this is not the case, create
one vertex as indicated in section 3-3.2 on page 3-9 and place it near the fixed point.
2. Right-click on the vertex to pop-up the menu.
3. Select the Attach Fixed Point menu item.
The vertex and fixed point markers are merged as a diamond, indicating that the vertex is
attached to the fixed point.
4. The fixed point can now be moved by moving its vertex.

3-4.2 Segment Control


To increase or decrease the number of grid points on a segment:
1. Right-click on the desired segment to pop-up the menu in the margin. The segment gets
activated. Further, go to the Segment sub-menu.

3-16 IGG™
Edge grid control Meshing fundamentals

2. Select the Set Number of Points menu item.


The following dialog box will appear:

Enter the new number of points for the segment. The fixed point indices will be automatically
updated according to the new number of points.
The Propagate button indicates whether segment resizing should also be applied to the blocks
connected to the active block. If propagation is disabled, the modification of the number of
points will only be applied to the active block and the segment connections (parallel to the ref-
erence segment) with other blocks will be deleted to keep consistency.
The Preview button evaluates the effect of a segment resizing on the active block and all the
blocks connected through a segment connection. The segments affected by the evaluation will
be highlighted in yellow. When a resizing cannot be propagated along a specific connection,
the connection responsible for the failure will be highlighted in red with a message in the
graphics area. The Preview button should consequently give a clear picture of the operation.
3. Press the Apply button. It evaluates and applies the segment resizing on the active block
and all the connected blocks. This operation will reflect the operations explained for the
Preview button. Each segment affected by the operation will have its grid points visual-
ized, until the closing of the dialog box. When a resizing cannot be propagated along a spe-
cific connection, the connection will be deleted to avoid inconsistencies after propagation.
A message will appear at the deleted connection(s).
 The total number of points for the edge, as well as all other edges along the same direc-
tion, are automatically adapted and the faces touched by this operation are regenerated
using an algebraic 4 boundary interpolation.
See the section 10-2.2 on page 10-5 for more information on changing the number of points.
To control the clustering along segments:
1. Left-click to select the desired segment.
2. Click on the Cluster Points icon in the Quick Access Pad/Grid/Edit page. This option
can also be accessed via the pop-up menu obtained by right-clicking on the segment (Seg-
ment/Distribution).
The Clustering dialog box is opened.
3. Select the desired clustering type (for example "At Start").
4. Enter the required values in the fields ("Initial Spacing" entry for the previous example).
5. Press the Apply to seg button to apply the clustering on the active segment.
 When several segments need having the same clustering, they can be put in a clustering
group on which a same clustering will be applied.

IGG™ 3-17
Meshing fundamentals Edge grid control

To define a clustering group:


1. Press the Define/Edit group button of the "Clustering" dialog box. The Clustering
groups dialog box is opened:

2. Press the Create button. An additional field is opened to enter the group name.
3. Enter a group name and press <Enter> to create the group.
4. A tool is launched into IGG™ to add segments in the group. Select the desired segments
with left-click (<1>), add the selected segment in the group by middle-click (<2>), then
right-click (<3>) to quit the tool.
5. The group and its segments appear in the list of the "Clustering groups" dialog box. They
can be visualized in the graphics area by left-clicking repeatedly on their name.
To control the clustering on a group:
1. In the "Clustering" dialog box, select a group in the Group area.
2. Select the desired clustering type and enter the required values in the fields, just as for a
single segment.
3. Press the Apply to group button to apply the clustering on the selected group.

3-18 IGG™
Face generation Meshing fundamentals

3-5 Face generation


Face grid generation is an essential step of the complete generation process. It must be performed
for the six faces of a block before the volume grid generation can proceed. In fact, the basic volume
generation methods interpolate grid points within the block from the grid points on the boundary
faces. It is thus essential to generate proper face grids before proceeding to volume grid generation.
When internal faces exist, the same manipulations as for the boundary faces can also be applied.
See the Block generation section, later in this chapter, for more information about internal faces.

This section describes:


• how to generate a basic face grid,
• how to project or map a face grid on one or more CAD surfaces,
• how to automatically regenerate a face after topology modification.
Face grid generation can be further controlled by inserting internal edges. The internal edges con-
cept is introduced in a following section (see section 3-7 on page 3-25).

3-5.1 Face generation by bilinear interpolation


Basic generation method of a face is based on bilinear interpolation from the boundary grid points.
This generation takes into account the clustering applied to each segment.
1. Select a face by left-clicking on one of its edges.
 When several faces have an edge at the same location (i.e connected faces) repeat the
left-click procedure until the proper face is activated.
2. Click on the 4 Bnd Interpolation icon in the Quick Access Pad/Grid/Generate page.
This option opens the following dialog box that allows to select the faces to generate:

3. Select the scope of the generation.


4. Press Apply.

The face grid of the selected scope will be displayed to show the result of the generation.

IGG™ 3-19
Meshing fundamentals Face generation

FIGURE 3.5.1-1 Active face generated by bilinear interpolation.

3-5.2 Face projection


Algebraic face grid generation (bilinear interpolation) does not in general insure that grid points
will lie on CAD surfaces. To insure this, projection of the face grid on the surfaces must be per-
formed. Surface projection consists of projecting the grid points of a face onto one or more CAD
surfaces, along the normals to the face. To insure a correct projection, it is required that the initial
face grid is sufficiently close to the surfaces.
To project a face grid onto geometry surfaces:
1. Activate the Geometry/Select/Surfaces menu option (<Ctrl-s>) and select the desired sur-
faces. Right-click when the selection is finished.
2. Select the face grid to project.
3. Click on the Project Face icon in the Quick Access Pad/Grid/Generate page.

A dialog box will be opened to select parameters and to perform the projection:

Surface specification

Projection mode

Range to project
Can be the whole face or a range

Range Selection Click on the border to change


the current limit

FIGURE 3.5.2-1 Face projection dialog box.

3-20 IGG™
Face generation Meshing fundamentals

4. Select the target surfaces on which to project: selected surfaces or surfaces contained in a
geometry group.
5. Select the level of checks which will be applied during projection (usually level 2).
6. Select if the boundary grid points of the projected range must be projected or not (the
default is not to project these grid points since they belong to block edges which are sup-
posed to be mapped on the surface before the projection).
 the boundaries projection is only useful for patches which have no common boundaries
with the block's ones (e.g. patch "fully" inside a block face).
7. Select the projection scope: the whole face or a range.
8. In case only a face range is projected, select a patch or a range to project.
 Projecting just a patch is useful when the projection of the whole face on several over-
lapped surfaces fails. In this case, projecting patch by patch onto dedicated surfaces may
help.
9. Press the Apply button to perform the projection.

Few problems that may happen during face projection are the following:
• Grid points are projected onto wrong surfaces. This may happen when the base NURBS of
trimmed surfaces overlap, leading to some ambiguities in the automatic choice of the closest
projection surface. In this case it may be necessary to remove one of the surfaces from the list of
surfaces or to project the face grid by patches.
• Negative cells may appear in the face grid. This can happen when the initial grid is significantly
away from the surfaces. Introducing internal grid lines placed onto the surfaces may improve
the initial mesh and remove the problem. It is also possible to get rid of the problem by smooth-
ing the face grid and re-applying the projection. Smoothing is available through the Face Gen-
eration Tool icon of the Quick Access Pad/Grid/Generate page.
• When the projection is not working, it can be due to the edge discretisation. When this discreti-
sation is too coarse to capture correctly the curve curvature, it can lead to poor grid quality after
projection.To refine the discretization on an edge, additionnal vertices ( ) need to be added
on the edge.

3-5.3 Mapping onto a surface


When a face completely lies on one geometrical surface, it is possible to avoid the projection option
and to use a mapping instead. This method does not require an initial grid to be generated and is
consequently less sensitive to projection problems.
1. Select the face,
2. Select the geometry surface,
3. Click on the Face Generation tool icon in the Quick Access Pad/Grid/Generate page,
4. Press on the Mapping button to perform the mapping,
5. Close the dialog box.

3-5.4 Finer control on the face generation


When the basic generation options are not giving satisfactory grids, more control can be performed
on the face grid generation.

IGG™ 3-21
Meshing fundamentals Face generation

1. Click on the Face Generation tool icon in the Quick Access Pad/Grid/Generate page.
The following dialog box appears:

This dialog box allows to control the face generation by range (either existing patches or a range
defined by its limits).

3-5.5 Face generation history and face regeneration


To keep at any time the face grids in conformity with the boundary information the face grids are
automatically generated by IGG™ using the default algebraic 4 boundaries interpolation. This
dynamic update is applied when performing actions such as modifying the clustering or moving the
topology. It removes the effects of other face generation options such as face smoothing, projection
or mapping.
When such face has been previously projected on surfaces or smoothed, it is normally necessary to
repeat the full regeneration procedure to get the correct final result using the non default face grid.
To help accelerating this task IGG™ automatically records all the steps used during the generation
of each face grid. This information can later be used to visualize the generation operations applied
on a face and to regenerate a face by replaying automatically each generation operation.

3-5.5.1 History visualization


Face generation history can be monitored and to some extend edited by using the Quick Access
Pad/Grid/Generate/Show History item. It is most useful to keep track of complex operations per-
formed on a face grid like projection by patches or to delete obsolete operations. It opens a dialog
box showing the list of the operations performed on the active face grid:

FIGURE 3.5.5-1 Face generation history.

3-22 IGG™
Face generation Meshing fundamentals

The list of operations is dynamically updated when selecting a new active face. It is to be remem-
bered that a bilinear interpolation is always performed implicitly by IGG™ as the very first opera-
tion performed on a face. This operation is not shown in the list (except if it has been done
explicitly, as in the previous example).
Editing
One or more operations can be deleted from the list by selecting the desired operation and pressing
the Delete button. For speed reason, IGG™ does NOT automatically regenerate the face after a
deletion. This operation must be performed explicitly with the "Regenerate Faces" option.

3-5.5.2 Face regeneration


1. Select the Regenerate Faces item in the Quick Access Pad/Grid/Generate page.
2. A dialog box is opened to select the face(s) to regenerate.

3. Select the scope of regeneration and press Apply.

IGG™ 3-23
Meshing fundamentals Block generation

3-6 Block generation


After all the faces of a block have been generated, the generation of the block can proceed. This
section describes how to generate a basic block grid by interpolation:
1. Select the desired block by left-clicking on one of its edges.
 When several blocks have an edge at the same location, repeat the left-click operation
until the proper block is activated.
2. Click on the Block 6 Bnd icon in the Quick Access Pad/Grid/Generate page.
3. The following dialog box appears and enables to select the block(s) to generate.

Blocks specified by their indices

4. Press Apply to generate the specified block(s).


After the generation the boundary faces of the generated block(s) are automatically visualized.

3-24 IGG™
Internal edges Meshing fundamentals

3-7 Internal edges


Internal edges, also called internal grid lines, correspond to edges inserted inside a face. They are
used for two purposes:
1. To control the face grid generation (control of the grid points distribution on the internal edge,
mapping of the internal edge on geometric entities, ....),
2. To allow the connection between blocks (i.e. when one block ends on an other).

Internal grid lines Block 2

Internal grid lines

Block 1

FIGURE 3.7.0-1 Internal edges used to connect blocks together

To insert an internal grid line:


1. Select a face by left-clicking on one of its edges.
2. Click on the Insert Internal Grid Line icon in the Quick Access Pad/Grid/Insert/Edit
page.
3. Move the mouse to the active face. When moving the cursor over a grid line, the grid line is
highlighted and its index appears on the screen.
4. Press <i> or <j> to enable grid line selection in a preferred direction.
5. Press <u> to disable the preferred direction.
6. Left-click to create the internal grid line.
The newly created internal grid line is visualized and automatically intersects the other already
existing edges as shown is the following figure.

fixed point automatically inserted


during Insert Grid Line insertion

FIGURE 3.7.0-2 Fixed point insertion through internal grid line creation

IGG™ 3-25
Meshing fundamentals Internal edges

The created internal grid line can be manipulated in the same way as boundary edges:
•Additional vertices can be inserted and moved,
•The edge can be mapped onto curves or surfaces,
•Fixed points can be inserted and moved,
•Distribution of grid points can be fully controlled.
To change the index of an internal grid line:
1. Right-click on the internal edge and go to the Edge pop-up menu.
2. Select the Change Index menu item.
3. A prompt will appear to enter the new index for the internal edge.
4. Enter new Edge Index:
>> 7
The fixed points of the internal edges are automatically updated.

3-26 IGG™
Internal faces Meshing fundamentals

3-8 Internal faces


Internal faces are very convenient to add control to the block generation and to improve the genera-
tion of blocks in case negative cells appear. They can be generated as boundary faces. It is possible
to insert internal faces in the I, J or K directions of the existing blocks.
To insert an internal face:
1. Select the desired block by left-clicking on one of its edges.
2. Click on the Insert Internal Face icon in the Quick Access Pad/Grid/Insert/Edit page.
The following dialog box appears.

3. Sweep the I, J or K indices in order to select the desired internal face grid.
4. Click on the Save button to generate the internal face.
This action automatically creates new internal edges at the intersection between the new face
and the other existing faces. At the same time, fixed points are introduced into intersected
edges to insure grid consistency at any time. These fixed points are attached to the vertices of
the internal edges.

Internal edges inserted


into boundary faces

FIGURE 3.8.0-1 Creation of an internal face

To change the index of an internal face:


1. Select the internal face by left-clicking on one of its edges.
2. Right-click on one of its edges and go to the Face pop-up menu, shown in the margin.
3. Select the Change Index menu item.
A prompt will appear to enter the new face index value:
4. Enter new face index (q):
>> 6

IGG™ 3-27
Meshing fundamentals Defining patches and boundary conditions

3-9 Defining patches and boundary conditions


Patches are dividing face grids into 2D regions. These regions should not overlap, although IGG™
performs no check on this. Patches are mainly used for two purposes:
•to control the face grid generation process,
•to define boundary conditions of a face.
By default only one patch exists for each face grid extending over the whole face. Patch creation is
done by division of an existing patch in one of the two directions of the face. To create more
patches a recursive division must be done.
To define patches on a face:
1. Select the desired face.
2. Open the Grid/Boundary Conditions... dialog box.
The list of all patches for the current project is displayed.
 Use the filters to reduce the list and make the selection easier.
3. In the list, select one patch belonging to the desired face. The patch is highlighted in the
graphics area.
4. Click on the Edit Patch >> button.
The dialog box is extended and shows the current patch decomposition for the face.
5. Move the mouse to the patch to divide in the Edit Patch area.
6. Right-click on the patch to pop-up a menu.
7. Select the menu item corresponding to the desired division direction.
An entry is popped up to enter the division index. At the same time, for visual control, the
range is displayed in the graphics area.
 If the wrong division direction was selected, simply press <Esc> to cancel and repeat
step 6.
8. Enter the division index and press <Enter> in the field to perform the division.
To change the limits of a patch:
1. Open the Grid/Boundary Conditions... dialog box.
2. Select the patch in the Edit Patch >> area.
3. Left-click on one of the border to modify its value. An entry is opened to enter the new
value.
4. Enter the value and press <Enter>.
To specify a boundary condition for a patch:
1. Open the Grid/Boundary Conditions... dialog box.
2. Select the patch in the list or in the Edit Patch >> area.
3. Go to the Set Patch Type pop-up menu and select the proper boundary condition.
 Connection between adjacent patches (CON and NMB) or periodic connection between
periodic adjacent patches (PER and PERNM) cannot be specified explicitly with this
menu item and there are detected automatically by pressing the Search button. Checks
must be done by IGG™ for these connections to insure integrity of data for the solver
(i.e. relative orientation of the connected patches).

 Limitation: if the Boundary Conditions dialog box has been resized before clicking on

3-28 IGG™
Defining patches and boundary conditions Meshing fundamentals

the Edit Patch >> button, the dialog box will not extend. In this case the dialog box has
to be closed and opened again.

To specify periodic boundaries:


The imposition of the periodic connections requires that the periodicity is correctly specified for
each block first.
1. Open the Grid/Periodicity... dialog box.
2. Set the periodicity information for each block. See section 10-2.1 on page 10-4 for more
information.

IGG™ 3-29
Meshing fundamentals Connections

3-10 Connections
IGG™ is a multiblock structured grid generator. To be able to use such multiblock meshes with a
solver, one must know how blocks are located and how they are interacting together. Thus "connec-
tions" must be established between block interfaces in order to transfer information from one block
to another. Such connections are mandatory to obtain a usable mesh and they are established in
IGG™ between patches, which are sub-ranges of a block face. For information about patches defi-
nition, see section 3-9 on page 3-28. A section here below is specially dedicated to patch connec-
tions.
On the other hand, beside these patches connections, other connection levels are provided into
IGG™ to facilitate the grid generation process. These additional levels are optional though it con-
siderably reduces the number of operations required to insure face grid consistency at the interface
between blocks.
Following connection levels are accessible in addition to patches connections:
• Vertex
• Orphan vertex
• Topological edge
• Segment
As all these entities are linked together, an order must be followed to perform the connections.
Indeed, vertices are used by topological edges and segments are lying on topological edges. There-
fore vertices must be connected before topological edges, which ones must be connected before
segments. Moreover, any failure or forgotten step in the connection process prevents following
other connections. For example, if vertices connections are not performed, the connection between
the corresponding topological edges cannot be executed.
The same rule applies to disconnections, but in the reverse order. Indeed, a vertex disconnection
implies automatically a topological edge disconnection and thus also the corresponding segment
disconnection. On the other hand, a segment disconnection leaves the vertices and edges connected.
Another section is specially dedicated to these types of connections (See section 3-10.2 ”Topologi-
cal connections (vertex, edge, segment)”).
Finally, a section lists all the several means that can be used in IGG™ to perform connections at dif-
ferent levels: vertex, topological edge, segment and patch (See section 3-10.3 ”Connection tools”).

3-10.1 Patch connections


Three connection types can be defined in IGG™ : matching, non matching and full non matching.
Matching and non matching connections are used to connect two patches having common bounda-
ries whereas full non matching connections allow to connect several patches of several blocks with
non matching boundaries.

a) Matching and non matching connections


Matching connections are obtained between two patches with same number of grid points along the
two directions, and when all their points are matching at a specified tolerance. Non matching con-
nections are obtained when some patches points are not matching at the specified tolerance, or
when the number of grid points is not the same in one or both directions.
The following checks are performed by IGG™ when trying to connect two patches:
• Four patch corners must be matching at the given tolerance.

3-30 IGG™
Connections Meshing fundamentals

• Four patch boundaries must be matching at the given tolerance.


• Patch points must lie on a same common surface. For this, some points of the first patch are
projected on the surfacic cells of the second patch. An intersection must be found and the
distance between the point and its projection must be lower than an internally calculated
value based on the given tolerance and the patch dimension.
• All the patch points must be matching at the given tolerance. Obviously, when number of
grid points is different in one or both directions, this test is never satisfied.
The three first tests are performed for both matching and non matching connections and determine
if a connection is possible between the two considered patches. The last test determines if the con-
nection is matching or non-matching.
According to these tests, several conditions must be satisfied to ensure connection between patches.
First of all, make sure the division into patches is correctly done. It is illustrated in Figure 3.10.1-1
where a principal block has to be connected to two adjacent blocks. In this example, the face of the
principal block that has to be connected must be divided into two patches before performing con-
nections.

Principal block

Face of first block


must be divided into
two patches

Adjacent blocks

FIGURE 3.10.1-1 Division into patches

Secondly, to connect two patches, their boundaries must be coincident. If it is not the case, it can be
achieved by inserting fixed points or internal grid lines into faces.
As shown in case a) of Figure 3.10.1-2, a principal block has to be connected with a smaller adja-
cent block. The face of the principal block that has to be connected is divided into two patches, but
the boundaries of the first patch are not matching the boundaries of the single patch of the adjacent
block. The boundaries match after insertion of an internal grid line, as in the case b) of
Figure 3.10.1-2.
Finally, for matching connections, the grid points of the patches must be matching at the specified
tolerance. If it is not the case, it can be due to a difference in the method used for face generation.
For example, if a face is generated by a 4Bnd interpolation and that smoothing is applied on the sec-
ond face, their grid points would not be coincident, as shown in Figure 3.10.1-3.

IGG™ 3-31
Meshing fundamentals Connections

Patches boundaries for principal block


Principal block
Second patch of principal block

a) Non matching
boundaries

Adjacent block
First patch of principal
block
Patch boundary for
adjacent block

Patches boundaries coincident for


first patch of principal block and
patch of adjacent block

b) Matching
boundaries

FIGURE 3.10.1-2 Matching and non matching patch boundaries

First block: face generated Second block: smoothing applied


by a 4Bnd interpolation on face

Patches with matching boundaries


and non matching grid points

FIGURE 3.10.1-3 Different methods used for face generation

3-32 IGG™
Connections Meshing fundamentals

Therefore faces mesh should be generated in the same way (by using the same method) in order to
obtain matching points, or the tolerance must be increased to force the connection. However, this is
only valid for small gaps between grid points (compared to the patch size) and it is highly recom-
mended to avoid setting a tolerance close to the patch size, otherwise connection can be found
incorrectly. For example, having two square patches of size 1 and distant of 2, a tolerance of 3 will
connect them whereas they should remain unconnected.

b) Full non matching connections


This type of connection is used to connect several patches with non matching boundaries. Obvi-
ously, it can therefore be also used to connect two patches with matching boundaries (matching and
non matching connections) though it is useless and not recommended, except to replace some non
matching connections. Indeed, the treatment by the flow solver of a same connection can be differ-
ent if it is defined as a non matching or full non matching connection.
The possibility to use full non matching connections in IGG™ mostly depends on the capabilities of
the flow solver to support such type of connections. In the case of NUMECA solver, this capability
is fully supported.
The following picture shows an example of full non matching connection between two blocks.

Inlet patch (block 1, face 2)

Common region (connection)

Solid patch (block 1, face 2)

Solid patch (block 2, face 1)

FIGURE 3.10.1-4 Full non matching connection between two blocks

In this example, the connection region between the two blocks is polygonal and crosses over the
two patches of first block and over the unique solid patch of second block. As it can be seen, the
limits of this region do not, in general, correspond to the rectangular limits of the patches. Moreover
the grid points on one side do not correspond to grid points on the other side.
Establishing a full non matching connection consists of listing the patches defining one side of the
connection and patches defining the other side. Therefore such connection is defined by a list of
"left" patches and a list of "right" patches, defining both sides of the connection. This information is
basically sufficient for IGG™ and the solver to proceed further. The patches in one list are not
restricted to belong to the same face or same block.
It is to be noticed that full non matching connections are always defined on top of existing patches
and that these ones must have a valid basic type (no undefined type (UND)), even if the patch is

IGG™ 3-33
Meshing fundamentals Connections

entirely contained in the connection region. In the previous example, the basic type of the patches
of block 1 face 2 are inlet and solid. However a region of these patches actually belongs to the full
non matching connection.

 In the case a patch has an undefined type (UND) and is used in the definition of the
FNMB (full non matching boundary), IGG™ automatically sets its type to solid (SOL).
This is required by the solver to run properly.
Following rules must be respected when performing FNMB connections:
1. A patch can be contained in only one list (either the left patches list or the right one) and
one FNMB connection. It is illustrated in the following figure.

First FNMB
connection Patch 1

Patch 3 Patch 2

Second FNMB
connection

FIGURE 3.10.1-5 Patch contained in two FNMB connections

2. A patch closed on itself (two patch boundaries are matching) cannot be used if the connec-
tion region includes the closing part. In this case, the patch must be divided in two patches.

Closing part of the patch

FIGURE 3.10.1-6 Patch closed on itself

3. Two patch points cannot be coincident. For example, a O-type patch with a singular line or
a triangular patch cannot be used in a FNMB connection.

FIGURE 3.10.1-7 Patches with coincident points

3-34 IGG™
Connections Meshing fundamentals

4. For periodic FNMB connections, all the patches defining the connection must have the
same periodicity information. This information is set for the patch block (see section 10-
2.1 "Periodicity" on page 10-4).

3-10.2 Topological connections (vertex, edge, segment)


a) Vertex connection
A vertex belongs to a topological edge. The connection consists of searching matching vertices at a
specified tolerance and to merge them by replacing one by the other (the second vertex is replaced
by the first one in the definition of its topological edge). So after the connection, the two topologi-
cal edges are sharing a same common vertex. Therefore when modifying one edge by moving this
vertex, the second edge is also modified.
In order to keep consistency, topological edges using the replaced vertex are remapped on the
geometry, if possible, otherwise their shape is updated according to the new vertex position. It is
illustrated in the following figure.

Edge 1
Gap smalller than
specified tolerance
=> possible connection
Edge 2

Vertex shared by edge 1


and edge 2

Edge 2 shape modified automatically


after vertex connection

FIGURE 3.10.2-1 Edge remapping after connection

 Limitation: two vertices belonging to an edge closed on itself should not be connected if
a fixed point is attached to one of the two vertices, as illustrated in the following figure.

Edge closed on itself These vertices should not be


connected if one of them is
attached to a fixed point

FIGURE 3.10.2-2 Edge closed on itself

IGG™ 3-35
Meshing fundamentals Connections

b) Orphan vertex connection


An orphan vertex is a vertex that appears on one edge and not on the other, although the edges
appear at the same position and should be connected.

Grid edge 1 with one topological edge

Orphan vertex

Edges at same location


Grid edge 2 with two topological edges within tolerance

FIGURE 3.10.2-3 Two edges connecting together. An orphan vertex exists in one edge.

Connecting orphan vertices consists of adding a new vertex to the edge missing a vertex (edge 1), at
the same position as the orphan vertex, and connect the two vertices together (orphan and new ver-
tex). The insertion of a new vertex in the edge automatically divides it into two topological edges.
An orphan vertex connection is possible if the distance between the orphan vertex and the edge is
less than a specified tolerance.
In order to keep consistency, topological edges in which a vertex is inserted are remapped on the
geometry, if possible, otherwise their shape is updated according to the new vertex position. It is
illustrated in the following figure.

Topo edge 1 and 2 mapped on curve

Topo edge 1 Topo edge 2


Curve
Topo edge 3

Gap smaller than specified tolerance


=> possible connection

Topo edge 3 mapped on curve after


vertex connection

FIGURE 3.10.2-4 Edge remapping after connection

3-36 IGG™
Connections Meshing fundamentals

c) Topological edge connection


A topological edge belongs to a grid edge (a grid edge is composed of several topological edges).
The connection consists of searching matching topological edges at a specified tolerance and to
merge them by replacing one by the other (the second topological edge is replaced by the first one
in the definition of its grid edge). So after the connection, the two grid edges are sharing a same
common topological edge.

Topological edge connection


does not imply the entire
grid edge connection.

FIGURE 3.10.2-5 Topological edge connection

Shared topological edges are required to insure that grid edges lie at the same physical position and
that any operation, like inserting a vertex, is performed consistently on all entities.

 Topological edge connection requires that the edge vertices are already connected.

d) Segment connection
Segment connection consists of finding segments that are at the same position at a specified toler-
ance, with the same number of points and to establish a link between the two entities. The points of
the segments to connect do not have to be at the same position, but only the extremities. This type
of connection insures that grid points at the interfaces between two grid edges have exactly the
same position.
Connecting segments provides following other benefits:
• Modifying the distribution of the grid points along one segment automatically modifies the grid
point distribution on the connected segment.
• The insertion or removal of fixed points in a segment (segment division) is automatically done
on the connected segment to keep the grid connection.
 Segment connection requires that their underlying topological edge(s) are already con-
nected.

 Two segments belonging to an edge closed on itself will not be connected.

3-10.3 Connection tools


Connection tools can be accessed through the Quick Access Pad/Grid/Connect page and the
Grid/Boundary Conditions dialog box (see section 7-3.3 on page 7-18 and section 10-2.3 on page
10-9 for a detailed description).

IGG™ 3-37
Meshing fundamentals Connections

Tools of the Quick Access Pad are the following:


• Connect Edge - Edge
• Connect Face - Face
• Connect Whole grid
They are used to perform connections between two edges, two faces and for the whole grid, respec-
tively.
Topological connections (vertex, topological edge, segment) are exclusively performed by using
these Quick Access Pad tools.
Patch connections can be performed by several means:
• The first one is the use the Grid/Boundary Conditions... menu (See section 10-2.3
”Boundary Conditions”). It allows to find and define all connections: matching, non match-
ing and full non matching; periodic or not. The most interesting mode is the "automatic
search" (Search button), which performs automatically the search and the effective connec-
tion for all undefined patches of the grid. The second mode "manual connect" (Manual...
button) is rarely used, when other means cannot perform the connection correctly.
• Secondly, the Connect/Face - Face and Connect/Whole grid tools can be used. In this
case, only matching and non periodic connections (CON type) can be found. The "Face -
Face" item allows to find connections between patches of two selected faces, whereas the
"Whole grid" item performs connections for all the patches of the grid. This last tool is
strictly equivalent to the "automatic search" previously described, except that it finds only
CON connections.

3-10.3.1 Connecting face grids


In this section connectivity control between two faces is described. Connecting two edges or the
whole grid follows the same principle.
The connection of two faces requires the selection of a reference face and a second face (target).
During the different connection operations, IGG™ may need to remap edges affected by the opera-
tion. By convention IGG™ keeps the reference face unchanged and applies the modifications on the
second face only. This is important when an existing face cannot be modified at all.
1. Click on the Face-Face menu option in the Grid/Connect page.
A prompt will appear to select the reference face.
2. Left-click (<1>) on face edges to start the face selection. Repeat the left-click procedure
until the proper face is activated.
3. Middle-click (<2>) to store the active face as reference face.
4. Left-click (<1>) on face edges again to start the second face selection. Repeat the left-click
procedure until the proper face is activated.
5. Middle-click (<2>) to store the active face as target face.
A pop-up dialog box will be opened to enable connections at different levels, each level being iden-
tified by a button in the dialog box.

 For the first four "topological" levels, an order must be respected as explained in the
beginning of this section on page 3-30. On the other hand the Patches level can be
applied independently. The All button performs all the connections of the previous but-
tons, if possible.
For vertex or orphan vertex connections, the topological edges using the replaced vertex are rema-
pped on the geometry.

3-38 IGG™
Connections Meshing fundamentals

For each level, the connected entities found are highlighted in green in the graphics area. Entities
that were connected in a previous operation are highlighted in red.

3-10.3.2 Full non matching connections


Such patch connections are described previously in this chapter (See section 3-10.1 ”Patch connec-
tions”). It consists of the following:
• A connection name.
• A list of “left” patches defining one side of the connection.
• A list of “right” patches defining the other side of the connection.
To define full non matching connections:
1. Open the Grid/Boundary Conditions... dialog box. This dialog box offers an additional field
“Full Non Matching” that can be activated by pressing on the Define... button. It opens the dia-
log box shown below:

List of created FNMB connections

Connection name (mandatory) Computes and visualizes the connection


(optional)

FIGURE 3.10.3-1 Full Non Matching Connections dialog box

2. Select the patches defining the “left” side. These patches are highlighted in yellow in the graph-
ics area.
3. Select the patches defining the "right" side. These patches are highlighted in blue.
4. Enter a name for the connection.
5. Activate the Periodic button to define a periodic FNMB connection.
6. Press on the Create/update button to define the FNMB connection.
7. This connection will appear in the list located on the right of the dialog box.
Once the connection is defined, it is possible to visualize the triangulation of the common region
(press the Compute & Show button). This triangulation is not directly used in IGG™ but only
serves to visualize the triangulation that will be used by the solver and to verify that the connection
is correctly performed. Calling this item is optional in IGG™.

IGG™ 3-39
Meshing fundamentals Connections

To view and/or delete an existing FNMB connection:


• Left-click on the desired connection in the connection list to select it.
• The patches participating in the definition of the full non matching connection will be auto-
matically highlighted in the dialog box as well as in the graphics area. A "*" is also dis-
played next to the patch type to indicate that the patch is involved in a FNMB connection. If
the computation of the triangulation was performed for this connection, it will also be
shown on the screen.
• To list only the patches involved in the desired connection, middle-click on it in the connec-
tion list.
• Press the Delete button to delete the selected FNMB connection (the type of the corre-
sponding patches is unchanged but the "*" symbol is removed).

3-10.4 Disconnecting entities


Disconnection can be performed by Segment, Edge, Face or Block. When performing a disconnect
operation, IGG™ disconnect all the entities at once. For example, disconnecting an edge discon-
nects the vertices, topological edges and segments of that edge.
To disconnect a face:
1. Left-click on the face to select the desired face.
2. Right-click on the face to pop-up the Grid menu and go to the Face sub-menu.
3. Select the Disconnect All menu item.
All the vertices, topological edges, segments and patches making up the face will be discon-
nected.

3-10.5 Visualizing connections


Visualization of connections can be done for vertex, topological edges, segments (grid points) or
patch grids. The visualization of vertex, topological edges or segments operates in the same way
whereas the visualization of patches is mostly done with a dialog box.
To visualize connected vertices:

1. Visualize the vertex with the Toggle Vertices icon ( ).


2. Select the Show Vertex Connections option in the Quick Access Pad/Grid/Connect
page.
3. Left-click to select a vertex.
All the blocks using that vertex will be highlighted in yellow. To see one block at a time, do the
following operations:
4. Middle-click to visualize only the first highlighted block.
5. Repeat the middle-click to visualize the other blocks using the vertex, one by one.
6. Left-click to select another vertex to visualize and repeat the above operations.
7. Right-click to stop the visualization.
The visualization of connected topological edges and segments proceeds in the same way.
To visualize connected patches:
1. Select The Grid/Boundary Conditions... menu item.
2. Go to the Type combo box and select the CON type.

3-40 IGG™
Connections Meshing fundamentals

The list of all connected patches will appear.


3. Select in the list the patch to visualize. The patch will be highlighted and its grid shown in
the graphics area.
4. Open the Edit Patch >> area. The bottom right area indicates the indices of the connected
patch.

Connected Patch indices

IGG™ 3-41
Meshing fundamentals Blocks grouping

3-11 Blocks grouping


Block groups are powerful means of classifying blocks by grouping them under a same logical
name. Using groups, selective visualization of parts of interest and focus on the current region
being meshed can easily be performed. This tool becomes handy when a project contains lots of
blocks.
For the sake of convenience, block groups appear permanently in a browser in the Quick Access
Pad/View where they can be accessed to control the visualization.

Group browser
List of blocks in the group

Check button allowing selective


visualization of items.

FIGURE 3.11.0-1 Block groups browser.

3-11.1 Block groups usage


Block groups can be used for:
• visualization control
• global operations on a set of blocks
Group visualization control is performed with the browser shown above. It operates in collabora-
tion with the icons of the Quick Access Pad/View/Grid page. By pressing on the check button in
front of a group, the block boundaries visualization can be toggled. By pressing on the check button
in front of a block, the visualization of that block can be controlled.
To show only one group:
1. Go to the group browser.
2. Select the Hide All button. This operation will remove all the blocks from the screen.
3. Select the check button in front of the desired group. The edges of all the blocks in the
group will be displayed on the screen.
 It may be needed to fit the view to see all the blocks properly.

3-11.2 Managing groups


Groups can be created, modified or deleted. Blocks can currently appear several times in different
groups.
To create a new group:
1. Select the Create Group button below the browser.
A dialog box is opened to enter the name of the group.

3-42 IGG™
Blocks grouping Meshing fundamentals

2. Enter the name and press Create.


3. Move the mouse in the graphics area, near an edge of a block to add to the group.
4. Left-click to highlight the block.
5. Middle-click to add it in the group.
6. Repeat steps 3 to 5 to add other blocks.
7. Right-click to complete the creation.

IGG™ 3-43
Meshing fundamentals Blocks grouping

3-44 IGG™
CHAPTER 4: Basic Tutorials

4-1 Overview
This chapter will introduce some of the most commonly used features and tools of IGG™. The use
of basic operations of IGG™ will be learned through tutorials, in a faster way than by reading the
entire User Manual.
This chapter is divided into two tutorials:
• Geometry tutorial
• Topology and grid generation tutorial
The first tutorial describes basic geometry modelling operations, including curves and surfaces cre-
ation, and their manipulation.
The second tutorial describes the creation of a block topology and the generation of a simple mesh.
Before beginning the tutorials of this chapter, chapter 1 “Getting Started” should be necessarily
read, to familiarize with some fundamentals, including:
• Running IGG™
• Terminology
• Topology and grid generation concepts

IGG™ 4-1
Basic Tutorials Geometry Tutorial

4-2 Geometry Tutorial


4-2.1 Curves creation
The following section describes how to:
— create basic curves
— use the keyboard or the mouse to input points
— use the attraction feature
The following geometry, consisting of two polylines, one cspline and one arc, will be created.

arc
polyline2

cspline
polyline 1

FIGURE 4.2.1-1 Creation of basic curves.

Creation of a polyline curve


1. Select the Geometry/Draw Polyline/Free menu option to initiate the creation of a polyline.
2. While in the graphics area, enter the sequence ’1 0 0’ in the keyboard input area with the key-
board followed by <Enter>. This action will create the first point of the polyline.
 the keystrokes are automatically echoed in the keyboard input area.
3. Enter a second point at position (1.2,0.5,0) and press <Enter>.
4. Enter a third point at position (1,1,0) and press <Enter>.
5. Press the right mouse button or <q> in the graphics area to end the polyline creation.
6. Create another polyline passing through the points (0,0,0), (-0.2,0.5,0) and (0,1,0),

Creation of a cspline curve


1. Select the Geometry/Draw CSpline/Free menu option to initiate the creation of a cspline
curve.
2. Move the mouse near the point (0,0,0) of the second polyline. When close enough, the point
selected will normally be attracted to this point if the attraction to points feature is enabled. If
there is no attraction, press <a> in the graphics area. Then, press the left mouse button to add
this point to the cspline.
3. Move the mouse somewhere between the points (0,0,0) and (1,0,0) and add a point by pressing
the left mouse button.

4-2 IGG™
Geometry Tutorial Basic Tutorials

4. Add a third point by attracting it to the point (1,0,0) of the first polyline.
5. End the cspline creation with the right mouse button or by pressing <q>.

Creation of a circular arc curve


1. Select the Geometry/Circular Arc/Normal-Point-Point-Radius menu option to initiate the
creation of a circular arc. Several inputs will be requested to define the arc:
Enter normal to the arc
2. Enter ’0 0 1’, followed by <Enter> to define the arc normal.
Enter start point
The start point will be specified with the keyboard:
3. Enter ’1 1 0’, followed by <Enter> to define the starting point.
Enter end point
The end point will be specified with the mouse by attracting it to an existing point:
4. Move the point near the point (0,1,0) of the second polyline. When close enough the point will
be highlighted (if there is no attraction, press <a> in the graphics area). Press the left mouse but-
ton to define the end point.
Enter Radius
5. ’0.6’ <Enter>
Select Sense
6. Press <o> until the circle has the same shape as the one of Figure 4.2.1-1 on page 4-2. Then,
press the left mouse button to create the arc.

4-2.2 Curve selection


The curve selection operation is used to activate one or more curves for subsequent operations in
geometry modelling or grid generation. When a curve is selected it appears highlighted in green
(default). All the curves created in the previous steps are selected.
1. Select the Geometry/Select/Curves option to initiate curve(s) selection.

 The <s> short cut can also be used to activate the option without accessing the menu.

2. Press <a> to unselect all the curves, which become unhighlighted.


3. Move the mouse over the cspline which is then highlighted. At the same time, the name, type of
curve and approximate arc length of the curve appear in the Information area.
4. Press the left button to select it.
5. Select in the same way the first created polyline.
6. Quit the selection operation with the right mouse button.
 Selection and deselection of all curves can be done by pressing <a> repeatedly (toggle
option).

4-2.3 Curve visualization


When importing complex models, many curves may be created and visualized in IGG™, making
the graphics unclear. It is possible to visualize only specific curves on the screen, hiding all others,
in the following way:

IGG™ 4-3
Basic Tutorials Geometry Tutorial

1. Select the Geometry/View/Curves option. A curve chooser appears with the name of all the
curves. All the names are highlighted since all the curves are visible.
2. Select the cspline in the chooser (by left-clicking on it) and press Apply. Only the cspline curve
now appears in the view.
3. Select the first polyline in the chooser while holding the <Ctrl> key. The polyline is highlighted
in the chooser, together with the cspline. Press Apply to visualize both curves.

FIGURE 4.2.3-1 Curve chooser

4. Select the first and last curves in the chooser while holding the <Shift> key. All the curves are
now selected. Press Apply to visualize them all.
 Notice that the curves that were hidden are now unselected.
5. Close the chooser.
At this stage, only the cspline is selected. Before going through the next steps, add the polyline1 to
the selected curves by using the Geometry/Select/Curves menu (see curve selection section).
The selected curves can be further investigated in the following way:
6. Select the Geometry/View/Curve Orientation menu. The default orientation of the selected
curves is shown. This orientation is important for other geometry modelling and grid generation
operations. These orientations can be hidden by selecting the menu once again (toggle option).
7. Select the Geometry/View/Control Points menu. The control points of the selected curves
appear now. This options acts as a toggle (display on-off) on all selected curves.
8. Select the Geometry/Select/Control Points menu. A control point must be selected. When
moving the mouse near a control point, the point becomes highlighted. Press the left mouse to
display the point coordinates in the Information area.
9. Press the right button to quit the option.
10. Select the Geometry/Distance menu. A prompt appears to select two points between which the
distance will be measured and displayed.
11. Press <c> to disable the attraction to curves (this can be verified by moving the cursor near the
cspline. Normally, there is no attraction to the curve. Otherwise, press <c> a second time).
12. Move and attract the cursor over the first point of the cspline curve. If there is no attraction,
press <a>. Select the first point by pressing the left mouse button.

4-4 IGG™
Geometry Tutorial Basic Tutorials

13. When moving the mouse, the distance between the selected point and the cursor is indicated.
Move the mouse over the last point of the cspline. The cursor is attracted to the point and the
distance should indicate "d=1".
14. Press the left mouse button to fix the distance on the screen.
The operations can be repeated to measure the distance between other points.
15. Press the right button to quit the option.

4-2.4 Curve Saving


It is possible to save during the work the curves created in the previous steps. Only the curves
selected (with Geometry/Select/Curves - highlighted in green) are saved into a file:
1. Select File/Export/Geometry Selection... menu. A file chooser is opened to specify the name
of a file. The name should have a ’.dat’ extension. This file can be read back using the File/
Import/IGG Data... menu.

4-2.5 Surface Creation


In this section simple surface creation is described, starting from a set of curves. A new session will
be opened to clear all previous drawings.
1. Select File/New to close the current project and open a new, empty, project.
 Opening a new project closes the current project without automatic saving.

4-2.5.1 Creation of a lofted surface


2. Select File/Import/IGG Data and choose the file geo_tuto_2.dat in the /Test-Case/IGG direc-
tory of the installation cdrom. Three curves are read and stored in the geometry repository.

FIGURE 4.2.5-1 Imported geometry curves, after some viewing manipulations

3. Select the curves using Geometry/Select/Curves (<s>) in the order indicated on the figure.
4. Select the Quick Access Pad/Geometry/Surface/Lofted menu. A NURBS surface, interpolat-
ing the curves is now created. Notice that two new curves, representing surface boundaries, are
created. These curves automatically appear in the curve chooser (Geometry/View/Curves)
when it is opened.

IGG™ 4-5
Basic Tutorials Geometry Tutorial

Boundary curves 3
automatically created
4

FIGURE 4.2.5-2 Lofted surface

4-2.5.2 Creation of a Coons patch


A Coons surface is a surface interpolating 4 boundary curves using a bilinear interpolation. To
avoid overlapping with the lofted surface, the selected curves will be copied and translated.
1. Select the four boundary curves (<s>) of the lofted surface, in the order indicated in the figure.
2. Select the Quick Access Pad/Geometry/Edit/Copy menu. The selected curves are duplicated
and automatically selected (the other curves are now unselected). IGG™ interrogates whether
the duplicated curves must be translated, rotated, scaled, mirror or not. To avoid overlapping
with the existing curves and surface, a translation will be performed:
Enter name prefix for new entities (only important for scripts)
>> <Enter>
Translation (t), Rotation (r), Scale (s), Mirror (m), None ?
>> t <Enter>
Translation vector (q) ?
>> 1 1 1 <Enter>
3. Select the Quick Access Pad/Geometry/Surface/Coons menu. A new surface is created which
interpolates the four selected curves.

FIGURE 4.2.5-3 Coons patch

4-6 IGG™
Geometry Tutorial Basic Tutorials

It can be noticed that 4 additional curves have been created. These are curves following the para-
metric directions of the surface and are used to provide a better visualization of the surface.

4-2.5.3 Creation of a surface of revolution


A surface of revolution will be created by rotating a newly created curve around the Y axis.
1. First create a cspline (Quick Access Pad/Geometry/Curve/CSpline) between the points (-0.5,-
2,0.1), (-0.5,0.,0.2) and (-0.5,2,0.1). These points were selected so that the surface of revolution
that will be created intersects the lofted surface.
2. Make this curve the only selected curve (Geometry/Select/Curves).
A surface of revolution will now be created by rotating this curve around a line parallel to the Y
axis. The rotation origin is taken so that the surface of revolution intersects the lofted surface.
3. Select the Quick Access Pad/Geometry/Surface/Revolution and follow the instructions
requested by IGG™ as follows:
Rotation axis vector (q)
>> 0 1 0
Rotation axis origin (q)
>> -0.5 0 -1
Rotation angle (q)
>> 300

boundary curves

FIGURE 4.2.5-4 Surface of revolution

As it may be noticed, the curve used for the rotation constitutes the first boundary of the surface.
Three other boundary curves are automatically created to delimitate the surface. Finally two curves
in the rotation direction are created to better visualize the surface of revolution.

4-2.6 Surface visualization


Surfaces stored in IGG™ are by default visualized by displaying their boundaries. As soon as the
boundary curves of a surface are visible, the surface is considered visible. The following step
describes how to hide surfaces, hence hide their boundaries.

IGG™ 4-7
Basic Tutorials Geometry Tutorial

1. Select the Geometry/View/Surfaces option. A surface chooser appears with the name of all the
surfaces in the geometry repository. All surfaces in the chooser are highlighted since they are all
visible in the graphics area.
2. Select the lofted surface in the chooser and press Apply. The lofted surface appears alone in the
graphics area.
3. Select the surface of revolution in the chooser while holding the <Ctrl> key. The surface of rev-
olution is highlighted in the chooser, together with the lofted surface. Press Apply to visualize
both surfaces. Notice that the surface of revolution is now unselected in the graphics area (high-
lighted in blue).
4. Select the first and last surfaces in the chooser while holding the <Shift> key. All surfaces are
highlighted in the chooser. Press Apply to visualize them all in the graphics area.
 The <Ctrl> key is used in combination with the mouse to select non contiguous surface
in the chooser.

 The <Shift> key is used in combination with the mouse to select a range of surfaces in
the chooser.
5. Close the chooser.

4-2.7 Surface selection


The surface selection operation is used to activate one or more surfaces for subsequent operations in
geometry modelling (i.e surface-surface intersection) or grid generation (i.e. face grid mapping).
When a surface is selected its boundary curves appear highlighted in red.
1. Select the Geometry/Select/Surfaces menu to initiate surface(s) selection.

 The <Ctrl-s> short cut can also be used to activate the same option, without accessing
the menu.
2. Press <a> to unselect all the surfaces (toggle option), which become unhighlighted (boundary
curves are unhighlighted).
3. Move the mouse over one of the curves of the lofted surface. The surface becomes highlighted
(boundary curves highlighted).
4. Press the left button to select the surface. The boundary curves remain now permanently in red.
5. Select in the same way the surface of revolution.
6. Quit the selection operation with the right mouse button.
 Selection and deselection of all the visible surfaces can be done by pressing <a> repeat-
edly (toggle option).

4-2.8 Adding curves to the surface


When manipulating parametric surfaces (i.e. bsplines, or NURBS), it is possible to create curves in
the parametric directions of the surfaces. These curves can be used to better visualize the surfaces
or for other geometry and grid modelling operations.
1. Select the Geometry/Modify Surface/Representation menu. IGG™ requests the number of
curves to be created in the u and v direction of each selected surface:
Number of curves in the u and v directions (q)
>> 15 15
2. Repeat the previous operation and specify 5 curves in each direction.

4-8 IGG™
Geometry Tutorial Basic Tutorials

1. Select the Geometry/Modify Surface/Add uv Curves menu. Then a point must be selected on
the selected surfaces.
2. Move the mouse inside the limits of the selected surfaces. Two orthogonal curves appear at the
mouse position. The attraction feature can be enabled, if needed.
3. Press the left mouse button to add the two curves in the geometry repository.
 The curves created in the previous steps are deleted when the surface is deleted, except if
they are used by other entities.

IGG™ 4-9
Basic Tutorials Grid generation tutorial

4-3 Grid generation tutorial


A C-type single block grid around an airfoil is proposed to explain the basic features of the major
topology and grid generation modules. The tutorial shows the successive steps that must be fol-
lowed to generate a 2D mesh and to define the boundary conditions required before starting a
solver:
• setting up a 2D project
• importing and creating geometry curves needed for meshing
• defining the topology before meshing
• creating and placing a block
• specifying the clustering
• generating a face grid
• defining the boundary conditions

4-3.1 Case description


A mesh around a 2D airfoil is created in this example case. The input geometry describing the air-
foil consists of the pressure and suction sides, provided as curves defined in two ".dat" files.
Using the 2D option, only one face of a block (lying in the plane) will be generated, instead of six
classically required when generating 3D blocks. During the saving of the mesh, IGG™ will auto-
matically generate the volume grid by extruding one cell in the orthogonal direction, to match with
the requirement of the EURANUS solver.
A single, C-type, block will be used to mesh around the airfoil. Obtaining a C-type grid using body-
fitted capabilities is performed by deforming an initial square block around the airfoil as show in
the following figure.

e4 e4
e1
e4
e1

e2 e1 e3

e3

e3 e2
e2

FIGURE 4.3.1-1 Deforming a block to get a C-type mesh.

Before running the IGG™ system, it is advised to make a sketch of the face to generate and to iden-
tify the grid boundaries, as well as the number and orientation of segments on each of the edges.
Conventionally in 2D, the face being generated is always the face 1 of the 3D block. For this face,
the topology selected for the airfoil is shown in the following figure:

4-10 IGG™
Grid generation tutorial Basic Tutorials

1,10 s1 5,10
21 pts

s2 J=1 e1
63 pts

41 pts
s1
e4
e3 i
63 pts 21 pts
I =Imax I =1 s2 s1 j
- 9,0 0,0 s3 1,0 s4 5,0
21 pts
63 pts

s1
Nodes : 41 x 165
41 pts
s3
63 pts
J = Jmax e2
y 21 pts
x 1,-10 s4 5,-10

FIGURE 4.3.1-2 C-type grid topology for the airfoil.

In the topological space of the face, our boundary decomposition is as follows:


Edge 4
e4
21 63 63 21
s1 s2 s3 s4

41 41
Edge 1 s1 s1 Edge 2
e1 e2

21 63 63 21
s1 s2 s3 s4

Edge 3 e3

FIGURE 4.3.1-3 Topological representation of the 2D face.

A few comments can be made from the previous figures:

IGG™ 4-11
Basic Tutorials Grid generation tutorial

• edges 1 and 2 have only one segment. The start point of the segment of edge 1 corresponds
to the start point of the segment of edge 2.
• edge 3 is used to model the pressure and suction sides of the airfoil as well as the wake. It is
decomposed into 4 segments to capture the discontinuity in the wake and to facilitate the
grid point distribution settings.
• edge 4, opposite to edge 3, is also decomposed into 4 segments.
• segments 1 and 4 of the edge 3 coincide geometrically. They do however have an opposite
orientation.

4-3.2 Project configuration


When launching IGG™, a 3D project is by default initialized. For this tutorial, the 2D option needs
to be activated as follows:
1. Select File/Project Configuration... menu. A dialog box is opened. In the Dim area, left-click
on the 2D button and then press the Apply button to validate the input. A confirmation is asked.
Answer "yes" and Close the dialog box.
A new 2D project is now initialized and only the XY plane is active. The depth of the view, control-
ling the z coordinate, is invariably set to 0.

4-3.3 Importing and creating the boundary curves


The next steps describe the importation and creation of geometry curves needed to delimitate the
computational domain. The initial input data are the pressure and suction sides of the airfoil,
described as curves stored in two separate ".dat" files.
In order to place at a later stage the four edges of the face, as sketched in previous figures, addi-
tional curves, depicting the external boundaries of the domain, will be created as shown here below:

(5,10,0)
(1,10,0) p3

a1

suction
p1 (5,0,0)
(-9,0,0)
(1,0,0)
pressure

a2

(1,-10,0) p2 (5,-10,0)

FIGURE 4.3.3-1 Geometry curves.

Notice the orientation of the curves used to localize the start and end points of the curves. These
points will be used later to place the face boundaries.

4-12 IGG™
Grid generation tutorial Basic Tutorials

4-3.3.1 Importing the pressure and suction sides


2. Select File/Import/IGG Data... menu. A file chooser is opened. Select the suction.dat file in
the /Test-Case/IGG/airfoil directory of the installation cdrom. The curve is loaded in IGG™ and
displayed in the active view.
3. Import in the same way the pressure.dat file located in the same directory.

4-3.3.2 Creating boundary curves


The missing curves are now created by using the IGG™ geometry moduling capabilities. For a
complete description on how to create basic curves refer to section 2.3 of this manual.
4. Create a polyline (Quick Access Pad/Geometry/Curve/Polyline) between the points (5,0,0)
and (1,0,0).
Since the line lies far from the airfoil, it will not be visible in the current view. The view must be fit-
ted to the curve sizes.

5. Left-click on the Default orientation button ( ) in the viewing buttons area.


Next, the name of the curve will be modified. Naming a curve explicitly is needed when using tem-
plate capabilities. It is performed here as an exercise.
6. Select the polyline alone (Geometry/Select/Curves or <s>).
7. Select the Quick Access Pad/Geometry/Curve/Set Name option and change the name of the
curve to "p1". Apply and Close the dialog box.
8. Create a polyline between the points (1,-10,0) and (5,-10,0) and name it "p2".
9. Create a polyline between the points (5,10,0) and (1,10,0) and name it "p3".
10. Create a circular arc (Quick Access Pad/Geometry/Arc/Normal-Center-Point-Point) by
entering the normal to the arc (0,0,1), the center (anchor point) (1,0,0), the start point (1,10,0)
and the end point (-9,0,0). Name the curve "a1".
11. Create a second circular arc by entering the normal (0,0,1), the center (anchor point) (1,0,0), the
start point (-9,0,0) and the end point (1,-10,0). Name the curve "a2".

4-3.4 Creating and placing the block


This section describes the creation of the block around the airfoil. When dealing with a 2D project,
only one face must be manipulated (face 1).

1. Left-click on the Insert New Face icon ( ) of the Quick Access Pad/Grid/Create page. A
square face will appear in the graphics area.
2. Move the cursor (representing the left corner of the rectangle) near the start point of the polyline
p1 (see figure below). Once the point is attracted, left-click to place the first point.
3. Enter the coordinates of the second point (opposite corner of the rectangle) from the keyboard:
(-8, 8, 0) and press <Enter>. The square face is now fixed and appears with a default orientation.
4. Left-click to accept this default orientation and to complete the face creation.

IGG™ 4-13
Basic Tutorials Grid generation tutorial

second point

e4

e2 I e1

e3 J

first point

FIGURE 4.3.4-1 Creation of the first face

At this stage the face is created. Its four edges appear as straight lines which still need to be
wrapped around the airfoil. The number of grid points along the I and J directions is currently 9
(default) and will be changed to (41x165), as described in the initial sketch.
5. The number of grid points will be changed as follows:
• Select the Grid/Grid Settings... menu. A dialog box is opened.
• Specify the number of grid points in each direction. To this end, move the cursor to the
Imax box and type ’41’ followed by <Enter>.
 This setting takes effect immediately after pressing <Enter> and deletes any previously
generated grid.
• Specify in the same way Jmax = 165. Notice that Kmax has a value of 2 in the 2D option.
This value cannot be changed. Close the dialog box. The initial mesh can be visualized by
pressing the Toggle Face Grid icon ( ) of the Quick Access Pad/View/Grid page.
The face can now be positioned correctly around the airfoil:
6. Move the cursor over the upper right vertex. When it is highlighted, left-click on it to initiate the
placement. Move and attract the cursor to the start point of the polyline p3. Then, left-click to
fix the position of the vertex.
7. To map the edge 4 on the polyline p3, an additional vertex must be inserted. Left-click on the
Insert Vertex icon ( ) of the Quick Access Pad/Grid/Insert/Edit page. Move the cursor
near the edge 4. A marker representing the vertex (square) will appear when being close enough
to the edge. Left-click to fix the vertex on the edge and place it (by left-clicking) on the polyline
p3 end point.
During this placement, the vertex was attracted to curves and curve end points. To be sure the
vertex is placed on polyline p3 end point, the attraction to curves can be deactivated. While
holding the <Ctrl> key, right-click on the vertex to pop up a menu; drag the mouse over Attract
to Curves button (to deactivate the attraction) and release the right mouse button.
 To ease the attraction, the value of the Pick Aperture, in the File/Preferences menu
under the thumbnail Tolerances, can be increased to 0.3. This option controls how close
the cursor needs to be from the curve before being attracted.

4-14 IGG™
Grid generation tutorial Basic Tutorials

Now move again the vertex which will be attracted to polyline p3 end point but not to polyline p3
or other curves.

 Use the short cut <i> to activate the Insert Vertex function in a faster way.

For the moment, edge 4 contains only one segment. To divide it into several segments as in the
sketch made previously, a fixed point must be inserted. Move the cursor over the additional ver-
tex. When it is highlighted, right-click to pop up a menu. Drag the mouse over the Attach Fix
Point item and release the right mouse button. This will merge a fixed point with the vertex and
the square shape of vertex marker will be transformed into a diamond shape.
The result of these operations is shown in the following figure:

v2
v3
edge 4

edge 1
edge 2

v4 v1
edge 3

FIGURE 4.3.4-2 Insertion of the block face

Capturing the pressure and suction sides:


The edge 3 will be used to capture the shape of the airfoil.
8. Now, a zoom can be performed on the airfoil. To do this, left-click on the Zoom Area button
( ) of the Viewing buttons area. Press and drag the left mouse button to select a rectangular
region around the airfoil, then release the left button to perform the zoom.
9. Insert one vertex (v5) on edge 3 and place it on the start point of the suction curve. Then, to be
sure to firstly map edge 3 on the suction curve and not on the pressure curve, insert another ver-
tex (v6) on edge 3, and place it on the suction curve (about in the middle). Eventually, insert and
place a third vertex (v7) on the end point of suction curve, as in the following figure. Attach two
fixed points to vertices v5 and v7.

v6
v7 v5

FIGURE 4.3.4-3 Mapping on the suction curve

IGG™ 4-15
Basic Tutorials Grid generation tutorial

10. Move the vertex v3 on the polyline p2 end point and the vertex v4 on the vertex v1, as shown in
the following figure. Insert two other vertices on edge 4 and place them on the end points of the
arc a1 and arc a2; this will allow to map the grid along these curves. Attach two fixed points to
these additional vertices.

v2

v1, v4

v3

FIGURE 4.3.4-4 Mapping on the boundary curves

11. At this stage, the pressure curve still has to be captured. To this end, insert a vertex v8 between
v7 and v4 on edge 3 and place it on the pressure curve (about in the middle). Then, insert
another vertex v9 between v8 and v4 and place it in the insertion point (So, simply left-click
twice on the edge to insert v9). Attach a fixed point to it. Finally, move v9 on vertex v5. These
steps are explained in the following figure:

v6
v7 v5

v6
v7 v5
v8

v6
v7
v5, v9
v8

FIGURE 4.3.4-5 Mapping on the pressure curve

4-16 IGG™
Grid generation tutorial Basic Tutorials

Now, the face is correctly placed and the segments are created according to the sketch made previ-
ously. The mesh can be visualized (the face mesh is automatically generated) by pressing the Tog-
gle Face Grid icon ( ) of the Quick Access Pad/View/Grid page. At this stage, The mesh may
perhaps look quite distorted because the fixed points indices have a default value, which still need
to be adapted. So, the last thing to do is to set the correct fixed points indices.
12. To see the current index of a fixed point, move the cursor over it. The index is then displayed.
To change the index, right-click on the fixed point to pop up a menu. Drag the mouse to the
Change ... index item and release the right mouse button. The following prompt will appear:
Enter new index:(q)
Enter the new index in the keyboard input area and press <Enter>. The new index can be visual-
ized as explained before. In some cases, the index will not be changed because the new value is
higher than the index of the next fixed point on the same edge. So, the index of the next fixed
point must be changed first before changing the one of the current fixed point. Set the fixed
points indices as in the following figure:

J = 21

v5: J = 21
v7: J = 83
J = 83
v9: J = 145

J = 145

FIGURE 4.3.4-6 Fixed points indices

Some problems may occur for the fixed points v5 and v9 because they lie in the same place so
that indices cannot be changed for both. Simply separate the fixed points by moving v5 or v9 in
another location, then change the indices. Once it is done, place the fixed points back to their
original position.

4-3.5 Grid points clustering


Once the edges of the face are set-up adequatly, the next step consists of specifying the clustering of
grid points along each edge. This step is essential before proceeding to the face grid generation
since the location of the grid points at the boundaries (on the edges) is directly used to interpolate
the face grid.
Grid point clustering will here be specified to capture:
• the boundary layer on the pressure and suction sides
• the wake
• the leading edge and trailing edges
The following picture shows the segment numbering and orientation selected in the next coming
steps. I and J constant grid lines are also outlined.

IGG™ 4-17
Basic Tutorials Grid generation tutorial

s5
s9
J cste lines s1
I cste lines

s7 s3

s8 s4
s2
s10
s6

FIGURE 4.3.5-1 Segment numbering and orientation.

a) Clustering the boundary layer area


Boundary layers on the pressure and suction sides are controlled by modifying the grid point distri-
bution on segments s1 (segment 1 1 1 1) and s2 (segment 1 1 2 1). Indeed, by setting more points
near the start of these segments, the grid lines parallel to the airfoil will tend to be closer to the air-
foil.
To modify the distribution symmetrically on segments s1 and s2, a group containing the two seg-
ments will be created and used to specify the clustering.

1. Select the Cluster Points icon ( ) in the Quick Access Pad/Grid/Insert/Edit menu. A dia-
log box for controlling the distribution is opened.

FIGURE 4.3.5-2 Clustering dialog box

4-18 IGG™
Grid generation tutorial Basic Tutorials

2. Select the Define/Edit group button to define a new group. Another dialog box is opened.

3. Group is added to the list

2. Enter the name of the group

1. Select the Create button

FIGURE 4.3.5-3 Segment group definition dialog.

3. Select the Create button. The dialog is extended to provide a field in which the name of the
group can be specified. Enter the name "group1" and press <Enter> (or the Create button). The
group is added to the list. Do not close the dialog at this stage.
The segments will now be added to the group one by one in the following way:
4. Move the cursor to the segment s1 (segment 1 1 1 1) and left-click to select it. When selected,
arrows appear on the segment and the parent block is highlighted. If this is not the proper seg-
ment, repeat step 4.
5. Middle-click to add the segment to the list. The segment appears in the group in the dialog box.
6. Repeat steps 4 and 5 to add the segment s2 (segment 1 1 2 1).
7. Select the Close button in the dialog box or right-click in the graphics area to complete the
group creation.
The group is now defined and can be used to specify the clustering on both segments at once.
8. In the popup menu of the Clustering dialog box select the group name "group1" (it should be
the default).
9. Select the distribution type At Both Ends 2 and set the initial spacing at start to 1e-5, the ini-
tial spacing at end to 0 and the number of constant cells to 10.
10. Press the Apply to group button to apply the clustering to each segment in the group.
The grid point distribution can be visualized by selecting the Quick Access Pad/View/Grid/Toggle
Grid Points icon (or <Ctrl-l>). The effect of the clustering on the mesh can be seen by viewing the
mesh using the icon Quick Access Pad/View/Grid/Toggle Face Grid (<Ctrl-z>).

b) Clustering in the wake area


The grid point distribution in the wake can be controlled with the segments s3 (segment 1 1 3 1) and
s4 (segment 1 1 3 4). Notice that they have an opposite direction. To have a matching connection
between the two segments, the clustering should be specified in a consistent way by reversing the
clustering of one of the segments (this takes into account the reverse orientation of the segments).
Additionally, segments s5 (segment 1 1 4 1, opposite to 1 1 3 1) and s6 (segment 1 1 4 4, opposite to
1 1 3 4) should be modified in the same way, to keep the mesh as regular as possible.
For this purpose, a group containing the four segments will be created.

IGG™ 4-19
Basic Tutorials Grid generation tutorial

11. Select the Define/Edit group button and create a new group named "group2" as in step 3. Then
fill the group in the following way:
12. Select the segment s3 (left-click) and add it to the group (middle-click).
13. Select the segment s4.
This segment must be added to the group using a reverse orientation:
14. Press the <o> key in the graphics area. The message appearing in the information area will be
adapted accordingly. The arrows will also be updated to reflect the current orientation status.
15. Middle-click to add the segment to the group.
16. Select the segment s5 and add it to the group.
17. Select the segment s6, reverse the orientation (<o>) and add it to the group.
18. Complete the group creation by right-clicking in the graphics area and close the dialog box.
Now the clustering can be easily applied on all segments at once:
19. Select the group "group2" in the combo box of the Clustering dialog box.
20. Select the distribution type At Both Ends 2 and set the initial spacing at start to 0, the initial
spacing at end to 0.005 and the number of constant cells to 10.
21. Press the Apply to group button to apply the clustering.

c) clustering in the leading and trailing edges areas


The clustering on the segments controlling the leading and trailing edges will be set one by one,
with no group defined, as an exercise.
22. Select the segment (1,1,3,2). This segment extends from the far field to the trailing edge and
allows to control the grid point distribution in the wake.
Select the distribution type Hyperbolic Tangent and set the initial spacing at start to 0.005,
and the initial spacing at end to 0.001. Then press on the Apply to seg button to perform the
clustering.
23. Select the segment (1,1,3,3). This segment extends from the trailing edge to the far field and is
actually located at the same position as the segment (1,1,3,2), but with a reverse orientation. Its
distribution should consequently be opposite to this segment
Select the distribution type Hyperbolic Tangent and set the initial spacing at start to 0.001,
and the initial spacing at end to 0.005. Then press on the Apply to seg button to perform the
clustering. Close the dialog box.
Finally, the clustering on segments s9 and s10 will be copied from the segments s7 and s8, respec-
tively.
24. Select the Grid/Grid Density/Copy... menu to copy the grid points clustering of the segment s7
to the segment s9. Enter ’1 1 3 2’ in the From box and ’1 1 4 2’ in To box then press the Apply
button to perform the copy.
25. In the same dialog box, enter ’1 1 3 3’ in the From box and ’1 1 4 3’ in To box then press the
Apply button to copy the distribution from segment s8 to s10.

4-3.6 Grid Generation


This section describes the grid generation and orthogonality control of the mesh near the solid wall.

1. Select The item Quick Access Pad/Grid/Generate/Face Generation Tool ( ) to access the
dialog box dedicated to the face generation tools and press the Algebraic button. The grid is
created using a linear interpolation of the four edges.

4-20 IGG™
Grid generation tutorial Basic Tutorials

FIGURE 4.3.6-1 Zoom near the airfoil : 4 Bnd interpolation

The orthogonality of the mesh to the pressure and suction sides could still be improved and must be
improved. To do this, the cubic interpolation option (orthogonality control + algebraic generation)
will be used. Orthogonality will be enforced between the edges 3 and 4.
2. Select Edges: 3-4 and Orthogonality Control buttons to set up the orthogonality control
between edge 3 and edge 4. The normals are displayed in black (or white) indicating the range
and the level of orthogonality.
The normals are currently too large and must be reduced before regenerating the face:
3. Reduce the Ratio 1st Edge to 0.1 and the Ratio 2st Edge to 0.01 and press the Algebraic but-
ton to regenerate the grid according to these values. Then unselect the Orthogonality Control
button.

FIGURE 4.3.6-2 Orthogonality control - detection of the overlapping cells

IGG™ 4-21
Basic Tutorials Grid generation tutorial

4. Activate Overlapping button to see the overlapping cells near the trailing edge. Overlapping
cells are highlighted using a small circle.
5. Select the Face Range for smoothing: Index 1 min = 19, Index 1 max = 41, Index 2 min = 15,
Index 2 max = 26. The grid area that will be smoothed is highlighted. Activate Elliptic
Smoothing button, then press 3 times the Smooth button to remove the overlapping cells. Close
the dialog box.
The face 1 of the block is now completely created and generated.

4-3.7 Boundary condition settings


This section explains the division of a face into patches and the setting of a boundary condition type
for each patch.
As explained in the introduction, a 2D project consists of a 2D face grid extruded orthogonally to
yield a 3D block. Within the 2D project, boundary conditions are specified directly on this 3D
block. The extrusion is performed automatically by IGG™ when opening the dialog box for bound-
ary condition setting.
1. Select the menu item Grid/Boundary Conditions... to open the dialog box. The 3D block is
automatically extruded and appears in a 3D view:

face 2

face 6

face 5

face 3

face 4
face 1

FIGURE 4.3.7-1 3D block created by extrusion of face 1

The boundary condition type for block faces 1 and 2 is automatically set to MIR (mirror condition)
in 2D, which explains that these faces do not appear in the patch browser (because their boundary
condition type cannot be changed). The face 3 is activated in the dialog box and displayed in pink
meaning that its boundary condition type is undefined.
2. For the face 3, set the Patch Type to EXT (external boundary condition). For this, left-click on
the Set Patch Type menu, drag the mouse to the EXT button and release the left mouse button.

4-22 IGG™
Grid generation tutorial Basic Tutorials

3. Select the face 4 in the dialog box (by left-clicking on it) and set the Patch Type to EXT.
4. Select the face 6 in the dialog box and set the Patch Type to EXT.
The face 5, corresponding to the face wrapping around the airfoil, must be divided into several
patches. The patches will be obtained by dividing successively existing patches into two. Three
divisions, yielding four patches, will be performed:
5. Select the face 5 and press the button Edit Patch >>. Use the right mouse button in the K-J
domain to activate 3 times the Divide Patch vertically option to divide the face 5 at the indices
21, 83 and 145 (press <Enter> to validate the division). Set Patch Type of the patch 2 and 3 of
the face 5 to SOL (solid boundary condition). This last face is then divided in 4 patches (see
Figure 4.3.7-1).
Two patches remain undefined (UND). These patches should be connected together, since they are
located at the same position.
6. Press the Connectivity/Search button to set up automatically the connection between the
patches 1 and 4 of the face 5.
7. Close the dialog box. The view is set automatically back to the projected XY view. Then, save
the mesh using the menu item File/Save/Save. The mesh file is now ready to be loaded in the
FINE™ GUI environment.

IGG™ 4-23
Basic Tutorials Grid generation tutorial

4-24 IGG™
CHAPTER 5: Butterfly mesh

5-1 Introduction
The butterfly technique is a multi-block method used to mesh curved geometrical configurations
that aims at greatly improving the mesh quality. Generally, a butterfly topology consists of seven
blocks. A simple case illustrating this general topology is the meshing of a sphere. A single small
block is inserted at the center and is surrounded by six more blocks, each extruding from one of the
six faces of the center cube. The 2D analogue of the sphere is the circle. Meshed with a single H
block, it leads to high distorted cells near the four block corners with cell angles approaching 180
degrees just at the corners. Meshed with a 5 blocks butterfly topology, it leads to cell angles of 120
degrees near the four corners of the inner block, hence a high improvement of the mesh quality.

FIGURE 5.1.0-1 Butterfly topology on a circle

The inner block will always be present in a butterfly topology. The other surrounding blocks,
called here "buffer blocks" are chosen according to the shape that has to be meshed. The butterfly
topology can contain up to six buffer blocks. Configurations with six or five blocks are used to
mesh pipes with a circular section, for example. Configurations with four or three blocks are useful
to mesh special cases where there is less than four straight angles, like a semi cylinder. The follow-
ing figure shows configurations with respectively five, four and three blocks (there are no buffer
blocks along the direction of the cylinder axis).

IGG™ 5-1
Butterfly mesh Introduction

FIGURE 5.1.0-2 Examples of different butterfly topologies

5-2 IGG™
IGG™ butterfly implementation Butterfly mesh

5-2 IGG™ butterfly implementation


5-2.1 Terminology
This section describes the terminology used throughout the manual for the butterfly topology.
-Parent block: the initial H type block manually created.
-Inner block: the block at the center of the butterfly topology.
-Buffer block: a block surrounding the inner block.
-Butterfly blocks: the inner block + all the buffer blocks.
-Butterfly group: the parent block + butterfly blocks.
The following figure illustrates the position of the butterfly blocks for a butterfly topology with
seven blocks.

Inner block

Buffer blocks
Buffer blocks

FIGURE 5.2.1-1 Butterfly topology with seven blocks

5-2.2 Generation method


The generation of a butterfly topology in IGG™ starts from an initial H type block, called parent
block. Then the butterfly blocks are automatically inserted in this parent block. Their shape (edge
shape and vertices position) is based on the parent block mesh.

FIGURE 5.2.2-1 Default shape representation of the butterfly topology

IGG™ 5-3
Butterfly mesh IGG™ butterfly implementation

At the creation of a butterfly topology, a default calculated shape of the butterfly blocks is automat-
ically displayed in the graphics area (Figure 5.2.2-1). In fact, butterfly blocks are not directly cre-
ated but their edges are represented by geometric curves. Each change in the generation parameters
will update this representation.
Once the butterfly topology has been created, the parent block will remain in the grid (it is not
deleted) and the butterfly blocks will not be added in the grid. This method gives the possibility to
come back to the H-type configuration and does not imply the deletion of the butterfly blocks and a
new creation of an H block if some parameters of the butterfly topology (number of buffer blocks,
points distribution,...) need to be changed. Therefore the blocks numbering will remain unchanged,
as the total number of blocks seen by the user (butterfly blocks are not counted). Consequently the
butterfly blocks numbering and naming is hidden to the user (for more details, see section 5-4.2 on
page 5-18).
However, the total number of cells of the grid is updated by taking into account the butterfly blocks.
The blocks treated by the flow solver are the butterfly blocks instead of the parent block.
The convention used for the orientation of the butterfly blocks is the following one:
• The inner block has the same orientation as the parent block.
• The face 1 of a buffer block will correspond to its associated parent block face.
• The face 2 of a buffer block will correspond to the inner block face which has the same face
number as the parent block face.
It results from this convention that the buffer block K axis will always be directed from its associ-
ated parent block face towards the corresponding inner block face.

K K

Faces 2 Faces 1

K K

FIGURE 5.2.2-2 Buffer blocks orientation

5-2.3 Butterfly shape control


Before the real creation of the butterfly blocks, these ones are represented by geometric curves
symbolizing the edges (see Figure 5.2.2-1).
Firstly, to control the butterfly shape, the type of the butterfly topology must be chosen, i. e. the
number of blocks and their position. Indeed, the inner block is always present in a butterfly topol-
ogy and buffer blocks can be chosen to lead to several configurations, with six buffer blocks at
maximum. In fact, a buffer block can be associated to each parent block face, as illustrated in the
following figure.

5-4 IGG™
IGG™ butterfly implementation Butterfly mesh

Buffer blocks associated to faces 1 and 2 No buffer block associated to face 1

FIGURE 5.2.3-1 Buffer blocks association to parent block faces

Secondly, the curves symbolising the edges can be modified to give the desired shape to the future
edges and therefore to control the shape of the butterfly blocks. The curves can be modified by
moving control points. Each curve has by default two control points at its extremities and additional
control points can be inserted. Control points are constrained to move on a geometric surface con-
structed from a face mesh, materializing a "section". These sections are all aligned in the same
direction, hence the definition of a preferential direction in which the section control will proceed.
This preferential direction can be one of the axis of the parent block: I, J or K. This control by sec-
tions can be seen as a control of the shape of the butterfly block faces aligned along a same direc-
tion. This control is illustrated in the following figure.

Surface 1 constructed
from face 1 grid

Preferential direction K

Surface 2 constructed
from face 2 grid

Control point constrained


to move on surface 2

Control point constrained


to move on surface 1

FIGURE 5.2.3-2 Control points displacement

The minimum number of sections is two, corresponding to the two faces of the parent block perpen-
dicular to the preferential direction chosen. Moreover an additional section is added for each inter-
nal face of the parent block perpendicular to the preferential direction. The following figure shows
two geometric representations of a butterfly topology just before creation. On the left block, there is
an internal face aligned with the preferential direction chosen, which gives three control sections.

IGG™ 5-5
Butterfly mesh IGG™ butterfly implementation

For the right block, the internal face is not aligned in the preferential direction, leading to only two
control sections.

Preferential
direction

FIGURE 5.2.3-3 Butterfly topology representation and section control

The geometric surface defining a section is generally fixed except for the first and last control sec-
tions if there is a buffer associated to the corresponding face. In this case, a mesh is interpolated
along the preferential direction to construct the surface, which position is controlled by a parameter,
as illustrated in the following figure.

FIGURE 5.2.3-4 Different geometric surface positions for first control section

The shape of the four edges linking the control sections (i.e. aligned along the preferential direc-
tion) cannot be modified and is obtained automatically by interpolation in the parent block mesh.
After each control point repositioning, the touched edges of a section are remapped on its geometric
surface, assuming that a straight line links the two end control points of an edge in the parameter
space of the surface.

Edge mapped Edges interpolated


on the section surface in the parent block
mesh

FIGURE 5.2.3-5 Edge mapping on section surface

5-6 IGG™
IGG™ butterfly implementation Butterfly mesh

To control further the shape of an edge, an unlimited number of additional points can be inserted in
the curve representing the edge. In order to obtain "smooth" edges, a cspline is interpolated through
the points of an edge in the parameter space of the surface, instead of a polyline which leads to dis-
continuous edges. As these additional points are only used to modify the shape of an edge, they will
not result in the insertion of additional vertices in the edge after the butterfly creation.

FIGURE 5.2.3-6 Additional points insertion on edge

Additional points can always be inserted in the four inner block edges of the section. It is also pos-
sible in some cases to insert such points in the radial edges, i.e. the edges directed from the parent
block towards the inner block. This is always possible for additional sections and only for first and
last section if there is no buffer block associated to that section.
When there is no buffer block associated to the first or last section, the corresponding radial edges
are also mapped on the geometric surface and additional control points can be inserted. Otherwise,
if there is a buffer block, radial edges are straight lines not lying on the geometric surface and thus
not containing additional points.

Buffer block at No buffer block


first control section at last control
section
Straight edges
Additional point
on radial edge

FIGURE 5.2.3-7 Straight and mapped radial edges for first and last control section

IGG™ 5-7
Butterfly mesh Butterfly dialog box

5-3 Butterfly dialog box


After the creation of the initial parent block, a butterfly topology can be created by selecting the
Grid/Create Block/Butterfly... menu item or by clicking on the Create Butterfly icon ( ) of the
Quick Access Pad/Grid/Create page. The following dialog box will appear:

FIGURE 5.3.0-1 Butterfly dialog box

The Block box allows to choose the block in which the butterfly topology will be created. When
changing this number, the corresponding block becomes active in the grid. Next to this box, the
selected block name and the grid points number in each direction are displayed. By default, when
opening the butterfly dialog box, the active block is selected. If it is not generated or has been mod-
ified since the last generation (by moving a vertex, for example), the following message will
appear:

FIGURE 5.3.0-2 Message indicating that the block may be regenerated

5-8 IGG™
Butterfly dialog box Butterfly mesh

 It asks for block regeneration. If the ’no’ button is pressed and the butterfly topology is
not created yet in the active block, the butterfly dialog box will be closed.
The dialog box contains three frames allowing to control the different parameters of the butterfly
topology on the active block. The two first frames allow to control the shape of the butterfly blocks
whereas the third one allows to change mesh parameters such as number of points and clustering. If
the butterfly topology of the chosen block is already created, the parameters of the two first frames
cannot be changed until the butterfly topology is deleted by pressing the "Delete" button.

5-3.1 "General variables" frame


This first frame contains three items allowing to control the whole shape of the butterfly topology.
It is highly recommended to set the parameters of this frame before going to the next frame "Section
control".

5-3.1.1 Preferential direction


This first item allows to choose the preferential direction along which the section control will pro-
ceed. The possible values for this direction are the I, J or K axis of the parent block. Obviously, the
shapes obtained with different directions are rather variable because the geometric surfaces of the
control sections are constructed by taking different surfacic meshes.

 Consequently all the parameters of the butterfly dialog box are reset to default values and
a new optimized shape is calculated. To prevent wrong manipulations and a non desired
reset of the parameters, a dialog box asking for confirmation appears when changing the
preferential direction.

K J
Preferential direction Preferential direction
I along J axis along K axis

FIGURE 5.3.1-1 Influence of preferential direction on shape control

5-3.1.2 Buffer blocks


This second item is a set of buttons allowing to choose the type of the butterfly topology that will be
generated. For each parent block face, a buffer block can be set by simply clicking repeatedly on the
button corresponding to the face number.

IGG™ 5-9
Butterfly mesh Butterfly dialog box

J
Faces 1, 2 and 5 without
K buffer block associated:
I

FIGURE 5.3.1-2 Buffer block selection by parent face index

5-3.1.3 Creation from uniform clustering


For each control section, a geometric surface is created from a surfacic mesh, leading to a different
edge mapping if the mesh is different. Also, the edges interpolated in the parent block mesh have a
different shape when using different meshes. This option allows to change the mesh used to calcu-
late the edges position.

 It is important to note that the activation of this option is not modifying the mesh of the
parent block. A duplication of this mesh is done, all the clusterings are reset to uniform,
all the faces are regenerated and a new mesh is re-interpolated.
This option is useful when a clustering already exists on a parent block and allows to always obtain
the same butterfly blocks shape with different clusterings. This option is illustrated in the following
figure.

Uniform clustering activated Uniform clustering deactivated

FIGURE 5.3.1-3 Creation of a butterfly topology by using a uniform clustering

As shown by the crosses on Figure 5.3.1-3, the parent block (cylinder) is clustered. The left butter-
fly topology is obtained by activating the option and recalculating a default shape (a default shape
can be recalculated by changing the preferential direction). The right topology is obtained from the
left one by simply deactivating the option, showing its influence. Thus, the parametric position of
the control points is left unchanged and these ones are simply repositioned on the new geometric
surfaces created, leading to the different shapes. If a default shape was recalculated on the right
case, it will lead to approximately the same shape as the left one, because the shape will result from
an optimization procedure which recalculates the parametric position of the control points.

5-10 IGG™
Butterfly dialog box Butterfly mesh

Consequently this option is useful when the parametric position of the control points remains
unchanged, for example when replaying a template on a butterfly topology, or when copying
parameters from one parent block to another one.

5-3.2 "Section control" frame


This frame allows to control the shape of the butterfly topology within a section. The number of
sections is at minimum two and an additional section is added for each internal face of the parent
block aligned in the chosen preferential direction.

5-3.2.1 Section number ID


The parameters of the "Section control" frame are applied on the active section, i.e. the one for
which the control points are displayed. This item is therefore used to select the active section by
simply setting the section number ID which goes from 0 (for the first section) to the total number of
sections minus 1 (for the last section).
Section with number ID = 0 corresponds to parent block face 5, 3 or 1 when preferential direction is
set to I, J or K, respectively.

5-3.2.2 Preferential direction buffer depth


This parameter is used to position the section along the preferential direction chosen, i.e. construct
the geometric surface corresponding to the section. It is only used for the first and last section if
there is a buffer block associated to the section. Indeed, if there is no buffer associated, the surfacic
mesh used to construct the geometric surface is the mesh of the corresponding face of the parent
block, which is fixed. It is also the case for internal sections where the mesh of the corresponding
internal face of the parent block is used. Consequently, in these two cases, the parameter is deacti-
vated. Otherwise the parameter controls the position of a surfacic mesh interpolated along the pref-
erential direction, to construct the geometric surface. It can be seen as a sweeping of the parent
block mesh along the preferential axis. It is illustrated in the following figure.

FIGURE 5.3.2-1 Different geometric surface positions for first control section

This parameter can vary continuously from 0 to 100%, corresponding respectively to the face at the
beginning and the face at the end of the preferential axis. When this parameter is changed, the para-
metric position of all the section control points remains unchanged and is used to replace the control
points on the new created surface.

5-3.2.3 Radial depth


This parameter controls the global position of the inner block corners within a section. An auto-
matic optimization is done on the corners position in order to put them on the bisecting line calcu-
lated at the corresponding corner of the parent block.

IGG™ 5-11
Butterfly mesh Butterfly dialog box

Bisecting line
for first control
point

FIGURE 5.3.2-2 Optimization on inner block corners position

The parameter controls the position of each corner on its bisecting line. When decreasing this
parameter, the corner gets closer to the parent block corner. It can vary continuously from 1 to 49.
In fact, the optimization comes to assigning a normalized parametric position for each corner point,
i.e. find normalized (u,v) values to position correctly the point on the section surface. The "Radial
depth" parameter is thus used to initialize the v value of the first corner, which is obtained by divid-
ing the parameter by 100. For example, if the parameter is set to 20, the normalized v value is set to
0.2. Then the u value of the first corner and all the (u,v) values of the other corners are calculated in
order to be on bisecting lines.
Generally, depending on the section shape, the optimization cannot converge for all possible values
of the "Radial depth". Thus there is a limit value of the parameter for convergence, and over which
all the corners (u,v) values are assigned to default values based on the "Radial depth". This leads
obviously to a radical change in the section shape, as illustrated in the following figure.

Limit value for convergence

Radial depth: 11 Radial depth: 19


Convergence of
optimization:

Radial depth: 20 Radial depth: 40


No convergence of
optimization: (0.2,0.8) (0.8,0.8)
(0.2,0.2) (0.8,0.2) (0.4,0.4)

FIGURE 5.3.2-3 Different shapes obtained by increasing the "Radial depth"

 This optimization cannot be deactivated manually. It is always applied as long as there is


convergence. When it cannot converge, it is automatically deactivated and default values
are assigned to the points parameters.

 It is important to note that all the additional control points of the active section are
deleted when changing this parameter, as the optimization can only be done on the inner
block corners.

5-12 IGG™
Butterfly dialog box Butterfly mesh

5-3.2.4 Control points parameters


This item provides a button allowing to copy control points parameters from one section to another.
Additional points are also copied and all the control points are replaced on the current section sur-
face with exactly the same parametric values as in the original section. It is illustrated in the figure
below.

 This option is useful to ensure a same butterfly shape at the interface of two parent
blocks that must be connected. Consequently to the method used and in order to obtain
exactly identical shapes and positions, the geometric surface of the two sections must be
the same, i.e. constructed from identical surfacic meshes with common orientations.
The following prompt appears when activating the option to choose the section from which to copy:
Section control: <1> = select face, <2> = copy parameters, <3> = stop
The reference section can be chosen by left-clicking on the corresponding face of the parent block.
The copy operation takes effect by middle-clicking the mouse. If the selected face is not correct
(e.g. if the block is not a parent one or if the face does not correspond to a control section), nothing
happens and a new face can be selected or the copy mode can be exited by right-clicking. Once the
copy operation is performed, the working mode is reset to the default one and the "Copy from sec-
tion" button must be pressed again to make another copy.

Reference section
chosen for copy
Active section

Control points copied


from reference section
to active section
=> same shape obtained

FIGURE 5.3.2-4 Copy of section parameters

5-3.2.5 Section interactive control


When the section shape obtained by modifying parameters of the "Section control" frame is not sat-
isfactory enough, a more precise control is provided by modifying interactively the control points
position. As for the "Section control" frame, the control acts on the active section, i.e. the one for
which the control points are displayed. The default prompt is the following one:
Section control : select point(<i> = insert point, <d> = delete point)

IGG™ 5-13
Butterfly mesh Butterfly dialog box

To move a control point, move the mouse on the corresponding marker to highlight it and select it
by a left-click. Then it can be positioned continuously on the geometric surface of the section by
moving the mouse. To fix it, left-click again.
To insert an additional control point, press <i> and move the mouse cursor on the desired edge of
the active section. When the cursor is close enough and an additional point can be inserted, a
marker appears; left-click to insert the corresponding control point. Then it can be moved as previ-
ously.
To delete an additional control point, press <d> and move the mouse cursor on the desired control
point. When it is highlighted, left-click to delete it. Then the corresponding edge is remapped auto-
matically on the geometric surface.

5-3.3 "Clustering" frame


This frame allows to control globally mesh parameters on all the butterfly blocks at once. The
parameters of this frame can be changed even if the butterfly topology of the parent block is already
created. The changes are simply taken into account by pressing the "Create/update" button of the
dialog box.

5-3.3.1 Number of radial points


This box controls the number of points along the K axis of the buffer blocks (axis directed from a
parent block face towards its corresponding inner block face).

5-3.3.2 Radial clustering


This button is used to set the clustering along the K axis of the buffer blocks. The same clustering is
applied to all the buffer blocks edges along this axis. Simply click repeatedly on this button to tog-
gle the corresponding dialog box:

FIGURE 5.3.3-1 Radial clustering dialog box

The setting of the clustering is the same as in the "Clustering" dialog box (Grid/Grid Density/
Clustering... menu item). "Start" position is located at the parent block corner and "End" position is
located at the inner block corner.
A default clustering is automatically calculated at each parameter modification in the two first
frames of the dialog box.
When connecting two buterfly block faces without buffer block associated, this "Radial clustering"
value must be the same for the two butterfly topology in order to obtain a matching connection.

5-14 IGG™
Butterfly dialog box Butterfly mesh

5-3.3.3 Clustering reciprocity


The two buttons "Clustering reciprocity" are used to link the clustering of the parent block to the
one of the inner block. In fact, at each butterfly creation, an optimized clustering on the inner block
is automatically calculated in order to obtain in this block a first layer of cells with a constant thick-
ness. The purpose of such layer is the minimization of the cells size variations between the inner
block and the buffer blocks.
If the button "Clustering reciprocity inner->parent" is activated before the butterfly creation, the
optimized clustering of the inner block is copied on the parent block, thus destroying any cluster-
ing set previously on this block. This button has an effect on clustering only if it is activated
before butterfly creation. If it is activated after, only the recording of the parameter is done for the
active parent block.
If the button "Clustering reciprocity parent->inner" is activated (before or after the butterfly crea-
tion), the clustering of the parent block is copied on the inner block, destroying the optimized
clustering. Moreover both clusterings (on parent and inner blocks) will be linked, meaning that
each modification of the parent block clustering will be applied automatically on the inner block.
If both buttons are activated (assuming that first button is activated before butterfly creation), the
optimized clustering of the inner block is copied on the parent block and both clusterings (on parent
and inner blocks) will be linked, meaning that each modification of the parent block clustering will
be applied automatically on the inner block.
These options are illustrated in the figure below.

Buttons deactivated: uniform clustering


on parent block, optimized clustering
on inner block; first layer of cells with
constant thickness in inner block.

First button activated before creation:


optimized clustering on parent and
inner blocks; first layer of cells with
constant thickness in inner block.

Second button activated before creation:


uniform clustering on parent and
inner blocks; first layer of cells with
great variations in thickness for inner block.

FIGURE 5.3.3-2 Clustering reciprocity options

 Each button selection must be validated by pressing the "Create/update" button.

IGG™ 5-15
Butterfly mesh Butterfly dialog box

5-3.4 Butterfly command buttons


The butterfly dialog box provides three buttons used to transform the butterfly topology.
The Create/update button is used to create a butterfly topology, i.e. to pass from a butterfly geo-
metrical representation to a real creation of the butterfly blocks. It is also used to update the butter-
fly blocks when parameters of the "Clustering" frame are changed.
The Delete button is used to delete the butterfly blocks. The parent block remains in the grid. All
the parameters of the butterfly topology deleted are kept and the corresponding geometric represen-
tation is displayed in the graphics area. So it allows to modify a generation parameter (e.g. a section
shape) without losing all the information of the butterfly topology previously created. Even when
the dialog box is closed, the butterfly parameters are not lost. They are recovered at the reopening
of the dialog box. It is valid until the IGG™ session is closed (without creating the butterfly topol-
ogy).
The Split button is used to split the butterfly group, which implies that the butterfly blocks are
added into the grid and that the parent block is deleted. This is an irreversible operation, meaning
that the butterfly dialog box cannot be used any more on the complete split topology; the blocks of
the split topology must be considered as normal blocks. If two butterfly groups are connected, the
corresponding patches type is reset to "UND" when one of the groups is split. The correct type is
restored when the second group is split. On the other hand, if a parent block is topologically con-
nected (vertices, edges, segments) to a neighbouring block, these connections disappear after split-
ting, because the parent block is deleted.

5-16 IGG™
Butterfly management Butterfly mesh

5-4 Butterfly management


5-4.1 Creation specificities
Several parent block configurations can lead to warnings during the butterfly creation, or even
more, to a butterfly creation failure.
• Face divided into several patches
If a parent block face has no associated buffer block and if this face contains several patches, the
butterfly topology cannot be created. The reason is that, in general, it is impossible to associate but-
terfly blocks patches to parent block patches in this case. So the following message will appear:

FIGURE 5.4.1-1 Face without buffer containing several patches

To solve the problem, the parent block patches must be deleted.


• Periodic connections
If a parent block contains periodic connected patches, the butterfly topology cannot be created. The
following message will appear:

FIGURE 5.4.1-2 Periodic connections detected at the creation

To solve the problem, the periodic connections of the parent block must be deleted.

In the two previous cases, a message indicating that the butterfly topology cannot be created will
appear:

FIGURE 5.4.1-3 Creation of the butterfly topology forbidden

• Invalid connections (of type CON or NMB)

IGG™ 5-17
Butterfly mesh Butterfly management

Invalid connections can appear when creating a butterfly topology. For example, when two blocks
are connected and a butterfly is created in the first block, the connection can become invalid if there
is no buffer associated to the connected face. It means that this connection is nonsense within the
topology chosen and that a full non matching configuration will be created. So the following mes-
sage will appear:

FIGURE 5.4.1-4 Invalid connections detected

After pressing the "ok" button, the corresponding forbidden connection is deleted. This message is
displayed for each forbidden connection encountered. Then the butterfly topology is created.

5-4.2 Blocks naming and numbering


As said in the section 5-2.2 "Generation method" on page 5-3, the butterfly blocks numbering and
naming is hidden to the user. The butterfly blocks naming is based on the parent block name,
according to the following rule:
If "X" is the name of the parent block, the name of the butterfly blocks will be the following:
— Inner block: X_but0
— Face 1 buffer block: X_but1
— ... ...
— Face 6 buffer block: X_but6
If the butterfly group is split, the part "but" of the butterfly blocks name is automatically replaced
by "split". If the parent block name is changed, the butterfly blocks names are automatically
updated according to this rule.
Concerning the butterfly blocks numbering, as they are not added in the grid, their number is not
seen. However, there are differences in blocks numbering between IGG™ and FINE™, EURANUS
and CFView™. Indeed, parent blocks are only seen in IGG™ and block number 2 in FINE™,
EURANUS and CFView™ may not correspond with block number 2 in IGG™. Moreover, the
number of blocks can also be different. For example, for one parent block containing a butterfly
topology, there is one block seen by the user in IGG™ whereas there are 7 blocks in FINE™ (the
butterfly blocks).
On the other hand, when a butterfly group is split, the parent block is deleted and the butterfly
blocks are added at the end of the grid. It implies that blocks number are modified. For example,
let’s take two butterfly groups to split: parent block 1 and parent block 2. Start to split group 1: par-
ent block 1 is deleted and parent block 2 becomes block number 1. So, to split the remaining butter-
fly group, block number 1 must be split and not the block number 2, which has no more a butterfly
topology!

5-4.3 Interaction with the butterfly topology


As the butterfly blocks are not added in the grid, the user will always interact with the parent block
and never directly with the butterfly blocks. Here below are listed the main operations executed
through the parent block.

5-18 IGG™
Butterfly management Butterfly mesh

• Setting blocks number of points


The number of points of the butterfly blocks is updated automatically in order to be always match-
ing with the parent block. The radial number of points, independent from the parent block, must be
changed in the Butterfly dialog box ( ).
• Setting segments clustering
Clustering is automatically applied from a parent block segment to the underlying buffer block seg-
ment, if existing. Moreover, the same arc-length distribution can be applied from a parent block
segment to the corresponding segment of the inner block by using the "Clustering reciprocity par-
ent->inner" option of the Butterfly dialog box ( ).
The radial clustering, independent from the parent block, must be changed in the Butterfly dialog
box ( ).
• Face generation
When a face mesh is modified (for example by projecting a face) and that there is a buffer block
associated, the face 1 of this buffer block is automatically updated.
• Block generation
The butterfly blocks are generated by generating the parent block.
• Block deletion
Obviously, when the parent block is deleted, the butterfly topology is also removed.
• Boundary conditions, connection of patches and division of the faces into patches
If a parent face is associated to a buffer block, the same division into patches will be applied from
this face to the face 1 of the buffer block. If there is no associated buffer block, the parent face can
contain only one patch and cannot be divided.
Connections are performed between parent blocks. Then connections between corresponding but-
terfly blocks are set automatically. If the butterfly blocks configuration does not allow this connec-
tion, the connection between parent blocks is not found.

Parent block Butterfly topology created

Parent block face containing 1 patch. Five butterfly patches.


No buffer block associated. Their type is set to SOL or they are
Patch type set to SOL or patch included all included in the FNMB connection
in a FNMB connection

FIGURE 5.4.3-1 Face without buffer block associated

IGG™ 5-19
Butterfly mesh Butterfly management

Concerning the boundary conditions, the patch type is applied from the parent block patch to the
corresponding butterfly blocks patch. If there is no buffer associated to the patch face, the same
type is applied to all the butterfly block patches adjoining the parent face. It is exactly the same for
the full non matching connections, as illustrated in Figure 5.4.3-1.
All these operations can be performed before or after the creation of the butterfly topology; they
will be taken into account in both cases.
• Visualization
Edges of butterfly blocks are visualized but cannot be accessed. They are toggled with the edges of
the parent block.
Vertices, fixed points, edges grid points and patches are only displayed for the parent block.
Faces grids are displayed for the butterfly blocks. This means that if there is no buffer block associ-
ated to a parent block face, the adjoining butterfly faces will be shown, as illustrated in the follow-
ing figure.

No buffer block associated Butterfly faces displayed

FIGURE 5.4.3-2 Face grid representation

5-4.4 Forbidden operations


• Vertex displacement
To keep consistency between the parent block and its corresponding butterfly blocks, the vertices of
the parent block cannot be moved when the butterfly topology is created. If a vertex has to be
moved, the butterfly topology must be deleted and then re-created after vertex displacement.
• Vertices connection
When connecting vertices of the parent block, some care must be taken to avoid vertex displace-
ment and therefore keep consistency between parent and butterfly blocks. Indeed a vertex can be
displaced automatically when connecting it to another vertex if it is too far away. If a vertex is
moved, the butterfly topology of the parent block will not be updated.

 It is recommended to do Edge-Edge or Face-Face connections (Quick Access Pad/


Grid/Connect page) by always choosing the parent block as reference to avoid its modi-
fication.

5-20 IGG™
Butterfly management Butterfly mesh

• Internal faces
At the creation of a butterfly topology, internal faces are automatically inserted in the butterfly
blocks for each internal face of the parent block. Therefore, once the butterfly topology is created,
internal faces cannot be inserted or deleted in the parent block. To do such operations, the butterfly
topology must be deleted and then re-created.
• Face grid modification
When there is no buffer block associated to a parent block face, the edges of the butterfly blocks
adjoining this face are mapped on a surface constructed from the face mesh. If this mesh is then
modified (e. g. by face projection), the edges will not be remapped and will not lie any more on face
mesh. To ensure this, the butterfly topology needs to be re-created.
• Block modification
To keep consistency, following operations cannot be applied on the parent block:
• Block creation by face rotation
• Block creation by face translation
• Block creation by face expansion
• Block creation by sweeping
• Block extension
• Block splitting
• Blocks merging
• Change block axis system

5-4.5 Visualization of butterfly blocks inner mesh


The "Sweep Surfaces" tool (View menu) can be used on a butterfly group to visualize its mesh.
Indeed, in this case, the butterfly blocks will be swept instead of the parent block. The global direc-
tion of sweeping is one of the three directions of the parent block (I, J or K). The faces of the butter-
fly blocks that will be displayed are normal to the direction of sweeping. When sweeping in one
direction, all the butterfly blocks will be swept except the possible buffer blocks related to the faces
that are normal to the direction (the blocks that will be swept must have the same number of points
along the chosen direction). For example, when sweeping the K direction, the buffer blocks corre-
sponding to faces 1 and 2 will not be swept. However, their mesh can be visualized by sweeping in
the two other directions. This is illustrated in the following figure.

FIGURE 5.4.5-1 Sweeping of butterfly blocks mesh

IGG™ 5-21
Butterfly mesh Butterfly management

5-4.6 Cells volume calculation


For butterfly topologies, the calculation of the cells volume is performed on all the butterfly blocks
of the specified parent block. The number of negative cells of each butterfly block is added and dis-
played in the Negative cells dialog box by referencing the parent block.

5-4.7 Grid quality checking


The "Mesh Quality" dialog box (Grid/Grid Quality... menu item) contains a special item dedicated
to butterfly topologies allowing to choose the butterfly block in which the quality will be checked.
The "Block" entry allows to choose the block that will be checked. When it is a parent block, the
second entry "Butterfly block" is activated, displaying the number of the butterfly block which is
analysed. The range goes from 0 to 6. The number 0 represents the inner block and is therefore
always present. The other numbers between 1 and 6 represent the parent face number and thus the
associated buffer block. If there is no associated buffer, the corresponding number does not appear.

FIGURE 5.4.7-1 Grid quality checking on butterfly topology

5-4.8 Butterfly regeneration when using template


When replaying a template by geometry importation, all the curves and surfaces of the current
IGG™ project having the same name as a corresponding entity in the geometry data file imported
can be modified. Indeed, they can be replaced by the new imported entity having a common name.
All vertices snapped and all edges mapped on these modified entities are repositioned correctly
according to the curve or surface modification (see section 6-2 on page 6-2).
By simply importing a geometry data file, since the vertices and edges of a butterfly topology have
no underlying geometry, they remain at the same position while the parent block is adapted accord-
ing to the new imported geometry. Thus it leads to a mismatch between the butterfly topology and
its associated parent block.

5-22 IGG™
Butterfly management Butterfly mesh

Consequently a new option has been added in order to replay a template by geometry file importa-
tion and then to automatically regenerate all the butterfly topologies of the grid. This is accessible
in the File/Replay Template/Import IGG Data... menu item. Obviously, this option is only appli-
cable on unsplit butterfly topologies, as split blocks must be considered as normal blocks.
The following steps will be executed to regenerate a parent block:
• Memorization of the butterfly generation parameters
• Deletion of the butterfly topology
• Regeneration of the parent block faces
• Regeneration of the parent block
• New butterfly topology creation according to the memorized parameters

The butterfly option "Creation from uniform clustering" will always be used to regenerate the but-
terfly topology because in general, a clustering is always set on a parent block after the butterfly
creation. On the other hand, it is not restrictive as it is advised to create a butterfly topology on a
parent block by using a uniform clustering.
Moreover, the options "Clustering reciprocity" will be taken into account for regeneration.
Patches connections between butterfly groups and their adjacent blocks will be lost because they
are deleted when removing the existing butterfly topology.

5-4.9 Block transformation


When a parent block is transformed (Quick Access Pad/Grid/Insert/Edit page), its butterfly
topology is automatically regenerated by IGG™. The following steps will be executed to regenerate
a parent block:
• Memorization of the butterfly generation parameters
• Deletion of the butterfly topology
• Transformation of the parent block
• New butterfly topology creation according to the memorized parameters
All the same parameters of the initial butterfly topology are re-used to create the new one.

5-4.10 Block duplication


When a parent block is duplicated (Quick Access Pad/Grid/Create page), a butterfly topology is
created in the duplicated block(s). This is valid except if the "No Topology" option is selected, in
which case only the parent block mesh is duplicated.
All the same parameters of the parent block butterfly topology are re-used to create the new butter-
fly topology in the duplicated block(s).

5-4.11 Imposition of an initial solution in FINE™


The axis system of the butterfly blocks is imposed by IGG™ and cannot be changed. When impos-
ing the flow direction of the initial solution in FINE™, the butterfly blocks axis system do not have
the same orientation. However their orientation can be found according to the one of the parent
block without splitting the butterfly topology. Indeed, the flow direction is imposed for each block,
represented by its name. As said in a previous section, butterfly blocks naming is based on the fol-
lowing rule:

IGG™ 5-23
Butterfly mesh Butterfly management

If "X" is the name of the parent block, the name of the butterfly blocks will be the following:
— Inner block: X_but0
— Face 1 buffer block: X_but1
— ... ...
— Face 6 buffer block: X_but6
If the butterfly group is split, the part "but" of the butterfly blocks name is automatically replaced
by "split". As the relative position of a block to the butterfly group can be known from these names,
there is no need to look in IGG™ the orientation of this block. If the flow direction chosen for the
parent block is respectively K, J or I, the corresponding flow direction for the butterfly blocks will
be the following:
— Inner block: K J I
— Face 1 buffer block: K J I
— Face 2 buffer block: Reverse K J Reverse I
— Face 3 buffer block: J K Reverse I
— Face 4 buffer block: J Reverse K I
— Face 5 buffer block: J I K
— Face 6 buffer block: J Reverse I Reverse K

5-4.12 Current limitations


• Avoid using the "File/Export/Block Coor" functionality if butterfly blocks have to be
exported. Only the parent block is exported when selecting this functionality.
• Avoid connections of type PER and PERNM for butterfly groups. They are not available.
• Avoid setting periodicity to a butterfly group (set by the Grid/Periodicity menu item). It is
not applied from the parent block to the butterfly blocks. Moreover, there is no warning mes-
sage. Split the butterfly group to set the periodicity and to find periodic connections.
• For patch visualization, it is the parent block patches that are displayed.
• The mapping of radial edges on a geometric surface of the section can sometimes lead to curved
edges. It is due to the parametrization of the surface. In this case additional control points can be
inserted in the edge to improve its shape.
• Coarse grids cannot be visualized for butterfly blocks because their coarse grid levels are differ-
ent than the ones of the parent block (due to the radial number of points).

5-24 IGG™
CHAPTER 6: Templates and Scripts

6-1 Introduction
IGG™ provides two options to automate the generation of grids around similar geometries: tem-
plates and scripts.
In the template concept, an initial mesh is created manually around an "initial geometry" and saved
in a ".igg" project file. This project file is then reused as a template by importing the new geometry
and replacing the corresponding entities. The block boundaries are then automatically remapped
onto the new geometry.
In the script concept, a set of commands describing each step of the grid generation of a given grid
is provided in a script file and executed by IGG™. These commands operate on a reference geome-
try and can be replayed on any similar geometry.
Both options fundamentally require that the reference and modified geometries keep the same
topology. This means that the reference and the modified geometries have the same surfaces, organ-
ized in the same way, but with different shapes. This assumption is completely justified in a design
concept, where the shape of the geometry should be modified to optimize some flow features.
Upon limited topology modifications, both options can still be used, if combined with manual oper-
ations to correct local problems.
The advantages and limitations of each method are described in section 6-4 "Templates versus
scripts" on page 6-33.

IGG™ 6-1
Templates and Scripts Templates

6-2 Templates
6-2.1 Introduction
As mentioned in the introduction, templates allow the reuse of an existing IGG™ project created on
a reference geometry such that the topology may be applied to a similar, modified geometry. By
applying the IGG™ project to a modified geometry, the user will be able to directly recover all the
grid-related information from the previous mesh. This includes:
• number of blocks and their position (relative to the geometry),
• grid settings, like number of points in each direction,
• grid clustering,
• face generation history,
• connections between blocks,
• boundary conditions.
In the template approach, the user generates an initial grid manually on a reference geometry, using
the standard tools of IGG™. In particular, the user defines the blocks by placing their vertices on
the input curves and surfaces. At any time, the position of the vertices is stored using a normalized
parametric value on the curve or surface. These curves and surfaces are referenced by their name.
Using these two parameters (name+normalized position), IGG™ will be able to store the position of
the vertices and to correctly place them onto a new geometry. The rest of the grid generation pro-
ceeds much in the same way as usual and the final grid can be saved in a ".igg" project.
The created project can then be used to automate the generation on a modified geometry, simply by
importing the new geometry in the opened project. During the importation, IGG™ will automati-
cally replace the geometrical entities with the same name and will perform an automatic remapping
of the topology on the new geometry. The regeneration of the face grids is then performed manually
when applying the Regenerate Faces option.
As mentioned, the implementation uses the normalized parametric position of the vertices on the
input curves or surfaces to localize the new position of the vertices on the modified geometry. This
introduces some limitations on the range of validity of the automatic regeneration, when the para-
metrization changes widely. In that case, manual corrective operations may be needed to obtain an
optimized topology.

6-2.2 Fundamental assumptions


A few basic assumptions must be fulfilled in order for the template implementation to work prop-
erly:
• Same topology of the geometry:
The reference and modified geometries must have the same topology. This means that they
should contain the same entities (curves and surfaces), arranged in a similar way. The shape of
these entities may however change from one file to another.
• Same names for the curves and surfaces:
The curves and the surfaces in the modified geometries must have the same name as in the orig-
inal geometry. IGG™ uses these names to detect a one-to-one correspondence between the enti-
ties in the two geometries and to perform the replacement of one by the other.

6-2 IGG™
Templates Templates and Scripts

6-2.3 Using the template option


To successfully use the template option, a number of conventions must be observed. As a general
rule, creating a template project must be planned from the start. In particular, taking an existing
project and attempting to use it as a template, will, in general, not work. With this in mind, the
sequence of steps for using templates is as follows:
• analysis and preparation of the geometry,
• generation of the initial grid, yielding the template project,
• replay of the template.

6-2.3.1 Analyzing the input geometry


Before creating the initial grid, the user should verify that the reference and modified geometries
conform to the basic assumptions enumerated above. To do this, the user should open the reference
and modified geometries in separate IGG™ sessions and compare them using the visualization
tools.
The user should verify that:
• The curves and surfaces in the reference geometry are present in the modified geometry.
• The name of each curve and surface is the same in the two geometries. The name of entities can
be displayed by using the Geometry/Select Curves (<s>) or Surfaces (<Ctrl-s>) and by mov-
ing the mouse on top of the desired entity. The name will then appear in the information area.
If the naming condition is not satisfied, the user can adapt the reference or modified geometries by
assigning explicitly a proper name to the curves or surfaces, using the Quick Access Pad/Geome-
try/Curve/Set Name or Quick Access Pad/Geometry/Surface/Set Name options. Name assign-
ment should of course be performed in a consistent way in each project.

6-2.3.2 Creating the template project


Creating a template project consists in generating a grid on the reference geometry. Saving the grid
will yield a ".igg" project which will be used as template project. It is to be noticed that template
projects are actually standard IGG™ projects, used for template purposes.
IGG™ can be used in the usual way to perform the grid generation task. Limitations exist however
in the use of some options.

a) Geometry options
Geometry creation or modification options should not be used during the creation of the grid. Plac-
ing vertices on such entities is not suitable for template purposes. This limitation exists because the
curves or surfaces created interactively, although saved in the project, are not parameterized. They
will keep their initial position after replay of the template and will not follow the new geometry.
Vertices lying on these entities will consequently not move either.
It is however possible to add curve or surface entities as follows: create the required entities in the
reference geometry and reproduce exactly the same steps for the modified geometry, before apply-
ing the template. To do this, create the entities in the template project, and name them explicitly
using the Quick Access Pad/Geometry/Curve/Set Name and Quick Access Pad/Geometry/Sur-
face/Set Name tools.
Then, before replaying the template on a modified geometry, the user must recreate these entities
in a separate session, in the same way as for the reference geometry, but using the new geometry
shape. Renaming must be performed exactly in the same manner. Finally, these entities must be

IGG™ 6-3
Templates and Scripts Templates

saved using the File/Export/Geometry Selection option. The ’.dat’ file created in this operation
can then be used together with the modified geometry file when using the template.

b) Grid options
All the grid options may be used to create the template project. This includes: segment creation,
internal edge and internal face creation, clustering specification, face generation, patch and bound-
ary condition specifications, block generation.
A few options, however, have to be used with some care. These are the options that automatically
create or place vertices as a result of a generation option. For instance the option Quick Access
Pad/Grid/Create/Extrude Range creates a block by extruding from an existing face. In this proc-
ess, some vertices of the new block will be localized on construction curves, not necessarily visible
or accessible to the user. These curves receive an arbitrary name that, most probably, will change
from one session to another. Consequently, these vertices are not directly suitable for templates. To
solve this problem, these vertices must be moved explicitly by the user to a visible curve or surface
of the reference geometry.

c) Vertex positioning
Vertices with an absolute position (i.e. vertices not on a curve or surface) will stay at the same abso-
lute position after replay of the template.

6-2.3.3 Replaying the template on the modified geometry


• Within a new session, open the template project (File/Open... option).
• Import the new geometry with the File/Replay Template/Import IGG Data... option.
 Using File/Replay Template/Import IGG Data... instead of File/Import/IGG Data...
is only important when the template project contains butterfly blocks.
After the file has been selected, IGG™ automatically detects the curves and surfaces having the
same name as the entities in the current project. The following dialog box appears as soon as one
curve or surface being loaded has the same name as an existing curve or surface:

In the context of templates, the Replace mode should be used. This option will instruct IGG™ to
automatically replace the old curves and surfaces by the new ones. Replacement will take place
after the Apply or Apply to All buttons has been pressed
At the end of the importation, IGG™ will automatically remap all the vertices and edges lying on
these curves or surfaces.
At this stage the edges of the blocks should be checked to verify that the mapping has been per-
formed in a satisfactory way. Depending on the parametrization of the new geometry, the new posi-
tion of the vertices may not be optimum on the new geometry. Also, if the topology of the new

6-4 IGG™
Templates Templates and Scripts

geometry is different from the original one, straight edges may appear. In these cases, manual cor-
rective operations may be needed. These operations should be straightforward.
When the topology is correctly positioned on the geometry, the face grid regeneration may proceed.
• Select the Quick Access Pad/Grid/Generate/Regenerate Faces option and apply it to all the
faces of all the blocks.
• Finally regenerate the blocks manually.
• Save using the File/Save/Save As... menu item.
 Be careful not to overwrite the template project by calling the File/Save/Save option.
Always use Save As....

6-2.4 Troubleshooting
• Using the vertex attraction to curve intersections, on curves that intersect several times (i.e. a
closed circle with a straight line), may create problems during a replay, when the new geometry
is significantly different from the original one. Since several intersections exist, IGG™ has to
make the choice of which intersection to assign to the vertex. Currently the closest parametric
intersection to the current vertex position is taken, which may be the wrong choice when the
geometry is much different. A work around is to split in the input geometry one of the curves so
that only one intersection exists between curves.
• When using the Quick Access Pad/Grid/Create/Extrude Range option on a range of a block
face, IGG™ automatically creates new internal grid lines on the reference face. Additional
curves are also created on which these internal grid lines lie. These automatically created curves
should not be used in the template since they are not part of the parametric definition of the
geometry. The solution to this limitation is to delete the four created curves, and manually
remap all the newly created vertices on the input geometry. To check that the vertices lie onto
the input geometry, move the mouse to the vertex and check in the status bar (at the bottom
right) the name of the curve or surface for the vertex.
• Creating internal grid lines or internal faces in the template project, will create vertices at the
intersection with the other edges of the block. By default these vertices do not lie on the input
geometry but on internally generated curves. It is consequently needed to manually touch and
reposition these vertices so that they lie on the input geometry.
• IGG™ uses a vertex tolerance mechanism to automatically close gaps between surfaces that do
not exactly match. When these gaps are significantly larger in a modified geometry, it may hap-
pen that the default tolerance of a vertex, which used to work on the original geometry, is not
large enough to close the gaps in the modified geometry. Straight edges will appear which must
be corrected by increasing the tolerance of the vertices.

6-2.5 Input file format


For this version, only ‘.dat’ files can be used with the template option. The format is described in
section 12-2 on page 12-1. The first line in a file is interpreted as the name of the entity described.
This means that a geometry described by several files should be such that the first line within each
‘.dat’ file is different.

IGG™ 6-5
Templates and Scripts Scripts

6-3 Scripts
6-3.1 Introduction
IGG™ provides a new powerful scripting tool that enables the user to automate a wide variety of
tasks and to better integrate the grid generation in an engineering process.
Geometry creation: the user can write scripts to automate the creation of geometries. By para-
metrizing numerical values used in the definition of entities, the user can change very fast the
geometry and regenerate the grid.
Grid generation: all the grid generation options available in IGG™ are available in scripts.
Process automation: Scripts allow to automate a number of tasks like project management, file
management, batch execution of modules, like AutoGrid.
Custom exportation: By accessing block coordinates within scripts, the user can write simple
scripts to export the grid to its own solver. A script file exporting in PLOT3D format is provided
with the distribution in the /Test-Case/IGG/scripts directory of the installation cdrom, as an exam-
ple.
Automatic recording of operations can be performed in IGG™. The menu item File/Scripts/Save
All... can be used to save the current record of the commands performed interactively by the user.
Visualization of the recorded operations can be performed in IGG™. The menu item File/Scripts/
Edit... can be used to edit the current record of the commands performed interactively by the user.

6-3.2 Python Language Overview


Scripts are available in IGG™ through the object-oriented Python language. Python is a popular
scripting language designed to be easily extendible to a specific application. It provides the major
functionalities classically found in languages such as C or C++, in a dynamic, interpreted environ-
ment.
This section provides a brief overview of the basic features of the Python language. Interested read-
ers should consult the tutorial documents or the systematic description of the language available on
the Python web site (http://www.python.org).
Scripts are evaluated line by line. However, line evaluation continues on the next line if the charac-
ter ‘\’ is the last character of the line.

6-3.2.1 Adding Commented Lines


The ‘#’ character specify that the rest of the line is a comment and will be skipped while the macro
is executed.

6-3.2.2 Support for Mathematical Operations


• the operators +, -, * and / are defined,
• parenthesis can be used and nested to any level,
• functions abs(x), int(x), floor(x), ceil(x) and sqrt(x) for square root are available,
• trigonometric functions sin(x), cos(x), tan(x), acos(x), asin(x), atan(x) are available, atan2(x,y)
returns atan(x/y),
• logarithmic functions log(x) for neperian logarithm, log10(x) for base 10 logarithm, exp(x),
sinh(x), cosh(x), tanh(x), asinh(x), acosh(x) are available,

6-6 IGG™
Scripts Templates and Scripts

• x to the power y is obtained by the function pow(x,y),


• boolean values are returned by the operators >, <, <=, >=, ==, !=, and, or,
• the constants pi and e are predefined.

6-3.2.3 String Handling


Strings are handled in Python in the following way:
• they are enclosed in single <‘> or double <“> quotes,
• concatenation is obtained with the operator +,
• duplication is obtained by the multiplication by an integer (operator *),
• access to the ie element is obtained by the suffix ‘[i]’ and access to a substring is obtained by the
suffix [i:j] for a substring starting from the ie character to the je,
• numerical values contained in variables can be inserted in a string by enclosing the variable
name with reverse quotes (‘) or by using a formatting specification:
Example:
s = ‘The Value of x is’ +‘x‘
s = ‘The Value of x is %3d’ %(x)
The formatting symbols are interpreted as follows:
— %d formats in an integral value (rounded if necessary)
— %nd (where n is an integer) in an integral value having a length of exactly n characters
(space characters are inserted on the left if necessary)
— %n.mf (where n and m are integers and n>m) formats into a floating point value having at
most n characters length and a fractional part of m characters exactly
— %n.me(where n and m are integers and n>m) formats into a scientific representation having
at most n characters length and a fractional part of m characters exactly
• stripping of the leading or trailing white spaces is obtained by the function strip.
Example:
myStrippedString = strip(myString)

6-3.2.4 Lists Handling


A list is an ordered set of items.
• a list is defined by enclosing the comma separated items by square brackets. A list may be
empty,
Example:
my_list = [a,b]
empty_list = []
Note that list definition can be extended over several lines without the ‘\’ terminating character.
• an item is accessed by adding the suffix [i] to the list name (ex: my_list[1]). Note that list indi-
ces start at 0,
• lists can be nested to any level,
• appending is obtained by the operator + (ex: my_list + my_list2) or by the function append
(ex:my_list.append([c, d])),
• multiplication (appending oneself n times) is obtained by the multiplication operator (ex:
my_list*3),

IGG™ 6-7
Templates and Scripts Scripts

• the functions insert(index, value) inserts value at position index, the elements at upper position
are shifted,
• the function index(value) returns the index of the first item of which the value is value,
• the function remove(value) removes the first item of which the value is value,
• the functions sort(), reverse() and len() are, respectively, sorting, reversing the elements and
returning the number of elements in the list.

6-3.2.5 Control Flow


The body part of these instructions is defined by the indented lines and the specific control lines are
terminated by a colon. The end of the loop body is marked by the first line that does not start by a
tab character. Nested loop are obtained by heading lines with multiple characters.
• if statement:
Example:
if x < 0 :
print ‘x is negative’
elif x==0 :
print ‘x is null’
else :
print ‘x is positive’
elif and else clauses may be omitted.
• loop statements: the for loop iterates on the elements of a list and the while loop iterates as long
as the condition is met. A break statement may be inserted to step out of the loop.
Example:
for x in a[:] :
for x in range(0,10) :
while x>0 :
where the range function returns a list of integers starting from the first argument value to the
second argument value with a step indicated by the third argument if existing (default value is
1).

6-3.2.6 Function Definition


Function definition starts with the standard header:
def function_name (arg1, arg2, arg3 = default_value, ...) :
where def is a reserved keyword. The arguments can be of any type (it is a user responsibility to
provide meaningful ones) and last arguments may have a default value (as arg3 in the above exam-
ple).
Each line of the function’s body is indented with a TAB character. The function definition ends with
the first line which is not indented by a TAB character.
All arguments are passed by value. Thus, if an argument value is modified, the new value is not
available to the caller.
A returned value may be specified using the ‘return’ statement followed by the name of the variable
or by a value. In any case, a value is returned and not a reference on a local variable or object. The
type of the returned value is a list, this means that appending a new element in the returned list is
obtained by the statement ‘return.append(x)’.
Global scope variable can be accessed if they are declared as such by a statement ‘global’ (e.g. ‘glo-
bal x’ specifies that the x variable is a global variable for the current function).

6-8 IGG™
Scripts Templates and Scripts

6-3.2.7 File Handling


Files can be opened for reading and writing. A file is associated to a variable which is initialized at
its opening:
f = open(fileName, mode, bufferSize)
where fileName is the full file name including its path. The parameter mode is a character string of
which the value may be:
• ‘r’ or ‘rb’: file opened for reading,
• ‘w’ or ‘wb’: file opened for writing, creates it if not existing or the previous content is dis-
carded,
• ‘a’ or ‘ab’: file opened for appending, creates if not existing or writes at the end of the file.
The ‘b’ character is used only on Windows systems to indicate that the file is in binary mode, on
Unix system, it is neglected.The parameter bufferSize is the integer value of the size of the buffer,
the system default size is chosen if the value is negative, the file is opened in the unbuffered mode
if the value is 0, a value of 1 specifies a line-buffered mode.
The following functions can be used to handle the file content:
• f.close(): closes file,
• f.flush(): flushes file’s internal buffer,
• f.read(n): reads at most n bytes from the file and returns as a string. If n is omitted, reads to the
end of the file,
• f.readline(): reads one entire line,
• f.readlines():reads until the end of the file and returns a list of lines,
• f.seek(offset, whence=0): sets file position, if whence =0 or is omitted, offset is the absolute
position, if whence=1 offset is relative to the current position and if whence = 2, offset is rela-
tive to the file end,
• f.tell(): returns file current position,
• f.write(string): writes string to file.

6-3.2.8 Error Handling


IGG™ performs continuous checks during the running of a script to insure that functions can be
normally executed, check of arguments validity during calls to functions or object access. When a
check fails IGG™ raises an exception which stops the execution of the script.

6-3.2.9 Creating and Using Modules (library of functions)


The python language provides the concept of module for grouping a set of functions in a same file.
The module name is the name of the file containing the functions.
The functions can be made available into a script in a similar way to the large set of utility functions
provided with IGG™. If a set of functions is defined in a file called MyModule.py, and the file is
located in the directory /people/myself/igg_scripts, they can be made available in another script
through the following instructions:
sys.path.append(‘/people/myself/igg_scripts’)
This declares to the system that some python files are available in that directory. Then, two different
ways can be used to import the functions:
from MyModule import *

IGG™ 6-9
Templates and Scripts Scripts

or
import MyModule
The first one sets all the functions defined in MyModule directly available, while the second form
makes them available with the MyModule. prefix (e.g. if a function f is defined in MyModule, it is
invoked by the command MyModule.f()).
The standard python modules may be imported with both of the above mentioned forms. The direc-
tory declaration is not necessary.

6-3.3 Running a Script File


Script files can be run from the graphical user interface or from the command line.
• From the interface, the option is accessed with the File/Scripts/Execute... menu item. It opens a
file chooser prompting to select a “.py” script file. After acceptation, the script is executed by
IGG™ and the results are visualized in the graphics area.
• From the command line, a script can be run by launching IGG™ with the -script option. For
example: igg -script my_script.py. IGG™ will execute the script and then open the graphical
user interface.
When running a script from the command line, it is possible to execute a process in batch mode,
avoiding to open the GUI. To do so, the -batch option should be used as the very first argument
to the igg command: igg -batch -script my_script.py.

6-10 IGG™
Scripts Templates and Scripts

6-3.4 IGG™ Script Commands


The functionalities classically available within the IGG™ graphical interface are provided in scripts
as commands or functions that can be combined together to provide higher level functionalities.
Since the language is object-oriented, classes of objects are naturally provided to the user and func-
tions applicable to these objects are associated with these classes. Typical examples of classes
defined for IGG™ are Curve, Surface, Block, Face, Vertex, Edge, etc…
Commands and classes are classified by categories. There are three main categories: project com-
mands, geometry commands and grid commands.
Commands are either global functions that can be called as normal functions without any object or
member functions that must be called with an object previously defined.
Examples:
save_project(“example.igg”) # global function call
c = Curve(“curve_1”) # create an object ‘c’ referring to a curve in IGG™
c.set_name(“new_name”) # member function call applied to object ‘c’

 Note for Windows users:


The specification of path names when using commands requiring file names as input must
be performed using a UNIX style coding. This practically means that ‘/’ should be used as
separator between directories instead of ‘\’.

Examples:
save_project(“c:/users/greg/rexample.igg”) # correct
save_project(“c:\users\greg\rexample.igg”) # not correct !!

6-3.4.1 Project Commands


Project commands are provided to control the project currently opened in IGG™ and to perform
global operations on this project.
• set_project_configuration(dim,axis)
Sets the project configuration. This command must be called at the very first stage of the
project setting. It closes the current project without saving and opens a new one with the
specified properties.
dim can be "2D" or "3D" or "AXISYM". By default the project dimension is 3.
axis is the axisymmetric axis and is only meaningful when dim is "AXISYM".
Its values can be 0, 1 or 2, corresponding to X, Y or Z axis respectively.
• open_igg_project(filename)
Opens an existing IGG™ project from disk. This command closes the previous project
without saving it.
Example:
open_igg_project("/usr/people/test/volute.igg")
• import_igg_project(filename,prefix)
Imports an existing IGG™ project into the current project.
prefix is an optional string that can be specified to easily recognize the blocks and patches
of the imported project from those in the current project. When specified, the prefix is
appended to the block, patch and group names of the imported project. It is mostly useful
when importing several projects into the current one, to distinguish them easily. The block
indices of the imported projects are changed to follow those of existing blocks.

IGG™ 6-11
Templates and Scripts Scripts

Example:
import_igg_project("/usr/people/test/volute.igg",”p1”)
• close_project()
Closes the current project without saving and clears the screen from all previous drawings.
• save_project(filename)
Saves the project into the specified file.
Example: save_project("/usr/people/test/volute.igg")
Notice:
During interactive saving from the GUI, IGG™ checks for blocks needing to be regener-
ated and asks whether to regenerate the blocks before saving. In the current implementation
this confirmation will also appear when saving from a script. It is consequently advised to
regenerate all touched blocks before calling the save_project command.
• exit_session()
Quits the IGG™ session. This command can be used to close IGG™ in the middle of a
script. All required savings must be performed explicitly before calling this function.
• text_message_box(message)
Opens a generic information dialog box and displays the message in it.

6-3.4.2 Geometry Commands


Geometry commands are provided as global functions or through classes. The main classes are:
Point, Curve and Surface.

a) Global Functions
• import_data_file(filename,mode)
Imports a geometry file in the current project.
filename specifies the name of the file and must have the extension ".dat", ".dst" or
".geom".
mode is used to specify the importation mode in the case where curves or surfaces with the
same name are already exists in the geometry repository. Possible values are "REPLACE",
"IGNORE", "RENAME".
Example: import_data_file("modified_volute.dat","REPLACE")
Note: the quotes around filename and the keyword REPLACE are needed.
• import_iges_file(filename)
Imports an IGES file in the current project.
• save_geometry_entities(filename,list_entities)
Saves the geometry entities in the specified file.
list_entities is the list of curves and/or surfaces (specified with their name or as an object).
• save_curve_ctr_points(filename,curve)
Saves the coordinates of the curve control points in the specified file.
• set_geometry_abs_tol(tol)
Sets the absolute tolerance of the system. This tolerance is for example used when perform-
ing geometry or topology operations.
• rotate(origin,direction,angle,list_entities)
Rotates a list of curves and/or surfaces around a given axis.
origin and direction specify the rotation axis.
angle is the angle of rotation in degrees.
list_entities is the list of curves and/or surfaces (specified with their name or as an object).
• translate(direction,list_entities)
Translates a list of curves and/or surfaces along a given direction.

6-12 IGG™
Scripts Templates and Scripts

direction is the translation direction, in direction and magnitude.


list_entities is the list of curves and/or surfaces (specified with their name or as an object).
• mirror(origin,direction,list_entities)
Mirrors a list of curves and/or surfaces with respect to a given plane.
origin and direction specify the mirror plane.
list_entities is the list of curves and/or surfaces (specified with their name or as an object).
• scale(scale_vector,list_entities)
Scales a list of curves and/or surfaces around a given axis.
scale_vector specifies the scale factors along x, y and z in the form of an object of class
Vector. These values should be different from zero.
list_entities is the list of curves and/or surfaces (specified with their name or as an object).
Example:
# scale the entities by a factor 2 along the z axis, and a factor 1 along x, y.
scale(Vector(1,1,2),”curve_1”,”curve_2”,”surface_1”)

b) Point and Vector Classes


Two types of points can be constructed or manipulated within scripts:
• Points that are local to scripts and deleted when the script finishes. These points are used very
frequently as argument to functions to specify a 1D position such as a vertex position, for exam-
ple.
• Points that are created and stored in the geometry repository of IGG™. Such points typically
result from operations performed on curves or surfaces, such as curve-plane intersections. These
points are saved permanently when saving the IGG™ project, in the .geom file.
IGG™ currently supports the creation of points of the first type within scripts. For this purpose,
four classes are provided, allowing to create and manipulate such points: Point, Vector, Curve-
PointNorm, SurfPointNorm.
• Point(x,y,z)
• Vector(x,y,z)
Defines a point with coordinates x, y, z. This point is NOT created as a Cartesian Point in
the IGG™ repository. It is only local to the script. Vector class is just derived from Point
class and is used frequently as argument to functions to specify a direction. All operations
on Points are also available on Vectors.
Example:
p1 = Point(1,1.2,1+2) # create a point (class Point) with coords (1,1.2,3)
• CurvePointNorm(curve_name,normalized_position)
Defines a point on a curve given by its name at a normalized parameter position. This kind
of point is local to the script.
• SurfPointNorm (surf_name,normalized_u_pos,normalized_v_pos)
Defines a point on a surface given by its name and located at the normalized (u,v) parame-
ters. This kind of point is local to the script.

Points and Vectors coordinates can be accessed by calling directly their data members: x, y, and z.
Global operations on points are: +,-,/,*
Basic operations like adding or subtracting points are allowed.
Example:
p1 = Point(0,0,1)
print p1.x, p1.,y, p1.z

IGG™ 6-13
Templates and Scripts Scripts

p2 = p1 + Point(0,0,1)
p3 = p2 - p1
p3 = p3/4.0 # divide all x, y, z coords by 4.0
p5=p3*2.0 # multiply x, y, z coords by 2.0

• distance(p1,p2)
Computes the distance between two points.
Example: dist = distance(p1,p2)
• scalarProduct(p1,p2)
• crossProduct(p1,p2)
Computes the cross product or scalar product of two vectors.
Example:
v3 = crossProduct(p1,p3) # returns a Vector
a = scalarProduct(p1,p3) # returns a real stored in 'a'
• curve_curve_intersection(curve_list,tol)
Creates a point at each intersection between all curves of the list. Returns the list of points.

c) Range Class
The range class is mostly used to specify a range of a face during an operation on this face.
• Range(imin,imax,jmin,jmax)
Constructs a range by specifying the limits along the I and J directions. These directions are
relative to the face for which the range will be used.
The indices start from 1.
imin, imax, jmin, jmax:
These are data members allowing to access the limits of the range. They can be accessed
directly, without the need of a function call.
Example:
r = Range(3,5,1,10) # range [3,5],[1,10]
print "Imax is ",r.imax # print the imax value of the range

d) Curve Class
The Curve class is used to manipulate curves defined within IGG™. They are mostly used to create
higher level entities like surfaces or as a mean to place vertices of a block. Curves can be created
from the script file or accessed from the geometry repository. They can be accessed with their name
and can be stored as local object of type Curve.
Member functions:
• Curve(name)
Constructor for Curve class allowing to access an existing curve already defined in IGG™.
Example: c1 = Curve("polyline_1") # polyline_1 is the name of a curve in IGG™
• num_ctr_pnt()
Returns the number of control points of the curve.
• get_ctr_pnt(i)
Returns the ith control point of the curve as an object of class Point. Index starts from 0.
• first_ctr_pnt()

6-14 IGG™
Scripts Templates and Scripts

• last_ctr_pnt()
Returns the first and last control point of the curve.
• get_length()
Returns the length of the curve.
• get_p_min()
• get_p_max()
Returns the min and max parameter value of the curve.
• calc_point(param)
Returns the point at the parameter value param. The returned point is an object of class
Point.
param is an absolute parameter value between get_p_min() and get_p_max().
• calc_tangent(param)
Returns the tangent at the parameter value param. The returned value is an object of class
Vector.
param is an absolute parameter value between get_p_min() and get_p_max().
• project_point(point)
Projects a point onto the curve and returns the corresponding absolute parameter value.
point is the point to project and is of class Point. If the specified point is not on the curve,
the closest point on the curve is used instead.
Example:
p1 = Point(1,1,1)
abs_param = curve1.project_point(p1) # curve1 is an existing curve
p2 = curve1.calc_point(abs_param) # calc the point on the curve
(p1==p2 if p1 was on the curve)
• set_name(name)
Assigns a new name to the curve. The name must be unique and not already used by another
curve in the repository. If this condition is not met, an exception is raised.

Curve constructions (global functions):


Several functions are provided to create polylines, splines, arcs,…. These functions create a curve
entity in the IGG™ repository (saved with the project), which is returned within the script as an
object of type Curve.
• new_polyline()
• new_polyline(p1,..,pi)
• new_polyline(name,p1,...pi)
Constructs a polyline in the IGG™ geometry repository. The first function defines an empty
polyline. The other functions allow to specify points of the polyline. These points are
objects of class Point.
name is a unique name assigned to the curve. This argument is optional but it is however
strongly recommended to specify a name. It must be surrounded by quotes.
Example: p3 = new_polyline("poly1",Point(1,0,0),Point(1,1,0),Point(1,1,1))
• new_cspline()
• new_cspline (p1,..,pi)
• new_cspline (name,p1,...pi)
Constructs a cspline in the IGG™ geometry repository. See polyline for details about argu-
ments.
• new_bspline()

IGG™ 6-15
Templates and Scripts Scripts

• new_bspline (p1,..,pi)
• new_bspline (name,p1,...pi)
Constructs a B-spline in the IGG™ geometry repository. See polyline for details about
arguments.
• create_arc_ppp(startpoint,endpoint,midpoint,name)
Creates an arc through three points.
name specifies the name assigned to the arc. The name may not already be used by another
curve in the repository.
• surf_surf_intersection(surf1,surf2,root_name)
Intersects two surfaces and returns a list of curves.
surf1 and surf2 are the two surfaces specified with their name or through a Surface object.
root_name specifies the root of the names assigned to the resulting intersection curves. It
must be surrounded by quotes.
Example:
curve_list = surf_surf_intersection(s1,"surface_2","first_inters")
foreach curve in curve_list: print 'Result length',curve.length()
• surface_intersect_plane(surf,plane,root_name)
Intersects a surface with a plane.
surf is the surface being intersected. It is of class Surface.
plane defines the intersection plane and may be specified in three ways:
•Plane(origin,normal):
Defines the plane by an origin (class Point) and a normal (class Vector)
•PlanePPP(p1,p2,p3):
Defines the plane by three points (class Point)
•CurveNormPoint(curve,normalized_param):
Defines the plane by a point on a curve at the specified normalized parameter and normal to
the curve at the point.
root_name specifies the root of the names assigned to the resulting intersection curves. It
must be surrounded by quotes.
Examples:
surface_intersect_plane("surf2",Plane(Point(0.5,0,0),Vector(1,0,0)),"resu1")
surface_intersect_plane("surf2",CurveNormPoint("curve1",0.5),"resu1")
• delete_curves(curve_list)
Deletes a set of curves.
curve_list is the list of curves to be deleted (i.e. c1,c2,c3). The curves are specified with
their name or as an object of class Curve.

e) Surface Class
Surfaces can be created from the script file or accessed from the geometry repository. They can be
accessed with their name and can be stored as local object of type Surface.
Member functions:
• Surface(name)
Constructor for Surface class allowing to access an existing surface already defined in
IGG™.
Example: s1 = Surface("lofted_1") # lofted_1 is the name of a surface in IGG™
• calc_point(u,v)
Returns the point at the parameter values u,v. The returned point is an object of class Point.
u and v are the absolute parameter values on the surface.

6-16 IGG™
Scripts Templates and Scripts

• project_point(point)
Projects a point onto the surface and returns the corresponding (u,v) absolute parameter val-
ues.
point is the point to project and is of class Point. If the specified point is not on the surface,
the closest point on the surface is used instead.
u,v are returned as a list [u,v].
Example:
p1 = Point(1,1,1)
[u,v] = surf1.project_point(p1) # surf1 is an existing surface
p2 = surf1.calc_point(u,v) # calc the point using u and v
(p1==p2 if p1 was on the surface)
• set_name(name)
Assigns a new name to the surface. The name must be unique and not already used by
another surface in the repository. If this condition is not met, an exception is raised.

Surface constructions (global functions):


• lofted_surface(curve_list,name)
Constructs a lofted surface from a list of existing curves. A curve may be specified by its
name of by an object referencing the curve in the script (class Curve).
curve_list is the list of curves used to define the surface. It is a tuple and must be sur-
rounded by brackets (i.e. [c1,c2,c3]). The curves are specified with their name or as an
object of class Curve.
name is an optional name assigned to the surface.
Example:
s1 = lofted_surface(["curve_1","curve_2"],"first_loft")
• surface_revolution(curve,Point(0,1,0),Vector(1,0,0),-90,"Surfacesisl_2")
Constructs a surface of revolution by rotating a curve around an axis.
curve is the curve to rotate and can be specified by its name or can be an existing object of
class Curve in the script.
• create_surface_from_face(face)
Constructs a surface from a given face of a block.
face is the face from which to create a geometry surface and must be of class Face.
The function returns an object of class Surface.
• create_surface_from_faces(faces)
Constructs a set of surfaces from a list of block faces.

6-3.4.3 Topology and Grid Classes Commands


Topology and grid entities consist of vertices, topological edges, fixed points, segments, edges
(grid), faces, patches and blocks.
These entities can be accessed in different ways: direct access or indirect access.
Direct access:
Direct access consists of accessing an entity by its indices. For example the statement seg-
ment(2,1,3,2) accesses the block 2, face 1, edge 3 and segment 2.
The main disadvantage of this method is that it makes it difficult to reuse a script in a different con-
text. Indeed, suppose the block 2 has just been created before accessing the segment. Replaying this
script in a context where other blocks exist will fail.

IGG™ 6-17
Templates and Scripts Scripts

Indirect access:
Indirect access allow entities to be accessed by referring to a name instead of by indices. Currently
names are only assigned to blocks. Other entities can be accessed relatively to the block name.

a) Block Class
The Block class is used to access and manipulate blocks created within IGG™. Blocks can be
accessed with their index or their name, by using the global function block:
• block(B)
B is either the index of the block, starting from 1, or its name.
Examples:
b1 = block(1) # access block 1 by its index, store it as a variable
b2 = block(“gap_block”) # access a block by its name
Operations can then be performed on the block by calling one of its member functions listed
below.
Examples:
b2.set_size(21,21,21) # change the number of points of block 2
block(2).set_size(21,21,21) # another way to do the same operation

Member functions:
• delete()
Deletes the block.
• set_size(nI,nJ,nK,propagate)
Changes the size of the block. This function follows the same rule as the Grid/Settings dia-
log box.
propagate specifies whether the change should be propagated along segment connections
(in case of connected blocks). It can have the values 0 (no) or 1 (yes) and has a default value
of 0 (for backward compatibility with older scripts).
• set_name(new_name)
Changes the name of the block.
Example: block(1).set_name("trailing")
• get_name()
Returns the name of the block.
• set_repetition("NONE" ,num_period)
• set_repetition("TRANSLATION",num_period,vector)
• set_repetition("ROTATION" ,num_period,orig,normal)
• set_repetition("MIRROR" ,num_period,orig,normal)
Sets the periodicity information for the block. Four types can be specified: NONE,
TRANSLATION, ROTATION, MIRROR.
num_period specifies the number of periodicities and is a real. It is only meaningful for
ROTATION and TRANSLATION. For a rotation, the periodicity angle is specified as:
angle = 360/num_period.
vector defines the direction and magnitude for TRANSLATION periodicity. It is of class
Vector (i.e. Vector(0,0,1)).
origin is a vector specified as Vector.
• get_all_faces()
Returns a list of all the faces of the block, including the internal faces. Each element of the
list is of class Face.

6-18 IGG™
Scripts Templates and Scripts

• get_boundary_faces()
Returns a list of the boundary faces of the block. Each element of the list is of class Face.
• num_faces()
Returns the number of faces of the block, including internal faces.
• face(i)
Returns the ith face of the block. The index starts from 1.
• create_internal_face(dir,index)
Creates and returns an internal face for the block.
dir is the constant direction of the face and can be "I", "J" or "K". The edges of the face are
calculated from the existing block grid.
index is the position of the new face in the block (integer value).
• delete_internal_face(face)
Deletes the specified internal face from the block.
• change_axis(I, J, K)
Changes the axis system of the block.
I, J and K are strings defining the transformation of the axis system. I specifies on which
axis the block I axis will be transformed and with which orientation. Following strings can
be chosen for either I, J or K : “Ihigh”, “Ilow”, “Jhigh”, “Jlow”, “Khigh”, “Klow”. “high”
in a string means that the new axis will have the same orientation whereas “low” means that
the orientation will be reversed. Obviously the three strings I, J and K cannot be equal and
should contain “I”, “J” and “K” values. For example, arguments (Ihigh, Jhigh, Klow) will
reverse the block K axis.
• split_block(dir,index)
Splits the block into two new blocks and returns them.
dir is the block direction along which it will be split and can be “I”, “J” or “K”.
index is the position of the splitting face mesh in the block (integer value).
• split_block_at_internal_faces()
Splits the block at each internal face and returns all the new created blocks.
• linear_2_bnd()
• linear_4_bnd()
• linear_6_bnd()
Generates the block using transfinite interpolation (2, 4 or 6 boundaries).
• save_coords(filename,coarseI,coarseJ,coarseK)
Saves the coordinates of the block in the specified file name.
coarseI,coarseJ,coarseK are the coarse levels in the three directions. A value of 0 corre-
sponds to the finest level.
• num_of_I()
• num_of_J()
• num_of_K()
Returns the number of grid points along the I, J or K direction.
• grid_point(i,j,k)
Returns the grid point at index (i,j,k). The indices start from 1. The returned point is of class
Point.
• get_volume()
Returns the volume of the block mesh.
• update_butterfly(butterfly_param)

IGG™ 6-19
Templates and Scripts Scripts

Creates a butterfly topology in the block according to the specified parameters. All the
parameters of the Butterfly dialog box are available. Main use is to recreate a butterfly
topology after a first manual creation.
butterfly_param is a string containing all the parameters needed to the butterfly creation
and should look like the following example. It must start and end with tripple quotes.
Example:
#Butterfly_settings
butterfly_param = """ # Tripple quotes
buffer_blocks: 1 1 1 1 1 1
direction: K
number_of_radial_points: 9
preferential_direction_buffer_depth1: 10
preferential_direction_buffer_depth2: 90
clustering_type: 4
clustering_start_spacing: 0.001
clustering_end_spacing: 0.02130209
clustering_constant_cells: 0
clustering_reciprocity: 0
creation_from_uniform_clustering: 0
number_of_control_section: 2
control_section:0 section_id: 0 radial_depth: 20 number_of_additional_control_on_curve:
0
0.2 0.2
0.8 0.2
0.8 0.8
0.2 0.8
control_section:1 section_id: 8 radial_depth: 20 number_of_additional_control_on_curve:
0
0.2 0.2
0.8 0.2
0.8 0.8
0.2 0.8
""" # Tripple quotes

block(1).update_butterfly(butterfly_param)

• create_butterfly_from_scratch(butterfly_param)
Creates a butterfly topology in the block according to the specified parameters. This func-
tion optimizes the shape of the butterfly topology with a restricted list of parameters as
input. Obviously all the settings are not available as with the function update_butterfly.
Used to create a butterfly topology in simplified geometries.
butterfly_param is a list of parameters needed for the butterfly creation and should look
like the following example.
Example:
# Butterfly settings
buffers = [0,0,1,1,1,1] # No buffer at faces 1 and 2.
direction = "K"
radial_depth_value = 30
nk = 9
clust_type = 4 # Hyperbolic tangent clustering type
clust_start = 1e-3 # Start spacing
clust_cst_cells = 0 # Unused for this clustering type
clust_reciprocity = 0

6-20 IGG™
Scripts Templates and Scripts

from_uniform_clustering = 0

param_list = buffers + [direction, radial_depth_value, nk, clust_type,


clust_start, clust_cst_cells, clust_reciprocity,
from_uniform_clustering]

block(1).create_butterfly_from_scratch(param_list)
• delete_butterfly()
Deletes the butterfly topology of the block.
• split_butterfly()
Splits the butterfly topology of the block.
• split_and_merge_butterfly()
Splits the butterfly topology of the block and merges into one block all the buffer blocks
"normal" to the preferential direction of the butterfly topology.

Global functions:
• new_block()
Creates a unit cube block at the origin.
• new_block(p1,p2,p3,p4,p5,p6,p7,p8)
Creates a new block by specifying its eight vertices. The type of <pi> can be
one the Point classes.
• new_block_face()
• new_block_face(p1,p2,p3,p4)
Creates a new block by initializing only one face (face 1).
• extrude_new_block(ref_face,range,normal_mode,0,2,dir)
Creates a new block by extruding from an existing block face.
ref_face is the face used a the basis for extrusion.
range is the range of the reference face to extrude and is of class Range.
normal_mode specifies the mode for the normal extrusion.
dir specifies the direction when the mode is 3 (user specified). Its type is Vector.
Example: extrude_new_block(face(1,2),Range(27,39,9,27),0,2,Vector(1,0,0))
• num_of_blocks()
Returns the number of blocks in the current project.
• transform_blocks_translate(blocks,vec,duplic_geom_create = 0)
Translates a set of blocks along a vector.
blocks is a list of blocks, between brackets (i.e. [“block_1”,”block_2”,…]. Specifying a
block group is currently not permitted.
vec specifies the translation vector, in direction and magnitude.
geom_create specifies whether to duplicate the geometry or not (0 or 1).
• transform_blocks_rotate(blocks,orig,vec,angle,geom_create = 0)
Rotates a set of blocks around a given axis.
blocks is a list of blocks, specified between brackets (i.e. [“block_1”, ”block_2”,…]. Speci-
fying a block group is currently not permitted.
orig is the origin of the rotation axis.
vec is the direction of the rotation axis.
angle is the rotation angle specified as a real N (angle in degree = 360/N).
geom_create specifies whether to duplicate the geometry or not (0 or 1).
• transform_blocks_scale(blocks,scale_vec,geom_create = 0)

IGG™ 6-21
Templates and Scripts Scripts

Scales a set of blocks around a given axis.


blocks is a list of blocks, specified between brackets (i.e. [“block_1”, ”block_2”,…]. Speci-
fying a block group is currently not permitted.
scale_vec is a vector (type Vector) given the scale factor in the three directions.
geom_create specifies whether to duplicate the geometry or not (0 or 1).
• set_repetition_all_blocks(…)
This function sets a periodicity information for all the blocks in the project at once. The
arguments are the same as the function set_repetition of the class Block. See class Block for
more information.

b) Face Class
The Face class allows to manipulate and perform operations on existing faces of a block. Faces can
be accessed using the global function face:
• face(B,F)
B is either the index of the block, starting from 1, or its name.
F is the index of the face to access, starting from 1. This function returns an object of class
Face that can be stored locally.
Example:
f1 = face(2,1) # get face 2 of block 1
f1 = face(“block_2”,1) # accessing the face using the block name
f1.new_patch(...) # use f1 to apply a member function.

Member functions:
• num_edges()
Returns the number of edges of the face, including the internal edges.
• edge(i)
Returns the ith edge of the face. The index starts from 1.
• num_patches()
Returns the number of patches of the face.
• patch(i)
Returns the ith patch of the face. The index starts from 1.
• delete_patch(patch_index)
Deletes the patch.
• new_patch(range)
Creates a new patch by specifying its range.
range is of class Range.
• create_internal_edge(dir,index)
Creates an internal edge along dir at specified index.
dir specifies the variable direction of the edge and can have the values 1 or 2. For example:
for an IJ face dir = 1 means the edge will vary along I and will be constant for J.
• linear_4Bnd(range):
Generates the face using an algebraic 4 boundaries interpolation.
range specifies the range of the face on which to apply the interpolation. This parameter is
optional, if omitted the full range of the face is taken.
Example: face(1,2).linear_4Bnd(Range(1,6,1,9))
• project_on_surfs([surf_list],bound_projection,validation,proj_ratio,Range(1,4,1,9))

6-22 IGG™
Scripts Templates and Scripts

Global functions:
• regenerate_faces(face)
Regenerates the specified face. The argument must be of class Face.
• regenerate_faces(block)
Regenerates all the faces of a block. The argument must be of class Block.
• regenerate_faces(face_list)
Regenerates a list of faces.
face_list is a list of faces specified as [face1,face2,...,facei], where facei is an object of class
Face, or the name of the face. The [] must be present in the list definition.
• regenerate_all_block_faces()
Regenerates all the faces of all the blocks in the project.
Examples:
regenerate_faces(face(1,1)) # regenerates the face 1 of block 1

f1 = face(2,4) # getting face 2 of block 4


f2 = face(2,5) # getting face 2 of block 5
regenerate_faces([f1,f2]) # regenerates both faces

regenerate_faces(block(1)) # regenerates all faces of block 1

c) Patch Class
The Patch class allows to manipulate and perform operations on existing patches of a face. Patches
can be accessed using the global function patch:
• patch(B,F,P)
B is either the index of the block, starting from 1, or its name.
F, P are the indices of the face and patch to access, starting from 1. This function returns an
object of class Patch that can be stored locally.
Examples:
p1 = patch(2,1,2) # access block 2, face 1, patch 2
p2 = patch(“inlet_block”,1,2) # access the patch by specifying the block name

Member functions:
• set_name(name)
Gives a name to the patch.
name is a string, surrounded by quotes, and must be maximum 30 characters.
• get_type()
Returns the boundary condition type currently assigned to the patch.
• set_type(type)
Assigns a boundary condition type to the patch.
type is the BC type and can have the following values: EXT, INL, OUT, SNG, SOL.
• divide(range)
Divides the patch in two. During the division one new patch is created. The limits of the
current patch are adapted to reflect the division.
• set_limits(range)
Assigns new limits to the patch.
range specifies the limits (starting from 1) and must be of class Range.
Example:
patch(2,1,2).set_limits(Range(1,1,9,5)

IGG™ 6-23
Templates and Scripts Scripts

d) Edge Class
The Edge class is used to manipulate and perform operations on existing edges of a block. An Edge
can be accessed with the edge command:
• edge(B,F,E)
B is the index of the block, starting from 1, or its name.
F, E are the indices of the face and edge starting from 1. This function returns an object of
class Edge that can be stored locally.
Examples:
e = edge (1,2,1) # access edge 1 of Block 1, face 2
e = edge(“ablock”,2,1) # access the same edge using the name of the block

Member functions:
• num_segments()
Returns the number of segments of the edge.
• segment(i)
Returns the ith segment of the edge. The index starts from 1.
• change_index(new_index)
Changes the index of the edge. Only valid for internal edges.
• delete()
Deletes the edge. Only valid for internal edges.
• insert_vertex(norm_param)
Inserts a new vertex at the specified normalized parameter value. A value of 0 corresponds
to the beginning of the edge while a value of 1 corresponds to its end.

e) Segment Class
The Segment class is used to manipulate and perform operations on existing segments of an edge.
A segment can be accessed with the segment command:
• segment(B,F,E,S)
B is the index of the block, starting from 1, or its name.
F, E and S are the indices of the face, edge and segment, starting from 1. This function
returns an object of class Segment that can be stored locally.
Examples:
s = segment (1,2,1,2) # access segment 2 of Block 1, face 2, edge 1
s = segment(“ablock”,2,1,2) # access the same segment using the name of the block

Alternatively, the segment can also be accessed using an Edge object:


edge = edge(1,2,1) # get edge of block 1, face 2, edge 1
s = edge.segment(2) # get segment 2 of the previous edge

Member functions:
• increase_size(new_number_of_point)
Increases the size of a segment.
• cluster_start(distance)
• cluster_end(distance)

6-24 IGG™
Scripts Templates and Scripts

• cluster_both_ends(distance)
Clusters at start, end or both ends with a given absolute value representing the size of the
first (last) cell.
• cluster_both_ends2(start_dist,end_dist,num_cst_cell)
Clusters at both ends by specifying the start and end distances as well as a number of con-
stant cells. If the algorithm does not converge, it resets a uniform clustering.
• cluster_tanh(start_dist,end_dist)
Specifies a hyperbolic tangent stretching by specifying the start and end distances. Dis-
tances are given as absolute values.
Example: segment(1,1,1,1).cluster_tanh(0.01,0.01)
• cluster_uniform()
Resets the clustering of the segment to uniform.

f) BlockGroup Class
Block grouping functionalities are available through the BlockGroup class. The users can create or
delete block groups as well as add or remove blocks from a group. Groups can be used with several
grid functionalities like block generation…
Member functions:
• add_block(block)
Adds a block to the group.
block specifies the block and is a name or a Block object.
• remove_block(block)
Removes a block from the group.
block specifies the block and is a name or a Block object.
• delete()
Deletes the group. Using the object after deleting it is forbidden.
Global functions:
• create_block_group(group_name)
Creates a new group with the given name. The name must be a unique name not already
used by another group. In case a group already exists with that name, an exception is raised.
• block_group(name)
Gets the block group by its name. Returns an object of class BlockGroup.

g) Vertex Class
The Vertex class is used to manipulate vertices of a block. A vertex can be accessed with the vertex
command:
• vertex(B,F,E,V)
B is the index of the block, starting from 1, or its name.
F, E and V are the indices of the face, edge and vertex, starting from 1. This function returns
an object of class Vertex that can be stored locally.
Examples:
v = vertex (1,2,1,2) # access vertex 2 of Block 1, face 2, edge 1
v = vertex(“ablock”,2,1,2) # access the same vertex using the name of the block
Member functions:
• get_coords()
Returns the position of the vertex as an object of class Point.

IGG™ 6-25
Templates and Scripts Scripts

Example:
p = vertex(1,2,1,1).get_coords()
print “Coords are”,p

h) Topology Placement
Several global functions are provided to place the topology of a block onto a geometry. The most
common method is to place the vertices by using the move_vertex command.
It is also possible to move a complete edge, face or block at once by using the move_edge,
move_face or move_block functions.
In all the cases the new position is defined by a point object which can be specified in three ways
(see Point classes definition).
When moving an edge, face or block, a reference vertex must be specified together with its new
position.
• move_vertex(vertex,position)
Moves the specified vertex at the new position.
vertex is the vertex to move and is of class Vertex.
position is the new location of the vertex.
Example: move_vertex(vertex(1,1,1,1),CurvePointNorm("cspline_1",0.5))
• move_edge(edge_object,ref_vertex,new_vertex_position)
Moves the whole given edge (class Edge) to a new position. The new position of the edge is
calculated by moving ref_vertex (class Vertex) to new_vertex_position (class Point).
• move_face(face_object,ref_vertex,new_vertex_position)
Moves the whole given face (class Face) to a new position. The new position of the face is
calculated by moving ref_vertex (class Vertex) to new_vertex_position (class Point).
• move_block(block_object,ref_vertex,new_vertex_position)
Moves the whole given block (class Block) to a new position. The new position of the block
is calculated by moving ref_vertex (class Vertex) to new_vertex_position (class Point).

6-3.4.4 Connection Commands


Connection commands allow to perform connections for the different entities manipulated in
IGG™: vertices, topological edges, segments and patches. The commands correspond to the
options available in the Quick Access Pad/Grid/Connect menu or in the Boundary Conditions
dialog box.
• connect_edges(edge1,edge2,level,tol)
Connects two block edges together at the specified level and with the given tolerance.
edge1 and edge2 are the two edges to connect and must be of class Edge. The first edge is
taken as reference.
level specifies what to connect. It can take one of the following values: VERTEX,
ORPHAN, SEGMENTS, EDGES or ALL. Quotes must surround these values.
tol is a real, specifying the absolute tolerance for connections. It is optional, if omitted it has
a default of 1e-5.
• connect_faces(face1,face2,level,tol)
Connects two faces together at the specified level and with the given tolerance.
face1 and face2 are the two faces to connect and must be of class Face. The first face is
taken as reference.
level specifies what to connect. It can take one of the following values: VERTEX,
ORPHAN, SEGMENTS, EDGES, PATCHES or ALL. Quotes must surround these values;

6-26 IGG™
Scripts Templates and Scripts

tol is a real specifying the absolute tolerance for connections. It is optional, if omitted it has
a default of 1e-5.
• connect_whole_grid(level,tol)
Connects the whole grid at a given level.
level specifies what to connect. It can take one of the following values: VERTEX,
ORPHAN, SEGMENTS, EDGES, PATCHES or ALL. Quotes must surround these values;
tol is a real specifying the absolute tolerance for connections. It is optional, if omitted it has
a default of 1e-5.
• search_connections(tol)
Searches all the connections of type CON, NMB, PER, PERNM, falling within a given tol-
erance. This function corresponds to the Search button in the Grid/Boundary Condi-
tions... dialog box.
tol is the tolerance search given in absolute units.
• connect_patches(patch1,patch2,dir1,dir2,con_type,tol)
Manually connects two patches by specifying their relative orientation and connection type.
IGG™ will check the validity of the connection. This function corresponds to the Manual
button in the Boundary Conditions dialog box.
patch1, patch2 are the two patches to connect and must be of class Patch.
dir1,dir2 specify the relative connection orientation. It can take one of the following values:
IHIGH, ILOW, JHIGH, JLOW (surrounded by quotes).
con_type specifies the type of connection: CON, NMB, PER, PERNM.
tol is the absolute tolerance used for connecting.
Example:
connect_patches(patch(2,1,1),patch(1,2,1),"IHIGH","JHIGH","CON",1E-005)
• delete_all_connections()
Deletes all existing connections (type CON, NMB, PER, PERNM) in the project. Similar to
the Delete All button in the Grid/Boundary Conditions... dialog box.

6-3.4.5 Quality Checking Commands


• calc_negative_cells(block, precision, right_handed, levels, cI, cJ, cK)
Computes the negative cells according to the specified parameters. Returns a string giving
the result.
block is the block on which the test will be done and must be of class Block. However the
value 0 can be specified to apply the test on all the blocks of the grid at once.
precision can be equal to "single" or "double" and specifies the precision mode of the
check.
right_handed specifies whether calculation should proceed using a right_handed local ref-
erence frame (0 or 1).
levels specifies the multigrid levels on which the calculation is done. Set it to "all" to make
the check on all levels available at once. Otherwise set it to "custom" and specify the
desired multigrid levels as the last three arguments.
cI, cJ, cK are the multigrid levels for the check. Not used when levels is set to "all".
Example:
text = calc_negative_cells(block(1), "double", 1, "all", 0, 0, 0)
• calc_mesh_quality(type, block, axis, range_start, range_end, range_number)
Computes the mesh quality. Returns a list giving a spreaded number of cells as in a barchart.
type is the name of the quality criterion: "Orthogonality", "Aspect Ratio" or "Expansion
Ratio".
block is the block on which the test will be done and must be of class Block. However the
value 0 can be specified to apply the test on all the blocks of the grid at once.
axis is either "All", "I", "J" or "K" and is the direction along which the quality is computed.

IGG™ 6-27
Templates and Scripts Scripts

range_start
range_end specify the criterion range to be tested.
range_number is the number of items of the returned list (i.e. the number of bars in the
chart).
Example:
list = calc_mesh_quality("Orthogonality", block(1), "All", 0, 90, 9) # list will contain 9
items, giving the number of cells for each interval of 10 degrees between 0 and 90.
• get_extremum_quality_values()
Returns the two extremum quality values of the previous quality check (list with two items).
Must be run after the function calc_mesh_quality.
Example:
list = get_extremum_quality_values()
min_orthogonality = list[0]
max_orthogonality = list[1]
• calc_mesh_quality_inter_block(type, block, range_start, range_end, range_number)
Computes the mesh quality at block boundaries. Returns a list giving a spreaded number of
cells as in a barchart.
type is the name of the quality criterion: "Orthogonality", "Angular deviation", "Expansion
Ratio" or "Cell width".
block is the block on which the test will be done and must be of class Block. However the
value 0 can be specified to apply the test on all the blocks of the grid at once.
range_start
range_end specify the criterion range to be tested.
range_number is the number of items of the returned list (i.e. the number of bars in the
chart).
• get_extremum_quality_values_inter_block()
Returns the two extremum quality values of the previous quality inter block check (list with
two items). Must be run after the function calc_mesh_quality_inter_block.

6-3.4.6 MultiStage Module


This multi-stage module allows to run and concatenate several AutoGrid meshes into one project,
in an automatic way. It is typically used to automate the generation of multi-stages turbomachinery
meshes.
Initially, the user generates an AutoGrid template for each stage separately, by fine-tuning the
parameters available within the graphical user interface of AutoGrid. Then, the module can be used
to concatenate the stages automatically. During the concatenation, IGG™ will convert the interfaces
between stages to a rotor-stator boundary condition type (ROT). Finally the mesh is saved and
intermediate project files are cleaned automatically.
When AutoGrid templates already exist for each stage, the module can also be used to launch
AutoGrid in batch mode for each stage, on modified blade shapes, for example. Concatenation will
then proceed after the generation of each stage.
To use the option, a script file with the extention ".py" should be written and contain the informa-
tion described here below.
To activate the module the file must contain the following command near the beginning of the file:
from MultiStage import *
This will instruct IGG™ to load the MutliStage module, which will allow a MultiStage object to be
created:
• multi = MultiStage()

6-28 IGG™
Scripts Templates and Scripts

Next, the full path name of the directory where the AutoGrid templates or meshes reside must be
specified:
• multi.path = "/home/_release/_autogrid/"
 All the directory paths in the MultiStage module must be specified by using "/" (on all
platforms). "\" should not be used because it is interpreted as a script special character.
Once a MultiStage object is created and its path specified, its member functions can be called to
perform the desired operations.
• exec_autogrid(trb_file,geom_turbo_file,save_file,batch)
Runs AutoGrid with the given geometry and template files. The resulting mesh will be
saved in the specified output file.
trb_file specifies the “.trb” file required to run AutoGrid. The file name is relative to the
path specified above.
geom_turbo_file specifies the “.geomturbo” file required to run AutoGrid. The file name is
relative to the path specified above.
save_file is the name of the file where the mesh will be saved. It must be a full path name.
batch is a boolean indicating whether the process should be run in batch mode. It can take
the values 0 or 1. When the value is 0, the graphical user interface remains on the screen
and dialog boxes indicating possible negative cells will appear at the end of the generation.
When the value is 1, the process will be run in batch mode, with no graphical user interface
or dialog box. In this case an explicit call to the exit_session command must be added at the
end of the script to quit IGG™.
• concatenate(list_of_igg_files)
Concatenates a list of ‘.igg’ files (each representing a single stage project generated by
AutoGrid) into a new project. During the concatenation, IGG™ will convert the interfaces
between stages to a rotor-stator boundary condition type (ROT). The convertion is applied
to all the patches with an INL or OUT type, except for the first and last stages for which the
INL and OUT patches are respectively kept.
list_of_igg_files is a list containing the file names of each ‘igg’ project file. The path name
for each file is relative to the path member specified above. The list can contain any
number of file names. The file names must be given in the proper order.
Example: m.concatenate(“rotor.igg”,”stator.igg”,”rotor2.igg”)
• save(filename)
Saves the current project, resulting from the concatenate operation, in the specified file
name. The full path name must be given.
• add_stage(trb_file,geom_file)
Adds a stage to the MultiStage object. This function is used to prepare the MultiStage
project. It does not perform any computation. The run member function should be used
after all the stages have been specified.
trb_file and geom_file are the template and geometry files required to run Autogrid. They
are specified relatively to the path member function.
• run(save_file,batch)
Runs the whole MultiStage project by running each AutoGrid template specified with the
add_stage member function and concatenating the different stages thus generated.
save_file is the full path name specifying where to save the final mesh.
batch specifies whether the whole process should be run in batch mode. It can have the val-
ues 0 or 1. See exec_autogrid function for more explanation.

IGG™ 6-29
Templates and Scripts Scripts

Complete examples:
Example 1:
import os
from MultiStage import *

# Initialize a new object for MultiStage.


multi = MultiStage()

# Specify the path were .trb and .geomturbo files reside. A full pathname is required.
multi.path = "/raid/home/_complete/"
multi.add_stage("_autogrid/Bld01.trb","_autogrid/Bld01.geomTurbo")
multi.add_stage("_autogrid/Bld02.trb","_autogrid/Bld02.geomTurbo")
multi.add_stage("_autogrid/Bld03.trb","_autogrid/Bld03.geomTurbo")
multi.add_stage("_autogrid/Bld04.trb","_autogrid/Bld04.geomTurbo")
multi.add_stage("_autogrid/Bld05.trb","_autogrid/Bld05.geomTurbo")
multi.add_stage("_autogrid/Bld06.trb","_autogrid/Bld06.geomTurbo")
multi.add_stage("_autogrid/Bld07.trb","_autogrid/Bld07.geomTurbo")
multi.add_stage("_autogrid/Bld08.trb","_autogrid/Bld08.geomTurbo")

# Run the whole process: run each autogrid stage, import them into a
# centralized project, clean the tmp files, and save the result project.
# If the optional batch parameter is set to 1, the whole process will be performed in batch. In this
# case, the exit_session call at the end of the file must be uncommented.
multi.run("/raid/home/_complete/_mesh/multistage.igg",batch = 1)

### If Autogrid was run in batch mode, it is needed to exit explicitly IGG™.
exit_session()

Example 2:
import os
from MultiStage import *
batch = 1

# Initialize a new object for MultiStage.


multi = MultiStage()

6-30 IGG™
Scripts Templates and Scripts

# Specify the path were .trb and .geomTurbo files reside. A full pathname is required .
multi.path = "/raid/home/_concatenate/"

# Run three times AutoGrid explicitly.


savein = "/raid/home/_concatenate/_mesh/ "
multi.exec_autogrid("_autogrid/Bld01.trb","_autogrid/Bld01.geomTurbo",
savein+"Bld01.igg",batch)
multi.exec_autogrid("_autogrid/Bld02.trb"_autogrid/Bld02.geomTurbo",
savein+"/Bld02.igg",batch)
multi.exec_autogrid("_autogrid/Bld03.trb"_autogrid/Bld03.geomTurbo",
savein+"/Bld03.igg",batch)

# Concatenate and save the three generated meshes.


multi.concatenate("_mesh/Bld01.igg","_mesh/Bld02.igg","_mesh/Bld03.igg)
multi.save("/raid/home/multi_stage.igg")
if batch==1: exit_session()

6-3.5 Examples
A couple of examples are provided as an introduction to the script capabilities. These examples are
provided with the distribution and can be found in the directory /Test-Case/IGG/scripts of the
installation cdrom.
Basic geometry operations (geom.py)
Curves and surfaces constructions are provided in this script file. The following features are used:
• polyline creation,
• spline creation,
• lofted surface creation,
• surface of revolution creation,
• surface intersection with a plane.

Pipe-to-pipe (pipe2pipe_1.py, pipe2pipe_2.py)


This example shows the usage of some geometry and grid script capabilities. It shows the creation
of the two cylinders together with their intersections. The following features are used:
• polyline creation,
• surface of revolution creation,
• surface-surface intersection,
• block creation,
• block resizing,
• vertex placement on the geometry,

IGG™ 6-31
Templates and Scripts Scripts

• face projection on surfaces,


• patch specification.

Full automatic regeneration (full_auto.py)


This example shows the usage of the standard templates capabilities followed by the regeneration
of block faces and block grids. The following features are used:
• importation of an IGG™ project,
• importation of IGG™ data files with automatic replacement,
• regeneration of faces,
• regeneration of blocks,
• project saving.

6-32 IGG™
Templates versus scripts Templates and Scripts

6-4 Templates versus scripts


Templates correspond to the saving of a final state of a mesh, with the position of vertices and edges
saved parametrically according to the input geometry.
Scripts correspond to a succession of commands and in this respect correspond to a history-based
approach.
Which one to use depends on the problem to model (initial data provided for the problem) and the
limitations of each method with regard to the problem.
Alternatively, a combination of the two can be used. As a general rule, templates can be used as
long as no geometry curves or surfaces (used to place the topology) are created in IGG™.
This is because the operations used to create such curves or surfaces are not stored in the template
project. (and are consequently not parameterized).

IGG™ 6-33
Templates and Scripts Templates versus scripts

6-34 IGG™
CHAPTER 7: Quick Access Pad

7-1 Overview
The Quick Access Pad is located in the left part of the GUI. It contains icons and more evolved
options providing a fast access to the most used functions of IGG™. Some of these functions are
only accessible through the Quick Access Pad whereas others are also accessible through the menu
bar, so that their description will be referenced to this menu.
The Pad is divided into three subpads, each of which can be toggled by a mouse left-click:
• Geometry subpad
• Grid subpad
• View subpad
The three subpads are composed of pages containing icons or more evolved options. The icons
perform specific function related to the subpad and the page. Each page can be toggled by a simple
mouse left-click.

IGG™ 7-1
Quick Access Pad Overview

Subpads

Pages

FIGURE 7.1.0-1 Geometry, Grid and View subpads

• The Geometry subpad commands and tools allow the creation and the modification of geome-
try entities like points, curves and surfaces.
• The Grid subpad commands and tools allow the creation and the manipulation of blocks and
related entities like vertices, fixed points, internal faces, internal grid lines,...
• The View subpad allows viewing operations on the geometry and the grid. In particular, the two
first pages provide options allowing the creation and the visualization of geometry and block
groups.
All the commands and options accessible with the subpads are described in the following sections.

7-2 IGG™
Geometry subpad description Quick Access Pad

7-2 Geometry subpad description


The Geometry subpad provides commands and tools allowing the creation and the modification of
geometry entities like points, curves and surfaces. It consists of four pages: three for geometry enti-
ties creation (respectively point, curve and surface creation) and one for curves and surfaces edit-
ing.

7-2.1 Point page

7-2.1.1 Cartesian Point


See the Geometry/Create Points/Cartesian Point menu item description on page 9-11.

7-2.1.2 Curve-Curve Inters


See the Geometry/Create Points/Curve-Curve Intersection menu item description on page 9-11.

7-2.1.3 Curve-Plane Inters


See the Geometry/Create Points/Curve-Plane Intersection menu item description on page 9-11.

7-2.2 Curve page

7-2.2.1 Polyline
See the Geometry/Draw Polyline/Free menu item description on page 9-5.

7-2.2.2 CSpline
See the Geometry/Draw CSpline/Free menu item description on page 9-3.

7-2.2.3 Arc
It opens the following submenu for the selection of various circular arc creation modes:

This menu is strictly equivalent to the Geometry/Circular Arc menu on page 9-7.

IGG™ 7-3
Quick Access Pad Geometry subpad description

7-2.2.4 Trim
See the Geometry/Create Curve/Trim menu item description on page 9-16.

7-2.2.5 Group
See the Geometry/Create Curve/Group menu item description on page 9-15.

7-2.2.6 UnGroup
See the Geometry/Create Curve/UnGroup menu item description on page 9-15.

7-2.2.7 Surf-Surf Inters


See the Geometry/Create Curve/Surf-Surf Intersection menu item description on page 9-11.

7-2.2.8 Surf-Plane Inters


It opens the following submenu for the selection of various intersection modes:

This menu is strictly equivalent to the Geometry/Create Curve/Surf-Plane Intersection menu on


page 9-12.

7-2.2.9 Set Name


It is used to change the name of a selected curve. See the Geometry/Modify Curve/Set Name...
menu item description on page 9-23.

7-2.3 Surface page

7-2.3.1 Lofted
See the Geometry/Create Surface/Lofted menu item description on page 9-16.

7-2.3.2 Revolution
See the Geometry/Create Surface/Revolution menu item description on page 9-17.

7-2.3.3 Coons
See the Geometry/Create Surface/Coons Patch menu item description on page 9-17.

7-2.3.4 Linear Sweep


See the Geometry/Create Surface/Linear Sweep menu item description on page 9-18.

7-4 IGG™
Geometry subpad description Quick Access Pad

7-2.3.5 Offset
See the Geometry/Create Surface/Offset menu item description on page 9-18.

7-2.3.6 From Face Grid


See the Geometry/Create Surface/From Face menu item description on page 9-18.

7-2.3.7 Set Name


It is used to change the name of a selected surface. See the Geometry/Modify Surface/Set Name...
menu item description on page 9-24.

7-2.4 Edit page

7-2.4.1 Copy
See the Geometry/Edit/Copy menu item description on page 9-18.

7-2.4.2 Mirror
See the Geometry/Edit/Mirror menu item description on page 9-20.

7-2.4.3 Translate
See the Geometry/Edit/Translate menu item description on page 9-19.

7-2.4.4 Rotate
See the Geometry/Edit/Rotate menu item description on page 9-19.

7-2.4.5 Scale
See the Geometry/Edit/Scale menu item description on page 9-19.

IGG™ 7-5
Quick Access Pad Grid subpad description

7-3 Grid subpad description


The Grid subpad provides commands and tools allowing the creation and the manipulation of
blocks and related entities like vertices, fixed points, internal faces, internal grid lines,... It contains
four pages that are described in the following sections.

7-3.1 Create page


This page contains icons used to create and delete blocks. When moving the cursor above one of
these icons, a balloon containing a description appears, indicating the function of the corresponding
icon. Each icon is referenced here below with this description.

 When inserting a new block and placing a vertex, this one can be attracted to a visible
Cartesian point, curve, surface, vertex or fixed point by moving it close to the desired
entity. There is attraction when the distance between the vertex and the entity is small
enough. This distance is controlled by the Pick Aperture (see section 8-2.44.1 on page
8-15 for more informations). When a vertex is attracted, the block drawing in the graph-
ics area is highlighted. This attraction feature cannot be deactivated.

7-3.1.1 Insert New Block


This icon is used to create a block by defining two opposite vertices. The following steps have to be
followed to insert a new block:
1. A block with a default position appears in the graphics area. The first vertex that has to be
placed is displayed as a filled-in circle. Move the cursor to the desired location and left-click or
middle-click to place it.
 The current vertex can be attracted to a visible Cartesian point, curve, surface, vertex or
fixed point by moving it close to the desired entity (see the beginning of this section for
more information).

 To make easily the vertex positioning, a zoom (<F2>) or a 3D viewing (<F1>) operation
can be performed before resuming the placement.

FIGURE 7.3.1-1 IJK axis placement

2. When moving the cursor around, the drawing of the block is updated according to the cursor
position. Move the cursor to the desired location and left-click or middle-click to place the sec-
ond (opposite) vertex.

7-6 IGG™
Grid subpad description Quick Access Pad

 The position of a vertex can also be defined by entering its coordinates in the keyboard
input area.
3. The orientation of the block, defined by the IJK axis, appears at a default block corner
(Figure 7.3.1-1).

The following message is displayed in the message area, asking to position the axis system:

Place the IJK Axis (o = origin, s = orientation, <1> or <2> = create, <3> = abort)

To change the origin or the orientation of the IJK axis, press respectively the <o> or the <s>
key. The axis system displayed is always right-handed. Left-click or middle-click to complete
the block creation. When the block is created, the vertices of the block are drawn using solid
square markers.
To quit this tool, press <q> or the right mouse button.

7-3.1.2 Insert New Block by picking vertices


This icon is used to create a new block by defining its eight vertices. The following steps must be
followed after selection of the icon:
1. A block face with a default position appears in the graphics area and the first vertex to place is
displayed as a filled-in circle. Move the cursor to the desired location and left-click to place it.
 The position of a vertex can also be defined by entering its coordinates in the keyboard
input area. The current vertex can be attracted to a visible Cartesian point, curve, surface,
vertex or fixed point by moving it close to the desired entity (see the beginning of this
section for more information).

 During the vertex placement it is possible to change the view orientation using the zoom
(<F2>) or a 3D viewing (<F1>) options.
2. Repeat the operation to place the other three next vertices defining the first face.
3. When the first four vertices positions are specified, a 3D block appears, for which the drawing is
updated according to the cursor position.

first vertices

current vertex

FIGURE 7.3.1-2 Block drawing with the first four vertices specified

The following message is displayed in the message area, asking to position the first vertex of the
block second face:

IGG™ 7-7
Quick Access Pad Grid subpad description

Place vertex (Locking: x, y, z, n = normal, v = vector, u = unlock; <2> = default position)

The movement of the cursor can be locked in one direction by pressing one of the following
keys:
•<x>, <y> or <z> to lock the movement in the specified direction.
•<n> to lock the movement perpendicular to the first face.
•<v> to lock the movement in a user defined direction. The direction must be entered through
the keyboard input area.
•<u> to unlock. (It is also possible to press the same key twice to unlock the corresponding
direction).
4. Repeat the click operation to place the other vertices defining the block.
 At each step of the vertices positioning, the process can be accelerated by pressing the
middle mouse button. If any of the vertices of the first face is positioned, middle-clicking
will position this face as it appears on the screen so that the next step will be the placing
of the first vertex of the second face. During this step, middle-clicking will position the
second face as it appears on the screen so that the next step will be the choice of IJK axis.
5. When all the vertices are defined, the orientation of the block, defined by the IJK axis, appears
at a default block corner (see Figure 7.3.1-1 on page 7-6). The following message is displayed
in the message area, asking to position the axis system:

Place the IJK Axis (o = origin, s = orientation, <1> or <2> = create, <3> = abort)

To change the origin or the orientation of the IJK axis, press respectively the <o> or the <s>
key. The axis system displayed is always right-handed. Left-click or middle-click to complete
the block creation. When the block is created, the vertices of the block are represented by solid
square markers.
 After having specified the orientation of the IJK axis, IGG™ will attempt to automati-
cally map the edges of the new block onto the geometry, before completing the block
creation.
To quit this tool, press <q> or the right mouse button.

7-3.1.3 Insert New Face


This icon is used to create partially a block by defining its face 1. The complete creation of the
block from this face can be done by using construction tools such as: create block by translation,
rotation,... (see a detailed description in the next sections). The face 1 is positioned by two opposite
corners.
The following steps have to be followed to insert a new face:
1. A face with a default position appears in the graphics area. The first vertex that has to be placed
is displayed as a filled-in circle. Move the cursor to the desired location and left-click or middle-
click to place it.
 The current vertex can be attracted to a visible Cortisone point, curve, surface, vertex or
fixed point by moving it close to the desired entity (see the beginning of this section for
more informations).

 To make easily the vertex positioning, a zoom (<F2>) or a 3D viewing (<F1>) operation
can be performed before resuming the placement.

7-8 IGG™
Grid subpad description Quick Access Pad

2. As the cursor is moved around, the drawing of the face is updated according to the cursor posi-
tion. Move the cursor to the desired location and left-click or middle-click to place the second
(opposite) vertex.
 The position of a vertex can also be defined by entering its coordinates in the keyboard
input area.
3. The orientation of the face, defined by the IJ axis, appears at a default face corner. The follow-
ing message is displayed in the message area, asking to position the axis system:

Place the IJ Axis (o = origin, s = orientation, <1> or <2> = create, <3> = abort)

To change the origin or the orientation of the IJ axis, press respectively the <o> or the <s> key.
Left-click or middle-click to complete the block creation. When the block is created, the verti-
ces of the face are drawn using solid square markers.
To quit this tool, press <q> or the right mouse button.

7-3.1.4 Extrude Range


This icon is used to create a block by extruding a range of the active block face. The following dia-
log box will appear:

Patch selection
Active face range

Click on the border to change


the current limit

FIGURE 7.3.1-3 Extrude Range dialog box

The first thing to choose is the active face range from which the new block will be extruded:
• The Patch box allows to choose an existing patch of the active face to perform the extrusion.
The patch is automatically displayed in the graphics area. By default, the patch number is 0, that
is the patch corresponding to the entire active face.
• Any range can also be selected by changing the limits of the active face range borders. Move the
cursor to the desired border which is highlighted when the cursor is close enough. Then left-
clicking on it will open a box allowing to enter the new limits:

FIGURE 7.3.1-4 Changing range limits

IGG™ 7-9
Quick Access Pad Grid subpad description

The new limits can be entered manually or modified using the scrollers. Pressing <Enter>
applies the new limits to the range. Pressing <Esc> cancels the limit modification.
Once the range is chosen, the direction in which the extrusion will proceed must be selected. Three
possibilities are available (simply left-click on the desired one in the box):
1. Average Normal. This normal is computed as the average of all the normals to the face in each
range grid point.
2. Normal to Face. Each range grid point is extruded along the face normal in this point.
3. User Direction. The extrusion direction is specified by entering with the keyboard the x, y and
z coordinates of the direction vector. Only the vector direction is taken into account, not its ori-
entation. This one is calculated automatically in order to obtain a right-handed block.
After the direction, the magnitude of the extrusion must be specified. Just after the dialog box open-
ing, it is set to the ’default’ value which depends on the range size. To modify this, simply enter a
new positive value with the keyboard (all negative values are equivalent to the default value).
Finally the Connect Topology option can be activate or deactivate to create a new block automati-
cally connected or not connected to the original block on which the extrusion is performed.
Once all the previous parameters are chosen, simply press the Extrude button to perform the extru-
sion. Here below are listed its main features:
• The new extruded block is always right-handed.
• Internal grid lines are automatically created in the active face to capture the first face of the new
block.
• The number of points in the extrusion direction is the default one (9). In other directions, the
number is the same as those of the corresponding internal grid lines segments.
• Connections between the reference block and the extruded one are automatically performed for
vertices, topological edges, segments and patches. Patch connection is subject to limitations
described below.

Patch decomposition and connection


When extruding a new block, IGG™ attempts, as much as possible, to divide correctly the reference
face and the new one into patches and to perform matching connections between them. Several
cases may happen:
1. The reference face contains only one patch:
The reference face is divided into patches in order to match the patch of the new face and the
connection is performed.
2. The reference face is decomposed in several patches and the complete face is extruded:
The new face is divided in the same way as the reference face. Each patch will be connected to
its counterpart.
3. The reference face is decomposed in several patches and a range is extruded:
Three sub-cases may happen:
• The range is completely included in one of the patches of the reference face. In this case,
the reference face is further divided into smaller patches and the connection is performed
with the new face. It is illustrated in the figure below where the central patch will be further
divided into nine patches and the new central patch will be connected to the new face.

7-10 IGG™
Grid subpad description Quick Access Pad

Reference face,
divided in nine
patches

Extruded range

FIGURE 7.3.1-5 Extruded range included in a reference face patch

• The range covers exactly a set of existing patches. In this case, the new face is divided
using the same limits as the covered patches and the connection is performed with these
patches.
• The range overlaps two or more patches. In this case patch decomposition will NOT be per-
formed automatically and a warning will appear. It is illustrated in the figure below where
the range being extruded overlaps two patches. In this case, the division into patches and
the connections must be performed manually.

Reference face, divided Extruded range overlapping


in two patches the two patches

FIGURE 7.3.1-6 Extruded range overlapping two reference face patches

7-3.1.5 Duplicate Block


This icon is used to create blocks by duplicating existing blocks. The following dialog box will
appear:

IGG™ 7-11
Quick Access Pad Grid subpad description

FIGURE 7.3.1-7 Duplicate Block dialog box

The first item "Blocks to Duplicate" offers three possibilities to choose the blocks to duplicate (sim-
ply left-click on the desired one in the box):
1. Active Block. Select only the active block.
2. Selected Block(s). Select the desired blocks by entering with the keyboard their number in the
dedicated box entry. The numbers must be separated by spaces. A range of blocks can also be
selected by entering two numbers separated by a ’-’. For example, enter ’4 6 10-15’ to select the
blocks 4, 6 and the range 10->15. The numbers do not have to be ordered. If a syntax error is
made, a warning message will appear.
3. Block Group. Select all the blocks of the group. To see all the group names in a pull-down
menu and select the desired one, left-click on the dedicated arrow.
Then, choose the number of duplicated blocks (Nbre of duplicates) for each block that has been
selected. Choose also the transformation that will be applied to the selected blocks to create the
duplicated ones. When the duplication number is greater than 1, the transformation is applied to the
previous duplicated block to create the next new block. There are three transformations available:
rotation, translation and scaling. Simply left-click on the corresponding page to select one or the
other transformation.
• For the rotation, its axis, origin and angle must be specified. For the axis and origin, simply
enter the x, y and z coordinates. A number must be specified for the angle, which will be com-
puted as follows: angle = 360/number.
• For the translation, simply specify a vector by entering its coordinates.
• For the scaling, simply specify the scaling factor in the x, y and z directions. Null values are not
allowed.
Finally, a modelling option must be chosen for the duplicated blocks. Four possibilities are availa-
ble (simply left-click on the desired one in the box):

7-12 IGG™
Grid subpad description Quick Access Pad

1. No topology. Only the mesh of the selected blocks will be duplicated but not the edges and ver-
tices. It is useful when the duplicated blocks do not have to be modified.
2. Topology From Grid. The boundary edges are created by using the boundary grid nodes of the
duplicated blocks.
 Only the boundary edges and the corner vertices are reproduced.
3. Duplicate Geometry. All the selected blocks entities are duplicated: vertices, fixed points,
edges, internal grid lines, internal points, internal faces. The duplicated edges will have exactly
the same shape as those of the initial block, which is not the case when edges are created by
using the boundary grid nodes of the duplicated block. The difference can be seen clearly in the
figure below for the edge mapped on the curve:

Topology From Grid Duplicate Geometry

Duplicated blocks

Curve

Initial blocks

FIGURE 7.3.1-8 Difference between ’Topology From Grid’ and ’Duplicate Geometry’

4. Vertex Snapping. It will have the same effect as the previous option. But in addition IGG™
tries to snap the duplicated block vertices on curves lying near this new block. This snapping is
controlled by a tolerance (Rel Tol) that can be modified. For example, if the distance between a
vertex and the closest point of a curve is higher than this tolerance, there is no snapping.
Once all the previous parameters are chosen, simply press the Apply button to perform the duplica-
tion.

7-3.1.6 Block by Sweeping


See the Grid/Create Block/Sweeping menu item description on page 10-44.

7-3.1.7 Block by Face translation


See the Grid/Create Block/Translation menu item description on page 10-46.

IGG™ 7-13
Quick Access Pad Grid subpad description

7-3.1.8 Block by Face Expansion


See the Grid/Create Block/Extrude Normally menu item description on page 10-45.

7-3.1.9 Block by Face Rotation


See the Grid/Create Block/Rotation menu item description on page 10-47.

7-3.1.10 Create Butterfly


This icon opens the "Butterfly" dialog box which is used to automatically create a butterfly topol-
ogy in a block. Refer to chapter 5 “Butterfly mesh” for a complete description of this dialog box
and for information about the butterfly topology.

7-3.1.11 Delete Block(s)


This icon is used to delete blocks. The following dialog box will appear:

FIGURE 7.3.1-9 Delete blocks dialog box

This box allows to choose the blocks to delete. Two possibilities are available (simply left-click on
the desired one in the box):
1. Active Block. Select only the active block.
2. Selection. Select the desired blocks by entering with the keyboard their number in the dedicated
box entry. The numbers must be separated by spaces. A range of blocks can also be selected by
entering two numbers separated by a ’-’. For example, enter ’1 5 10-15 3’ to select the blocks 1,
3, 5 and the range 10->15. The numbers do not have to be ordered and the same number can be
entered more than one time. If a syntax error is made, a warning message will appear.
Once the desired blocks are selected, press the Delete button to perform the deletion. A confirma-
tion is asked for each block:

FIGURE 7.3.1-10 Deletion confirmation

Press the yes or no button to confirm the deletion or not.


To have no confirmation asked at each selected block, press the Delete All button to perform the
deletion of all selected blocks.

7-14 IGG™
Grid subpad description Quick Access Pad

7-3.2 Insert/Edit page


This page contains icons used to add entities (vertices, fixed points, ...) to the blocks, to control the
grid points clustering along the segments and to modify blocks. When the cursor is moved above
one of these icons, a balloon containing a message appears, indicating the function of the corre-
sponding icon. Each icon is referenced here below with this message.

7-3.2.1 Insert Vertex


This icon is used to insert a new vertex in an edge.

" Use the short-cut <i> to activate this command in a faster way.

Move the mouse to the desired edge. A small marker is displayed when the candidate edge has been
identified. Left-click to insert a new vertex in this edge. Then, this vertex can be moved as for a cor-
ner vertex. Left-click again to fix its position.

 The insertion of a vertex splits the existing topological edge into two new topological
edges. The mapping of these edges can be controlled separately.

 The insertion of a vertex is firstly attempted on the active edge. In this way it is possible
to control in which edge the vertex is inserted in the case several edges lie at the same
position.

7-3.2.2 Insert Fixed Point


This icon is used to insert a new fixed point in an edge.
Move the mouse to the desired edge near a grid point to fix. A small marker is displayed when the
insertion can be performed. Left-click to insert a new fixed point in this edge; its index will then be
displayed. This fixed point can be moved as for a corner vertex. Left-click again to fix its position.

 The insertion of a fixed point splits the existing segment into two new segments.

 The insertion of a fixed point is first attempted on the active edge. In this way it is possi-
ble to control in which edge the fixed point is inserted in the case several edges lie at the
same position.

7-3.2.3 Insert Internal Grid Line


See the Grid/Internal Grid Line/Create from grid menu item description on page 10-26.

7-3.2.4 Internal Point


This icon is used to insert an internal point in the active face. In fact, an internal point is composed
of two crossing internal grid lines. The face grid must be already generated. The following prompt
appears to select two crossing grid lines:
Insert Internal Point on Active Face (q = quit)
Move the cursor to the two desired crossing grid lines of the active face. When the cursor is close
enough, the grid lines are highlighted and their indices are displayed. Simply press the left mouse
button to create the internal point.
The shape of the internal grid lines will initially follow the shape of the face grid. After the creation
of the grid lines, a dialog box is opened to ask whether geometrical curves should be created at the
position of the internal grid lines.

IGG™ 7-15
Quick Access Pad Grid subpad description

Geometrical curves allow to modify the shape of the internal grid lines and possibly come back
to their original position. If no geometrical curve is created, the grid lines will lose their initial
shape as soon as a vertex is moved, without any possibility to come back to their first position.
If curves are not created, it is always possible to later create a curve at the position of the internal
grid line by right-clicking on one edge and selecting the Edge/Create Curve pop-up menu item.
To quit this command, press <q> or the right mouse button.

7-3.2.5 Internal Face


See the Grid/Internal Face/Create... menu item description on page 10-27.

7-3.2.6 Cluster Points


See the Grid/Grid Density/Clustering... menu item description on page 10-47.

7-3.2.7 Transform Blocks


This option allows to apply a transformation (rotation, translation, scaling) to a block or to a group
of blocks. The following dialog box will appear:

FIGURE 7.3.2-1 Transform Blocks dialog box

The first thing to choose is the Block(s) to Transform. Three possibilities are available (simply left-
click on the desired one in the box):
1. Active Block. Select only the active block.
2. Selected Block(s). Select the desired blocks by entering with the keyboard their number in the
dedicated box entry. The numbers must be separated by spaces. A range of blocks can also be
selected by entering two numbers separated by a ’-’. For example, enter ’4 6 10-15’ to select the
blocks 4, 6 and the range 10->15. The numbers do not have to be ordered. If a syntax error is
made, a warning message will appear.
3. Block Group. Select all the blocks of the group. To see all the group names and select the
desired one, left-click on the dedicated arrow.

7-16 IGG™
Grid subpad description Quick Access Pad

Next, the transformation which will be applied to the block(s) must be selected. There are three
transformations available: translation, rotation and scaling. Simply left-click on the corresponding
page to select one or the other transformation.
• For the rotation, its axis, origin and angle must be specified. For the axis and origin, simply
enter the x, y and z coordinates. A number must be specified for the angle, which will be com-
puted as follows: angle = 360/number.
• For the translation, simply specify a vector by entering its coordinates.
• For the scaling, simply specify the scaling factor in the x, y and z directions. Null values are not
allowed.
Finally, the mode for the block topology (edges) transformation must be chosen. Two possibilities
are available (simply left-click on the desired one in the box):
1. Topology From Grid. Using this option, the edges of the blocks are re-created using the grid
nodes of the transformed blocks. Consequently a slightly different shape might be obtained for
the edges after the transformation.
2. Duplicate Geometry. Using this option, all the curves and surfaces currently used by the blocks
are duplicated and transformed using the same transformation as the blocks. The transformed
block will then refer to these new geometry entities which will insure that the blocks will have
exactly the same shape as before the transformation (see Figure 7.3.1-8).

7-3.2.8 Extend Block


This option allows to extend an existing block, starting from one of its faces. It does not create a
new block but rather extends a block along the I, J or K direction, allowing to construct blocks
incrementally in an efficient way.

Reference face with internal grid line New reference face position 2 grid points

21 grid points 21 grid points

K K
Newly created internal face
J I J I

FIGURE 7.3.2-2 Block extension along the J direction

During an extension operation, IGG™ automatically inserts a new internal face at the position of
the reference face and increments the number of points of the block along the extension direction.
This allows to keep the current shape of the block unchanged while being able to extend it. Internal
edges are inserted in the new internal face at the same position and with the same shape as internal
edges of the reference face.

 The connections of the reference face (vertices, edge, segments and patches) are deleted
during the extension operation. A warning appears when a disconnection is performed.

IGG™ 7-17
Quick Access Pad Grid subpad description

The following steps have to be followed to extend a block:


1. Click on the icon. The following prompt appears:
<1> to select a face, <2> to perform extension, <3> to quit
2. Select the reference face with the left mouse button. Middle-click to acknowledge the face
selection.
3. One vertex of the reference face is selected and can be moved with the mouse. The whole refer-
ence face is translated at once, according to the vertex movement. This vertex can be placed in
the same way as when moved alone, and in particular its coordinates can be entered in the key-
board input area.
4. Left-click to end the block extension.

7-3.2.9 Split Block


See the Grid/Create Block/Split... menu item description on page 10-41.

7-3.2.10 Split Block at internal faces


See the Grid/Create Block/Split at internal faces menu item description on page 10-43.

7-3.2.11 Merge Blocks


See the Grid/Create Block/Merge menu item description on page 10-43.

7-3.3 Connect page


This page contains named bars providing options to connect blocks together and to visualize these
connections. The following sections describe each bar and are referenced with the bars name.

FIGURE 7.3.3-1 Connect page

For general information about connections, see section 3-10 "Connections" on page 3-30.
Connection operations can be applied on different entities (see the related bars of the Connect
page):
•between two grid edges,
•between two faces,
•for the whole grid at once.
For each one of these tools, the following topological connection levels are accessible:
• vertex,
• orphan vertex,
• topological edge,
• segment.

7-18 IGG™
Grid subpad description Quick Access Pad

As all these entities are linked together, an order must be followed to perform the connections.
Indeed, vertices are used by topological edges and segments are lying on topological edges. There-
fore vertices must be connected before topological edges, which ones must be connected before
segments. Moreover, any failure or forgotten step in the connection process prevents following
other connection types. For example, if vertices connections are not performed, the connection
between the corresponding topological edges cannot be executed.
All these tools are using a tolerance determining if the connection is possible or not for the selected
level.

7-3.3.1 Edge - Edge


The connection of two edges requires the selection of a reference edge and a second edge (target).
During the different connection operations, IGG™ may need to remap edges affected by the opera-
tion. By convention IGG™ keeps the reference edge unchanged and applies the modifications on
the second edge only. This is important when an existing edge cannot be modified at all.
Firstly select the two edges to connect together. The following prompt will appear:
Select First Edge (reference) (<1> to select - <2> to acknowledge - <3> to quit)
Left-click on the desired edge and middle-click to confirm the selection. Then, the second edge
must be selected in the same way. After, the following dialog box will be opened to enable connec-
tions at different levels, each level being identified by a button in the dialog box. The All button per-
forms all the connections of the previous buttons, if possible.

FIGURE 7.3.3-2 Edge-Edge connection dialog box

 For the first four "topological" levels, an order must be respected as explained in the
beginning of this section on page 7-18.
For vertex or orphan vertex connections, the topological edges using the replaced vertex are rem-
apped on the geometry (see section 3-10.2 "Topological connections (vertex, edge, segment)" on
page 3-35).
For each level, the successfully connected entities are highlighted in green in the graphics area.
Entities that were already connected in a previous operation are highlighted in red.
Once a connection is performed, two other edges can be selected to make another connection with-
out leaving the tool.
To quit this tool, press <q> or the right mouse button.

IGG™ 7-19
Quick Access Pad Grid subpad description

7-3.3.2 Face - Face


The connection of two faces requires the selection of a reference face and a second face (target).
During the different connection operations, IGG™ may need to remap edges affected by the opera-
tion. By convention IGG™ keeps the reference face unchanged and applies the modifications on the
second face only. This is important when an existing face cannot be modified at all.
Firstly select the two faces to connect together. The following prompt will appear:
Select First Face (reference) (<1> to select - <2> to acknowledge - <3> to quit)
Left-click on the desired face and middle-click to confirm the selection. Then, the second face must
be selected in the same way. After, the following dialog box will be opened to enable connections at
different levels, each level being identified by a button in the dialog box. The All button performs
all the connections of the previous buttons, if possible.

FIGURE 7.3.3-3 Face-Face connection dialog box

 For the first four "topological" levels, an order must be respected as explained in the
beginning of this section on page 7-18. On the other hand the Patches level can be
applied independently.
For vertex or orphan vertex connections, the topological edges using the replaced vertex are rem-
apped on the geometry (see section 3-10.2 "Topological connections (vertex, edge, segment)" on
page 3-35).

 For patch connections, only matching non periodic connections (CON type) can be
found.
For each level, the successfully connected entities are highlighted in green in the graphics area.
Entities that were already connected in a previous operation are highlighted in red.
Once a connection is performed, two other faces can be selected to make another connection with-
out leaving the tool.
To quit this tool, press <q> or the right mouse button.

7-3.3.3 Whole grid


This tool performs the connection for the whole grid at once. The dialog box of the previous section
will appear (see Figure 7.3.3-3 on page 7-20). The All button performs all the connections of the
previous buttons, if possible. For each connection level selected by a button, a search is made on the
whole grid to find matching entities at the specified tolerance and the connection is performed. As
the whole grid is examined, and that a connected entity can be modified, this tool should not be
used if any of the block cannot be modified at all.

7-20 IGG™
Grid subpad description Quick Access Pad

 For the first four "topological" levels, an order must be respected as explained in the
beginning of this section on page 7-18. On the other hand the Patches level can be
applied independently.
For vertex or orphan vertex connections, the topological edges using the replaced vertex are rem-
apped on the geometry (see section 3-10.2 "Topological connections (vertex, edge, segment)" on
page 3-35).

 For patch connections, only matching non periodic connections (CON type) can be
found. This tool is strictly equivalent to the "automatic search" of the Boundary Condi-
tions dialog box (See section 10-2.3 ”Boundary Conditions”), except that it finds only
CON connections.
For each level, the successfully connected entities are highlighted in green in the graphics area.
Entities that were already connected in a previous operation are highlighted in red.
To quit this tool, press <q> or the right mouse button.

7-3.3.4 Show Vertex Connections


This bar is used to show the vertex connections. The following prompt will appear:
Select a Vertex <1>, Sweep Connected Blocks <2>, quit <3>
Firstly, a vertex must be selected by left-clicking on it. It is then surrounded by a circle and all the
blocks sharing this vertex (all the blocks among which this vertex is connected) are highlighted.
Then middle-click to perform a sweeping of these blocks sharing the vertex.
To quit this tool, press <q> or the right mouse button.

7-3.3.5 Show Edge Connections


This bar is used to show the topological edge connections. The following prompt will appear:
Select a Topo Edge <1>, Sweep Connected Blocks <2>, quit <3>
Firstly, a topological edge must be selected by left-clicking on it. All the blocks sharing this topo-
logical edge (all the blocks among which this topological edge is connected) are highlighted. Then
middle-click to perform a sweeping of these blocks sharing the topological edge.
To quit this tool, press <q> or the right mouse button.

7-3.3.6 Show Segment Connections


This bar is used to show the segment connections. The following prompt will appear:
Select a Segment <1>, Sweep Connected Blocks <2>, quit <3>
Firstly, a segment must be selected by left-clicking on it. All the blocks sharing this segment (all the
blocks that are connected to this segment) have their boundary grid points displayed. Then middle-
click to perform a sweeping of these blocks sharing the segment.
To quit this tool, press <q> or the right mouse button.

7-3.3.7 Show Face Connections


This bar is used to show the connection status of a face in a global manner. The following prompt
will appear:
Select a Face, quit <3>
Firstly, a face must be selected by left-clicking on one of its edges. Following entities are displayed:

IGG™ 7-21
Quick Access Pad Grid subpad description

• all connected vertices, shown as red hollow circles,


• all connected segments, shown as red crosses,
• all connected patches, shown as red grid lines.
The connections of topological edges are not shown to avoid confusion.
To quit this tool, press <q> or the right mouse button.

7-3.4 Generate page


This page contains five icons and two named bars used to generate face and block grids. When the
cursor is moved above one of the icons, a balloon containing a message appears, indicating the
function of the corresponding icon. Each icon is referenced here below with this message whereas
the bar is referenced with its name.

7-3.4.1 2 Bnd Interpolation


See the Grid/Create Face/Linear 2Bnd menu item description on page 10-28.

7-3.4.2 4 Bnd Interpolation


This icon is used to generate face grids of a block. This generation method is based on bilinear
interpolation from the boundary grid points. It takes into account the clustering applied to each seg-
ment.
The following dialog box will appear:

FIGURE 7.3.4-1 Face 4 Bnd Interpolation dialog box

It allows to select the faces to generate. Simply left-click on the desired scope and press the Apply
button to perform the generation of the corresponding faces. The face grid of the selected face(s)
will be displayed to show the result of the generation.

7-3.4.3 Face Generation Tool


See the Grid/Create Face/Generation Tool... menu item description on page 10-29.

7-3.4.4 Project Face


This option is used to project the active face onto one or more geometry surfaces. It opens a dialog
box shown in the following figure:

7-22 IGG™
Grid subpad description Quick Access Pad

Surface specification

Projection mode

Range to project
Can be the whole face or a range

Range selection Click on the border to change


the current limit

The dialog box is divided into four parts:


Surface specification
The surfaces used during the projection can be:
• the currently selected surfaces. These must be selected before applying the option.
• the surfaces belonging to a specific geometry group, previously defined.
Projection on a group is specially useful when a large number of surfaces are used for the projec-
tion. It avoids to repeat the surface selection process each time the face needs to be reprojected.
Another advantage is that surfaces can be added to the group after the projection on the geometry
group has been performed. Regenerating the face, using the "Regenerate Faces" option, will then
automatically project the face on all the surfaces in the group.
Projection mode:
The following validation levels are available:
1 : projection with validation 1 implies that no check is done to validate the projected points.
2 : projection with validation 2 implies that one check is done to choose the nearest projected
points (ex : to project a patch on a sphere).
3 : projection with validation 3 implies that checks are done to fill the possible gaps in the sur-
face data. It also involves the check of validation 2. A projection ratio must be defined. It corre-
sponds to the highest distortion ratio admitted by the projection. A value of 10 is advised.
Boundary Edge projection:
This flag enables or disables the projection of the grid points located on the boundary of the face or
range. The default is not to project these grid points since they belong to block edges which are sup-
posed to be mapped on the surface before the projection.
Projected Range scope:
It allows to specify projection of the whole active face or a range. In case the Range option is
selected, the dialog box is extended to allow the range specification (see below).

IGG™ 7-23
Quick Access Pad Grid subpad description

Projected Range selection:


A range can be selected by changing the limits of the active face range borders. Move the cursor to
the desired border which is highlighted when the cursor is close enough. Then left-clicking on it
will open a box allowing to enter the new limits:

FIGURE 7.3.4-2 Changing range limits

The new limits can be entered manually or modified using the scrollers. Pressing <Enter> applies
the new limits to the range. Pressing <Esc> cancels the limit modification.

7-3.4.5 Block 6 Bnd


This icon is used to generate block grids. The faces of a block have to be generated before the gen-
eration of the block grid can proceed (it is done by default when inserting a new block or moving a
vertex).
The following dialog box will appear:

FIGURE 7.3.4-3 Block 6 Bnd Interpolation dialog box

It allows to select the blocks to generate. Simply left-click on the desired scope.
The desired blocks can be selected by entering with the keyboard their number in the dedicated box
entry. The numbers must be separated by spaces. A range of blocks can also be selected by entering
two numbers separated by a ’-’. For example, enter ’1 5 10-15 3’ to select the blocks 1, 3, 5 and the
range 10->15. The numbers do not have to be ordered and the same number can be entered more
than one time. If a syntax error is made, a warning message will appear.
Press the Apply button to perform the generation on the selected blocks. All the face grids of the
selected block(s) will be displayed to show the result of the generation.

7-3.4.6 Regenerate Faces


When performing an action such as modifying a clustering or moving the topology, some faces may
need to be regenerated. Indeed to keep at any time the face grids in line with the boundary informa-
tion, IGG™ performs a default bilinear interpolation on these faces.
When such face has been previously projected on surfaces or smoothed, it is normally needed to
repeat these steps after modification to get the correct final result. IGG™ automatically records all
these steps used during the previous generation of each face.
This bar is used to automatically replay each step, and thus to regenerate the face(s). The following
dialog box is opened:

7-24 IGG™
Grid subpad description Quick Access Pad

FIGURE 7.3.4-4 Regenerate Faces dialog box

It allows to select the faces to regenerate. Simply left-click on the desired scope and press the
Apply button to perform the regeneration of the corresponding faces. The face grid of the selected
face(s) will be displayed to show the result of the regeneration.

7-3.4.7 Show History


This option is used to visualize and edit the generation history of a face. It is most useful to keep
track of complex operations performed on a face grid like projection by patches or to delete obso-
lete operations. It opens a dialog box showing the list of the operations performed on the active face
grid:

FIGURE 7.3.4-8 Face generation history.

The list of operations is dynamically updated when selecting a new active face. It is to be remem-
bered that a bilinear interpolation is always performed implicitly by IGG™ as the very first opera-
tion performed on a face. This operation is not shown in the list.
Editing
The editing capabilities are currently limited to the deletion of one or more operations from the list.
It avoids to begin the face generation from scratch when an operation does not provide expected
results. To delete an operation, simply select the desired operation and press the Delete button.

 For speed reason, IGG™ does NOT automatically regenerate the face after a deletion.
This operation must be performed explicitly with the "Regenerate Faces" option.

IGG™ 7-25
Quick Access Pad View subpad description

7-4 View subpad description


The View subpad provides commands and tools that allow viewing operations on the geometry and
the grid. In particular, the two first pages provide options permitting the creation and the visualiza-
tion of geometry and block groups. The three pages of this subpad are described in the following
sections.

7-4.1 Geometry Groups page


Geometry groups are powerful means of classifying geometrical entities by grouping them under
the same name. This tool proves to be essential as soon as the input geometry gets a little compli-
cated. Using groups, the user can easily perform selective visualization of parts of interest and focus
on the current region being meshed.
The geometry group page allows the creation, the deletion and the visualization of geometry
groups, which can contain curves and/or surfaces. Different groups can contain the same curve(s) or
surface(s).

Group browser List of curves and


surfaces in the group

Check button allowing selective


visualization of items.

FIGURE 7.4.1-1 Geometry Groups page

All the existing geometry groups are listed by name in the browser of the page. Each group name is
preceded by two buttons. Left-clicking on the first one toggles the list of curves and surfaces of the
corresponding group in the Quick Access Pad. Left-clicking on the second one toggles the display
of curves and surfaces of the group in the graphics area.
Each item in a group is also preceded with a check button that allows to individually show or hide
the item.
The page contains four buttons at the bottom:
• Create Group. Before pressing this button, curves and surfaces that will be put in the new
group must be selected (see the Geometry/Select menu). The following dialog box will be
opened:

FIGURE 7.4.1-2 Geometry group creation

7-26 IGG™
View subpad description Quick Access Pad

Simply enter the new group name and press the Create button to create the new group.
• Delete Group. It opens the following dialog box:

FIGURE 7.4.1-3 Geometry group deletion

All existing geometry groups are listed in the box. Simply select a group by left-clicking on its
name and press the Delete button to delete it (this will not delete the related geometrical enti-
ties).
• Show All. This button shows all the geometry in the graphics area: curves, surfaces and Carte-
sian points.
• Hide All. This button hides all the geometry in the graphics area: curves, surfaces and Cartesian
points.
Two pop-up menus are also accessible by right-clicking on a group name or on a geometry entity in
the page browser:

FIGURE 7.4.1-4 Geometry group pop-up menus

The first menu contains three items:


• Add Selection. This adds the currently selected curves and surfaces to the group.
• Remove Selection. This removes the currently selected curves and surfaces of the group. If
some selected curves or surfaces are not in the group, the removal of these entities will have no
effect on the group.
• Delete. This deletes the geometry group.
The second menu allows to remove of the group the geometry entity from which the menu is
opened.

7-4.2 Block Groups page


This page allows the creation, deletion and the visualization of block groups. Different groups can
contain the same block(s).

IGG™ 7-27
Quick Access Pad View subpad description

Group browser List of blocks in the group

Check button allowing selective


visualization of items.

FIGURE 7.4.2-1 Block Groups page

All the existing block groups are listed by name in the browser of the page. Each group name is pre-
ceded by two buttons. Left-clicking on the first one toggles the list of blocks of the corresponding
group in the Quick Access Pad. Left-clicking on the second one toggles the display of blocks of the
group in the graphics area.
Each item in a group is also preceded with a check button that allows to individually show or hide
the item.
The page contains four buttons at the bottom:
• Create Group. The following dialog box will open:

FIGURE 7.4.2-2 Block group creation

Simply enter the new group name and press the Create button to select the group blocks. The
following prompt will appear:
<1> Select a Block, <2> Add to Group, <3> Quit, <Keyboard Area>: Block Indices

Left-click on a block to select it. The block will be highlighted. Then, middle-click to add the
block to the group. This block will remain highlighted until leaving this tool. Add in the same
manner as many blocks as desired.
Blocks can also be added to the group by entering their number in the keyboard input area. In
this case, the blocks are directly added to the group without being highlighted and without any
validation. The numbers must be separated by spaces. A range of blocks can also be added by
entering two numbers separated by a ’-’. For example, enter ’1 5 10-15 3’ to add the blocks 1, 3,
5 and the range 10->15. The numbers do not have to be ordered and the same number can be
entered more than one time. If a syntax error is made, a warning message will appear.

Press <q> or the right mouse button to complete the group creation.
• Delete Group. It opens the following dialog box:

7-28 IGG™
View subpad description Quick Access Pad

FIGURE 7.4.2-3 Block group deletion

All existing block groups are listed in the box. Simply select a group by left-clicking on its
name and press the Delete button to delete it (this will not delete the related blocks).
• Show All. This button shows all the blocks in the graphics area.
• Hide All. This button hides all the blocks in the graphics area.
Two pop-up menus are also accessible by right-clicking on a group name or on a block in the page
browser:

FIGURE 7.4.2-4 Block group pop-up menus

The first menu contains three items:


• Add Selection. This adds the active block to the group.
• Remove Selection. This removes the active block of the group. If it is not in the group, this
operation will have no effect on the group.
• Delete. This deletes the block group.
The second menu allows to remove of the group the block from which the menu is opened.

7-4.3 Grid page


This page provides visualization commands on the grid. It consists of two rows: a row of buttons
and a row of icons.

FIGURE 7.4.3-1 Grid page

IGG™ 7-29
Quick Access Pad View subpad description

The first row of buttons is used to determine the viewing scope, that is the grid scope on which the
viewing commands provided by the icons of the second row will apply. There are five modes deter-
mining the scope, each one being represented by a button: Segment, Edge, Face, Block, Grid (all
blocks). Only one mode is active at a time and the current mode is highlighted. Simply left-click on
a button to select the desired mode.
• In Segment mode, a viewing operation applies to the active segment only.
• In Edge mode, a viewing operation applies to the active edge only.
• In Face mode, a viewing operation applies to the active face only.
• In Block mode, a viewing operation applies to the active block only.
• In Grid mode, a viewing operation applies to all the blocks of the grid.
The icons of the second row and their related commands are listed in the following table:

Icon Command
Toggles vertices.

Toggles fixed points.

Toggles segment grid points.

Toggles edges.

Toggles face grid.

Toggles shading.

7-30 IGG™
CHAPTER 8: File Menu

8-1 Overview
This Chapter describes the File menu options, which are used to manage the IGG™ system input
and output, to import and export geometry and grid data, to control the system preferences and to
end the interactive session.

8-2 File menu description


8-2.1 Open
File/Open... is used to select an existing project previously created by IGG™. A file chooser is
opened to select an IGG™ project file with a ’.igg’ extension.

FIGURE 8.2.1-1 IGG™ file chooser

IGG™ 8-1
File Menu File menu description

Upon selection of a valid IGG™ project, IGG™ closes the current project and installs the new
project.

 The old project is NOT automatically saved before being closed. Therefore, please make
sure that the current work is saved before this option is used.

8-2.2 New
File/New starts a new mesh generation and closes the current project from the system and opens a
new empty project. The old project is NOT automatically saved before being closed. Therefore,
please make sure that the current work is saved before using this option. All system parameters are
reset to their default values and a new 3D project is initialized. The curves and surfaces are
removed from the geometry repository.

8-2.3 Scripts --> Edit


File/Scripts/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 com-
mands).

The dialog box contains two pull-down menus. File menu allows to open a script in a separate dia-
log 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").

8-2.4 Scripts --> Save All


File/Scripts/Save All... is used to save the dynamic recording of all commands performed by the
user since the beginning of its session. See section 6-3 ”Scripts” for details about limitation and
usage of the recording.

8-2.5 Scripts --> Execute


File/Script/Execute... is used to run a python script file containing IGG™ 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.

8-2 IGG™
File menu description File Menu

8-2.6 Scripts --> Re-execute Last


File/Script/Re-execute Last can be used to rerun the last script that was run using the Scripts/Exe-
cute... command. This option is most useful when writing own scripts manually to rapidly test it on
the fly.

8-2.7 Save --> Save


File/Save/Save saves the current work. When the project is saved for the first time, a new file name
must be specified with the extension’.igg’ through a file chooser. During the saving, the informa-
tion about the project is distributed in four files:
• the ’name.igg’ file, which contains all relevant information about the topology and grid set-
tings, except for faces and blocks coordinates.
• the ’name.geom’ file which contains all the curves, surfaces and Cartesian points of the
geometry repository.
• the ’name.cgns’ files containing informations about faces and blocks coordinates.
• the ’name.bcs’ files containing informations about boundary conditions.

The IGG™ file formats are explained in the chapter 12 “Input and Output Files” (see See section
12-3 ”Grid file format”).

8-2.8 Save --> Save As


File/Save/Save As... is used to save an existing IGG™ project under a different name. Thus, differ-
ent grids created by using the same boundary data can be saved separately for comparison. See File/
Save/Save option for more details about saving.

8-2.9 Save --> Save As Fine 6


File/Save/Save As Fine 6... allows to save the grids generated in the current version of IGG™ in a
format compatible with IGG™ 4.7. See File/Save/Save for details about file naming conventions.

8-2.10 Import -> IGG Project


File/Import/IGG Project... is used to merge an existing IGG™ project stored on disk with the cur-
rently opened project. It allows several people working on large projects to perform the meshing in
separate sessions and to merge their work at a later stage.

8-2.10.1 Prefix
To easily recognize blocks and groups of an imported project from those in the current project, a
prefix can be specified during importation. For this purpose, a dialog box is provided:

IGG™ 8-3
File Menu File menu description

Upon proper prefix specification, all the names of patches, blocks, geometry groups and block
groups will be automatically prepended with the prefix. For example, if a block being imported is
named Inlet and a prefix stage1 is specified, the name of the block within the current session will
be stage1#Inlet. Due to limitations in the CGNS format, the length of the prefix should be limited
to 5 characters. Moreover it cannot begin with a number.
If no prefix is specified blocks and groups names will not be modified. Exception to this rule holds
however when an imported block has the same name as a block in the current project. In that case
an underscore will be automatically appended to the name.
Pressing on the Cancel button will cancel the importation of the selected project in IGG™.

8-2.10.2 Importation operations


During project importation the following operations are performed:
• All the curves and surfaces from the imported project are added to the current project. When a
name clashing occurs with existing curves or surfaces, IGG™ automatically renames the
imported entities. The prefix currently does not apply to curves and surfaces.
• All the blocks of the imported project are appended to the existing blocks. The index of the
imported blocks are adapted automatically to follow the last block of the current project. The
name of the patches and blocks follow the rule described here above.
• The geometry and block groups are imported in the current project. The names of the groups
follow the rule described here above.

8-2.11 Import -> IGG Data


File/Import/IGG Data... is used to read external curves and surfaces stored in an ASCII IGG™
format. The file formats are specific to IGG™ (Curve & Surface data files) and are described in
chapter “Input and Output Files” on page 12-1.
When using the option, a file chooser is opened to select files with ’.dat’ or ’.dst’ extensions. Upon
acceptance, the entities are automatically stored in the geometry repository and displayed in the
graphical area.

 A fitting of the view may be needed to see all the entities properly.
Since IGG™ uses the name of curves and surfaces to access them, no duplicate is allowed. During
importation of a geometry file, IGG™ checks for name duplication. When an entity being loaded
has the same name as an existing entity in the current session, a dialog box is opened with different
possibilities:

FIGURE 8.2.11-1 Importation options dialog box.

8-4 IGG™
File menu description File Menu

Replace:
When using this mode, IGG™ replaces the existing curve or surface by the one being imported. At
the end of importation, IGG™ remaps all the vertices and edges lying on the replaced entities so
that the topology of the grid fits onto the new geometry.
This mode should be used when using the current project as a template. See the chapter related to
templates for additional information.
Don’t Load:
When using this mode, the entity having the same name will NOT be imported in the session.
Auto Rename:
When using this mode, IGG™ imports the entity and automatically modifies its name so that it
becomes unique in the current session. If no replacement is desired (as described above), this option
should be used.

8-2.12 Import -> External Grid


File/Import/External Grid... is used to import inside the current IGG™ project a block grid gener-
ated either by IGG™ (using File/Export/Block Coor... menu item) or by another grid generator. A
file chooser is opened to select a file with a ’.dat’ extension. Several file formats are available:
• Block data file
• Surface data file (2D or 3D wireframe)
• Multiple surface data file (2D or 3D wireframe)
See the chapter “Input and Output Files” on page 12-1 for a detailed description of the formats.
Upon selection of a valid file, a new block (or several for multiple data files) is created and put at
the end of the list of blocks. For "Surface data file", which represent surfacic meshes, only face 1 of
the block is created. For 2D meshes, the z coordinate is set automatically to 0 for all the points.
IGG™ automatically creates the block topology (edges) by using the boundary grid points of the
block.

8-2.13 Import -> Face Grid


File/Import/Face Grid... is used to import and copy a 2D or 3D grid surface to the active face or to
a BC patch on this face. A file chooser is opened to select a file, which must have a ’.dat’ extension
and have the Surface data file format (See the chapter “Input and Output Files” on page 12-1 for
more information about this format). The type of surface and the edge creation mode are indicated
from the Keyboard input area. If the edges of selected surface are on the boundaries and the edge
creation flag is on, the segments of that edge are created as polylines.
When the active face contains several patches, the imported grid can be copied on the entire face or
on one of its patches. In this case, the following prompt(s) appear:
Surface (=0) or Patch (=1) ? (q)
>> 1
Patch number (1...3) ? (q) (if previous answer is 1)
>> 2
Then the following prompt will appear to specify if edges must be reconstructed by using the face
boundary grid points:
Create boundary segments (y/n) ?
>> y

IGG™ 8-5
File Menu File menu description

8-2.14 Import -> Topology


The option File/Import/Topology... allows to re-use an existing IGG™ project on a similar geome-
try by importing all the topology and grid information from the related ‘.igg’ file. The complete cur-
rent project is deleted before importing. During the import operation, the following happens:
• all the geometry entities are discarded from the imported project.
• the geometry groups are loaded, emptied from any curve or surface.
• the grid information like number of blocks, connection between blocks, clustering,... is
kept.
• the blocks topology (vertices and edges) is kept, as well as their position and shape.
• the face generation recording, including the projection on geometry groups is kept. (See
section 7-3.4.4 on page 7-22 for projection on geometry groups).
Then, to use the imported topology on a similar geometry, do the following:
• Import the new geometry with the File/Import/IGG Data... or IGES... options.
• Redefine the geometry groups by selecting the proper surfaces and by adding them to the
existing groups (right button press on a geometry group pops up a menu for adding or
removing the current geometry selection).
• Remap all the vertices manually onto the new geometry. New vertices may be added if the
topology of the new geometry has changed.
Regenerate the faces with the Regenerate Face option. It is to be noted that face projected onto a
geometry group will be successfully re-projected if the groups have been redefined as described in
the previous operation.

8-2.15 Import -> IGES Data


File/Import/IGES Data... menu is used to import CAD data stored in the standard IGES format.
When names are defined for entities the IGES file, IGG™ uses them for the new entities created in
the repository. When these names are already used by existing entities, a dialog box is opened to
resolve the conflict. See the menu option File/Import/IGG Data... for details about the dialog box.
This option provides a powerful browser to scan the content of an IGES file and selectively import
IGES entities recognized by IGG™. In the case of composite curves and surfaces, the browser
allows to view each component defining the entity and to select them individually.
Filters, reserved to expert users, allows to filter the data viewed by the browser. Each filter corre-
sponds to a criterion defining if entities with the corresponding attribute set accordingly will be dis-
played in the browser/imported.
It might be useful to uncheck the Blank Filter/Blanked item in order to import only the entities
meant to be visible and get a clear view of the intended geometry. The same holds for the Entity
Use Filter with only the geometry item checked.
For the Subordinate Filter items, it might be useful to also have the both item checked if top-level
entities cannot be translated, preventing the importation of their depending entities.
The Filters default settings have the following items checked: all Blank Filter items, all Entity
Use Filter items but the definition item, the Subordinate Filter independent and logical items,
all Hierarchy Filter items.
See the IGES reference manual for a complete understanding of all filter values.

8-6 IGG™
File menu description File Menu

FIGURE 8.2.15-1 IGES file browser.

8-2.16 Import -> PLOT3D


File/Import/PLOT3D... is used to import inside the current IGG™ project block(s) generated
either by IGG™ (using File/Export/PLOT3D... menu item) or by another grid generator. The
imported file must have a ’.g’ extension and have the PLOT3D file format, as described in the
chapter “Input and Output Files” on page 12-1.
The following dialog box is opened to select a file with a ’.g’ extension and the corresponding file
format.

FIGURE 8.2.16-1 Input file and file format selection

IGG™ 8-7
File Menu File menu description

The following file types can be selected in the "File type" entry:
• ASCII
• Binary single
• Binary double
• Unformatted single
• Unformatted double
Binary stands for C binary files whereas Unformatted stands for Fortran binary files. Single and
double describe the precision of reals.
Then three buttons are provided to select the remaining file specifications. These ones must be
specified only for binary files (the buttons are deactivated when ASCII type is selected). The two
first radio buttons allow to select the binary order in the file : little or big endian. The last button
specifies if the file is single or multi-block.
The desired file can be selected by entering its full path name into the "Plot3D File" entry or
through a file chooser opened by pressing the icon ( ) next to the file entry.
Upon selection of a valid file, the blocks of the imported file are created and put at the end of the
current list of blocks. IGG™ automatically creates the block topology by using the block coordi-
nates.

8-2.17 Import -> CGNS


File/Import/CGNS... is used to import CGNS grid files inside the current IGG™ project. CGNS is
a widely used standard for the exchange of CFD data. In particular it is very well suited to exchange
meshes and boundary conditions between heterogeneous systems. Block coordinates and boundary
conditions are read from the .cgns file. Only connections of type CON can be read and performed
automatically by IGG™.
It is to be noticed that a CGNS file is automatically created during the saving of a project, using the
File/Save options. This file can be reread by IGG™ using this option or exchanged with other
CGNS compliant systems.
The imported file must have a ’.cgns’ extension and must be a valid CGNS format, as described in
the chapter 12.
A file chooser is opened to select a file with a ’.cgns’ extension. Upon selection of a valid file, the
blocks of the imported file are created and put at the end of the current list of blocks. IGG™ auto-
matically creates the block topology by using the block coordinates.

8-2.18 Import -> GridPro


File/Import/GridPro... is used to import inside the current IGG™ project block(s) created by the
GridPro grid generator.
A file chooser is opened to select a GridPro file. Upon selection of a valid file, the blocks of the
imported file are created and put at the end of the current list of blocks. A message indicating what
block is read appears in the IGG™ message area. IGG™ automatically creates the block topology
by using the block coordinates. Blocks connection information is read by IGG™ and patch decom-
position is automatically performed. Periodicity information is not read from the file and must be
specified manually within IGG™, when required, using the Grid/Periodicity... and Grid/Bound-
ary Conditions... menu items.

8-8 IGG™
File menu description File Menu

8-2.19 Export -> IGES


File/Export/IGES... menu is used to export geometry entities in the standard IGES format.
All the geometry repository can be saved or only the selected curves and surfaces. The length unit
must also be specified through the following dialog box:

The file created in this way can be read back by using the File/Import/IGES Data... menu item.

8-2.20 Export -> Geometry Selection


File/Export/Geometry Selection... is used to save the selected geometry curves and surfaces into
an ASCII file. The files created in this way can be read back using the File/Import/IGG Data
menu item.
Only the curves and surfaces selected respectively by the Geometry/Select/Curves and by the
Geometry/Select/Surfaces options are saved.

8-2.21 Export -> Geometry Control Points


File/Export/Geometry Control Points... is used to save the control points of the selected geome-
try curves into an ASCII file. It does not save the complete information about the curve (type, para-
metrization,...). The files created in this way are not intended to be directly read by IGG™. Their
main use is to print out the coordinates of the control points of the curves.

 This option is only available for curves, not for surfaces.

8-2.22 Export -> Block Coor


File/Export/Block Coor... is used to save the coordinates of an active block range in ASCII format,
according to the level of coarseness selected for the grid (set by using View/Coarse Grid menu
item). A warning is given if the grid has not been created yet. The standard block grid file format is
used and is detailed in the chapter 12.
The block range to save must be determined by two points, specified by their IJK coordinates in the
keyboard input area (indices start at 1):
Enter imin jmin kmin (q)
Enter imax jmax kmax (q)
By default, values for the full block range are displayed.
The file created in this way can be read back by using the File/Import/External Grid... menu item.

IGG™ 8-9
File Menu File menu description

8-2.23 Export -> Face Coor


File/Export/Face Coor... is used to save the coordinates of the active face in ASCII format, accord-
ing to the level of coarseness selected for the grid (set by using the View/Coarse Grid menu item).
The standard surface grid file format is used and is detailed in the chapter 12.
The file created in this way can be read back by using the File/Import/External Grid... menu item.

8-2.24 Export -> Patch Coor


File/Export/Patch Coor... is used to save the coordinates of the active face patches in ASCII for-
mat, according to the level of coarseness selected for the grid (set by using the View/Coarse Grid
menu item).
The standard face grid file format is used and is detailed in the chapter 12. One file is created for
each patch of the active face and is named automatically by appending the patch number to the
specified file name. The files are written with a ’.dat’ extension.
The files created in this way can be read back by using the File/Import/External Grid... menu
item.

8-2.25 Export -> Segment Discretization


File/Export/Segment Discretization... is used to save a discretization of the curves used by the
segments, in an ASCII file. The scope of saving depends on the Viewing Scope (see the View/Grid
page of the Quick Access Pad). These files are named automatically by appending their block,
face, edge, segment and curve indices to the IGG™ file name. If the session has not been saved yet
(i.e. an IGG™ file name does not exist), a warning is given and a data file name must be specified.
Therefore it is always advisable to save the current work as an IGG™ file first, before attempting to
save curve, surface or block coordinate data.

8-2.26 Export -> PLOT3D


Filet/Export/PLOT3D... is used to save the coordinates of all grid blocks in a PLOT3D format file.
The saved file will have a ’.g’ extension and its format is described in the chapter 12.
The following dialog box is opened to select a file with a ’.g’ extension and the corresponding file
format.

FIGURE 8.2.26-1 Output file and file format selection

The following file types can be selected in the "File type" entry:
• ASCII

8-10 IGG™
File menu description File Menu

• Binary single
• Binary double
• Unformatted single
• Unformatted double
Binary stands for C binary files whereas Unformatted stands for Fortran binary files. Single and
double describe the precision of reals.
Then two radio buttons are provided to select the binary order desired in the output file : little or big
endian. This information must be specified only for binary files (the buttons are deactivated when
ASCII type is selected).
The desired file can be selected by entering its full path name into the "Plot3D File" entry or
through a file chooser opened by pressing the icon ( ) next to the file entry.

8-2.27 Replay Template -> Import IGG Data


File/Replay Template/Import IGG Data... is used when using the current project as a template
and when it contains blocks with a butterfly topology (See the chapter related to templates for addi-
tional information). This tool is composed of two separated operations:
• Importation of an IGG™ data file (geometry importation).
• Regeneration of all the butterfly topologies contained in the grid of the current project.
The geometry importation proceeds in a same way as the File/Import/IGG Data... menu item
described previously on page 8-4. Then for all blocks containing a butterfly topology, this one will
be deleted and recreated by using the same parameters. For additional information on butterfly
regeneration, see section 5-4.8 on page 5-24.
If the current project does not contain at least one butterfly topology, this tool has the same effect as
the File/Import/IGG Data... menu item.

8-2.28 Convert Data


File/Convert Data is used to modify external data files created by IGG™. ASCII files only can be
modified, and they must have a ’.dat’ extension.
The keyboard input area is used to enter specific parameters for each menu item. If a wrong file for-
mat or a wrong user input is encountered, a warning message appears before ending the current
interaction.

8-2.29 Convert Data -> Rotate Data


File/Convert Data/Rotate Data is used to rotate a surface described in a surface data file around a
coordinate axis by a user specified angle. A new ’.dat’ file is created with the rotated data. A file
chooser is first opened to select an input file. Then the following parameters are requested:
For 3D data files, the rotation axis must be specified. For 2D data files, the rotation axis is the Z
axis.
Rotation axis (x=0,y=1,z=2) ? (Q)
>> 0
For 2D/3D data files, the rotation origin and the angle are specified as follows:
Rotation vector origin ? (Q)

IGG™ 8-11
File Menu File menu description

>> 1.5 3.5 0.5


Angle (-360...360 deg) ? (Q)
>> 65
The output file name is specified through a dialog box automatically opened by IGGTM.

8-2.30 Convert Data -> Scale Data


File/Convert Data/Scale Data is used to scale the coordinates of a surface described in a surface
data file. A file chooser is first opened to select an input file. Then the following parameters are
requested:
Scale factors can be specified for each coordinate direction separately. If a single value is entered,
the coordinates are scaled in all directions by the same value.
Scale factors ? (Q)
>> 2.
The output file name is specified through a dialog box automatically opened by IGGTM.

8-2.31 Convert Data -> Translate Data


File/Convert Data/Translate Data is used to translate a surface described in a surface data file
according to a translation vector. A file chooser is first opened to select an input file. Then the trans-
lation vector is requested:
Translation vector ? (Q)
>> 10. 8. 0.
For 2D data files, only the x and y coordinates of the vector must be entered.
The output file name is specified through a dialog box automatically opened by IGGTM.

8-2.32 Convert Data -> Mirror Data


File/Convert Data/Mirror Data is used to get the mirror image of a surface described in a surface
data file. A file chooser is first opened to select an input file. Then the following parameters are
requested:
For 2D data files, the mirror line start and end points are specified as:
Mirror line first point ? (Q)
>> 1. 0.
Mirror line second point ? (Q)
>> 1. 2.
For 3D data files, the mirror plane normal vector and its origin are specified as:
Mirror plane normal vector ? (Q)
>> 0. 0. 1.
Mirror plane normal origin ? (Q)
>> 1. 1. 2.
The output file name is specified through a dialog box automatically opened by IGGTM.

8-12 IGG™
File menu description File Menu

8-2.33 Convert Data -> Swap Data


File/Convert Data/Swap Data can be used to swap the columns of a surface data file (containing
the x, y and z surface coordinates). A file chooser is first opened to select an input file. Then the fol-
lowing parameters are requested:
For 2D data files, the x and y coordinates are swapped. For 3D data files, an arbitrary swap
sequence can be specified (x=1, y=2, z=3) as:
New column order (1,2,3) ? (Q)
>> 3 2 1
The output file name is specified through another file chooser opened by IGGTM.

8-2.34 Convert Data -> Reverse Sequence


File/Convert Data/Reverse Sequence is used to change the origin of a surface described in a sur-
face data file (shifting the origin of the surface to the diagonally opposite corner). A file chooser is
first opened to select an input file. The output file name is specified through another file chooser
opened by IGGTM.

8-2.35 Convert Data -> Cartesian_Cylindrical


File/Convert Data/Cartesian_Cylindrical is used to convert from Cartesian to cylindrical the
coordinates of a surface described in a surface data file, or vice versa. A file chooser is first opened
to select an input file. Then the following parameters are requested:
xyz->rtz(=0) or rtz->xyz(=1) ? (Q)
>> 0
For 2D data files, the axis of rotation is the z axis. If the input data file is in cylindrical coordinates,
the rotation axis is determined from the file. For 3D Cartesian coordinates, the rotation axis is
entered as follows:
Rotation axis (x=0,y=1,z=2) ? (Q)
>> 1
The output file name is specified through another file chooser opened by IGGTM.

8-2.36 Convert Data -> Extract 2D from 3D


File/Convert Data/Extract 2D from 3D is used to extract any two columns of a 3D surface data
file. A file chooser is first opened to select an input file. Then the extract sequence can be specified
by the column number:
Extract seq. (any two of 1,2 or 3) ? (Q)
>> 1 3
The output file name is specified through a dialog box automatically opened by IGGTM.

8-2.37 Convert Data -> Extract Curve


File/Convert Data/Extract Curve is used to extract an arbitrary constant grid line of a surface
described in a surface data file and to save it in a curve data file. A file chooser is first opened to
select an input file. Then the constant curve index and its value are requested:
Const curve index(i=0,j=1) ? (Q)

IGG™ 8-13
File Menu File menu description

>> 1
Const j index value (1...33) ? (Q)
>> 25
The output file name is specified through a dialog box automatically opened by IGGTM.

8-2.38 Convert Data -> Grid : IJK_KJI


File/Convert Data/Grid : IJK_KJI is used to reverse the coordinate axis of a surface described in
a surface data file. A file chooser is first opened to select an input file. The output file name is spec-
ified through a dialog box automatically opened by IGGTM.

8-2.39 Convert Data -> Grid : 2D_3D


File/Convert Data/Grid : 2D_3D is used to convert a 2D surface data file into a 3D surface data
file by specifying a constant z coordinate value. A file chooser is first opened to select an input file.
Then the constant z coordinate value is entered as follows:
Constant z value ? (Q)
>> 0.08590
The output file name is specified through a dialog box automatically opened by IGGTM.

8-2.40 Convert Data -> Data : Expand Surface


File/Convert Data/Data : Expand Surface is used to expand a surface described in a surface data
file by enlarging its edges by a parallel grid line. If the amount of enlargement is zero for an edge,
no expansion is performed on that edge. A file chooser is first opened to select an input file. Then
the amount of expansion is specified for the opposite edges according to the following sequence:
Edge 1 & 2 expansions (0...5) ? (Q)
>> 0. 2.5
Edge 3 & 4 expansions (0...5) ? (Q)
>> 3.5 2.
The output file name is specified through a dialog box automatically opened by IGGTM.

8-2.41 Print -> As PostScript


File/Print/As PostScript is used to dump the graphics area in a true PostScript file. This option
uses true Postscript statements to save the graphics content and can produce compact files when all
graphics entities in IGG™ consist of lines (i.e. visualization of the grid in wireframe). When dis-
playing surfaces in solid model, the quality of the saving reduces considerably while the size of the
file can become very large.

8-2.42 Print -> As Bitmap PostScript


File/Print/As Bitmap PostScript is used to dump the graphics area in a bitmap PostScript file. In
this mode each pixel of the graphics area is saved in the file. The size of the file can be very large.
Bitmap saving may be more advantageous than true postscript when solid surfaces in hidden line
mode appear in the graphics area.

8-14 IGG™
File menu description File Menu

8-2.43 Print -> As PNG


File/Print/As PNG is used to dump the graphics area in a PNG file.

8-2.44 Preferences
File/Preferences... opens a dialog box to control the default settings of IGG™.

This dialog box contains four pages. All the parameters are validated by pressing the "Apply" but-
ton, which applies the option and automatically saves them in the file ~/.numeca/igg.prefs. When
starting IGG™, this file is read automatically and the preferences are restored directly. If this file
cannot be found, the system is initialized with default settings.

8-2.44.1 Tolerances page


This page consists of four entry boxes containing an alphanumeric number that can be modified. A
value can be modified either by clicking on the box scrollers with the left mouse button or by enter-
ing a number with the keyboard. In this case, the value must be validated by pressing <Enter>.

a) Geom Tol (abs)


This geometry tolerance(absolute) controls the accuracy of some geometry modelling options, such
as surface-surface intersection. This tolerance is specified in absolute units and should be
adapted to the size of the current problem. For example, for a geometry with a global size of 1, a
tolerance of 1e-5 is a good choice. For a global size of 1000, a better value is 1e-2 or 1e-3.
The tolerance may affect various parameters in IGG™:
• the computation time, which increases as the tolerance reduces,
• the accuracy of some algorithms (i.e surface-surface intersection),
• the size of the result, for example the number of control points of intersection curves.

b) Geom Tol (rel)


This geometry tolerance(relative) controls the accuracy of some geometry modelling options, such
as attraction features (e.g. accuracy of the position of the curve closest point when using the curve
attraction feature). This tolerance is a relative one and a value of 1e-5 is a good choice.

IGG™ 8-15
File Menu File menu description

c) Topo Tol (rel)


This relative topological tolerance is used by the block vertices and controls the mapping of an edge
on a curve, as explained in the following figure:

Small tolerance Greater tolerance

Curve 1 Start vertex

Gap Intermediate
vertex
Edge

Curve 2 End vertex

FIGURE 8.2.44-1 Edge mapping on two curves

As shown, there is a gap between the curves 1 and 2. To map an edge on these two curves, the start
and end vertices have to be positioned firstly, then an intermediate vertex must be inserted on the
edge and moved to the curve 1 end point. If the tolerance of this intermediate vertex is too small,
the edge cannot map the curve 2. If it is sufficient, the edge also maps the curve 2, filling in the gap
with a straight line.
When a new block is created, all its vertices are provided with this tolerance. It is also the case
when inserting a new vertex on an edge. This tolerance can be changed for a vertex with the com-
mand "Set Tolerance" of the pop-up menu accessible by right-clicking on the vertex (thus the toler-
ance is not changed for the other vertices).

d) Pick Aperture
This value controls the distance below which some attraction features work. It is valid when posi-
tioning a vertex or a fixed point and with activated attraction features of some geometry modelling
tools (insertion of a cspline, bspline, polyline, circular arc). The following figure illustrates the
influence of the Pick Aperture on the attraction of a vertex to a Cartesian point.

Small value: High value:


Face no attraction attraction
Cartesian point

Mouse
cursor

FIGURE 8.2.44-2 Attraction of a vertex to a Cartesian point

A low value of the Pick Aperture means that the cursor has to be moved closer to a point (or curve,
surface, vertex, fixed point) to have attraction on it. The available range is 0-1 and the value is set to
0.1 by default.

8-16 IGG™
File menu description File Menu

8-2.44.2 Saving page

Automatic Saving button activates or deactivates automatic project backup saving. When acti-
vated, it only saves the geometry and the topology of the current project (.geom and .igg files). The
grid points coordinates of the faces and of the blocks are not saved, for efficiency reasons. IGG™
saves the project using a ’.autosave’ extension (<projectname>.autosave.igg).

Backup when saving is used to make a backup of the geometry and topology files at saving. IGG™
backups the project using a ’.bak’ extension (<projectname>.igg.bak).
Quality check option is used to make automatically some tests on the grid each time a project is
saved. It includes:
• A calculation of the number of multigrid levels available in the I, J and K directions for the
whole grid.
• A calculation of the negative cells in single and double precision.
• A rough idea of the grid quality (extremum values) in terms of orthogonality, aspect ratio
and expansion ratio.
The results are displayed in a dialog box appearing automatically just after the saving.

8-2.44.3 Graphics page

IGG™ 8-17
File Menu File menu description

The Graphics Driver frame allows to change the underlying graphics engine used by IGGTM to
render its graphics. The available drivers depend on the type of machine and display used when
running IGGTM. The X11 driver is available for all kinds of machines and displays and uses X Win-
dows to render the graphics. It can consequently be used with an X terminal. The new selected
driver will apply for the next IGGTM sessions.
The Visibility flag is used to control the rendering of graphic objects during dynamic viewing oper-
ations. With full visibility, all graphic objects are displayed during viewing operations, which may
slow down the system response. When partial visibility is selected, only grid boundaries are dis-
played during viewing operations.
Edges width frame allows to control the width of the block edges displayed in the graphics area.
The width of the active block edges can be controlled by Normal width and the width of other
block edges by Highlight width. The new widths are automatically updated for new inserted
blocks but not for the edges of already created blocks. Simply left-click on these blocks to update
the display.

8-2.44.4 Layout page

This page allows to control some aspects of the IGGTM graphical interface.
Quick Access Pad is used to toggle the Quick Access Pad.
Control Area toggles the visibility of the control area at the bottom of IGGTM main window. It
allows to use a larger part of the screen for better graphics rendering, but cannot be used during the
interactive generation of a mesh, since it hides the keyboard input area and the viewing buttons.
Balloon Help is used to activate or deactivate the on-line balloon help available in IGGTM. When
activated, help balloons are displayed when the cursor is located on some buttons or icons.

8-2.45 Project Configuration


File/Project Configuration... opens a dialog box to control the configuration of the current IGG™
project:

8-18 IGG™
File menu description File Menu

This dialog box contains an area controlling the current project dimension and four headers giving
information about the current project. This information will be saved with the IGG™ project in the
’.igg’ file and are not interpreted by IGG™.
The dimension is set to 3D by default when opening a new empty IGG™ project. Then, another
dimension can be set, which will delete the current project and create a new one. The axisym button
is used for axisymmetric projects. It opens an additional box, allowing to choose the rotation axis:
X, Y or Z.

 The EURANUS solver allows only Z as rotation axis for axisymmetric projects! When
choosing the other X or Y axis, a warning box appears to ask confirmation:

 For CFView™ post-processor and for 3D projects, it is also advisable to set Z as the
rotation axis.
When choosing the 2D or axisym button, the view in the graphics area is automatically set to the
correct projected view and cannot be changed. In these two modes, only faces can be inserted (see
the Quick Access Pad/Grid/Create/Insert New Face ( ) option) and not entire 3D blocks
because blocks are automatically created by faces extrusion or rotation. Faces 1 and 2 of the blocks
are not accessible in the Boundary Conditions dialog box because their boundary condition type is
set automatically.
For axisymmetric projects, the rotation angle, required to generate the 3D grid, must be specified
using the Grid/Periodicity... menu item. The default value is 1 degree and the rotation is performed
automatically when saving the grid. This rotation angle is only applied at saving and not when

IGG™ 8-19
File Menu File menu description

watching at the boundary conditions (Grid/Boundary Conditions... menu item). In fact, for better
patch visualization, the rotation performed in this case is of 10 degrees and this value cannot be
changed.

 For axisymmetric projects the automatic rotation is done positively around the chosen
axis according to a right-handed reference frame. Therefore if faces are put below the
axis, the rotation will yield to negative cells. To avoid it all the faces should be inserted
above the axisymmetric axis.
For 2D projects, the global distance of extrusion of all the mesh along the Z axis can also be con-
trolled by using the Grid/Periodicity... menu item. In this case, the dialog box contains an addi-
tional item Global 2D translation as shown in the following figure:

FIGURE 8.2.45-1 Modified Periodicity dialog box

The default value is 1 and the extrusion is performed automatically when saving the grid. As for
axisymmetric projects, this extrusion distance is only applied at saving and not when watching at
the boundary conditions. For better patch visualization, the extrusion distance is automatically cal-
culated according to the mesh size and this value can neither be changed.

8-2.46 Quit
File/Quit is used to end the interactive session. A dialog box is inserted to confirm the end of the
session. Please notice that the current work is NOT automatically saved when exiting IGG™.

" Press <Ctrl-q> to access this menu item in a faster way.

8-20 IGG™
CHAPTER 9: Geometry Menu

9-1 Overview
The Geometry module provides simple and efficient tools to create, edit and delete points, curves
and surfaces. Without having the complexity of CAD systems, it allows to create wire or surface
models from scratch or to complement imported geometries. The module allows to:
• create and edit basic and advanced curves and surfaces,
• visualize and probe the geometry entities,
• perform advanced geometry operations such as surface-surface intersection, offsetting...
Other features include:
• attraction features to points, curves and surfaces,
• importation of external CAD geometry in IGG™ or IGES formats,
• exportation of CAD geometry in IGG™ format.

9-1.1 Basic Geometry Entities


The basic type of curves provided in IGG™ are:
• Polylines.
• CSplines, which are parametric cubic splines. These curves interpolate a set of user-defined
points and have the property to pass through these points. They are the most commonly used
curve entity in IGG™.
• BSplines, are spline curves defined with basic functions. In general, bspline curves do not pass
through the control points. This kind of curve is generated by IGG™ when performing, for
example, surface-surface intersections or other geometry manipulations.
• Circular arcs or circles.
The basic type of surfaces provided in IGG™ are:
• Wireframes, which are defined by a structured network of points.
• Lofted surfaces, which are surfaces interpolating a set of "parallel" curves. Lofted surfaces are
internally represented as BSpline or NURBS surfaces.

IGG™ 9-1
Geometry Menu Overview

• BSpline and NURBS surfaces, defined using basic functions. In general, the surfaces do not
pass through their control points.

9-1.2 Curve Orientation


When creating or importing curves in IGG™, a default orientation for the curve is given. This ori-
entation is used when using the curves for other geometry or grid operations. For example, Coons
patches or lofted surfaces directly use the orientation of the building curves.
The curve orientation can be visualized using the Geometry/View/Curve Orientation menu and it
can be changed with the Geometry/Modify Curve/Reverse menu.

9-1.3 Geometry tolerance


a) Absolute tolerance
This geometry tolerance controls the accuracy of some geometry modelling operations, such as sur-
face-surface intersection. This tolerance is specified in absolute units and should be adapted to the
size of the current problem. For example, for a geometry with a global size of 1, a tolerance of 1e-5
is a good choice. For a global size of 1000, a better value is 1e-2 or 1e-3.
The tolerance may affect various parameters in IGG™:
• the computation time, which increases as the tolerance reduces,
• the accuracy of some IGG™ algorithms (i.e surface-surface intersection),
• the size of the result, for example the number of control points of intersection curves.
The current tolerance can be queried, modified and saved for other sessions with the File/Prefer-
ences... menu (Tolerances/Geom Tol (abs) item).

b) Relative tolerance
This geometry tolerance controls the accuracy of some geometry modelling options, such as attrac-
tion features (e.g. accuracy of the position of the curve closest point when using the curve attraction
feature). This tolerance is a relative one and a value of 1e-5 is a good choice.
The current tolerance can be queried, modified and saved for other sessions with the File/Prefer-
ences... menu (Tolerances/Geom Tol (rel) item).

9-1.4 Attraction
During interactive manipulations, attraction features allow to attract the mouse cursor to existing
entities listed here below:
• Curve end points,
• Curve control points,
• Cartesian points,
• Edge grid points,
• Curves,
• Surfaces,
• Vertices,
• Fixed points.

9-2 IGG™
Geometry menu description Geometry Menu

Some of these entities must be visible to perform an attraction. Most of the attraction features can
be activated or deactivated by simply pressing a keyboard key. These features are very interesting
since it allows to connect entities together.
The attraction feature and its key binding is described in detail for each command in the corre-
sponding section if it is available.

9-2 Geometry menu description


9-2.1 Draw CSpline->Free
Geometry/Draw CSpline/Free is used to draw a parametric cubic spline through a set of control
points entered with the mouse and/or with the keyboard.
• Using the mouse, the user must simply move the cursor to the desired position and press the left
mouse button to add a control point to the curve.
• Using the keyboard, the user must enter the 3 coordinates separated by a blank, while the cursor
is in the graphics area. The keyboard inputs are automatically echoed in the string input area.
Pressing <Enter> adds a control point to the curve.
• The creation of the curve is terminated by pressing the right mouse button. Notice that the last
curve segment, attached to the mouse movement is not part of the curve and is removed from
the screen.
• When entering the points with the mouse, the depth of the point is automatically fixed by
IGG™. The current depth can be seen by reading the mouse coordinates in the corresponding
area. This depth can be changed using the View/View Depth menu.
• During the specification of the points with the mouse, it is possible to attract the cursor to exist-
ing points, curves or surfaces. This feature is very interesting since it allows to connect curves
together and to create T junctions. By default this attraction is enabled. To toggle the attraction
to points, press <a> in the graphics area. Similarly, to toggle the attraction to curves or surfaces,
press <c> or <s> respectively. When the cursor is attracted to an entity, a filled-in circle is dis-
played. The attraction works on:
— point attraction: cartesian points and curves end points if they are visible.
— curve attraction: visible curves.
— surface attraction: visible surfaces.
— vertices and fixed points. This attraction always work and cannot be deactivated.

 The point, curve or surface attraction feature is activated or deactivated by pressing


respectively <a>, <c> or <s> repeatedly, while the cursor is in the graphics area.
This tool can also be accessed through the Quick Access Pad/Geometry/Curve/CSpline menu
item.

9-2.2 Draw CSpline->On Surfaces


Geometry/Draw CSpline/On Surfaces is used to draw a cspline of which control points must lie
on one or more surfaces. The drawing works by projecting the input control points on all selected
surfaces. The projection direction is the normal to the current view plane. A control point falling
outside any selected surface will not be projected.

IGG™ 9-3
Geometry Menu Geometry menu description

 The final spline curve does not, in general, completely lie on the selected surfaces. Only
the control points are on the surface(s).
Except for the attraction feature which is described below, all other operations are the same as for
free cspline and are explained in the Draw CSpline -> Free menu.
When adding points using the mouse, it is possible to attract the cursor to existing points. This fea-
ture is very interesting since it allows to connect curves together. To activate the attraction press
<a> in the graphics area, then move the cursor to the desired point. The cursor (if close enough) is
attracted to the point. Finally, press the left mouse button to add a point at that position. The attrac-
tion works on all control points of the curves and on the grid points of the edges if they are visible.

 The point attraction feature is activated or deactivated by pressing <a> repeatedly, while
the cursor is in the graphics area.

9-2.3 Draw CSpline->On Surface + Projection


Geometry/Draw CSpline/On Surface + Projection is used to draw a cspline and to project it on a
selected surface as the final step of its creation.
The control points are initially entered with the mouse or the keyboard (see Draw CSpline -> Free
menu for a more complete description of the operations). Then, after pressing the right mouse but-
ton, the control points are projected on the first selected surface and a new cspline created. This
spline interpolates the projected points. The total number of control points defining the final curve
can be entered manually or can be automatically calculated.
Number of control points (automatic = 0) (q)
>> 0

9-2.4 Draw BSpline->Free


Geometry/Draw BSpline/Free is used to draw bsplines by defining control points with the mouse
and/or with the keyboard.
• Using the mouse, the user must simply move the cursor to the desired position and press the left
mouse button to add a control point to the curve.
• Using the keyboard, the user must enter the 3 coordinates separated by a blank, while the cursor
is in the graphics area. The keyboard inputs are automatically echoed to the string input area.
Pressing <Enter> adds a control point to the curve.
• The creation of the curve is terminated by pressing the right mouse button. Notice that the last
curve segment, attached to the mouse movement is not part of the curve.
• When entering the points with the mouse, the depth of the point is automatically fixed by
IGG™. The current depth can be seen by reading the mouse coordinates in the corresponding
area. This depth can be changed using the View/View Depth menu.
• During the specification of the points with the mouse, it is possible to attract the cursor to exist-
ing points, curves or surfaces. This feature is very interesting since it allows to connect curves
together and to create T junctions. By default this attraction is enabled. To toggle the attraction
to points, press <a> in the graphics area. Similarly, to toggle the attraction to curves or surfaces,
press <c> or <s> respectively. When the cursor is attracted to an entity, a filled-in circle is dis-
played. The attraction works on:
— point attraction: cartesian points and curves end points if they are visible.
— curve attraction: visible curves.
— surface attraction: visible surfaces.

9-4 IGG™
Geometry menu description Geometry Menu

— vertices and fixed points. This attraction always work and cannot be deactivated.
 The point, curve or surface attraction feature is activated or deactivated by pressing
respectively <a>, <c> or <s> repeatedly, while the cursor is in the graphics area.

9-2.5 Draw B-Spline->On Surfaces


Geometry/Draw BSpline/On Surfaces is used to draw a bspline of which control points must lie
on one or more surfaces. The drawing works by projecting the input control points on all selected
surfaces. The projection direction is the normal to the current view plane. A control point falling
outside any selected surface will not be projected.

 The final spline curve does not, in general, lie completely on the selected surfaces. Only
the control points are on the surface(s).
Except for the attraction feature which is described below, all other operations are the same as for
free bspline and are explained in the Draw BSpline -> Free menu.
When adding points using the mouse, it is possible to attract the cursor to existing points. This fea-
ture is very interesting since it allows to connect curves together. To activate the attraction press
<a> in the graphics area, then move the cursor to the desired point. The cursor (if close enough) is
attracted to the point. Finally, press the left mouse button to add a point at that position. The attrac-
tion works on all control points of the curves and on the grid points of the edges if they are visible.
The point attraction feature is activated or deactivated by pressing <a> repeatedly, while the cursor
is in the graphics area.

9-2.6 Draw B-Spline->On Surface + Projection


Geometry/Draw BSpline/On Surface + Projection is used to draw a bspline and to project it on a
selected surface as the final step of its creation.
The control points are initially entered with the mouse or the keyboard (see Draw BSpline -> Free
menu for a more complete description of the operations). Then, after pressing the right mouse but-
ton, the control points are projected on the first selected surface and a new bspline created. This
spline interpolates the projected points. The total number of control points defining the final curve
can be entered manually or can be automatically calculated.
Number of control points (automatic = 0) (q)
>> 0

9-2.7 Draw Polyline->Free


Geometry/Draw Polyline/Free is used to create a polyline by entering a set of control points.
Between two points, the curve is represented as a line segment.
• Using the mouse, the user must simply move the cursor to the desired position and press the left
mouse button to add a control point to the curve.
• Using the keyboard, the user must enter the 3 coordinates separated by a blank, while the cursor
is in the graphics area. The keyboard inputs are automatically echoed to the string input area.
Pressing <Enter> adds a control point to the curve.
• The creation of the curve is terminated by pressing the right mouse button. Notice that the last
curve segment, attached to the mouse movement is not part of the curve.

IGG™ 9-5
Geometry Menu Geometry menu description

• When entering the points with the mouse, the depth of the point is automatically fixed by
IGG™. The current depth can be seen by reading the mouse coordinates in the corresponding
area. This depth can be changed using the View/View Depth menu.
• During the specification of the points with the mouse, it is possible to attract the cursor to exist-
ing points, curves or surfaces. This feature is very interesting since it allows to connect curves
together and to create T junctions. By default this attraction is enabled. To toggle the attraction
to points, press <a> in the graphics area. Similarly, to toggle the attraction to curves or surfaces,
press <c> or <s> respectively. When the cursor is attracted to an entity, a filled-in circle is dis-
played. The attraction works on:
— point attraction: Cartesian points and curves end points if they are visible,
— curve attraction: visible curves,
— surface attraction: visible surfaces,
— vertices and fixed points. This attraction always work and cannot be deactivated.
 The point, curve or surface attraction feature is activated or deactivated by pressing
respectively <a>, <c> or <s> repeatedly, while the cursor is in the graphics area.
This tool can also be accessed through the Quick Access Pad/Geometry/Curve/Polyline menu
item.

9-2.8 Draw Polyline->On Surfaces


Geometry/Draw Polyline/On Surfaces is used to draw a polyline of which control points must lie
on one or more surfaces. The drawing works by projecting the input control points on all selected
surfaces. The projection direction is the normal to the current view plane. A control point falling
outside any selected surface will not be projected.

 The final polyline curve does not, in general, lie completely on the selected surfaces.
Only the control points are on the surface(s).
Except for the attraction feature which is described below, all other operations are the same as for
free polyline and are explained in the Draw Polyline -> Free menu.
When adding points using the mouse, it is possible to attract the cursor to existing points. This fea-
ture is very interesting since it allows to connect curves together. To activate the attraction press
<a> in the graphics area, then move the cursor to the desired point. The cursor (if close enough) is
attracted to the point. Finally, press the left mouse button to add a point at that position. The attrac-
tion works on all control points of the curves and on the grid points of the edges if they are visible.

 The point attraction feature is activated or deactivated by pressing <a> repeatedly, while
the cursor is in the graphics area.

9-2.9 Draw Polyline->On Surface + Projection


Geometry/Draw Polyline/On Surface + Projection is used to create a curve in the same way as
Geometry/Draw C-Spline/On Surface + Projection. The final curve is a polyline with a number
of control points defined by the user. These control points are guaranteed to lie on the selected sur-
face.
Geometry/Draw Polyline/On Surface + Projection is used to draw a polyline and to project it on
a selected surface as the final step of its creation.

9-6 IGG™
Geometry menu description Geometry Menu

The control points are initially entered with the mouse or the keyboard (see Draw Polyline -> Free
menu for a more complete description of the operations). Then, after pressing the right mouse but-
ton, the control points are projected on the first selected surface and a new polyline created. This
polyline interpolates the projected points. The total number of control points defining the final
curve can be entered manually or automatically calculated.
Number of control points (automatic = 0) (q)
>> 0

9-2.10 Circular Arc->Normal-Center-Point-Point


This menu option is used to create circles or circular arcs through two points and perpendicular to
an anchored vector. It allows also the creation of an arc perpendicular to an anchored vector, run-
ning through one point and of a given angle. The following inputs are requested:
• an anchored vector, defined by a direction and an anchor point,
• the start and end points (or an angle in place of the end point).
All these data (except for the angle) can be entered either through the keyboard input area or with
the mouse.
The centre of the circle is calculated so that the circular arc runs exactly through the two points. The
anchor of the vector can be used to define it. However, in case it is not on the perpendicular to the
chord bound by the two points, the centre is set on this perpendicular, the nearest to the vector. See
the figure below.

first point anchored


vector

Centre closest distance


second point

anchor point

Plane defined by the two points


and perpendicular to the vector

FIGURE 9.2.10-1 : Circular arc

To draw a complete circle, the start point must be equal to the end point. The following prompts are
given for the anchor vector and the two points (data entered with the keyboard):

IGG™ 9-7
Geometry Menu Geometry menu description

Enter normal to the arc


>> 0 1 0
Enter normal anchor point (q)
>> 0 0 0
Enter start point
>> 0 1 1
Enter end point
>> 1 1 0
 The normal to the arc can be chosen as the screen normal by simply left-clicking in the
graphics area.
For the specification of the normal anchor point, start and end points, it is possible to attract the cur-
sor to existing points, curves or surfaces. This feature is very interesting since it allows to connect
curves together and to create T junctions. By default this attraction is enabled. To toggle the attrac-
tion to points, press <a> in the graphics area. Similarly, to toggle the attraction to curves or sur-
faces, press <c> or <s> respectively. When the cursor is attracted to an entity, a filled-in circle is
displayed. The attraction works on:
— point attraction: Cartesian points and curves end points if they are visible,
— curve attraction: visible curves,
— surface attraction: visible surfaces,
— vertices and fixed points. This attraction always work and cannot be deactivated.

 The point, curve or surface attraction feature is activated or deactivated by pressing


respectively <a>, <c> or <s> repeatedly, while the cursor is in the graphics area.

An angle can be specified in place of the end point by pressing <p> when the start point is entered.
The following prompt will appear:
Enter angle
>> 45
Enter the desired angle and press <Enter>.
To quit this tool without creating an arc, press <q> or the right mouse button.
This tool can also be accessed through the Quick Access Pad/Geometry/Curve/Arc menu.
Example:
To draw a circular arc from (1,1,0) to (0,1,1) with centre (0,1,0), enter the following:
plane normal (0,1,0)
anchor point (0,1,0)
start point (0,1,1)
end point (1,1,0)

Notice that entering (0,0,0) for the anchor point would give the same result. Indeed, (0,0,0) is
located on the same arc normal than (0,1,0).

9-2.11 Circular Arc->Normal-Point-Point-Radius


This menu option is used to create circles or circular arcs through two points, with a given radius
and perpendicular to a normal. The following inputs are requested from the user:
• Circle/arc normal,

9-8 IGG™
Geometry menu description Geometry Menu

• Start and end point,


• Circle/arc radius,
• Arc position.
All these data (except the arc position) can be entered either through the keyboard input area or with
the mouse. The normal to the arc can be chosen as the screen normal by simply left-clicking in the
graphics area.
For the specification of the arc start and end points, it is possible to attract the cursor to existing
points, curves or surfaces. This feature is very interesting since it allows to connect curves together
and to create T junctions. By default this attraction is enabled. To toggle the attraction to points,
press <a> in the graphics area. Similarly, to toggle the attraction to curves or surfaces, press <c> or
<s> respectively. When the cursor is attracted to an entity, a filled-in circle is displayed. The attrac-
tion works on:
— point attraction: Cartesian points and curves end points if they are visible,
— curve attraction: visible curves,
— surface attraction: visible surfaces,
— vertices and fixed points. This attraction always work and cannot be deactivated.

 The point, curve or surface attraction feature is activated or deactivated by pressing


respectively <a>, <c> or <s> repeatedly, while the cursor is in the graphics area.

Once the start point is entered, it is displayed in a filled-in circle and a semicircle is drawn through
this start point and the cursor (Figure 9.2.11-1). Moreover, a line representing the radius and a cross
representing the center are displayed; the corresponding values of the radius and center are shown
in the information area. When the end point is entered, it is also displayed in a filled-in circle.

FIGURE 9.2.11-1 Arc representation before its creation

FIGURE 9.2.11-2 Six arcs drawn through two points with a given radius

IGG™ 9-9
Geometry Menu Geometry menu description

If the radius is entered through the keyboard input area, it is possible that the value entered is too
small (if value is lower than half distance between start and end point), in which case a warning
message appears. When the radius is entered, the sense of the circular arc can be chosen by pressing
<o> repeatedly. In fact, there are six possibilities to draw an arc between two points and with a
given radius, which includes two possibilities of complete circle, as shown in Figure 9.2.11-2.
Once the correct sense is chosen, simply click on the left mouse button to complete the arc creation.
To quit this tool without creating an arc, press <q> or the right mouse button.
This tool can also be accessed through the Quick Access Pad/Geometry/Curve/Arc menu.

9-2.12 Circular Arc->Point-Point-Point


This menu option is used to create circular arcs through three points. The following inputs are
requested from the user:
• Start point,
• End point,
• Middle point.
All these data can be entered either through the keyboard input area or with the mouse.
During the specification of the points with the mouse, it is possible to attract the cursor to existing
points, curves or surfaces. By default this attraction is enabled. To toggle the attraction to points,
press <a> in the graphics area. Similarly, to toggle the attraction to curves or surfaces, press <c> or
<s> respectively. When the cursor is attracted to an entity, a filled-in circle is displayed. The attrac-
tion works on:
• visible points and curves end points,
• visible curves,
• visible surfaces,
• vertices and fixed points. This attraction always work and cannot be deactivated.

 The point, curve or surface attraction feature is activated or deactivated by pressing


respectively <a>, <c> or <s> repeatedly, while the cursor is in the graphics area.
The start and end points must be specified first and are displayed in a filled-in circle. When both
points are specified, a circular arc is drawn between the start point, end point and the current cursor
position, representing the mid point (Figure 9.2.12-1). Moreover, a line representing the radius and
a cross representing the center are displayed; the corresponding values of the radius and center are
shown in the information area.
It is possible to get a complete circle by pressing the <o> key. Pressing <o> a second time comes
back to the circular arc mode.

FIGURE 9.2.12-1 Circular arc representation before its creation

9-10 IGG™
Geometry menu description Geometry Menu

Entering the mid point will complete the circular arc (or circle) creation.
To exit the tool without creating an arc, press <q> or the right mouse button.
This tool can also be accessed through the Quick Access Pad/Geometry/Curve/Arc menu.

9-2.13 Create Points->Cartesian Point


This command is used to create Cartesian points, that is a point defined by its three Cartesian cood-
inates x, y and z. The following prompt appears:
Enter Point Coordinates (x y z) ? (q)
>> 0 1 0
Enter the desired coordinates and press <Enter>. The corresponding Cartesian point will be dis-
played in a filled-in circle in the graphics area.
To quit this command, enter ’q’ and press <Enter>.
This tool can also be accessed through the Quick Access Pad/Geometry/Point/Cartesian Point
menu item.

9-2.14 Create Points->Curve-Curve Intersection


This command is used to create Cartesian points at the intersection of curves that must be selected
before using this command. More than two curves can be selected and the Cartesian points will be
displayed in filled-in circles. If a curve has an intersection with itself, it will not have a Cartesian
point created at the corresponding location.
This tool can also be accessed through the Quick Access Pad/Geometry/Point/Curve-Curve
Inters menu item.

9-2.15 Create Points->Curve-Plane Intersection


This command is used to create Cartesian points at the intersection between a plane and curves that
must be selected before using this command. The Cartesian points will be displayed in filled-in cir-
cles. The following prompts allowing the selection of the plane will appear:
Enter plane origin
>> 0 0 0
Enter plane normal
>> 0 0 1
To quit this command before the end, enter ’q’ in the keyboard input area and press <Enter>.
This tool can also be accessed through the Quick Access Pad/Geometry/Point/Curve-Plane
Inters menu item.

9-2.16 Create Curve->Surf-Surf intersection


Geometry/Create Curve/Surf-Surf intersection is used to compute the intersection curve(s)
between two selected surfaces.

 The computation algorithm makes use of the absolute geometry tolerance defined in the
system.

IGG™ 9-11
Geometry Menu Geometry menu description

The calculation time and the resolution of the intersection curve(s) directly depend on this geometry
tolerance. It is strongly advised not to take too small values for this tolerance. A typical value for
the tolerance is 1e-5 for surface sizes equal to 1.
The tolerance can be modified using the File/Preferences... menu option.
It is to be noticed that an intersection between two surfaces may result in several curves, which may
need to be concatenated with the Geometry/Create Curve/Group menu.
Limitations: the geometry library used in IGG™ cannot properly find intersection of surfaces which
are not continuous in slope (C1 continuity). This is the case, for example, when creating lofted sur-
faces using polylines or curves of degree 1. In this case, it is advised to decompose the problem and
search the intersection of each continuous part of the surface.
This tool can also be accessed through the Quick Access Pad/Geometry/Curve/Surf-Surf Inters
menu item.

9-2.17 Create Curve->Surf-Plane inters->Point-Normal


This command is used to compute the intersection curve(s) between NURBS surfaces and a plane.
In this option, the plane is specified by an origin and a normal. These values can be entered through
the keyboard or with the mouse. The following prompts will appear:
Enter plane origin
>> 0 0 0
Enter plane normal
>> 0 0 1
When using the mouse to define the normal, the normal is calculated by taking the vector going
from the origin (first point entered) to the selected point.
IGG™ then computes the intersection between the plane and all the selected surfaces (Geometry/
Select/Surfaces).
To quit this command before the end, enter ’q’ in the keyboard input area and press <Enter>.
This tool can also be accessed through the Quick Access Pad/Geometry/Curve/Surf-Plane Inters
menu.

 The computation algorithm makes use of the absolute geometry tolerance defined in the
system.
The calculation time and the resolution of the intersection curve(s) directly depend on this geometry
tolerance. It is strongly advised not to take too small values for this tolerance. A typical value for
the tolerance is 1e-5 for surface sizes equal to 1.
The tolerance can be modified using the File/Preferences... menu option.

9-2.18 Create Curve->Surf-Plane inters->Normal to Curve


This command is used to compute the intersection curve(s) between NURBS surfaces and a plane.
It allows the user to specify the cutting plane by simple selection of a point on a curve. The plane
will be defined with its origin at the selected point and its normal tangent to the curve, at the
selected point.
This option is especially useful for internal flow geometries like volutes or pipes, where intersec-
tion of lateral surfaces with a radial plane can be performed easily by selecting a point on a longitu-
dinal curve (see example below). The resulting intersection curves can then be used to easily place
radial internal faces.

9-12 IGG™
Geometry menu description Geometry Menu

resulting intersection curves

c1
c1

longitudinal curves
(boundaries of the surfaces) points selected on curve c1,
defining the cutting plane

two lateral surfaces, defining a pipe

FIGURE 9.2.18-1 Surface intersection with planes defined perpendicularly to a curve.

To perform an intersection:
1. Select the surfaces to intersect (Geometry/Select/Surfaces).
2. Select this command.
3. Move the mouse to a curve, at the location where the plane should intersect. When the mouse is
close enough to the curve, the current point is highlighted.
4. Left-click to select the point and to perform the intersection.
This tool can also be accessed through the Quick Access Pad/Geometry/Curve/Surf-Plane Inters
menu.

9-2.19 Create Curve->Surf-Plane inters->Point-Point-Point


This command is used to compute the intersection curve(s) between NURBS surfaces and a plane.
In this option, the plane must be defined by three points, specified from the keyboard or with the
mouse. When activating the option, IGG™ prompts to enter the three points successively:
>> Select first point <1>, <3> to quit
To enter the point from the keyboard, simply type the three coordinates separated by a blank then
press <Enter>. The coordinates are echoed in the string input area.
When specifying a point with the mouse, the current point can be attracted to points, curves or sur-
faces.
The second and third points must be specified in the same way.
After the third point has been specified, IGG™ performs the intersection with the selected surfaces.
This tool can also be accessed through the Quick Access Pad/Geometry/Curve/Surf-Plane Inters
menu.

IGG™ 9-13
Geometry Menu Geometry menu description

9-2.20 Create Curve->Extend Curve


This option is used to extend an existing geometry curve at one or both ends in the direction tangent
to the curve at the end points. It is especially useful when an input CAD file contains curves sup-
posed to intersect but which practically do not. In this case, using the option will allow to extend
one curve and make it intersect the other.
The following dialog box is provided to extend a selected curve by specifying the extension factor
at one or both ends of the curve:

The specified values must be null or positive and correspond to a percentage of the curve length. A
null value means that no extension will be performed for the specified end. For example, specifying
a factor of 0.1 at one end of curve whose length is 5, will extend the curve by an amount of 0.5.

 This option creates a new curve. The reference curve remains unchanged to avoid side
effects like for example position modification of vertices lying on the curve.

9-2.21 Create Curve->Offset Curve (Cst)


Geometry/Create Curve/Offset Curve (Cst) is used to create curves by offsetting the selected
curves in the view plane with an offset distance. The offset distance can be negative. The following
prompt is given to enter the offset distance:
Offset Distance (q)
>> -0.3
The offset curves are automatically drawn in blue indicating that they are not activated.
To quit this command, enter ’q’ and press <Enter>.

9-2.22 Create Curve->Offset Curve (Linear)


Geometry/Create Curve/Offset Curve (Linear) is used to create curves by offsetting the selected
curves in the view plane by entering two offset distances. These distances correspond respectively
to the offset at the beginning and at the end of the curve. The offset distance can be negative. The
following prompt is given to enter the offset distance
Offset Distance (start, end) (q)
>> 1 1
The offset curves are automatically drawn in blue indicating that they are not activated.
To quit this command, enter ’q’ and press <Enter>.

9-14 IGG™
Geometry menu description Geometry Menu

9-2.23 Create Curve->Group


Geometry/Create Curve/Group is used to create a curve by joining together the curves currently
selected. The joining starts from the first selected curve and uses the orientation of this curve as ref-
erence.

 Curves created with this option may be discontinuous (i.e joining an arc with a line). Dis-
continuous curves and surfaces are not always properly treated by intersection algo-
rithms.
The following prompt is given to enter a tolerance:
Enter tolerance for curves grouping : (q)
>> 1E-6
Two curves can be joined if this tolerance is higher than the distance separating points (start or end
point) of each curve. If the tolerance is higher than the absolute geometry tolerance defined in the
system, each gap (between two curves) greater than this geometry tolerance is filled, meaning that
the curves are joined with a straight line (Figure 9.2.23-1).

Curve 1 Composite curve

Gap Straight line

Curve 2

FIGURE 9.2.23-1 Grouping of two curves presenting a gap

The tolerance can be modified using the File/Preferences... menu option.


The composite curve created (if one) is automatically drawn in blue indicating that it is not acti-
vated and the curves used to create this resulting curve are deleted. These curves can be recovered
by using the Geometry/Create Curve/UnGroup command (so, the composite curve will be
deleted).
To quit this command, enter ’q’ and press <Enter>.
This tool can also be accessed through the Quick Access Pad/Geometry/Curve/Group menu
item.

9-2.24 Create Curve->UnGroup


Geometry/Create Curve/UnGroup is used to create curves by splitting a composite curve previ-
ously created by the command Geometry/Create Curve/Group. In fact, it recovers the curves
used to create the composite curve, which is deleted. The straight lines filling the gaps are also
deleted.
This tool can also be accessed through the Quick Access Pad/Geometry/Curve/UnGroup menu
item.

IGG™ 9-15
Geometry Menu Geometry menu description

9-2.25 Create Curve->Trim


This tool is used to trim curves (selected or not). It operates by removing the curve part (delimited
by the other visible curves) lying under the cursor. A filled-in circle will appear on the part that will
be deleted if the cursor is close enough. To delete this part, simply press the left mouse button.
In fact, the parts of a curve are defined by all its intersections with the other visible curves. So, an
extremity piece of a curve can be removed or a middle piece, dividing the initial curve into two
other curves. For example, on Figure 9.2.25-1, either part 1, 2 or 3 of curve 1 can be trimmed.

Part 1
Part 3
Part 2
Curve 1
Curve 2
Curve 3

FIGURE 9.2.25-1 Parts of a curve that can be trimmed

If a curve has only one part (before or after trimming), a warning message will appear when trying
to trim it because this operation will result in the total deletion of the curve. To manage this, use the
appropriate command (Geometry/Delete/Curves).

 A curve intersecting itself has not two parts but only one. So, the trimming of such a
curve may seem sometimes strange but it is normal. For example, on Figure 9.2.25-2,
left-clicking on part 1 will delete it, that is all the left part of curve 1 (bold part).

Curve 1
Part 2
Part 1

Curve 2

FIGURE 9.2.25-2 Trimming on a curve intersecting itself

To quit this tool, press <q> or the right mouse button.


This tool can also be accessed through the Quick Access Pad/Geometry/Curve/Trim menu item.

9-2.26 Create Surface->Lofted


Geometry/Create Surface/Lofted is used to create a NURBS surface interpolating a set of
selected curves. The orientation and the order of the selected curves are taken into account to
define the surface.
This tool can also be accessed through the Quick Access Pad/Geometry/Surface/Lofted menu
item.

9-16 IGG™
Geometry menu description Geometry Menu

9-2.27 Create Surface->Revolution


Geometry/Create Surface/Revolution allows to create a NURBS surface by rotating a curve
around a user-defined line. Each selected curve, used as generating line, leads to the creation of a
surface. The following prompts are given to specify the rotation line:
Rotation axis vector (q)
>> 0 0 1
Rotation axis origin (q)
>> 0 0 0
Rotation angle (q)
>> 90
After the surface creation, the option automatically creates several additional curves, corresponding
to the boundaries of the revolution surface. Moreover, intermediate curves are created for a better
surface representation. All these curves are deleted when the surface is deleted.

Generating
curve

Boundary curves
automatically created

Intermediate
curves

FIGURE 9.2.27-1 Cylinder created by rotation of the generating line (250 degrees).

To quit this option, enter ’q’ and press <Enter>.


This tool can also be accessed through the Quick Access Pad/Geometry/Surface/Revolution
menu item.

9-2.28 Create Surface->Coons Patch


Geometry/Create Surface/Coons Patch allows to create a NURBS surface from four selected
curves, using a bilinear interpolation. The four curves should define a closed region and should
have the following orientation (see Geometry/View/Curve Orientation menu item):

4 2

FIGURE 9.2.28-1 Curve order when creating a Coons surface

IGG™ 9-17
Geometry Menu Geometry menu description

The four curves must also be selected as indicated in the figure (curve 1 first, ...).
This tool can also be accessed through the Quick Access Pad/Geometry/Surface/Coons menu
item.

9-2.29 Create Surface->Linear Sweep


Geometry/Create Surface/Linear Sweep allows to create a NURBS surface from two selected
curves by making the tensor product of the two curves. The two curves should be "perpendicular"
in the parametric space of the surface and must have a point in common (i.e curves 1 and 4 in
Figure 9.2.28-1).
This tool can also be accessed through the Quick Access Pad/Geometry/Surface/Linear Sweep
menu item.

9-2.30 Create Surface->Offset


Geometry/Create Surface/Offset is used to create surfaces by offsetting the selected surfaces
according to an offset distance which can be negative. The following prompt is given to enter the
offset distance:
Enter offset distance (q)
>> -0.3
The boundary curves of the offset surfaces are automatically drawn in blue indicating that they are
not activated.
To quit this command, enter ’q’ and press <Enter>.
This tool can also be accessed through the Quick Access Pad/Geometry/Surface/Offset menu
item.

9-2.31 Create Surface->From Face


Geometry/Create Surface/From Face allows to create a NURBS surface from a face grid. To cre-
ate a NURBS from a face:
1. Activate the face by selecting it interactively or by entering its indices in the keyboard input
area,
2. Apply the menu option.
The surface will be created at the same location as the active face and can be manipulated with the
Geometry/Edit or Geometry/Modify Surface menus.
This tool can also be accessed through the Quick Access Pad/Geometry/Surface/From Face
Grid menu item.

9-2.32 Edit->Copy
Geometry/Edit /Copy is used to create new curves and surfaces by cloning the selected geometry
curves and surfaces.
After the cloning, new entities can be transformed directly through this tool:
Translation(t), Rotation(r), Scale(s), Mirror(m), None(q)
To perform a simple copy, enter ’q’ and press <Enter>. Other operations are strictly equivalent to
the corresponding ones of the Edit menu.

9-18 IGG™
Geometry menu description Geometry Menu

After the cloning, all currently selected geometry entities are unselected and the new created enti-
ties are selected. This allows to perform other editing operations on these entities without having to
manually select them.
This tool can also be accessed through the Quick Access Pad/Geometry/Edit/Copy menu item.

9-2.33 Edit->Translate
Geometry/Edit /Translate is used to translate all the selected geometry entities (curves and sur-
faces) along a user-defined vector. The following prompt is given to specify the translation vector:
Translation vector (q)
>> 1 1 1
A curve used in the definition of a surface (i.e. lofting curve) cannot be freely translated, since it
would implicitly change the definition of the surface. To translate such a curve a copy must first be
made (see section 9-2.32). The copy can then be freely translated.
To quit this option, enter ’q’ and press <Enter>.
This tool can also be accessed through the Quick Access Pad/Geometry/Edit/Translate menu
item.

9-2.34 Edit->Rotate
Geometry/Edit /Rotate is used to rotate all the selected geometry entities (curves and surfaces)
around a user-defined line. The following prompts are given to specify the rotation line:
Rotation axis vector (q)
>> 0 0 1
Rotation axis origin (q)
>> 0 0 0
Rotation angle (degree) (q)
>> 90
A curve used in the definition of a surface (i.e. lofting curve) cannot be freely rotated, since it
would implicitly change the definition of the surface. To rotate such a curve a copy must first be
made (see section 9-2.32). The copy can then be freely rotated.
To quit this option, enter ’q’ and press <Enter>.
This tool can also be accessed through the Quick Access Pad/Geometry/Edit/Rotate menu item.

9-2.35 Edit->Scale
Geometry/Edit /Scale is used to scale all the selected geometry entities (curves and surfaces) with
a user-defined scale factor. The following prompt is given to specify the scaling factor in the three
directions:
Scale factor (x y z) (q)
>> 1 1 1
A curve used in the definition of a surface (i.e. lofting curve) cannot be freely scaled, since it would
implicitly change the definition of the surface. To scale such a curve a copy must first be made (see
section 9-2.32). The copy can then be freely scaled.
To quit this option, enter ’q’ and press <Enter>.
This tool can also be accessed through the Quick Access Pad/Geometry/Edit/Scale menu item.

IGG™ 9-19
Geometry Menu Geometry menu description

9-2.36 Edit->Mirror
Geometry/Edit /Mirror is used to mirror all the selected geometry entities (curves and surfaces)
according to a mirror plane. The following prompts are given to specify the mirror plane:
Mirror Plane Normal (q) ?
>> 0 0 1
Mirror Plane Origin (q) ?
>> 0 0 0

A curve used in the definition of a surface (i.e. lofting curve) cannot be freely mirrored, since it
would implicitly change the definition of the surface. To mirror such a curve a copy must first be
made (see section 9-2.32). The copy can then be freely mirrored.
To quit this option, enter ’q’ and press <Enter>.
This tool can also be accessed through the Quick Access Pad/Geometry/Edit/Mirror menu item.

9-2.37 Edit->Convert to CSpline


Geometry/Edit/Convert to CSpline is used to convert the selected curves into csplines with a
specified number of control points. A number of control points (set by the user or automatically) is
calculated on each curve. Then a cspline is interpolated through these control points.
The following prompt appears to select the number of control points:
Number of control points (automatic = 0) (q)
Enter ’0’ for an automatic setting. The next prompt allows to select the type of control points distri-
bution:
Control points Fct. of curvature(1) or uniform(0) (q)
Enter ’0’ for a uniform distribution or ’1’ for a distribution calculated according to the curve curva-
ture.
For a distribution calculated according to the curve curvature, two additional prompts appear:
Maximum curvature ratio (1 -> 1e5)(q)
Curvature weight (1e-5 -> 1e5)(q)
When the ratio of curvature extrema is higher than the maximum curvature ratio, the points density
is limited and is set to uniform. A value of 50 is advised. The curvature weight is used to decrease
or increase the influence of the curve curvature on the points density.
To quit this option, enter ’q’ and press <Enter>.

9-2.38 Modify Curve->Add Control Point


Geometry/Modify Curve/Add Control Point is used to add control points to the selected curves.
The following prompt is given:
Select a point (a = attraction, q = quit) a:Off
The control points are displayed as markers (cross surrounded by a circle). New point is also visu-
alized as marker under the cursor and is simply specified by left-clicking.
The attraction to edges grid points can be activated by simply pressing <a> repeatedly, while the
cursor is in the graphics area.
Control points cannot be added to circles or circular arcs.

9-20 IGG™
Geometry menu description Geometry Menu

To quit the option, press <q> or the right mouse button.

9-2.39 Modify Curve->Remove Control Point


Geometry/Modify Curve/Remove Control Point is used to remove one or more control points of
the selected curves. The following prompt is given:
Select a point (q)
The control points are displayed as markers (cross surrounded by a circle). To remove a control
point, move the cursor on it and press the left mouse button. If a curve has more than two control
points, the removal of the start or end control point will also remove the curve part between this
extremity control point and the next control point.

 Obviously, if a curve has only two control points, these ones cannot be removed.
To quit the option, press <q> or the right mouse button.

9-2.40 Modify Curve->Project


Geometry/Modify Curve/Project is used to project the selected curves onto a selected surface.
When more surfaces are selected, the first selected surface is used for the projection. The user is
requested to specify a projection vector:
Enter Projection Vector (d = view plane normal)
Typing ’d’ instead of the three vector coordinates will take the view plane normal as the projection
vector.
Enter ’q’ and press <Enter> to quit this command.

9-2.41 Modify Curve->Modify Point


Geometry/Modify Curve/Modify Point is used to modify the shape of a curve by modifying one
or more control points and/or tangents of the curve. Modification is only possible on the curves
selected by the user.
After selecting this option, the control points and tangents of all selected curves are displayed and a
prompt appears to select a point for modification:
Select a point (a = attraction, q = quit) a:Off
The operations needed to modify a point are as follows:
•Select the point to be modified with the left mouse button.
•Move the selected point to a new location. The new position of the point can be entered from
the keyboard by typing the new coordinates ’x y z’ in the graphics area and pressing
<Enter>.
•Repeat the operation with other points.
•Quit the option with the right mouse button or by pressing <q>.
During the modification, it is possible to attract the current point to other existing points by ena-
bling the attraction mode. Attraction to points is activated or deactivated by pressing <a> within the
graphics area (toggle). The message in the message area is updated accordingly.
The attraction works on all control points of the curves and on the grid points of the grid edges,
when they are visible.

IGG™ 9-21
Geometry Menu Geometry menu description

 Modification of tangents is only possible for cspline curves. In this case, select the tan-
gent to be modified with the left mouse button and move the cursor to indicate the new
tangent direction. The new direction of the tangent can be entered from the keyboard by
typing the new coordinates ’x y z’ in the graphics area and pressing <Enter>. Attraction
is also available by still pressing <a>.

9-2.42 Modify Curve->Modify Point On Surface


Geometry/Modify Curve/Modify Point On Surface is used to modify the control points and the
tangents of the selected curves and project them onto the selected surfaces. The modification is
done in the same way as for the Modify Curve/Modify Point menu. At the end of the modification
of a control point, the point is projected on the selected surfaces.
The curve modified in this way does not in general completely lie in the surfaces. Only the control
points are guaranteed to be on the surfaces.

9-2.43 Modify Curve->Discretization


Geometry/Modify Curve/Discretization allows the user to change the number of points used to
discretize the curve. These points are used to draw the curve on the screen. This command applies
to all the selected curves.
The following prompt is given to enter the number of intermediate points between two consecutive
control points of the curve:
Number of discretization points between control points (q) ?
>> 10
Enter ’q’ and press <Enter> to quit this command.

9-2.44 Modify Curve->Divide


Geometry/Modify Curve/Divide allows the user to divide a selected curve. After the division the
old curve is removed from the geometry repository and two new curves (bsplines) are created. The
following prompt is given when activating the option:
Select the division point (a = attraction, q = quit) a:On
The division point is displayed as marker (cross surrounded by a circle) and can be specified by
selecting a point with the mouse within the limits of the curve or it can be entered with the key-
board.
It is possible to attract the division point to edges grid points by enabling the attraction mode.
Attraction to points is activated or deactivated by pressing <a> within the graphics area.
To quit this command, press <q> or the right mouse button.

9-2.45 Modify Curve->Reverse


Geometry/Modify Curve/Reverse is used to reverse the orientation of the selected curves. Recall
that the orientation of curves is important when creating surfaces using these curves (i.e. Coons
patch or lofted surface).

9-22 IGG™
Geometry menu description Geometry Menu

9-2.46 Modify Curve -> Set Name


Geometry/Modify Curve/Set Name... is used to change the name assigned to a curve. It opens a
dialog box allowing to enter a new name for a curve. The name specified must be a unique name,
not already used by another curve. When pressing on the Apply button, IGG™ assigns the specified
name to the first selected curve.
The current name of a curve can be at any time known by activating the curve selection option
(<s>) and by moving the mouse on top of the curve. The curve name will appear in the information
area.
Assigning proper name to curves is especially important when working with templates.
This tool can also be accessed through the Quick Access Pad/Geometry/Curve/Set Name menu
item.

9-2.47 Modify Surface->Discretization


Geometry/Modify Surface/Discretization allows the user to choose the number of points used to
discretize the selected surfaces in the u and v directions. This discretization is used during surface
grid generation by approximate mapping. The following prompt is given:
Number of points in the u and v directions (q) ?
>>50 100
To quit this command, enter ’q’ and press <Enter>.

9-2.48 Modify Surface->Representation


Geometry/Modify Surface/Representation allows the user to create curves in the two parametric
directions of the selected surfaces. The most common use of the option is to have a better visual
representation of the surfaces and to create curves which are usable in other geometry modelling
operations. These curves are represented as cspline curves and can be freely manipulated. The fol-
lowing prompt is given to enter the number of curves in each parametric direction:
Number of Curves in the u and v directions (q) ?
>>20 25
• The minimum number of curves in one parametric direction is 2, which corresponds to the
boundary curves.
• The curves created in this way belong to the surface and are deleted when the surface is deleted,
if not used by other entities.
To quit this command, enter ’q’ and press <Enter>.

9-2.49 Modify Surface->Add uv Curves


Geometry/Modify Surface/Add uv Curves is used to interactively create two orthogonal curves
in the parametric space of a surface, running through a user-defined point. The surface must first be
selected before being able to add uv curves.
After activating the option, the user is requested to select a point on the selected surface(s) through
which the curves will run.
Select a point (a = attraction , q = quit) a = Off

IGG™ 9-23
Geometry Menu Geometry menu description

This point can be entered with the mouse or with the keyboard. When using the mouse, the attrac-
tion to an existing point (control point of a curve or grid point of an edge) can be activated by press-
ing <a> within the graphics area.
The curves created in this way belong to the surface and are deleted when the surface is deleted, if
not used by other entities.
To quit this option, press <q> or the right mouse button.

9-2.50 Modify Surface->Divide


Geometry/Modify Surface/Divide allows the user to divide a selected surface by selecting an
existing parametric curve on the surface. The surface is split into two new surfaces along the given
curve. The old surface is deleted from the geometry repository.
The curve used for dividing the surface must be a parametric curve (along u or v), created with
Geometry/Modify Surface/Add uv Curves or Geometry/Modify Surface/Representation
menus.
After activation of the option, the user is requested to select a curve of the surface
Select a curve belonging to the surface (q = quit)
The curve selection is operated with the left mouse button (the curve is highlighted when the cursor
is close enough). After the selection, the division is automatically performed.
To quit this option, press <q> or the right mouse button.

9-2.51 Modify Surface-> Set Name


Geometry/Modify Surface/Set Name... is used to change the name assigned to a surface. It opens
a dialog box allowing to enter a new name for the selected surface. The name specified must be a
unique name, not already used by another surface. When pressing on the Apply button, IGG™
assigns the specified name to the first selected surface. The boundary curves, as well as the other-
curves created from the surface (i.e. using the Geometry/Modify Surface/Representation option)
will be automatically renamed according to the name assigned to the surface.
The current name of a surface can be at any time known by activating the surface selection option
(<Ctrl-s>) and by moving the mouse on top of the surface. The surface name will appear in the
information area.
Assigning proper names to surfaces is especially important when working with templates.
This tool can also be accessed through the Quick Access Pad/Geometry/Surface/Set Name menu
item.

9-2.52 Select->Cartesian Points


Geometry/Select/Cartesian Points allows the user to select or unselect one or more visible Carte-
sian points with the mouse. When selected, the Cartesian points appear highlighted in blue
(default) else they appear in white. The following prompt appears when selecting this option:
Select Cartesian Point(s) (a = all, q = quit)
Subsequent operations are done with the mouse in the graphics area:
•moving the mouse over a non-selected point highlights it,
•pressing the left mouse button selects it,

9-24 IGG™
Geometry menu description Geometry Menu

•pressing one more time unselects it,


•pressing the right button or <q> terminates the selection process.
 It is possible to select or unselect all points at once by pressing <a> in the graphics area.
The first time <a> is pressed all the points are unselected. The next time, <a> acts as a
toggle.

9-2.53 Select->Control Points


Geometry/Select/Control Points allows the user to display the coordinates of a control point of a
selected curve. When activated, the option shows the control points of all selected curves. Then the
user is requested to select one of these control points:
Select control points with the mouse (q)
Subsequent operations are as follows:
•moving the mouse over a control point highlights it,
•pressing the left mouse prints its coordinates in the information area,
•pressing the right button or <q> terminates the selection process.

9-2.54 Select->Curves
Geometry/Select/Curves allows the user to select or unselect one or more visible curves with the
mouse for subsequent operations in geometry modelling or grid generation. When selected, the
curves appear highlighted in green (default) else they appear in blue. The following prompt appears
when selecting this option:
<1> Select curve(s), <1 Drag> Rectangle selection, <3> quit, (a = all)
Subsequent operations are done with the mouse in the graphics area:
•moving the mouse over a non-selected curve highlights it,
•pressing the left mouse button selects it,
•pressing one more time unselects it,
•pressing the left mouse button without releasing it and dragging the mouse draw a rectangle.
Releasing the left button selects all the curves having a part in this rectangle,
•pressing the right button or <q> terminates the selection process.
 It is possible to select or unselect all curves at once by pressing <a> in the graphics area.
The first time <a> is pressed all the curves are unselected. The next time, <a> acts as a
toggle.
During the selection, the information area is used to display information about the current curve.
Typical information is: curve name, arc length of the discretization curve,...

9-2.55 Select->Surfaces
Geometry/Select/Surfaces allows the user to select or unselect one or more visible surfaces with
the mouse for subsequent operations in geometry modelling (i.e surf-surf intersection) or grid gen-
eration (i.e face grid generation). When selected, the boundary curves of the selected surfaces
appear highlighted in red (default) else they appear in blue.

IGG™ 9-25
Geometry Menu Geometry menu description

Surface selection is possible by simple positioning of the mouse over the surface. When several sur-
faces are stacked on top of each other, IGG™ provides a way to sweep through the surfaces before
selecting the desired one.
The following prompt appears when selecting this option:
<1> Select surface(s), <1 Drag> Rectangle selection, <3> quit, (a = all)
Subsequent operations are done with the mouse in the graphics area:
• Move the mouse to a surface to select (unselect). The surface is ready for selection (unse-
lection) when it becomes highlighted, either in blue or red. Red highlight means that the
surface is already selected and is ready to be unselected. Blue highlight means that the sur-
face is currently not selected and is ready to be selected.
• Left-click to select (or unselect) the surface. The surface changes its highlight to reflect its
new selection status.
• It is possible to select several surfaces at once by defining a selection rectangle. This rectan-
gle can be specified by pressing the left mouse button without releasing it and dragging the
mouse. Releasing the left button will select all the surfaces having a part in this rectangle.
• When several surfaces are stacked on top of each other, in the direction of the user’s eyes,
IGG™ takes by default the closest surface to the user. The user can sweep through the sur-
faces by middle-clicking the mouse, until the desired surface is highlighted. Left-click then
allows to select the highlighted surface.
 It is possible to select or unselect all surfaces at once by pressing <a> in the graphics
area. The first time <a> is pressed all the surfaces are unselected. The next time, <a> acts
as a toggle.
During the selection, the information area is used to display information about the current surface,
such as its name.

9-2.56 View->Curves
Geometry/View/Curves... allows the user to choose which curves are displayed. A curve chooser
(Figure 9.2.56-1), showing all the curves in the geometry repository, is opened to select the curves.
The visible curves are highlighted. To make one or more curves visible, select them with the left
mouse button in the chooser, then press Apply. The curves are automatically displayed in the
graphics area.
The <Ctrl> key is used in combination with the left mouse button to select several curves in the
chooser.
The <Shift> key is used in combination with the left mouse button to select a range of curves in the
chooser. A range of curves can also be selected by pressing the left button, dragging the mouse and
releasing the left button.
A filter, using regular expression search, is provided to select or unselect curves by their name.

9-26 IGG™
Geometry menu description Geometry Menu

FIGURE 9.2.56-1 Curve chooser

9-2.57 View->Surfaces
Geometry/View/Surfaces... allows the user to choose which surfaces are displayed. A surface
chooser (Figure 9.2.57-1), showing all the surfaces in the geometry repository, is opened to select
the surfaces. The visible surfaces are highlighted. To make one or more surfaces visible, select them
with the left mouse button in the chooser, then press Apply. The boundary curves of the surfaces
are automatically displayed in the graphics area.

FIGURE 9.2.57-1 Surface chooser

The <Ctrl> key is used in combination with the mouse to select several surfaces in the chooser.

IGG™ 9-27
Geometry Menu Geometry menu description

The <Shift> key is used in combination with the mouse to select a range of surfaces in the chooser.
A range of surfaces can also be selected by pressing the left button, dragging the mouse and releas-
ing the left button.
A filter, using regular expression search, is provided to select or unselect surfaces by their name.

9-2.58 View->Hide Selected Cartesian Points


Geometry/View/Hide Selected Cartesian Points is used to hide all the selected cartesian points.

9-2.59 View->Hide Selected Curves


Geometry/View/Hide Selected Curves is used to hide all the selected curves.

9-2.60 View->Hide Selected Surfaces


Geometry/View/Hide Selected Surfaces is used to hide all the selected surfaces.

9-2.61 View->Control Points


Geometry/View/Control Points acts as a toggle to show or hide the control points of all selected
curves.

9-2.62 View->Curve Orientation


Geometry/View/Curve Orientation acts as a toggle to show or hide the orientation of the selected
curves. An arrow is displayed indicating the orientation of the curve.

9-2.63 View->Lofting curves


Geometry/View/Lofting curves is only available for lofted surfaces and is used to toggle the dis-
play of the curves defining a lofted surface, except the boundary curves. The option applies to the
selected lofted surfaces and has no effect on the other surfaces.

9-2.64 View->Prepare View


Geometry/View/Prepare View... allows to define the parameters for the faceting of the selected
surfaces.
The dialog box (Figure 9.2.64-1) is provided to control the creation of the triangulated representa-
tion of the selected surfaces:
SPcurves tolerance: the "Tolerance" value is the maximum deviation allowed between a trimming
curve given in model space and its equivalent in the parametric space of the surface to be trimmed.
A default value, calculated from the overall dimension of the selected surfaces, can be set by press-
ing the "Default" button.
Size: the minimum and maximum length of the facets in the triangulated representation of surfaces
can be specified through the two items "Minimum length" and "Maximum length". For both param-
eters, a default value, calculated from the overall dimension of the selected surfaces, can be set by
pressing the "Default" button.

9-28 IGG™
Geometry menu description Geometry Menu

Tolerance: The chordal tolerance between a curve and its facet edges in model units, i.e. the upper
bound on the distance from the chord to the curve it approximates, can be specified through the
"Curve chordal tolerance" item. Similarly, the distance tolerance in model units between a surface
and its faceted representation, i.e. the upper bound on the distance from a position on a facet to the
surface, can be specified through the "Surface plane tolerance" item. For both parameters, a default
value, calculated from the overall dimension of the selected surfaces, can be set by pressing the
"Default" button.
Resolution: The maximum angle between a curve and the chord used to approximate it, i.e. the
upper bound on the sum of the angles between the chord and curve tangents measured at the chord
ends, can be specified in degrees through the "Curve resolution" item. Similarly, the angular toler-
ance between a surface and its faceted representation can be specified in degrees through the "Sur-
face resolution" item. For both parameters, a default value, calculated from the overall dimension
of the selected surfaces, can be set by pressing the "Default" button.
View Mode: the user can define the view mode (solid and/or wireframe) for the triangulated repre-
sentation of the selected surfaces created when pressing the "Apply" button in the bottom of the dia-
log box.
Key bindings: <Alt-s> toggles the display of the solid view for the triangulated representation of
the selected surfaces, while <Alt-w> toggles the display of the wireframe view.

FIGURE 9.2.64-1 Faceting settings

9-2.65 View->Clear View


Geometry/View/Clear View is used to clear the triangulated representation for the selected sur-
faces.

IGG™ 9-29
Geometry Menu Geometry menu description

9-2.66 View->View Wireframe


Geometry/View/View Wireframe is used to toggle the display of the wireframe triangulated repre-
sentation for the selected surfaces. If a surface does not have any triangulated representation yet,
one will be created with default settings.

9-2.67 View->View Solid


Geometry/View/View Solid is used to toggle the display of the solid triangulated representation for
the selected surfaces. If a surface does not have any triangulated representation yet, one will be cre-
ated with default settings.

9-2.68 Delete Cartesian Points


Geometry/Delete/Cartesian Points is used to delete selected Cartesian points from the geometry
repository.

 There is no undo associated with the delete operation.

9-2.69 Delete->Curves
Geometry/Delete/Curves is used to delete selected curves from the geometry repository. A curve
cannot be deleted while it is used in the definition of the surface. To delete it, the surface itself must
first be deleted.

 There is no undo associated with the delete operation.

9-2.70 Delete->Surfaces
Geometry/Delete/Surfaces is used to delete selected surfaces from the geometry repository, if not
used by other entities. When deleting a surface all the curves which belong to it are automatically
deleted. Typical curves belonging to a surface are uv curves, created with the Geometry/Modify
Surface/Representation menu.

 There is no undo associated with the delete operation.

9-2.71 Distance
Geometry/Distance 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 direc-
tions between the two points:

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


Enter first point (toggle selection: a = points, c = curves, s = surfaces, l =distance to line)

9-30 IGG™
Geometry menu description Geometry Menu

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

IGG™ 9-31
Geometry Menu Geometry menu description

9-32 IGG™
CHAPTER 10: Grid Menu

10-1 Overview
The Grid menu includes the connectivity and boundary conditions definitions, as well as the face
and block grid generation options. Other features of the grid generation module include the inter-
active control of the grid generation parameters, the definition of grid point clustering along the
boundaries and the definition of internal grid lines. Besides, algebraic and elliptic grid generation,
mapping, translation, sweeping, rotation, extrusion options provide fast grid generation capabili-
ties for a large number of 2D and 3D geometries.

10-1.1 Boundary Conditions setting


Each block face can be divided in a certain number of patches on which will be applied the bound-
ary conditions. It allows, for a same face, to have several different boundary conditions.
Boundary conditions setting consists of imposing to each patch of the grid a type describing the
physics of the flow. The boundary conditions setup is normally performed when the grid has been
generated.
The different types of boundary conditions are the following. Each one is referenced in IGG™ by
an abbreviation given between brackets:
• Undefined (UND)
• Inlet (INL)
• Outlet (OUT)
• External (EXT)
• Solid (SOL)
• Singular (SNG)
• Mirror (MIR)
• Rotating (ROT)
• Matching connection (CON)
• Non matching connection (NMB)
• Periodic matching connection (PER)
• Periodic non matching connection (PERNM)

IGG™ 10-1
Grid Menu Overview

Except for the mirror and the four connection types, all the boundary conditions have to be set man-
ually. The Grid/Boundary Conditions... menu item is provided to divide face into patches and to
set these conditions.
Connection types (CON, NMB, PER, PERNM) are established to describe how blocks are interact-
ing together and how information is transfered from one block to another. Such connections are
established between two patches having common boundaries and one needs to specify which
patches are connected and with which relative orientation. A tool is provided to automate the setup
of such connections (automatic finding of the connected patch and the relative orientation).
Besides these matching and non matching connections, full non matching connections are pro-
vided, allowing to connect several patches of several blocks with non matching boundaries. It is to
be noticed that such full non matching connections are always defined on top of existing patches
and that these ones must have a valid basic type (no undefined type (UND)), even if the patch is
entirely contained in the connection region.

 For more information and a detailed description of patch connections, see section 3.10-1
on page 3-30.
Generally, the following steps are needed to correctly specify all the boundary conditions:
1. Define the periodicity for each block (Grid/Periodicity... menu item).
2. For each face, define the patches making up the face. This step is partially done during face grid
generation, since patches can be used to generate pieces of the face grid.
3. Manually impose the boundary conditions of type: INL, OUT, EXT, SOL, SNG, ROT.
4. Apply automatic connectivity search (Grid/Boundary Conditions... menu item, Connectivity/
Search button) to find automatically matching and non matching connections (periodic or not).
5. Check that no non matching connection (NMB or PERNM) is defined where a matching con-
nection was expected. If it is not the case, delete the corresponding connection and try to deter-
mine why the connection is non matching (see explanations with the connection tools).
6. Define the full non matching connections.
7. Normally no undefined patches (UND) should remain. If it is not the case, check each UND
patch: boundary condition type, periodicity, patch boundaries and number of points, connection
tolerance, ...

10-1.2 Coarse Grid Levels


When generating 2D or 3D grids with IGG™, it may be advantageous for the solver to generate the
blocks using a multigrid scheme. Multigrid corresponds to the capability of extracting coarser grids
several times by skipping over two points in each block direction:

Finest Grid 9x9 (coarse grid level 0 0) Coarse Grid 5x5 (coarse grid level 1 1)

10-2 IGG™
Overview Grid Menu

Multigrid schemes are not automatically enforced in IGG™. Thus special care must be taken manu-
ally for proper grid settings to accomplish multigrid meshes. Following are some guidelines to gen-
erate such grids:
• The number of multigrid levels is computed as follows: if n is the number of grid points of
an edge, the number of levels m is such that n-1 can be recursively divided m-1 times by 2.
For example a 9x9x9 grid has 4 grid levels in each direction ( (9-1)/2/2/2 ).
• When dividing a face into patches (for specifying different boundary conditions), each
patch has to follow a multigrid scheme. For example, if a face has 9 grid points in one
direction, dividing the face in that direction into two patches with limits [1 4] and [4 9] does
not yield to an efficient multigrid scheme. However, better limits for the patches are [1 5]
and [5 9], resulting in 3 grid levels for the face in that direction.
 The multigrid rule can be applied independently for each I, J, K direction. The multigrid
level available for the flow solver EURANUS through the FINE™ interface will be the
lower level of patches multigrid level for each I, J and K direction.
The following table summarizes the allowed number of grid points for each level of the grid.

MultiGrid level Number of grid points per level

FIGURE 10.1.2-1 Coarse grid levels

For example, if the number of grid points in one direction is 225, the number of levels in that direc-
tion will be 6 and the number of grid points for each level will be respectively 225 (for the finest
level), 113, 57, 29, 15 and 8 (for the coarsest level).

IGG™ 10-3
Grid Menu Grid menu description

10-2 Grid menu description


10-2.1 Periodicity
Grid/Periodicity... menu is used to define the periodicity for each block of the grid to generate. It
can be done in the following dialog box:

Index of the block affected by "Apply" Periodicity parameters,


(0 applies the settings to all the blocks) function of the periodicity type

Periodicity types

Applies the current settings Clears the parameters Close the box
to the specified block

FIGURE 10.2.1-1 Periodicity dialog box

In this box, the following things can be specified:


Block number: The periodicity can be defined block by block or for the whole grid. To define the
periodicity for the whole grid, the block number should be set to ’0’. All subsequent "Apply" will
affect ALL the blocks of the grid, overwriting previous settings.
Periodicity types: Three types of periodicity can be specified:
— Rotation: A rotation periodicity rotates a block around a given axis by a specified angle. The
rotation axis is specified by a rotation axis direction (axis) and an anchor point (origin). The
angle is indirectly specified by indicating the number of periodicities for the block (e.g. a
compressor with 4 blades should have a number of periodicities of 4) and the number of
meshed passages is directly specified.
— Translation: A translation periodicity, e.g. a cascade in turbomachinery, is obtained by spec-
ifying a translation vector, in direction and magnitude. For example, a translation vector of
(0,0,2) will repeat a block along the Z axis by 2 absolute units.
— Mirror: A mirror periodicity mirrors a block with respect to a symmetry plane and is speci-
fied by the origin and normal of the mirror plane.
To choose among these types, simply left-click on it.
The dialog box contains also three buttons at the bottom:
• "Apply": it applies the current settings to the specified block(s).

10-4 IGG™
Grid menu description Grid Menu

• "Clear": it resets the periodicity parameters to default values for the specified block(s).
• "Close": it closes the dialog box.
For 2D projects, the global distance of extrusion of all the mesh along the Z axis can also be con-
trolled by this dialog box through an additional item:

FIGURE 10.2.1-2 Control of the global distance of extrusion for 2D projects

If the 2D project is a new one, the default value is 1. Otherwise the value of the 2D project which is
loaded is displayed. This value has an influence on the solver convergence and should be set
according to the mesh size. In particular for the EURANUS solver, the value should not be lower
than the smaller cell of the mesh, otherwise it can slow down the convergence.

10-2.2 Grid Settings


Grid/Grid Settings... menu is used to examine or modify all important grid parameters of the seg-
ments, edges, faces and blocks of the current project, using a dialog box.

Name of the active block


Active Block, Face, Number of points along the I, J, K directions,
for the active block
Edge, Segment indices

Number of segments
for the active edge
Limits of the active
segment
Number of points Table giving the
for the active segment Multi Grid Levels

FIGURE 10.2.2-1 Grid Settings dialog box.

 There is no Apply button which implies that the changes in the different input fields take
effect IMMEDIATELY after pressing <Enter> or selecting another field, without any

IGG™ 10-5
Grid Menu Grid menu description

possibility of automatic undo.


The dialog box is divided into 4 different parts:
• Block data: The active block index can be specified from the Block box. The total number of
grid points in I, J and K directions can be checked in the related box and modified at any time on
the active block. The values can be changed by simply left-clicking on the box arrows or with
the keyboard. In this latter case, press <Enter> to validate the change.
The Propagate button is used to propagate the changes in number of points to the connected
blocks.
See below for a complete description on the change of block limits Imax, Jmax, Kmax and
propagation.
The name of the block can also be specified in the Name field.
• Face data: The active face index can be specified from the Face box. When changing the active
face index, the edge and segment informations are automatically updated.
• Edge data: The active edge index can be specified from the Edge box. The total number of seg-
ments of the active edge is displayed (it cannot be changed here, it is only for information pur-
pose).
• Segment data: The active segment index can be specified from the Segment box. The number
of grid points on that segment is displayed next to this area. The low and high limits of the
active segment can be changed with the keyboard from the min and max boxes. Once a new
value is entered, press <Enter> to activate the change. The following constraints must be
respected:
• new lower limit > lower index of the previous segment
• new upper limit < upper index of the next segment
When changing the limits of a segment, the index of the fixed points delimiting it will be obvi-
ously changed. If the new values imply the change of an internal grid line index, it is done auto-
matically without asking any confirmation. However, if the new values imply the change of an
internal face index, the following message appears:

FIGURE 10.2.2-2 New block limits imply the change of internal face index

If the "no" button is pressed, the index will not be changed and the limit will be reset to the pre-
vious one.
The dialog box also contains at its bottom two buttons: MG Levels and Close buttons. The first one
opens a box containing the table of the MultiGrid levels shown at page 10-3. It allows to choose a
number of grid points in order to have multigrid meshes. The second one is obviously used to close
the dialog box.

Changing block limits Imax, Jmax or Kmax


The following considerations have to be taken into account when changing block limits:
1. The minimum number of grid points in one direction is 2, which corresponds to one cell.

10-6 IGG™
Grid menu description Grid Menu

2. When changing the number of grid points in the I, J or K direction, the faces and block grids
affected by the modification are deleted. For example, when modifying the number of points in
the K direction, the grids of the faces 3, 4, 5 and 6 are deleted.
3. Connections with patches of the touched faces are also deleted. Moreover, patch boundaries are
resized automatically in order to cover the whole face.
4. Connected segments remain connected, even if there is an inconsistency with the number of
points. It allows to change after the number of points on the connected segment and to keep the
connection. Despite this, if the number of points remains different for the two connected seg-
ments, the connection will be deleted at the next loading of the project.
5. When increasing the number of points in one direction, these points are added to the last seg-
ment of edges aligned on this direction.
6. If a block contains an internal face whose constant direction is the same as the one in which the
number of points has to be decreased, a message appears when the new number of points is
lower than or equal to the internal face index:

FIGURE 10.2.2-3 New block limits imply the change of internal face index

It gives the possibility to change the internal face index without leaving the Grid Settings dialog
box. If the "no" button is pressed, the index will not be changed and the limit will be reset to the
previous one.
7. When there are several segments in one direction, the number of grid points in that direction
cannot be freely decreased and the following constraint must be satisfied for each edge in the
modified direction: the lower limit of the last segment must be lower than the new number of
grid points in that direction. In the following example, the edges along the I direction are
divided into several segments:

Fixed point index 20


40
s2
30

s3
Fixed point

K
J
20
35
s1
I

FIGURE 10.2.2-4 Example of segment division

IGG™ 10-7
Grid Menu Grid menu description

It will not be possible to reduce Imax below 41, since segment s2 on the figure has its lower
bound equal to 40. To reduce Imax to 30, for instance, the lower limit of segments s1, s2 and s3
must be manually changed below 30 (the last segment must have at least 2 points). The seg-
ments before the last ones may also need to be changed (recall that a segment must have at least
two grid points).
If a bad limit is entered, an error message similar to the following will appear:

FIGURE 10.2.2-5 Error message appearing with wrong new block limits

It indicates the segment(s) that have to be modified to impose the new block limits. Once the
"Close" button is pressed, the limits are reset to the previous ones.

Grid resizing and propagation


The increasing or decreasing of the number of points on a segment can be automatically propagated
along connected blocks. This option drastically reduces the number of operations required to mod-
ify the number of grid points in meshes consisting of a large number of connected blocks.
Propagation is insured through segment connections. This means that if two blocks are connected
along some of their segments, changing the number of points of a segment of one block will auto-
matically change the number of points in the other block, along the connection. When several
blocks are connected together as a chain (along segment connections), the grid point modification
will be performed on all these blocks.
If propagation is disabled, the modification of the number of points will only be applied to the
active block and the segment connections (parallel to the reference segment) with other blocks will
be deleted to keep consistency.

a) Resizing of one block


Changing the number of points of an isolated block segment affects all the edges of the block "par-
allel" to the segment, as shown in next figure.

s1 20
Resized segment s2 40
s3

30

K
J
30
Modified segments
I

10-8 IGG™
Grid menu description Grid Menu

The distribution of the grid points among the segments of an edge will be proportional to the over-
lapping between the segments and the initial resized segment. In the previous example, the segment
s3 does not overlap with the resized segment and consequently its number of points remains
unchanged. Only segments s1 and s2 are affected. The index of the internal edges and internal faces
will be adapted consistently.

b) Limitations
Multigrid
Due to possible division of an edge into several segments and the existence of internal edges or
internal faces in the blocks, it is not possible to insure that a block resizing (as a consequence of
segment resizing), will conserve multigrid levels for each segment touched by the operation. It is
the user responsibility to adapt the index of the segment fixed points.
Patches
• The limits of the patches of each face modified during a segment resizing are not changed auto-
matically. The user must explicitly adapt these limits.
• Patch connections are deleted for each face modified during a segment resizing.
Decreasing the number of points of a segment
Decreasing the number of points of a segment can only be performed to a certain limit. When
decreasing the size of a segment below a certain limit, it may happen that parallel segments over-
lapping the reference segment would be assigned a negative value, which is obviously impossible.
In this case, the operation will not be performed and a message will be given to the user. The user
will have to reduce the number of segments along the parallel edges before attempting to change the
size again.

10-2.3 Boundary Conditions

Patch type specifier


Patch name specifier

Filters, allowing selective


visualization in the patch
list
Patch browser, allowing
to select patches

Automatic connectivity
block, face, patch index search according to Tol

Manual connection
Full Non Matching
specification

Visualization options Patch editing: creation,


deletion and limits settings

FIGURE 10.2.3-1 Boundary Conditions dialog box

IGG™ 10-9
Grid Menu Grid menu description

Grid/Boundary Conditions... menu item serves three different purposes:


1. To divide the faces of the grid into patches, for grid generation purposes.
2. To specify the boundary conditions on these patches, as input to a flow solver.
3. To establish connection between the patches (see section 3-10.1 on page 3-30 for a detailed
description of the connections).
When invoking the menu item, a dialog box is opened (Figure 10.2.3-1).

10-2.3.1 Patch browser


The patch browser (see Figure 10.2.3-1) lists all the patches in the grid, according to the current
"Block", "Face", "Patch", "Type" or "Name" filters. In this browser, a patch can be selected with the
left mouse button. This patch is automatically visualized in the graphics area according to the visu-
alization options in the dialog box:
• Show Grid will display the grid of the patch.
• Show Solid will display the patch as a solid face.
It is possible to select several patches at once in the following ways:
1. While holding the <Ctrl> key down, select the desired patches in the browser.
2. While holding the <Shift> key down, select two patches delimitating a range of patches.
3. While pressing the left mouse button, drag the mouse and release the left button to select a
range of patches.
The last patch selected is always the ’current patch’ for manual connections and patch editing.

10-2.3.2 Filters
The different filters allow to display specific patches in the browser while hiding the others. The
"Block", "Face" and "Patch" filters are cumulative and allow to display patches by indices. For
example:
Block Filter: ’*’ (’*’ means ALL)
Face filter: ’1 2’
Patch filter: ’*’
shows in the browser all the patches of faces 1 and 2 of all the blocks. The "Face" filter allows also
to select a boundary face by choosing imin, imax, jmin, jmax, kmin or kmax. These items can be
shown and selected by left-clicking on the "Face" filter arrow.
The "Type" filter is very useful to list all the patches of a given type (according to the other filters).
In particular it allows to easily identify the connected patches (CON, NMB, PER, PERNM) and the
patches that have not any type yet (UND).
The "Name" filter allows to display patches by name. Enter or choose an expression. All the patches
of which the name contains this expression will be listed.

10-2.3.3 Patch type specification


An option menu allows the setting of the boundary condition type for the selected patch(es). The
possible boundary condition types are the following:
• UND : undefined type.
• INL : inlet.
• OUT : outlet.

10-10 IGG™
Grid menu description Grid Menu

• EXT : external. Used to impose farfield conditions.


• SOL : solid. Used for walls.
• SNG : singular. Used for patch degenerated into a line.
• MIR : mirror. Used to impose a symmetry plane.
• ROT : rotating. Used for rotor-stator interaction.
• CON : matching connection.
• NMB : non matching connection.
• PER : periodic matching connection.
• PERNM : periodic non matching connection.
The following types can be set manually: INL, OUT, EXT, SOL, SNG, ROT, MIR. To set such a
type, left-press on the "Set Patch Type" button of the dialog box; a list with all the types that can be
set manually appears. Move the cursor to the desired type and release the left button to set it to the
selected patch(es).
If a patch is involved in a full non matching connection, a "*" will appear next to the patch type.

10-2.3.4 Patch definition and editing


The patch definition mode is enabled by pressing the "Edit Patch >>" button. The dialog box is
then enlarged to show a symbolic definition of the current face, as shown in the following figure.

 Limitation: if the Boundary Conditions dialog box has been resized before clicking on
the Edit Patch button, the dialog box will not extend. In this case the dialog box has to be
closed and opened again.

Edit Patch area

Symbolic face representation

patch limits

Clicking the right mouse button


pulls down a menu for deleting or
dividing the patch:
Current patch

Clicking on the border allows


to change the patch limits

Close Edit Patch area Current patch info

FIGURE 10.2.3-2 Patch editing

IGG™ 10-11
Grid Menu Grid menu description

In this example the active face has three patches with a topology indicated in the figure. The current
patch is represented in yellow.
The current patch can be changed by clicking with the left mouse button within the rectangle corre-
sponding to the desired patch. The current patch is automatically updated in the browser and in the
graphics area.
An information area is used to display information about the current patch (limits, indices and rela-
tive orientation of the connected patch if existing, and patch type). See Manual Connectivity Set-
tings section for information about the relative orientation.
Creation of a new patch
A new patch can be created by dividing an existing patch in one direction. When several patches
must be created, the division must be successively applied on the existing patches.
To divide a patch, click on the patch with the right mouse button. A menu is opened allowing to
divide either horizontally or vertically. Upon selection of a direction, a box appears to enter the
index of division. It can be entered manually or modified by using the scrollers. At the same time a
visualization of the division appears in the graphics area.

FIGURE 10.2.3-3 Index of division selection

Pressing <Enter> performs the division. Pressing <Escape> cancels the division.
Editing an existing patch
It is possible to change the limits of an existing patch by clicking on its borders. A box is then
opened to enter the new limits (same as Figure 10.2.3-3 box). The new limits can be entered manu-
ally or modified using the scrollers. Pressing <Enter> applies the new limits to the selected patch.
Pressing <Escape> cancels the limit modification.
Deleting an existing patch
To delete a patch, click on the patch with the right mouse button. In the pop-up menu that is opened,
choose the "Delete Patch" item. The patch is deleted but the others are not resized automatically.
There is no check about this (face entirely covered by its patches) and the resize must be done man-
ually as explained above.

 When a face number of points is modified, patch boundaries are resized automatically in
order to cover the whole face.
The patch definition mode is disabled by pressing the "<<" button (see Figure 10.2.3-2 on page 10-
11).

10-2.3.5 Automatic connectivity search


Automatic connectivity search allows to detect MIR boundary conditions and to perform connec-
tions between patches (matching and non matching, periodic or not).
For MIR boundary conditions and periodic connections, the block periodicity must be set previ-
ously by using the Grid/Periodicity... menu item.

10-12 IGG™
Grid menu description Grid Menu

a) Mirror boundary conditions


A mirror connection exists when a patch matches itself after the application of the mirror periodic-
ity of the block to this patch. In fact, patch points are transformed according to the mirror periodic-
ity and a check is done to see if they match with the initial points of the patch. The setting of the
mirror periodicity on the block in the Grid/Periodicity... dialog box is optional (information not
needed by the solver) but in this case, MIR boundary condition cannot be found automatically by
this tool and must be set manually.

b) Connections
Matching connections are obtained between two patches with same number of grid points along the
two directions, and when all their points are matching at a specified tolerance. Non matching con-
nections are obtained when some patches points are not matching at the specified tolerance, or
when the number of grid points is not the same in one or both directions.
A periodic connection between two patches (PER or PERNM) is equivalent to a simple connection,
after application of the periodicity of the block to one of the patch.
The following checks are performed by IGG™ when trying to connect two patches:
• Four patch corners must be matching at the given tolerance ("patch corner" means the
patch grid point at the corner of the patch).
• Four patch boundaries must be matching at the given tolerance ("patch boundaries" means
curves passing through the patch grid points defining the patch limits).
• Patch points must lie on a same common surface. For this, some points of the first patch are
projected on the surfacic cells of the second patch. An intersection must be found and the
distance between the point and its projection must be lower than an internally calculated
value based on the given tolerance and the patch dimension.
• All the patch points must be matching at the given tolerance. Obviously, when number of
grid points is different in one or both directions, this test is never satisfied.
The three first tests are performed for both matching and non matching connections and determine
if a connection is possible between the two considered patches. The last test determines if the con-
nection is matching or non-matching. The relative orientation of the two patches is automatically
found after the three first tests and is assigned to the connection.

c) Automatic search
Three interactors are provided with the automatic connectivity search: one field to input the abso-
lute tolerance used to compare point coordinates, another one to delete all connections currently set
(CON, NMB, PER, PERNM types) and one to start the search.

FIGURE 10.2.3-4 Automatic connectivity search interactors

To make a new automatic connectivity search on all the patches, left-click on the Delete All button
to delete all connections currently set. To delete only some connections, select the corresponding
patches and set the patch type to UND by using the related button (see Patch type specification
section).

IGG™ 10-13
Grid Menu Grid menu description

Before starting the automatic search, the tolerance must be adjusted. It is specified in absolute units
in the Tol input field. For example, if the mesh coordinates range from 0 to 1, a possible value is 1e-
5, whereas if the mesh coordinates range from 0 to 10000, a value of 1e-3 is more appropriate. The
default value that is set at the dialog box opening is 1e-5.

 It is highly recommended to avoid setting a tolerance close to the patch size, other-
wise connection can be wrongly found. For example, having two square patches of size 1
and distant of 2, a tolerance of 3 will connect them whereas they should remain discon-
nected.
The search can be started by clicking on the Search button. At the end of the operation, the number
of simple connections found as well as the number of periodic connections are displayed in the
information area. The "Type" filter is automatically set to CON and the corresponding patches are
listed in the Patch browser.

 It is advised to do this search operation after all the blocks have been properly defined
and are ready to be used by the solver.

d) Tips and tricks


• Connection cannot be found (CON, NMB, PER or PERNM), patches remain UND. This
means that one of the three first tests checking the connection has failed. Check the periodicity
for PER and PERNM types. Check patches division, patches coincidence or try to increase the
tolerance and redo an automatic search.
• Connection of type CON (or PER) cannot be found, patches are set to NMB (or PERNM).
This means that the three first tests checking the connection are satisfied (therefore patch
boundaries are matching) but the fourth one has failed. Firstly check that the number of points
along the two patch directions are the same. If it is the case, the reason of the test failure is gen-
erally that some points on patch are really non matching at the specified tolerance, even if the
grid of the two patches seems to be apparently coincident. In some very rare cases, the failure
can be due to a wrong relative orientation found automatically. This can be verified by checking
the relative orientation and eventually trying a manual connect with the correct orientation. If
the problem still persists, patch points are non matching. Try to increase the tolerance or solve
the non matching by manipulating the mesh. Then reset non desired NMB (or PERNM) patches
to UND and redo an automatic search.
• In some special configurations (for example a patch degenerated into a line) or when tolerance
is too high compared to the patch size, the automatic search would not behave correctly and the
following message will appear:

FIGURE 10.2.3-5 Automatic search error

It indicates that the automatic search procedure has failed for the patch whose indices (Block,
Face, Patch) are displayed.
Two cases are possible:

10-14 IGG™
Grid menu description Grid Menu

1. The connection type has been set to the patch. So, check if the connected patch is at the
same location (by taking into account the periodicity of the block) as this patch. Check also
if the relative orientation of this patch and the connected one is correct. If one of these two
checks is wrong, delete the connection type for these two patches.
2. The connection type has not been set. So, the type has remained UND.
To get rid of the problem, try to decrease the tolerance or try to use the manual connectivity set-
tings.

10-2.3.6 Manual Connectivity Settings


When automatic connectivity search fails, the manual connectivity option can be activated by
pressing the "Manual..." button. Within this option, the relative orientation of the two selected
patches must be entered manually and checks are performed according to the connection type
selected to detect if the connection is possible or not. This option opens a dialog box shown below:

Connected patch Connection type

Relative orientation
of the patches

FIGURE 10.2.3-6 Manual Connectivity dialog box

Firstly, specify the indices of the patch that will be connected to the current patch and the connec-
tion type. Patch indices are defined as follows: Block, Face and Patch index. Enter them with the
keyboard and validate them by pressing <Enter>.
Secondly, the correct relative orientation of the two patches must be chosen. To define this, a refer-
ence patch is needed, which is always in this case the current patch selected in the "Patch browser".
In general, with a couple of patches, by taking either the first or the second one as reference, the rel-
ative orientation will be different.
In fact, for each patch, two axis can be defined, which are equal in direction and orientation to those
of the block to which it belongs. So, there are three possibilities: I, J or K. To connect two patches,
their relative orientation must be determined by specifying the correspondence between their axis.
It is done by assigning an expression (such as "Ilow", "Khigh") for each axis. (expression = dir 1 for
first axis and expression = dir 2 for second one). Dir 1 and dir 2 are determined as follows:
1. Take the first axis of the reference patch.
2. Search the axis of the connected patch which has the same direction, that is to say X (where X
is I, J or K).
3. If the two axis have the same orientation, dir 1 = "Xhigh", else dir 1 = "Xlow".
4. Do the same with the second axis of the reference patch to determine dir 2.
The first axis of the reference patch has to be chosen as follows:
— axis (I, J) -> I
— axis (J, K) -> J
— axis (I, K) -> I

IGG™ 10-15
Grid Menu Grid menu description

Example:

J I

I K
Patch 1 Patch 2

• Reference patch: Patch 1


• Patch 1 first axis: I
• Dir 1: Klow
• Dir 2: Ihigh
Indeed, it can be seen that Patch 1 axis I increasing corresponds to Patch 2 axis K decreasing, while
Patch 1 axis J increasing corresponds to Patch 2 axis I increasing. The correct relative orientation
specification should consequently be: "Klow", "Ihigh".
After pressing "Apply", IGGTM checks whether the connection is possible or not. A warning
appears if the connection cannot be set.

10-2.3.7 Full non matching connections


This type of connection allows to connect several patches of several blocks with non matching
boundaries. The definition of such connection consists of the following:
• A connection name.
• A list of “left” patches defining one side of the connection.
• A list of “right” patches defining the other side of the connection.
The patches in one list are not restricted to belong to the same face or same block.

 It is to be noticed that full non matching connections are always defined on top of exist-
ing patches and that these ones must have a valid basic type (no undefined type (UND)),
even if the patch is entirely contained in the connection region. In the case a patch has an
undefined type (UND) and is used in the definition of the FNMB (full non matching
boundary), IGG™ automatically sets its type to solid (SOL). This is required by the
solver to run properly. However, the type is not reset to UND when deleting a FNMB
connection, even if the SOL type has been set automatically by IGG™.
Following rules must be respected when performing FNMB connections:
1. A patch can be contained in only one list (either the left patches list or the right one) and
one FNMB connection. It is illustrated in the following figure.

First FNMB Patch 1


connection

Patch 3 Patch 2
Second FNMB
connection

FIGURE 10.2.3-7 Patch contained in two FNMB connections

10-16 IGG™
Grid menu description Grid Menu

2. A patch closed on itself (two patch boundaries are matching) cannot be used if the connec-
tion region includes the closing part. In this case, the patch must be divided in two patches.

Closing part of the patch

FIGURE 10.2.3-8 Patch closed on itself

3. Two patch points cannot be coincident. For example, a O-type patch with a singular line or
a triangular patch cannot be used in a FNMB connection.

FIGURE 10.2.3-9 Patches with coincident points

4. For periodic FNMB connections, all the patches defining the connection must have the
same periodicity information. This information is set for the patch block (see section 10-
2.1 "Periodicity" on page 10-4).

List of created FNMB connections

Computes and visualizes the connection


Connection name (mandatory) (optional)

FIGURE 10.2.3-10 Full Non Matching Connections dialog box

IGG™ 10-17
Grid Menu Grid menu description

To define and edit full non matching connections:


Press the Full Non Matching/Define... button of the "Boundary Conditions" dialog box. It opens
the dialog box shown on Figure 10.2.3-10.
This dialog box contains two patch browsers to define the left and right patches lists. The use of the
patch browsers and filters is the same as for the "Boundary Conditions" dialog box. A list contain-
ing the connections already defined is displayed on the right of the dialog box.
To define a FNMB connection:
• Select the patches defining the “left” side. These patches are highlighted in yellow in the
graphics area.
• Select the patches defining the "right" side. These patches are highlighted in blue.
• Enter a name for the connection.
• Select the Periodic button to define a periodic FNMB connection.
• Press on the Create/update button to define the FNMB connection.
• This connection will appear in the connection list.
Once a connection is created, patches can be added and/or removed from it. Simply update patches
lists by clicking on them and press the Create/update button.
To compute a FNMB connection:
Once a connection is defined, it is possible to visualize the triangulation of the common region by
pressing the "Compute & Show" button. This triangulation is not directly used in IGG™ but only
serves to visualize the triangulation that will be used by the solver and to verify that the connection
is correctly performed. Calling this item is optional in IGG™. This calculation can be performed on
the desired grid level by selecting it freely in the "Grid level computed" entry (this parameter is
global and not saved in connections). Moreover several parameters can be controlled by pressing
the "Options" button. It opens an additional frame:

FIGURE 10.2.3-11 FNMB computing parameters

The process of the computation involves that one side of the connection is triangulated whereas the
other side is projected on it. Default values should normally be used. If the computation fails,
parameters can be tuned. These parameters are local to each connection and saved into it, therefore
to be taken into account they must be set before creating the connection or the button Create/
update must be pressed once a parameter is modified.
Maximum projection distance: when the projection distance of a point is greater than this value,
it is rejected.
Minimum projection distance: when all the points of a patch (contained in the projected side of
the connection) have a projection distance greater than this value, the patch projection is
rejected.

10-18 IGG™
Grid menu description Grid Menu

Normals smoothing steps: before projection, some smoothing steps are done on the projection
normals.
Reverse triangulated side: to reverse the triangulated side which is by default the one containing
the greater number of points.
To view and/or delete an existing FNMB connection:
• Left-click on the desired connection in the connection list to select it.
• The patches participating in the definition of the connection will be automatically high-
lighted in the dialog box as well as in the graphics area. A "*" is also displayed next to the
patch type to indicate that the patch is involved in a FNMB connection. If the computation
of the triangulation was performed for this connection, it will also be shown on the screen.
• To list only the patches involved in the desired connection, middle-click on it in the connec-
tion list.
• Press the Delete button to delete the selected FNMB connection (the type of the corre-
sponding patches is unchanged).

10-2.4 Grid Quality


This item gives access to a tool for performing an analysis of the grid quality. The following dialog
box will appear:

FIGURE 10.2.4-1 Mesh Quality dialog box

This dialog box contains two pages, one dedicated to analyse the grid quality on whole block cells
and the other the grid quality at the block boundaries (boundary faces), including matching connec-
tions with adjacent blocks. The items for both pages are similar and described here after. The qual-
ity criteria are just slightly different.
The Block entry allows to choose the block in which the quality will be analyzed. It is selected by
its number. Each change must be validated by pressing <Enter> to recompute the quality checking.
If 0 is entered, the mesh quality is analyzed on all the blocks of the grid. Next to this entry, the

IGG™ 10-19
Grid Menu Grid menu description

selected block name and the grid points number in each direction are displayed. By default, when
opening this dialog box, the active block is selected. If the selected block is not generated or has
been modified since the last generation (by moving a vertex, for example), the following message
will appear:

FIGURE 10.2.4-2 Message indicating that the block may be regenerated

 It asks for block regeneration. If the "no" button is pressed, the quality analysis is not
performed.
The next entry Butterfly block is a special item dedicated to butterfly topologies allowing to
choose the butterfly block in which the quality will be checked. When the block selected in the first
entry is a parent block, the second entry is activated, displaying the number of the butterfly block
which is analyzed. The range goes from 0 to 6. The number 0 represents the inner block and is
therefore always present. The other numbers between 1 and 6 represent the parent face number and
thus the associated buffer blocks. If there is no associated buffer, the corresponding number does
not appear.
The Quality Criterion frame is used to choose the criterion type which will be used to analyze the
block cells quality. The criterion is chosen through the Type pull-down menu. According to the cri-
terion, a preferential direction can be chosen through the second pull-down menu Direction (only
for Block page). It is used when the criterion gives different results along different directions (for
example 2D criterions applied on surfacic cells). When it is not the case, this menu is deactivated.
The following possibilities are available: All, I, J or K. ’All’ is equivalent to the three directions I, J,
K. Moreover, a range can be selected for each criterion; each range modification must be validated
by pressing <Enter>.
The Visualization control frame is used to select the representation mode of the cells. Cells can be
displayed with markers and/or with a shaded representation (Cells button). Markers are useful to
detect cells that cannot be seen with the shaded representation only. Moreover, cells shading can be
deactivated to greatly improve the speed of representation. In the shaded representation, cells are
shaded with a different color according to their quality value. The link between colors and values is
established by a colormap which is displayed in the graphics area after the tool selection. The range
of the colormap is automatically updated according to the criterion range. The cells can be dis-
played as surfaces or volumes by switching on the corresponding button.
The Display frame is used to show in the IGG™ graphics area the cells falling inside the quality
criterion range. The All cells button shows all the bad quality cells of the selected block(s). The
Sweep cells scrollers allow to sweep the selected block to display cells by constant I,J,K face.
The Show chart button is used to toggle a histogram displaying the result of the quality checking.
Left-clicking on a bar displays the corresponding cells in the IGG™ graphics area.

10-20 IGG™
Grid menu description Grid Menu

FIGURE 10.2.4-3 Quality analysis histogram

The entry Number of intervals is used to select the number of bars of the histogram. The default
value is 5 and the maximum number is 10. Each new number must be validated by pressing
<Enter>.
The More info button is used to toggle a window giving more information about the quality check-
ing: minimum and maximum values with their location (and possibly the block number in which
they are detected if the check is performed on all the blocks).

FIGURE 10.2.4-4 Additional information on quality analysis

10-2.4.1 Quality criterion definitions (Block page)


These criteria are dedicated to evaluate the grid quality on whole cells of a block.

a) Criterion class
Two classes can be defined according to the type of element on which criterion is applied:
• 2D criterions: application on surfacic cells (quadrilateral cells)
• 3D criterions: application on volumic cells (hexahedral cells)
Obviously, the number of cells falling in the criterion range is always greater for a 2D criterion than
for the equivalent 3D one because an hexahedral cell contains six quadrilateral cells. This means
that, for a 2D criterion, the number of cells falling in the range can easily be greater than the block
number of points.
On the other hand, as 2D criteria are applied on surfacic cells, they are all direction dependent.

b) Criteria definition
Following criteria are available:
• Orthogonality,
• Aspect Ratio,
• Expansion Ratio.

IGG™ 10-21
Grid Menu Grid menu description

Each one is described here below.


Orthogonality
2D criterion. Range: 0 - 90 degrees. Orthogonality is a measure of the minimum angle between
edges of the element. If angle between two edges is greater than 90 degrees, the value taken into
account is (180 - real angle).
Aspect Ratio
2D criterion. Range: 1 - 10000. If the calculated value is outside the range, the value is reset to
10000.

a b

a+b c+d
x = ------------ y = ------------
2 2
max ( x, y )
Aspect Ratio = ------------------------
min ( x, y )

FIGURE 10.2.4-5 Aspect Ratio definition

Expansion Ratio
3D criterion. Range: 1 - 100. Expansion Ratio is a measure of the size variation between two adja-
cent cells. It is direction dependent. If the calculated value is outside the range, the value is reset to
100. Obviously, this criterion is nonsense if there is only one cell in the selected direction.

K b1

a1 b4 b2

a4 b3
a2

a3

a1 + a2 + a3 + a 4 b1 + b2 + b 3 + b 4
x = ----------------------------------------- y = -----------------------------------------
4 4
max ( x, y )
Expansion Ratio (K) = ------------------------
min ( x, y )

FIGURE 10.2.4-6 Expansion Ratio definition

10-22 IGG™
Grid menu description Grid Menu

10-2.4.2 Quality criterion definitions (Boundaries page)


These criteria are dedicated to evaluate the grid quality at the boundaries of a block (boundary
faces), including matching connections with adjacent blocks.
Following criteria are available:
• Orthogonality,
• Angular deviation,
• Expansion Ratio,
• Cell width.
Each one is described here below.
Orthogonality
Range: 0 - 90 degrees. Orthogonality is a measure of the cell angle relatively to the block boundary
(face ’S’). If angle is greater than 90 degrees, the value taken into account is (180 - real angle).

Block boundary face


a1
N
S
a4
a2 a1 + a2 + a3 + a4
x = -----------------------------------------
4
a3
Orthogonality = ∠( x, projx on S )

FIGURE 10.2.4-7 Orthogonality definition

Angular deviation
Range: 0 - 90 degrees. Angular deviation is a measure of the angular variation between two adja-
cent cells, the first one being in the current block and the adjacent one in the matching connected
block. Obviously, this criterion is nonsense if there is no matching connected block.

Connected block
b1
Current block

a1 b4
b2

a4 b3
a2 a1 + a2 + a3 + a 4
x = -----------------------------------------
4
a3
b1 + b 2 + b 3 + b 4
y = -----------------------------------------
Angular deviation = ∠( x, y ) 4

FIGURE 10.2.4-8 Angular deviation definition

IGG™ 10-23
Grid Menu Grid menu description

Expansion Ratio
Range: 1 - 100. Expansion Ratio is a measure of the size variation between two adjacent cells, the
first one being in the current block and the adjacent one in the matching connected block. Obvi-
ously, this criterion is nonsense if there is no matching connected block. The definition is the same
as for the Block page (see before).
Cell width
Range: 0 - 1000. Cell width is the height of the cell measured normally to the block boundary
(face). If the calculated value is outside the range, the value is reset to 1000.

10-2.4.3 2D project particularities


2D or axisymetric projects (see File/Project Configuration... menu) have only one layer of cells
along the K direction (k = 2). Therefore some functionalities of the dialog box are useless consider-
ing that no check is needed along the K direction. As the grid must be generated to perform a qual-
ity calculation, all the created faces are automatically extruded (or rotated for axisymetric projects)
at the opening of the dialog box.
Particularities are the following:
• Quality criterion direction: this menu is deactivated except for the Expansion Ratio crite-
rion. Therefore it allows in this case to apply the criterion separately along the I and J axis.
Obviously, the calculation along K axis will lead to nothing as there is only one cell.
• The cells viewing mode is set to Volume to allow cells visualization on a 2D view with the
Expansion Ratio criterion.
• Sweep cells options along I, J and K directions are deactivated. These are useless because
the view of the mesh is 2D.

10-2.5 Negative cells


Grid/Negative cells... is used to compute, store the indices and show the cells with a negative vol-
ume. The following dialog box is provided to select calculation preferences:

FIGURE 10.2.5-1 Preferences dialog box for Negative cells calculation

Four preferences can be controlled:


• Scope: determines whether the calculation will proceed on the active block or on all blocks.
• Coord Sys: specifies whether calculation should proceed using a left-handed local reference
frame for each cell or a right-handed one.
• Precision: specifies whether to perform calculation in single or double precision.

10-24 IGG™
Grid menu description Grid Menu

This preference is the most important to control. Indeed, IGG™ always works in double preci-
sion. However some solvers may work in single precision. Consequently, checking negative
cells in double precision in IGG™, with no negative cells as a result, may give negative cells in
the solver !!
• Coarse Levels: specifies on which multigrid level the calculation should proceed. The "All"
button allows to perform the calculation on all the available uniform multigrid levels at once,
"uniform" meaning that the levels are equal in the three directions I, J and K, for example "0 0
0", "1 1 1" and "2 2 2". The "Custom" button allows to select a specific multigrid level, like "1
2 2".
The Apply button performs the negative volumes calculation. If the active block is not generated or
has been modified since the last generation (by moving a vertex, for example), the following mes-
sage will appear:

FIGURE 10.2.5-2 Message indicating that the block may be regenerated

The View neg cells button allows to visualize cells with negative volume. The computation of the
negative volumes is performed automatically as a first step. Cells with negative volumes are dis-
played in a shaded representation and with markers, which are useful to detect cells that cannot be
seen only with the shaded representation.

 Beware that the visualization of negative cells can be memory consuming when a large
number of cells must be displayed. It is then advised to first check the number of nega-
tive cells by pressing the Apply button.
If no cell with negative volume is detected, the following message appears:

FIGURE 10.2.5-3 No negative cells detected

On the contrary, if there are cells with negative volumes after the complete search, a message like
the following will appear:

FIGURE 10.2.5-4 Grid contains cells with negative volume

IGG™ 10-25
Grid Menu Grid menu description

It shows the number of each block containing negative cells and the corresponding number of neg-
ative cells.
For butterfly topologies, the calculation is performed on all the butterfly blocks of the correspond-
ing parent block. The number of negative cells of each butterfly block is added and displayed in the
previous dialog box by referencing the parent block.

10-2.6 Internal Grid line/Create from grid


Grid/Internal Grid Line/Create from grid allows to add an internal edge to the active face by
selecting an internal grid line with the mouse. Internal edges allow a better control of the face grid
and are also used to realize connections between adjacent blocks. The face grid must be already
created.The following prompt appears to select a grid line:
Select a Grid Line <1> (i or j = select a direction, u = unselect) <3> to quit.
Move the cursor to the desired grid line of the active face. When the cursor is close enough, the grid
line is highlighted and its index is displayed. Simply press the left mouse button to create the inter-
nal edge.
To quit this command without creating an internal grid line, press <q> or the right mouse button.
The <i> and <j> key bindings allow to select a grid line in a prefered direction. When one of the
keys is selected, only grid lines in that direction will be selectable. Press <u> to remove the prefered
direction.
After the creation of the internal edge, a dialog box is opened to ask whether a geometrical curve
should be created at the position of the internal edge.
Geometrical curve allows to modify the shape of the internal grid line and possibly come back
to its original position. If no geometrical curve is created, the internal edge will lose its initial shape
as soon as a vertex is moved, without any possibility to come back to its first position.
If such curve is not created, it is always possible to later create a curve at the position of the internal
grid line by right-clicking on it and selecting the Edge/Create Curve pop-up menu item.
This tool can also be accessed through the Quick Access Pad/Grid/Insert/Edit page.

10-2.7 Internal Grid line/Delete


Grid/Internal Grid Line/Delete allows to delete the active internal edge. This edge is permanently
removed from the system and the total number of edges for the active face is decreased by one.
Note that the internal edge is deleted but not its end vertices (which are attached to fixed points).
Obviously, using this command on a boundary edge will have no effect and a warning message will
appear.

10-2.8 Internal Grid line/Index


Grid/Internal Grid Line/Index allows to change the index of the active internal edge. The follow-
ing prompt is given to enter the new index of the internal edge:
Enter New Edge Index (q) ?
>> 17
If a value greater than the corresponding block limit or greater than the index of the face nearest
fixed point is entered, the index will not be changed. Setting a new index to an internal grid line will
not change its position but the block grid points will be moved.

10-26 IGG™
Grid menu description Grid Menu

If the internal edge belongs to an internal face, its index cannot be changed.
To quit this command, enter ’q’ and press <Enter>.

10-2.9 Internal Face/Create


Grid/Internal Grid Face/Create... allows to add an internal face to the active block for better
control of the block grid. If the active block is not generated or has been modified since the last
generation (by moving a vertex, for example), the following message will appear:

FIGURE 10.2.9-1 Message indicating that the block may be regenerated

 It asks for block regeneration. If the block is not generated and that the "no" button is
pressed, the dialog box of the next figure will appear but without being able to do some-
thing except pressing the "Close" button. If the block has been modified since the last
generation (a block is not automatically regenerated after modifications of its topology)
and that the "no" button is pressed, the mesh that will be interactively displayed (see
below) may look quite strange.
The creation of an internal face is done through a dialog box allowing the selection of a face along
I, J or K axis.

Active Block

Constant Index
I,J or K

Create Internal Face

FIGURE 10.2.9-2 Internal face creation dialog box

The Block box allows to choose the active block in which the internal face will be inserted. Next to
this box, the active block name and the grid points number in each direction are displayed.
The I, J and K scrollers allow to interactively sweep the grid along the three directions. While
scrolling, surface grids are displayed for each constant index direction.
When pressing the "Save" button, the surface currently visible is saved as internal face of the active
block.

IGG™ 10-27
Grid Menu Grid menu description

When an internal face is created, an internal edge is also created for each existing face crossing the
new face. This edge is shared by the faces which means that modifying the edge on one face affects
the other face as well.
This tool can also be accessed through the Quick Access Pad/Grid/Insert/Edit page.

10-2.10 Internal Face/Delete


Grid/Internal Face/Delete menu item is used to delete the active internal face from the active
block. This face is permanently removed from the system and the total number of faces for the
active block is decreased by one. A dialog box appears to select if the face boundary edges must be
kept or not. Even if the boundary edges are deleted, the end vertices (which are attached to fixed
points) are kept.
Obviously, using this command on a boundary face will have no effect and a warning message will
appear.

10-2.11 Internal Face/Index


Grid/Internal Face/Index allows to change the index of the active internal face. The following
prompt is given to enter the new index of the internal face:
Enter new face index:(q)
>> 17
If a value greater than the corresponding block limit or greater than the nearest fixed point along the
face direction is entered, the index will not be changed. Setting a new index to an internal face will
not change its position but the block grid points will be moved.
To quit this command, enter ’q’ and press <Enter>.

10-2.12 Create Edge/Copy Edge


Grid/Create Edge/Copy Edge is used to copy the active edge from another existing edge. The fol-
lowing prompt appears to specify the reference edge from which to copy:
<1> to select a reference edge, <2> to perform the copy <3> to quit.
The reference edge is selected by left-clicking near that edge. When several edges lie at the same
position, the left-click operation must be repeated until the proper edge is selected.
The copy operation takes effect after middle-clicking the mouse. After the operation, the active
edge has the same shape, same orientation and same segment division as the reference edge. The
other edges connected to the active edge are automatically following the new position.

10-2.13 Create Face/Linear 2Bnd


Create Face/Linear 2Bnd menu item is used to create an algebraic face grid using two opposite
boundaries of the active face. The grid matches the point distributions on the active boundary and
its opposite. Other grid boundaries are computed by linear interpolation and the internal grid points
are distributed according to the user-defined point distributions between opposite boundaries.
This option can also be accessed through the Quick Access Pad/Grid/Generate page.

10-28 IGG™
Grid menu description Grid Menu

10-2.14 Create Face/Linear 4Bnd


Create Face/Linear 4Bnd menu item is used to create an algebraic face grid using the four bound-
aries of the active face. The grid matches the point distributions defined on four boundaries.

 This is the default generation mode for face grid. Whenever a face grid is touched,
IGG™ automatically performs a four boundaries linear interpolation. If operations like
smoothing or projections onto geometrical surfaces were applied previously on that face
grid, it is necessary to redo them by using the "Regenerate Faces" option of the Quick
access Pad/Grid/Generate page.
This option can also be accessed through the Quick Access Pad/Grid/Generate page.

10-2.15 Create Face/Generation Tool


Grid/Create Face/Generation Tool... menu item is used to define internal grid lines and to gener-
ate the grid of the active face. The dialog box is divided into two pages:
• Grid: the page gives access to the grid generation tools.
• Internal Grid Lines: this page gives access to the internal grid lines control.
 When the dialog box is opened, the interactive selection of the active face remains oper-
ational. The pages are automatically updated when selecting another active face.
This tool can also be accessed through the Quick Access Pad/Grid/Generate page.

10-2.15.1 Grid Page

Selection of an
active area on the
active face:
- patch selection
- selection by index

Generation acts also


on the boundary of the Overlapping
active area cells display

Generation methods: Edges used for


- linear interpolation or, interpolation
- mapping on a selected surface

Activation of the
orthogonality control

Elliptic smoothing of
the active area

Face Range: these parameters are used to select the active area on the active face. The active area is
automatically displayed in red. Two methods are available:
— selection of a patch. If the patch 0 is selected, the entire face is activated.
— selection of a range by specifying the boundary indices of the desired area.

IGG™ 10-29
Grid Menu Grid menu description

Edge Mapping: this parameter is specified to control whether the boundary points of the active
area have to be updated if a generation method is applied to this area.
Overlapping: this parameter is specified to display the overlapping cells. These cells are high-
lighted using a small circle.

 Overlapping cells can be correctly detected for planar grids only.


The selection of a face range by specifying the boundary indices is illustrated in the following fig-
ure.

Index1 max = 26
Index1 min = 8

FIGURE 10.2.15-1 The active area is displayed in red and the active edges in blue.

Generation Type:
— Algebraic: it is used to generate the mesh by linear interpolation of the active edges of the
active area.
— Mapping: it is used to generate the mesh by mapping the mesh of the active area on the
active surface (can be applied if only one geometric surface is selected).

Edges 1-2, 3-4, 1-2-3-4: these buttons are used to select the active edges. The active edges are dis-
played in blue. Mapping method always interpolates the four edges of the active area on the
selected surface.

10-30 IGG™
Grid menu description Grid Menu

Orthogonality Control: this button activates the orthogonality control parameters. These parame-
ters allow the control of the orthogonality of the mesh near two opposite active edges through defi-
nition of the active edges normals. Normals to the edges are automatically displayed in black. The
normal ranges and lengths (Ratio) can be controlled for both active edges.

Orthogonality
range on edge1 Orthogonality
range on edge 2

Normal length Normal length


on edge 1 on edge 2

Edge 1&2 are activated

 The orthogonality parameters are not active for the four boundaries interpolation (button
1-2-3-4 activated).

 When orthogonality control is applied, the mesh fits the four boundaries of the active
area and is orthogonal to the two opposite active edges

Elliptic Smoothing: this button opens an additional area controlling smoothing:

The grid inside the active area can be smoothed using an elliptic solver by pressing the Smooth but-
ton. The level of smoothing can be controlled through the Ratio entry, which is in fact the relaxa-
tion factor of the smoothing algorithm and should be lower than 1. If the button "On Surface" is
activated, IGG™ smoothes the grid on the active surface.

 Mapping, orthogonality control or smoothing generation options do not take into account
internal grid lines of the face generated. Therefore the user must take care because an
inconsistency can appear (no grid points corresponding to the internal grid line points).

IGG™ 10-31
Grid Menu Grid menu description

edge 2

Orthogonality control edge 1 relative normal length


between edge 1 & 2 set to 2 on edge 1.

Relative Normal range on edge 1: 0.1 -> 0.9

Edge 1 Normals Definition d = ratio of first edge (normal length)

d
d1 = 0.1 x L
d2 = 0.9 x L

d1 d2
L

Overlapping cells

Mesh created with a normal length = 5 on edge 1.

10-32 IGG™
Grid menu description Grid Menu

10-2.15.2 Internal Grid Lines Page

(*)
(**)
Internal grid line I = 11

(**)

(*)
index = 11

Control of the internal grid line geometry :


- selection of the internal grid line location
by definition of a constant index
- control of the orthogonality at both ends
through ratio 1 and ratio 2

Creation of the new internal grid line


using the displayed geometry

Deletion of the internal grid


line selected by the indices

This dialog box allows the creation of C-Spline curves used to define the geometry of new internal
edges.
Constant Index: the location of the internal grid lines can be chosen through the selection of a
direction and a constant index. The geometry of the future internal grid line is automatically dis-
played when scrolling the I or J index.
Orthogonality Control: the orthogonality of the geometry can be controlled at both ends through
two different parameters:
— ratio 1: real number defining the relative distance along which the geometry of the internal
grid line is perfectly normal to the edge: 3 control points are computed at both ends of the
geometry to define the orthogonality.
— ratio 2: real number defining the tangential condition of the curve after the three first control
points and before the three last control points.
Create: when the geometry is correctly set, this button can be used to create a new internal edge.
Delete: the internal edge selected previously by the indices can be deleted by using this button.
Note that the internal edge is deleted but not its end vertices (which are attached to fixed points).

IGG™ 10-33
Grid Menu Grid menu description

10-2.16 Create Face/Project onto Surfaces (N)


Grid/Create Face/Project onto Surfaces (N) can be used to project a patch of the active face onto
the selected surfaces. Each point of the patch is projected using the normal of the active face at the
point.
The following prompt is given to choose the face or a patch of the face that must be projected:
Surface (=0) or Patch (=1)? (q)
>> 1
The following prompt is given to choose the patch number:
Patch number (1...n)? (q)
>> 1
If the active face contains only one patch, the two previous prompts will not appear.
The following prompt is given to allow the creation of the edges of the active face:
Edge Creation (y/n)? (q)
>> y
Validation Level 1, 2 or 3 (q) ?
>> 1 : projection with validation 1 implies that no check is done to validate the projected
points.
>> 2 : projection with validation 2 implies that one check is done to choose the nearest pro-
jected points (ex : to project a patch on a sphere).
>> 3 : projection with validation 3 implies that checks are done to fill the possible gaps in the
surface data. It also involves the check of validation 2. A projection ratio must be defined. It
corresponds to the highest distortion ratio admitted by the projection. A value of 10 is advised.
To exit this command, enter ’q’ in the keyboard input area and press <Enter>.

10-2.17 Create Face/Project onto Surfaces (T)


Grid/Create Face/Project onto Surfaces (T) can be used to project a patch of the active face onto
the selected surfaces. Each point of the active face is projected using a specified projection vector.
The following prompt is given to choose the face or a patch of the face that must be projected:
Surface (=0) or Patch (=1)? (q)
>> 1
The following prompt is given to choose the patch number:
Patch number? (q)
>> 1
If the active face contains only one patch, the two previous prompts will not appear.
The following prompt is given to allow the creation of the edges of the active face:
Edge Creation (y/n)? (q)
>> y
Then, the projection vector must be entered:
Projection vector (q) ?
>> 1 0 0
Validation Level 1, 2 or 3 (q) ?
>> 1 : projection with validation 1 implies that no check is done to validate the projected points.

10-34 IGG™
Grid menu description Grid Menu

>> 2 : projection with validation 2 implies that one check is done to choose the nearest pro-
jected points (ex: to project a patch on a sphere).
>> 3 : projection with validation 3 implies that checks are done to fill the possible gap in the
surface data. It involves also the check of validation 2. A project ratio must be defined. It corre-
sponds to the highest distortion ratio admitted by the projection. A value of 10 is advised.
To exit this command, enter ’q’ in the keyboard input area and press <Enter>.

10-2.18 Create Face/Rotate Edge


Grid/Create Face/Rotate Edge is used to create the active face by rotation of the edge 1 of this
face. It ensures that the face points are exactly on a specified cylinder, which is not necessarily the
case with a 4Bnd interpolation. Firstly, create a new face (see the Insert New Face icon of the
Quick Access Pad/Grid/Create page) before selecting this option. The edges of this face must
contain only one segment. A face of an existing block cannot be used, otherwise the face created by
rotation will be deconnected from the other block faces. After the single face has been created by
rotation, the creation of the block can be completed by a face expansion (Grid/Create Block/
Extrude Normally menu item).
The following prompt is given to choose the rotation axis vector:
Rotation axis vector : (q)
>> 0 0 1
The following prompt is given to choose the anchor point of the axis:
Center of rotation : (q)
>> 1 0 0
The following prompt is given to choose the rotation angle in degrees:
Rotation angle -360...360 deg : (q)
>> 20
To exit this command, enter ’q’ in the keyboard input area and press <Enter>.

10-2.19 Create Face/Copy Face


Grid/Create Face/Copy Face is used to copy the active face from another existing face. The fol-
lowing prompt appears to specify the reference face from which to copy:
<1> to select a reference face, <2> to perform the copy <3> to quit.
The reference face is selected by left-clicking near an edge of the face. When several edges lie at
the same position, the left-click operation must be repeated until the proper face is selected (high-
lighted in white).
The copy operation takes effect when middle-clicking the mouse and is performed in order to
obtain a common axis system for both faces (active and reference one). After the operation, the
active face has the same shape, same orientation and segment division as the reference face. All the
edges connected to the active face are automatically following the new position.

10-2.20 Create Face/Copy Face Range


Grid/Create Face/Copy Face Range... is used to copy part of a face grid onto another face or
patch, possibly with a different orientation. In the following example, the face 4 of block 1 is cre-
ated and the face 1 of block 2 is created by copying a part of the face 4, with the proper orientation.

IGG™ 10-35
Grid Menu Grid menu description

Block 2
K
J
Face 1 of block 2
I Face 4 of block 1

Block 1

J
K I

FIGURE 10.2.20-1 Copying a face range onto another face

The following dialog box will appear:

Reference face indices Target face indices

Reference face range


Click on the border to
change the current limit

Relative orientation of
reference and target face

FIGURE 10.2.20-1 Copy Face Range dialog box

The first thing to choose is a reference and a target face between which the copy will proceed. They
are selected by entering their indices (Block and Face indices) in the From and To boxes respec-
tively.
Then the reference face range which will be copied must be selected:
• The Patch box allows to choose an existing patch of the reference face to perform the copy. The
patch is automatically displayed in the graphics area. By default, the patch number is 0, that is
the patch corresponding to the entire reference face.
• Any range can also be selected by changing the limits of the reference face range borders. Move
the cursor to the desired border which is highlighted when the cursor is close enough. Then left-
clicking on it will open a box allowing to enter the new limits:

10-36 IGG™
Grid menu description Grid Menu

FIGURE 10.2.20-2 Changing range limits

The new limits can be entered manually or modified using the scrollers. Pressing <Enter>
applies the new limits to the range. Pressing <Escape> cancels the limit modification.
Once the range is chosen, the orientation in which the copy will proceed must be selected. When the
reference and target faces have different origin and/or local axis orientation, as in our example, the
correspondence between the axis must be specified. It is done by assigning an expression (such as
"Ilow", "Khigh") for each axis of the reference face. These expressions are determined as follows:
1. Take the first axis of the reference face.
2. Search the axis of the target face which has the same direction, that is to say X (where X is I, J
or K).
3. If the two axis have the same orientation, expression = "Xhigh", else expression = "Xlow".
4. Do the same with the second axis of the reference face to determine the second expression.
In the previous example, the relative orientation of the two faces is as indicated on the following
figure:

J I

I K
Block 2, Face 1 Block 1, Face 4

It can be seen that Face 1 axis I increasing corresponds to Face 4 axis K decreasing, while Face 1
axis J increasing corresponds to Face 4 axis I increasing. The correct relative orientation specifica-
tion should consequently be: "Klow", "Ihigh".
After pressing "Apply", IGGTM checks whether the copy is possible or not. A warning appears if
the copy cannot be performed (i.e. if the number of points for the reference face range and the target
face is different).

10-2.21 Create Block/Linear 2Bnd


Create Block/Linear 2Bnd menu item is used to create an algebraic block grid using two opposite
boundaries of the active block. The grid matches the point distributions on the active boundary and
its opposite. Other grid boundaries are computed by linear interpolation and the internal grid points
are distributed according to the user-defined point distributions between opposite boundaries.

10-2.22 Create Block/Linear 4Bnd


Create Block/Linear 4Bnd menu item is used to create an algebraic block grid using the four
boundaries of the active block. The grid matches the point distributions defined on the four bound-
aries. The active face number determines the direction of interpolation as follows:

IGG™ 10-37
Grid Menu Grid menu description

Active face Direction Block faces for interpolation


1 or 2 K 1+2+3+4
3 or 4 J 3+4+5+6
5 or 6 I 1+2+5+6

Active face

Faces used for interpolation

FIGURE 10.2.22-1 The four boundaries used for interpolation

10-2.23 Create Block/Linear 6Bnd


Create Block/Linear 6Bnd menu item is used to create an algebraic block grid using the six
boundary faces of the active block. The grid matches the point distributions defined on six bounda-
ries.
This option can also be accessed through the Quick Access Pad/Grid/Generate page.

10-2.24 Create Block/Smoothing


Grid/Create Block/Smoothing menu item is used to smooth the active block using an elliptic
solver when clicking on Smooth button. The level of smoothing can be controlled through the new
popup window by entering the Number of iterations. The smoothing is applied on all grid points
except the ones located on the faces of the block. Furthermore, the smoother is keeping the cell size
at the wall imposed by the clustering defined by the user.

FIGURE 10.2.24-1 3D Smoother Control

10-2.25 Create Block/Elliptic/Multigrid


Grid/Create Block/Elliptic/Multigrid menu item is used to create an elliptic face or block grid by
solving a Poisson type quasilinear PDE (Partial Differential Equation) with the multigrid (MG)
technique, for the active face or block depending on the Viewing Scope. When this option is
repeated, the last created grid is taken as the initial solution and solved with the current values of
MG parameters. The number of iterations for convergence is also displayed in the status area. This
item can also be used to smooth the algebraic face or block grids within a user-defined area of the

10-38 IGG™
Grid menu description Grid Menu

block (local smoothing) or completely. Multigrid parameters can be controlled using the Grid/Cre-
ate Block/Elliptic/Multigrid Parameters menu item.
The following prompts are given to specify the smoothing area for 2D/3D surface and block
grids:
Smoothing area (0) or all (1) : (q)
>> 0
In case of local smoothing, the grid indices are specified as ;
Smooth index 1 min,max 1 ... 65 (q)
>> 7 25
Smooth index 2 min,max 1 ... 41 (q)
>> 3 17
For 3D surface or block grids
Smooth index 3 min,max 1 ... 33 (q)
>> 15 33
After the initial number of user-specified iterations is completed the following prompt is given
to ask for more iterations, if the solution is not converged:
Iterate more ? ... 12 so far (q)
>> 8

10-2.26 Create Block/Elliptic/Multigrid Parameters


Grid/Create Block/Elliptic/Multigrid Parameters menu item is used to set the multigrid parame-
ters through a dialog box.

FIGURE 10.2.26-1 MG Parameters dialog box.

The range of MG level is computed and displayed on the top line to enter the desired value from a
string input box. The coarse grid correction (CGC) is performed by the red-black point relaxation
and linear interpolation. The relaxation steps before and after the CGC can be specified between 1
and 20. The number of MG cycles can also be set between 1 and 200. The tolerance for the total
error can be set within the range of 1e-10 to 1. The multigrid mode can be set to normal or full MG
and the type of cycles can be chosen as V or W cycles. The following options are available to
change the effect of control functions:

IGG™ 10-39
Grid Menu Grid menu description

P, Q (R) : include both the effect of coordinate line spacing and angle control in each curvilinear
coordinate direction
P=0, Q (R) : exclude the effect of control functions for grid points on constant I lines.
P, Q=0 (R) : exclude the effect of control functions for grid points on constant J lines.
P=Q=(R)=0 : no effect of control functions.

10-2.27 Create Block/Elliptic/SLOR


Grid/Create Block/Elliptic/SLOR menu item is used to create an elliptic surface or block grid by
solving a Poisson type quasi linear PDE with the Successive Line Over Relaxation (SLOR) tech-
nique, for active face or block depending on the Viewing Scope. When this command is repeated,
the latest created grid is taken as the initial solution and solved with the current values of SLOR
parameters. The active view is updated after each iteration to show the progress of the generation
process. The number of iterations for convergence is also displayed on the status area. This item can
also be used to smooth the algebraic surface or block grids within a user-defined area of the block
(local smoothing) or completely.
For 2D/3D surface grids, the control functions (CF) are computed by interpolation from the edges.
In Keyboard mode, the grid points on edges 3 and 4 are also shifted after the grid is solved, to con-
form to the slopes of internal grid lines near the boundaries.
The following prompts are given to specify the smoothing area for 2D/3D surface and block grids:
Smoothing area (0) or all (1) : (q)
>> 0
In case of local smoothing, the grid indices are specified as ;
Smooth index 1 min,max 1 ... 65 (q)
>> 7 25
Smooth index 2 min,max 1 ... 41 (q)
>> 3 17
For 3D surface or block grids :
Smooth index 3 min,max 1 ... 33 (q)
>> 15 33
After the initial number of user-specified iterations is completed and if the solution is not con-
verged, the following prompt is given to ask for more iterations (ranging from 1 to 200). If a value
is indicated, the same prompt is repeated in a loop, after the additional iterations are completed:
Iterate more ? ... 20 so far (q)
>> 4

10-2.28 Create Block/Butterfly


Create Block/Butterfly... opens the "Butterfly" dialog box which is used to automatically create a
butterfly topology in a block. Refer to chapter 5 for a complete description of this dialog box and
for information about the butterfly topology.
This tool can also be accessed through the Quick Access Pad/Grid/Create page.

10-2.29 Create Block/Change axis


Grid/Create Block/Change axis menu item is used to change the axis system of the active block,
for example to transform a left handed block into a right handed block. Only right handed blocks
can be created. The active block is simply deleted and a new one is created with the same points,
topology, the same name and number, but with a different axis system. This new block has the same

10-40 IGG™
Grid menu description Grid Menu

division in patches and patch naming than the old one. Moreover, all the connections are kept (ver-
tices, edges, segments and patches connections). However, the information on faces generation
(projection, smoothing, ...) is lost. Therefore regenerating them will simply lead to a 4 Bnd interpo-
lation.
When starting this tool, a message indicating that the block must be regenerated can appear. In this
case, if the block is not regenerated, the tool will be stopped. Then, the current axis system of the
block is displayed.
The following prompt will appear:
Place IJK Axis ( o = origin, s = orientation, <1> or <2> = set axis, <3> = abort)
Press <o> to change the origin of the axis system and <s> to change the orientation of the axis.
Then, press the left or middle mouse button to create the new block with a modified axis system.
Press the right mouse button or <q> to stop this tool without creating the new block and deleting the
old one.

10-2.30 Create Block/Split


Grid/Create Block/Split... menu item is used to split a block along a face mesh (I, J or K) in order
to obtain two new blocks.
The features and details about block splitting, as well as the limitations, are described here after.
The splitting operation will yield several new blocks with the same grid point coordinates as the ini-
tial block and the topology of the new blocks will closely follow the one of the initial block (i.e. if
an additional vertex is present in the initial block, it will also be present in a new created block, at
the same position).
Upon successful splitting of a block, the new split blocks will be such that:
• The two split blocks are fully connected at their interface: vertices, edges, segments and
patches connection.
• All the topological connections with the adjacent blocks are recovered: vertices, edges and
segments.
• The periodicity of the original block is recovered.
• The division into patches, as well as their type, name and connection are recovered.
• When a patch overlaps the splitting region, it results into two segmented patches: one in the
first split block and the other in the second split block. If the original patch is connected
(CON OR PER connection type), its connected patch is also divided, and the connection
between these segmented patches is established. For NMB and PERNM connection types,
such a division is not applicable and is not performed. Therefore the type of the original
patch is set to UND in this case.
• All the FNMB connections involving the block to be split are recovered.

10-2.30.1Limitations
• Information about faces generation (projection, smoothing, ...) is lost.
• A butterfly block (a parent block containing a butterfly topology) cannot be split.
• Block patches connected to a butterfly block are disconnected. The connection should be
re-established after splitting.
• As said before, the division of connected patches cannot be performed for NMB and
PERNM connections.

IGG™ 10-41
Grid Menu Grid menu description

• It is up to the user to take care about multigrid levels. Indeed, no checks are done on
block and patch sizes that will be obtained. Therefore, even if the original block has several
multigrid levels, the split blocks can have no multigrid levels if indices of splitting are
unproperly chosen.
This tool opens a dialog box allowing the selection of the face mesh where the block will be split. If
the active block is not generated or has been modified since the last generation (by moving a vertex,
for example), the following message will appear:

FIGURE 10.2.30-1 Message indicating that the block may be regenerated

 It asks for block regeneration. If the block is not generated and that the "no" button is
pressed, the dialog box of the next figure will appear but without being able to do some-
thing except pressing the "Close" button. If the block has been modified since the last
generation (a block is not automatically regenerated after modifications of its topology)
and that the "no" button is pressed, the mesh that will be interactively displayed (see
below) may look quite strange.

Active Block

Constant Index
I,J or K

Split block

FIGURE 10.2.30-2 Split block dialog box

The Block box allows to choose the active block which will be split. Next to this box, the active
block name and the grid points number in each direction are displayed.
The I, J and K scrollers allow to interactively sweep the grid along the three directions. While
scrolling, surface grids are displayed for each constant index direction.
When pressing the Split button, the selected block is split at the face mesh currently visible and the
dialog box is closed.
This tool can also be accessed through the Quick Access Pad/Grid/Insert/Edit page.

10-42 IGG™
Grid menu description Grid Menu

10-2.31 Create Block/Split at internal faces


Grid/Create Block/Split at internal faces menu item is used to split the active block along all its
internal faces. The splitting operation is performed until there is no remaining internal face in the
split blocks. Therefore more than two new blocks can be created at once.
The features and the limitations of this option are identical to the ones of the "Grid/Create Block/
Split" menu item and are described in the previous section.
This tool can also be accessed through the Quick Access Pad/Grid/Insert/Edit page.

10-2.32 Create Block/Merge


Grid/Create Block/Merge menu item is used to merge two blocks having two faces fully con-
nected to obtain a new block. The two fully connected faces will be transformed in an internal face
in the new block. "Fully connected" means that an entire face must be completely connected to
another face at all levels: vertices, edges, segments and patches must be connected. This means that
a face cannot be connected to only a part of another face.
The merging operation proceeds in two main steps:
• A re-orientation of the two blocks to be merged in order to obtain a same axis system for
both blocks.
• The merging of the two blocks having the same axis system.
The first mandatory procedure means that the axis system of the final merged block can be different
than the one of the two original blocks.
The features and details about blocks merging, as well as the limitations, are described here after.
Upon successful merging of the two blocks, the new block will be such that:
• All the topological connections with the adjacent blocks are recovered: vertices, edges and
segments.
• The division into patches, as well as their type, name and connection are recovered.
• All the FNMB connections involving the two blocks to be merged are recovered.
• The merging operation does not alter the block. This means that the final merged block does
not have to be regenerated after merging.

10-2.32.1Limitations
• The blocks to be merged cannot contain internal edges or faces aligned along the merging
direction.
• Information about faces generation (projection, smoothing, ...) is lost.
• A butterfly block (a parent block containing a butterfly topology) cannot be merged.
• Block patches connected to a butterfly block are disconnected. The connection should be
re-established after merging.
• Block repetition is lost if the periodicity is different for the two blocks to be merged.
• The option is only available in 3D.
After selection of this tool, the two fully connected faces indicating the blocks to be merged must
be selected. The following prompt will appear:
Select Face (<1> to select - <2> to acknowledge - <3> to quit)

IGG™ 10-43
Grid Menu Grid menu description

Left-click on the desired face and middle-click to confirm the selection. Then the connected face is
detected automatically and the merging will proceed. If the selected face is not fully connected to
another one, the following message will appear:

FIGURE 10.2.32-1 A fully connected face cannot be found for selected face

If one of the blocks to be merged is not generated or has been modified since the last generation (by
moving a vertex, for example), the following message will appear:

FIGURE 10.2.32-2 Message indicating that the block may be regenerated

It asks for block regeneration. If the "no" button is pressed, the merging will not be performed.
After the merging has proceeded, the following prompt will appear, allowing the selection of a face
to perform another merging operation:
Select a New Face to merge, <3> to quit
This tool can also be accessed through the Quick Access Pad/Grid/Insert/Edit page.

10-2.33 Create Block/Sweeping


Grid/Create Block/Sweeping menu item is used to create a block grid by sweeping a base grid
(arbitrary face) along an arbitrary edge (sweep edge). The base face that will be swept must be a
boundary face (so an internal face cannot be swept) and must be active. When clicking on this menu
item, a sweep edge will appear in a default position for the active face (except for internal faces, in
which case a warning message will appear). The following prompt is given in the message area:
Move sweep edge vertices ( <2> = sweep, q = quit)
The sweep edge is just like another one except that it exists and is visible only for the active face
used to create a block by sweeping. So, all operations commonly available can be performed on this
edge (vertices positioning, vertex insertion, control of the grid points distribution, pop-up menus
accessible, ...).
The number of points and their distribution in the sweeping direction will be those of this sweep
edge. When this one is correctly positioned, press the middle mouse button. The following prompt
will appear, allowing to combine the sweeping with rotation or scaling:
T(1), TR(2), TS(3) or TRS(4) : (q)
>> 4

10-44 IGG™
Grid menu description Grid Menu

Simple sweeping is indicated as a translation (1). Combinations with rotation (2), scaling (3) or
both (4) require the following data:
Angle (-360...360 deg) : (q) (for 2 and 4)
>> 60
Scale factor (q) (for 3 and 4)
>> 0.5
The values of angle and scale factor are global values between the first and the last grid points of
the sweep edge, so that smaller rotations or scaling will be performed for each grid point of the
sweep edge. The rotation axis is the sweep edge tangent at each grid point and the origin for the
scaling is each sweep edge grid point.
During the sweeping, the boundary edges are created using the boundary grid nodes of the gener-
ated block. The sweep edge can be placed in any position and must not necessarily be perpendicular
to the active face. On the other hand, some care must be taken when placing the sweep edge and
when entering the rotation and scaling values because some special configurations can create dis-
torted meshes.
Once a block has been created by sweeping, another use of this tool will display the active face
sweep edge as positioned during the previous creation of the block.

 It is strongly recommended to be careful when using this tool because a lot of operations
available outside this tool can be done so that it can easily be forgotten that a sweeping is
made. Look at the message area to see the related prompt.
To quit this tool: if the middle mouse button has not been pressed yet, press <q>, else enter ’q’ in
the keyboard input area and press <Enter>. The sweep edge will disappear.
This tool can also be accessed through the Quick Access Pad/Grid/Create page.

10-2.34 Create Block/Extrude Normally


Grid/Create Block/Extrude Normally menu item is used to create a block grid by expansion of
the active face with a user-specified distance. In fact, each grid point of the active face is translated
along the local normal to the face with the user-specified distance. The number of grid points and
their distribution in the expansion direction is set as follows:
• The parent block of the active face has only this face created (other faces are created by using
tools as this one or Grid/Create Block/Rotation, ...): the number of grid points is the default
one (9) and the distribution is uniform.
• The parent block of the active face has all its boundary faces created: the number of grid points
and their distribution are those of the reference edge determined as follows:

Active face Reference edge


Faces 1 or 2 Face 3, Edge 3
Faces 3 or 4 Face 1, Edge 3
Faces 5 or 6 Face 1, Edge 1
During the expansion, the boundary edges can be created using the boundary grid nodes of the gen-
erated block:
Edge creation (y/n)? (q)
>> y
The expansion distance is defined using the keyboard input area:
Translation distance : (q)
>> 1

IGG™ 10-45
Grid Menu Grid menu description

To quit this command, enter ’q’ in the keyboard input area and press <Enter>.
This tool can also be accessed through the Quick Access Pad/Grid/Create page.

10-2.35 Create Block/Translation


Grid/Create Block/Translation menu item is used to create a block grid by translating the active
face along an arbitrary vector (translation vector). The number of grid points and their distribution
in the translation direction is set as follows:
• The block to which the active face belongs has only this face created (other faces are created by
using tools as this one or Grid/Create Block/Rotation, ...): the number of grid points is the
default one (9) and the distribution is uniform.
• The block to which the active face belongs has all its boundary faces created: the number of grid
points and their distribution are those of the reference edge determined as follows:

Active face Reference edge


Faces 1 or 2 Face 3, Edge 3
Faces 3 or 4 Face 1, Edge 3
Faces 5 or 6 Face 1, Edge 1
The translation vector is defined by using the keyboard input area. The translation (T) can be
combined with rotation (TR), scaling (TS) or both rotation and scaling (TRS).
During the translation, the boundary edges can be created using the boundary grid nodes of the gen-
erated block:
Edge creation (y/n)? (q)
>> y
Translation (1) can be combined with rotation (2), scaling (3) or both (4) as follows:
T(1), TR(2), TS(3), TRS(4) (q)
>> 4
Translation vector (q)
>> 1 1.5 5
For rotation or scaling, the vector origin can be specified as:
Origin (q) ( for 2, 3 and 4)
>> 1 1 0
The rotation axis is equal to the translation vector. The rotation angle can be given as :
Angle (-360...360 deg) (q) ( for 2 and 4)
>> 60
The scale factor is given for all index directions as a single value:
Scale factor (q) ( for 3 and 4)
>> 0.5
Next, IGG™ will ask to create the geometry.
Create Geometry ? (y/n) (q)
>> y
This geometry consists of NURBS surfaces representing the lateral faces of the block. It is strongly
advised to create these surfaces so that any later modification of a vertex of the block will automat-
ically map the touched edges onto these surfaces. Without these surfaces, the touched edges (or any
new internal grid lines) would be drawn as straight lines.

10-46 IGG™
Grid menu description Grid Menu

After the creation of the block grid, it is possible to intersect a selected geometry surface and adapt
the new block according to the intersection. The following prompt is given to ask for intersection:
Intersect selected surface ? (y/n) (q) (only for 1)
>> y
The geometry surface must have been previously selected using the Geometry/Select/Surfaces
menu item to use this option.
To quit this command, enter ’q’ in the keyboard input area and press <Enter>.
This tool can also be accessed through the Quick Access Pad/Grid/Create page.

10-2.36 Create Block/Rotation


Grid/Create Block/Rotation menu item is used to create a block grid by rotating the active face
grid around a coordinate axis by a user-specified angle. The required inputs are entered from the
keyboard input area.
During the rotation, the boundary edges can be created using the boundary grid nodes of the gener-
ated block:
Edge creation (y/n)? (q)
>> y
The following prompts are given to specify the rotation parameters:
Rotation axis : (x=0, y=1, z=2) (q)
>> 1
Angle (-360...360 deg) (q)
>> 60

Next, IGG™ will ask to create the geometry.


Create Geometry ? (y/n) (q)
>> y
This geometry consists of NURBS surfaces representing the lateral faces of the block. It is strongly
advised to create these surfaces so that any later modification of a vertex of the block will automat-
ically map the touched edges onto these surfaces. Without these surfaces, the touched edges (or any
new internal grid lines) would be drawn as straight lines.
After the creation of the block grid, it is possible to intersect a selected geometry surface and adapt
the new block according to the intersection. The following prompt is given to ask for intersection:
Intersect selected surface ? (y/n) (q)
>> y
The geometry surface must have been previously selected using the Geometry/Select/Surfaces
menu item to use this option.
To quit this command, enter ’q’ in the keyboard input area and press <Enter>.
This tool can also be accessed through the Quick Access Pad/Grid/Create page.

10-2.37 Grid Density/Clustering


Grid/Grid Density/Clustering... is used to modify the grid points clustering along the segments
defining the blocks. This option opens a dialog box providing different clustering schemes. It
allows also to define clustering groups which are groups of segments and for which the same clus-
tering is applied to all the segments contained in the group.

IGG™ 10-47
Grid Menu Grid menu description

This tool can also be accessed through the Quick Access Pad/Grid/Insert/Edit page.

Clustering group name

User inputs according


Clustering types to clustering type

FIGURE 10.2.37-1 Clustering dialog box

At the opening, the dialog box will be updated according to the active segment. If this one is con-
tained in a group, the corresponding group name will be displayed in the Group area. Otherwise
"NONE" appears in this area. When changing the active segment, the settings in the dialog box are
also automatically updated to reflect the clustering currently defined.
A list of the existing clustering groups can be displayed by left-clicking on the arrow of the
"Group" area. Left-click on one of the groups to display its clustering information. The first seg-
ment of the group is automatically activated and all the segments of the group are highlighted in the
IGG™ graphics area.
The dialog box contains in the left part a list of the different clustering types available. Left-click on
the desired one to select it. The right part of the box is automatically updated according to the type
and displays the necessary inputs. The chosen clustering will be applied on the active segment or on
all its group by pressing respectively the Apply to seg or the Apply to group button. This button is
deactivated if the active segment is not contained in a group.
When changing the active segment, if it is not contained in a group and that its clustering type is
uniform, the current clustering type and the clustering values of the dialog box are not changed to
be able to apply on the active segment the same clustering set previously. Therefore the same clus-
tering values do not have to be entered manually a second time. To indicate that the clustering type
of the active segment is different than the one displayed in the dialog box, the message "Current
distribution is uniform" appears at the bottom part.
The Active segment info area displays useful information about the active segment: its number of
points, its multigrid level and the maximum expansion ratio of its grid points distribution. Moreover
the Clustering info... button gives access to a dialog box allowing to calculate optimum settings for
the segment (distribution parameters, number of points, maximum expansion ratio). This dialog
box is described after in a specific section.
The following sections describe the different clustering types, how to define clustering groups, the
convergence of the clustering computation and how to calculate optimum settings for a segment.

10-48 IGG™
Grid menu description Grid Menu

a) Clustering types
Uniform
This type is used to obtain a uniform grid points distribution on the segment (grid points equally
spaced on segment).
Undefined
This type indicates that the segment has no specific distribution (for example when copying a distri-
bution from one segment to another). In fact this type is informative and obviously cannot be
applied explicitly to a segment or a group.
At Start
This type allows to impose the cell size at the beginning of the segment. The size of the first seg-
ment cell is requested in absolute units. Other cells sizes will follow a geometric progression.
At End
This type allows to impose the cell size at the end of the segment. The size of the last segment cell
is requested in absolute units. Other cells sizes will follow a geometric progression.
At Both Ends
This type allows to impose the cell size at the beginning and at the end of the segment. The size of
the first segment cell, equal to the size of the last segment cell, is requested in absolute units. Other
cells sizes will follow a geometric progression.
At Both Ends 2
This type allows to impose the cell size at the beginning of the segment, the end or both with a
number of constant cells between the end points. The sizes of the first segment cell and of the last
segment cell are requested in absolute units. Enter 0 for the start spacing to impose only the size of
the last segment cell. Similarly enter 0 for the end spacing to impose only the size of the first seg-
ment cell.
Hyperbolic Tangent
This type allows to impose the cell size at the beginning and at the end of the segment. The sizes of
the first segment cell and of the last segment cell are requested in absolute units.
The advantage of this type is that it always converges, even with nonsense values for specified cell
sizes. On the other hand the specified cell sizes are not exactly respected by the distribution.
Boundary Layer
This type is used when knowing an approximation of the boundary layers thickness (at the end
points of the segment), as well as the distance of the first cell (y+) in these layers and the desired
number of grid points in each layer. The distribution in the boundary layers will follow a geometri-
cal progression, while the distribution in the intermediate region will be made as smooth as possi-
ble.
Curvature
This type is used to compute a clustering distribution function of the segment curvature. Two
parameters can be used to customize the clustering: the curvature weight and the maximal curvature
ratio. When the ratio of segment curvature extrema is higher than the maximum curvature ratio, the
grid points density is limited and is set to uniform. A value of 50 is advised. The curvature weight is
used to decrease or increase the influence of the segment curvature on the grid points density.

IGG™ 10-49
Grid Menu Grid menu description

b) Clustering groups
The features of this segment grouping are listed below:
• A segment will be contained only in one group (a segment has obviously only one distribution).
Therefore if a segment is already present in a group and is inserted in a new group, it will be
removed from the first group.
• In the same way, connected segments will be included in the same group (in the group of the ref-
erence segment chosen). Therefore when inserting or removing a segment connected to other
ones, these will be automatically inserted/removed without need to select them.
• At a group creation, the initial clustering chosen for the whole group will be the one of the first
segment of the group.
• If a segment belongs to a group and that a clustering is applied only on this segment and not on
the whole group, the segment will be removed from the group.
The clustering groups are managed (created, modified and deleted) through a dedicated dialog box
shown below, accessed by left-clicking on the Define/Edit group button of the "Clustering" dialog
box.

List of segments in
the group

Check button allowing


selective visualization of
segments

FIGURE 10.2.37-2 Clustering groups dialog box

This dialog box contains a list of the clustering groups defined in the current project. Each group
name is preceded by two buttons. Left-clicking on the first one toggles the segment list of the corre-
sponding group. Left-clicking on the second one toggles the segments of the group in the graphics
area. Each segment of a group is also preceded by a check button allowing to individually show or
hide the segment. Segment names are based on their Block, Face, Edge and Segment indices.
Groups are managed through the buttons at the bottom of the dialog box or through pop-up menus
accessed by right-clicking on an item in the list.
The Create button allows to create a new group. An additional entry will be opened to enter the
group name. Then the group will be added to the list and its filling will proceed just as with the
"Modify" button, described below.
The Delete button allows to delete the selected group. A group is selected by left-clicking on its
name in the list. Several groups can be selected at once in the following ways:
• While holding the <Ctrl> key down, select the desired group in the list.
• While holding the <Shift> key down, select two groups delimitating a range of groups.
• While pressing the left mouse button, drag the mouse and release the left button to select a
range of groups.

10-50 IGG™
Grid menu description Grid Menu

The Modify button allows to modify the segment list of a group (addition or removal of segments).
After the selection of this option, all the segments of the selected group are highlighted and the fol-
lowing prompt appears:
<1> Select segment, <2> Add, <d> Remove, <o> Orient = SAME, <3> Quit
Then select a segment by left-clicking on it in the graphics area. It is highlighted as well as its par-
ent block (to be able to distinguish segments lying in the same place).
• The group clustering can be applied on the segment with two orientations: same or reverse.
Select the desired one by pressing <o>. The prompt and the segment highlight are updated
to reflect it.
• To add the selected segment in the group, middle-click.
• To remove it from the group (if already contained), press <d>.
• To quit this tool, right-click.
Editing options can also be accessed by right-clicking on a group or on a segment in the dialog box.

Group pop-up menu Segment pop-up menu

FIGURE 10.2.37-3 Pop-up menus accessed through the dialog box

For a group, the active segment can be added, the group can be modified just as with the "Modify"
button previously described and the group can be deleted.
For a segment of a group, this one can be removed from the group and the clustering distribution
can be reversed.

c) Clustering convergence
In some cases, the computation of the grid points distribution on a segment, according to the clus-
tering type, cannot converge (for example, with a type "At Start", there is no convergence if the first
cell size is greater than the segment length). Therefore the new clustering type cannot be applied to
the segment and a warning appears.
If a clustering is applied on a segment alone ("Apply to seg" button), the following dialog box will
appear:

FIGURE 10.2.37-4 No convergence on a segment

If a clustering is applied on a group ("Apply to group" button), the following dialog box will appear:

IGG™ 10-51
Grid Menu Grid menu description

FIGURE 10.2.37-5 No convergence on segments of a group

It contains the list of group segments for which the distribution cannot converge. Moreover, these
ones are highlighted in the graphics area to easily localise them. Once this warning box is closed,
all the segments of the group keep the same clustering as previously (clustering unchanged).

d) Segment optimum settings


Optimum settings can be calculated for the active segment through a dedicated dialog box shown
below, accessed by left-clicking on the Clustering info... button of the "Clustering" dialog box.

FIGURE 10.2.37-6 Clustering info dialog box

The basic idea of this tool is to impose several independent parameters and to calculate from them a
dependent variable, which can be either the expansion ratio, the segment number of points or the
distribution parameters (start or end spacing). Before doing any calculation, the clustering type that
will be used must be chosen in the top of the dialog box. The clustering types have the same name
and meaning as the ones of the "Clustering" dialog box.
The dependent variable is selected by left-clicking on the corresponding radio button. Then other
parameters can be modified. The parameters not preceded by a radio button cannot be chosen as
dependent variable. Pressing <Enter> or the Compute button will recalculate the dependent varia-
ble according to the new parameters. It is also recalculated when the active segment is changed.
The following variables can be computed:
• Expansion ratio: it is simply the computation of the expansion ratio of the distribution obtained
from the other parameters.
• Number of points: the minimum segment number of points is calculated in order to satisfy the
specified expansion ratio and distribution spacing(s). For this variable, the multigrid level can
be chosen, leading to a calculated number of points with at least the selected multigrid level.

10-52 IGG™
Grid menu description Grid Menu

• Spacing at start/at end: the minimum spacing is calculated in order to satisfy the specified
number of points and expansion ratio.
For example, as shown in the previous figure, the minimum number of points can be calculated to
satisfy an imposed maximum stretching ratio of 2, with a "Hyperbolic tangent" clustering type and
a start - end spacing of 1e-5.
In some cases, the computation of the dependent variable, according to the clustering type, cannot
converge (for example, with a type "At Start", there is no convergence if the first cell size is greater
than the segment length). Therefore the message "Computation not converged" appears at the bot-
tom part of the dialog box.

 It is important to note that this dialog box is not linked to the "Clustering" dialog box. It
has to be considered as an "information" box and therefore any modification of its
parameters will have no direct effect on the mesh or the segment clustering. Therefore a
computed optimum parameter must be applied externally (for example, to apply a com-
puted spacing on a segment, the value must be introduced manually in the "Clustering"
dialog box).

10-2.38 Grid Density/Copy


Grid/Grid Density/Copy... is used to copy the grid points distribution from a segment, an edge or
a face onto another one. If the target entity is connected, the copy is automatically repeated for the
connected segments. When selecting this option, the following dialog box is opened.

FIGURE 10.2.38-1 Copy Distribution dialog box.

It allows to specify the reference (From) and target (To) entities by entering their block, face, edge
and segment indices.
By omitting the segment number in the From and To boxes, one can copy the distributions of a
complete edge onto another edge, even if they have different number of segments. By omitting the
segment and edge numbers in the From and To boxes, one can copy the distributions of a complete
face.
Examples:
• Specifying From: 1 3 2 2 and To: 2 1 2 1 will copy the distribution from segment (1 3 2 2) to
the segment (2 1 2 1).
• Specifying From: 1 3 2 and To: 2 1 2 will copy the distribution from the edge (1 3 2) to the
edge (2 1 2).
 Copying distributions from an entity to an other is performed by copying the distribution

IGG™ 10-53
Grid Menu Grid menu description

function, not the basic clustering type (as shown in the Clustering dialog box). This
implies that the target segments will automatically be assigned an Undefined type.

 When copying a distribution onto a segment that is in a clustering group, the segment is
automatically removed from the group.
When specifying segments as reference and target entities, grid point distributions can be copied in
the same or reverse directions.

Reverse Same
direction direction

Segment Grid point

FIGURE 10.2.38-2 Copying with Reverse or Same orientation

It is also possible to specify the reference and target segments by selecting them interactively with
the mouse. Indeed, when opening the dialog box the following prompt appears:
<1> Select reference segment, <2> Acknowledge
Then, to specify the reference and target segments:
1. Select the desired reference segment with the left mouse button. When the proper segment is
selected, middle-click to take it as reference segment. Its indices will appear in the From box.
Then, the following prompt appears to select the target (To) segment:
<1> Select target segment, <2> Acknowledge
2. Repeat step 1 to select the target segment. When the middle button is pressed, the segment indi-
ces will appear in the To box and the following prompt will appear:
<1> Press Apply or Select reference segment, <2> Acknowledge
3. Press the Apply button in the dialog box to perform the copy
or
4. proceed to a new segment selection by repeating the steps 1-2.

10-2.39 Grid Density/Move Pt


Grid/Grid Density/Move Pt is used to modify interactively the location of a grid point of the
active segment. With this option, a grid point can be picked and moved on the segment by using the
mouse. When a point is picked to be moved, it is surrounded by a red circle as well as its neigh-
bours. The red circles indicate the limits inside which the point can be moved. Please note that this
option remains active until selecting a new menu or disabling the option by pressing <q>. The fol-
lowing prompt is given to select the desired point:
Select a node to modify (q)
Move the mouse inside the graphics area and select a grid point of the active segment using the left
mouse button. The three red circles will appear.
Move the selected point (q)
The point can be moved inside the range indicated by its neighbours. When the correct location is
found, left-click to perform the action.

10-54 IGG™
CHAPTER 11: View Menu

11-1 Overview
The View menu options provide a set of display options to visualize the grid boundaries, surface
and block grids, repetition, hidden lines and rendered surfaces. The viewing parameters and pro-
jection, as well as window attributes can also be modified interactively. Other options include the
text insertion and deletion.

11-1.1 Views
IGGTM allows to display graphic entities in up to four views. In each view, different entities can be
visualized in different ways. By default, only one view is visible in full screen and has a default 3D
camera position.
Only one view is active at a time, and is recognized by its red border. The active view can be
changed by selecting the desired view with the left mouse button.
The views position and camera orientation inside the views are controlled with the View/View
Position... menu.

11-1.2 View repetitions


When dealing with projects with some kind of symmetry (i.e. mirror plane, rotating symmetry,...),
the grid needs to be generated for only one part of the geometry. IGGTM allows to get a complete
visual representation of the whole mesh by applying a repetition to the graphic objects of the active
view.
The view repetition uses the information specified in the Grid/Periodicity... menu and is controlled
by the menu View/Repetition..., which can toggle the repetition on or off.

IGG™ 11-1
View Menu View menu description

11-2 View menu description


11-2.1 Patch Viewer
View/Patch Viewer... is used to visualize selected patches in wireframe or solid mode to produce
full rendered pictures of the grid. The dialog box provides control over the colour and transparency
effects for each patch.

Patch browser, allowing


to select the current patch(es)

Visibility control during


transparency setting

Solid visualization
control
Wireframe visualization control

Show the selected


patches as wireframe
Hide solid for
selected patches

Hide wireframe for Show the selected patches


selected patches as solid

FIGURE 11.2.1-1 Patch Viewer dialog box

Patch Browser:
The patch browser (see figure below) lists all the patches in the grid, according to the current Block,
Face, Patch or Type filters. In this browser, one or more patches can be selected with the left mouse
button.
It is possible to select several patches at once in the following way:
• While holding the <Ctrl> key down, select the desired patches in the browser.
• While holding the <Shift> key down, select two patches delimiting a range of patches.
• While pressing the left mouse button, drag the mouse and release the left button to select a
range of patches.

11-2 IGG™
View menu description View Menu

Filters:
The different filters allow to display specific patches of a grid in the browser while hiding the oth-
ers. The Block, Face and Patch filters work together and allow to display patches by indices. For
example:
Block Filter: ’*’
Face filter: ’1 2’
Patch filter: ’*’
shows in the browser all the patches of faces 1 and 2 of all the blocks. ’*’ means ALL. The Face fil-
ter allows also to select a boundary face by choosing imin, imax, jmin, jmax, kmin or kmax. These
items can be shown and selected by left-clicking on the Face filter arrow.
The Type filter is very useful to list all the patches of a given type (according to the other filters). In
particular it allows to easily identify the periodic and connected patches (PER, PERNM, CON,
NMB) and the patches that have not any type yet (UND).
Patch visualization:
To assign a color to one or several patches:
1. Select the patches in the patch browser,
2. Select one color from the predefined colors or from customized colours (Ed. button),
3. Press the Show Grid (wireframe representation) or the Show Solid (solid representation)
button.
To hide the patches representation, proceed in the same way by pressing the Hide Grid or the Hide
Solid button.
It is possible to make some patches semi-transparent by specifying a transparency factor on the
selected patches. The transparency factor can vary from 0 (no transparency) to 1 (highly transpar-
ent). By default, the transparency factor is only applied when pressing the Show Solid button. This
default may be overwritten by activating the Full Visibility toggle button. In this case, the transpar-
ency effect will be recomputed each time the transparency slider is moved.
Since the rendering of transparent patches is computationally intensive and may take up to several
minutes, it is not advised to use the Full Visibility flag on large grids.

11-2.2 Sweep Surfaces


View/Sweep Surfaces... is used to scroll the constant grid index surfaces within 3D grid blocks. If
the active block is not generated or has been modified since the last generation (by moving a vertex,
for example), the following message will appear:

FIGURE 11.2.2-1 Message indicating that the block may be regenerated

IGG™ 11-3
View Menu View menu description

 It asks for block regeneration. If the block is not generated and that the "no" button is
pressed, the dialog box of the next figure will appear but without being able to do some-
thing except pressing the "Close" button. If the block has been modified since the last
generation (a block is not automatically regenerated after modifications of its topology)
and that the ’no’ button is pressed, the mesh that will be interactively displayed (see
below) may look quite strange.
Mesh sweeping is done through the following dialog box:

Active block

Constant index
I, J or K

FIGURE 11.2.2-2 Sweep Surfaces dialog box.

The Block box allows to choose the active block in which the surface grids will be scrolled. Next to
this box, the active block name and the amount of grid points in each direction (according to the
coarse grid levels selected) are displayed.
The I, J and K scrollers allow to interactively sweep the surface grid along the three directions.
While scrolling, surface grids are displayed for each constant index direction.

11-2.3 Sweep Cells


View/Sweep Cells... is used to scroll the individual grid cells within 3D grid blocks. If the active
block is not generated or has been modified since the last generation (by moving a vertex, for exam-
ple), the following message will appear:

FIGURE 11.2.3-1 Message indicating that the block may be regenerated

 It asks for block regeneration. If the block is not generated and that the "no" button is
pressed, the dialog box of the next figure will appear but without being able to do some-
thing except pressing the "Close" button. If the block has been modified since the last
generation (a block is not automatically regenerated after modifications of its topology)
and that the ’no’ button is pressed, some cells that will be displayed may look quite dis-
torted.

11-4 IGG™
View menu description View Menu

A dialog box is used to scroll in I, J and K index directions.

FIGURE 11.2.3-2 Sweep Cells dialog box.

11-2.4 Show Unmapped vertices


View/Show Unmapped vertices is used to show the vertices which are not mapped on any geome-
try entity or which are mapped on curves automatically created by IGG™ (i.e. when extruding a
new block). It is useful for templates that must be successfully applied to similar geometries, where
the vertices of the blocks should be placed on the input curves and surfaces.

 IGG™ cannot currently detect whether a curve or surface is imported from a CAD file or
explicitly created within IGG™. This tool will consequently not flag vertices lying on
such entities.
Right-click to quit this tool.

11-2.5 Coarse Grid


View/Coarse Grid is used to set the active coarse grid levels of the active block or grid for all the
views. To select the scope (active block or grid), set the viewing scope (see the Quick Access Pad/
View/Grid page description) to Block or Grid mode. The active coarse grid levels are taken into
consideration while:
• displaying the block faces and BC patches on all active views,
• saving the block or face coordinates,
• scrolling the block surface grids or cells.
These graphical representations are automatically updated after each change to the coarse grid lev-
els.
The finest grid level is identified as 0. The smallest number of grid points for coarse levels is 2. The
coarsest level is computed and updated in each index direction separately. The keyboard input area
is used to enter the desired levels within available ranges.

IGG™ 11-5
View Menu View menu description

A different coarse grid level can be specified in each grid direction. The following prompt is given
to specify the coarse grid levels:
Levels ( 0 / 3, 0 / 4, 0 / 2 ) (q)
>> 2 2 1
To quit this command, enter ’q’ and press <Enter>.

11-2.6 Repetition
View/Repetition... opens the following dialog box to control the repetition of the blocks on the
active view:

FIGURE 11.2.6-1 View Repetition dialog box

For each block, the number of repetition desired can be set in the Nb Repet entry. The repetition of
all blocks can be displayed or hidden respectively by pressing the Show or Hide button.
To perform a repetition, IGGTM takes the information about the periodicity of each block (angle,
rotation axis,...) in the Grid/Periodicity dialog box. By default, the repetition is not displayed.

11-2.7 View Position


View/View Position... is used to modify the configuration and the orientation of the active view in
IGGTM. Up to four views can be displayed at the same time in the graphics area.
By default, only one view appears, in isoparametric orientation. The windows dialog box is opened
to modify the settings of the position and orientation in the active view.

Position of the active view


in the IGGTM graphics area
Camera orientation in
the active view

Modification of the view position


or camera orientation takes effect
after pressing Apply.

FIGURE 11.2.7-1 View Position dialog box.

11-6 IGG™
View menu description View Menu

The position can be specified as the original, full screen, half top, half bottom, half right or half left
of the screen:
• The original position is used to display four views in the graphics area.
• The full position displays the active view in all the graphics area.
• Half top, half bottom, half right or half left displays the active view in the corresponding half
part of the graphics area.
The orientation can be XY, XZ, YZ or XYZ. The Apply button is used to update the active view.

11-2.8 Face Displacement


View/Face Displacement menu option is used to change the shift factor of the active view.
In fact, when the block face grids are visualized in both wireframe and solid modes (shading), a vis-
ual interference may be produced between the grid lines and the shading. For this reason, IGGTM
slightly shifts the grid lines towards the user to get a correct picture.
This shift is controlled by the shift factor of the active view. This parameter represents the amount
by which the grid is shifted along the view plane normal vector (normal to the screen), and is used
to get a correct display when combining wireframe and solid representations.
The following prompt is given to enter the shift factor within the range of 0 to 1 (default is 0.1):
Shift fac (0....1) : D=0.1 (q)
>> 0.2
Enter ’q’ and press <Enter> to quit this option.

11-2.9 View Depth


View/View Depth menu option is used to control the depth of the active view. This depth is used
for all interactive geometry editing operations with the mouse, i.e. curve creation with the mouse.
For example, when working in the X-Y plane, the Z coordinate of a point is set to the current depth.
When using the option, the new depth for the active view is requested:
New view plane const z value (q)
>> 0.
All subsequent inputs with the mouse will be at z = 0. This can be controlled by reading the cursor
coordinates in the related area.
To quit this option, enter ’q’ and press <Enter>.

11-2.10 Perspective
View/Perspective is used as a toggle to switch between orthogonal and perspective projection in
the active view. By default, the orthogonal projection is used.

 In perspective projection, the selection of curves and edges and the rendering of hidden
surfaces may not succeed.

11-2.11 Hidden lines


View/Hidden lines is used to display the grid edges of all the mesh using hidden line - hidden sur-
face algorithms. By default, the hidden line removal flag is off. It is switched on/off after each

IGG™ 11-7
View Menu View menu description

selection of this item. When hidden line removal is applied, the grid quality and solid model repre-
sentations (shading) are removed from the display to avoid any overlap of incompatible graphical
objects.

Classic representation Hidden line representation

FIGURE 11.2.11-1 Representation using hidden line/surface

When the face grids are visualized, a visual interference may be produced with the grid lines. For
this reason, IGGTM slightly shifts the grid lines towards the user to get a correct picture.
This shift is controlled by the shift factor of the active view which can be changed. This parameter
represents the amount by which the grid is shifted along the view plane normal vector (normal to
the screen), and is used to get a correct display when combining wireframe and solid representa-
tions. This parameter can be changed with the View/Face Displacement menu item.

11-2.12 Insert Text


View/Insert Text can be used to insert a descriptive text in the active view. The position of the text
must be first specified by pressing the left mouse button at the desired position in the active view.
Then the following prompt allows to enter the text and to display it at the specified position:
Text description (q)
>> DLR F5 wing - coarse grid levels 1 1 1 - 129 x 33 x 25
Press <Enter> to validate and display the text. It can be erased from the view by using the View/
Delete Text menu.
To quit this option, enter ’q’ and press <Enter>.

11-2.13 Delete->Delete Text


View/Delete Text is used to delete all the descriptive texts displayed in the graphics area.

11-8 IGG™
CHAPTER 12: Input and Output Files

12-1 Overview
This chapter describes the file formats used in IGGTM or generated by IGGTM. There are basically
two categories of files: files used to import and export a geometry or a grid (points, curves, surfaces
or blocks) and files used to save and reload an IGGTM project.
First the file formats used to import geometry and grid data are described. Then, the file structure of
an IGGTM project will be presented.

12-2 Input Data Files


The most common way of importing geometries from CAD systems is to use the File/Import/
IGES Data menu option which provides a powerful browser to inspect and import IGES files.
However, it is also possible to import simple curves, surfaces and blocks defined by arrays of points
by using the simple IGGTM data file format. This section describes the format for curves, surfaces
and blocks importation in IGGTM. By convention, IGGTM data files must have the ’.dat’ extension (or
’.dst’ extension for combined curve and surface data files).

12-2.1 Curve data files


Curve data files are used to import geometry curves defined as a set of points. IGGTM uses these
points to create either a polyline or a C-spline curve. The curves always pass through the points.
The coordinate system in which the points are described can be cartesian or cylindrical. The general
format is as follows:
curve name
coordinate_system [options]
number_of_data_points
data_point_coordinates

IGG™ 12-1
Input and Output Files Input Data Files

where:
• The first line is the curve name.
• The second line defines the coordinate system in which the points are described. Options may
follow on the same line. See description below.
• The third line contains the number of points.
• The following lines contain the points coordinates.

Coordinate System description


Possible keywords for the coordinate system are:
XYZ, RZ, ZR, THRZ, THZR, RTHZ, RZTH, ZRTH, ZTHR, R*THZ or ZR*TH
where:
— XYZ is used to define the points in cartesian coordinates,
— RZ or ZR are used to define 2D points by specifying their radius and z coordinate or vice-
versa,
— THRZ, THZR, RTHZ, RZTH, ZRTH or ZTHR are used to define points in cylindrical
coordinates. Each keyword indicates the order in which the r, theta and z values are defined.
For example ZRTH indicates that Z then R then TH are stored for each point,
— R*THZ or ZR*TH are used to define 3D points at a constant radius. For these keywords,
the radius value must be specified. For example:
R*THZ R= 3.2
Options
The options must be written after the coordinate system keyword and are used to modify the charac-
teristics of the curve. The keywords can be one of the following:
• polyline: used to define a polyline curve (default is C-spline interpolation).
 When the keyword polyline is not present, IGGTM creates a C-spline. However, when
importing the file using the File/Import/IGG Data, IGGTM uses no intermediate discre-
tization points, which will make the curve look like a polyline. The discretization can be
changed using the menu Geometry/Modify Curve/Discretization.
• degree: meaning that the angles are defined in degree (default is radian).

 In all these systems, the rotation axis must be the Z direction of the coordinate system.

 The coordinates of one point must be given on a single line.


A few examples of curve data file are shown below:
Example 1:
Simple_curve
XYZ
21
3.345 4.1234 .51234
3.435 4.1322 .54623
3. 01 4.813 1.21234
...
...

12-2 IGG™
Input Data Files Input and Output Files

Example 2:
Simple_curve
ZR polyline
21
1.6 6.234
2.05 6.478
3. 01 7.01234
...
...
Example 3:
Simple_curve
RTHZ degree
6
4.5 290 4.1234
4.8 295.5 4.1322
5.1 299.234 4.813
...
...

12-2.2 Surface data files


a) Wireframe surfaces
Surface data files contain information about the coordinates of structured surfaces in cartesian coor-
dinates and are used to export face grids from IGGTM (File/Export/Face Coor and File/Export/
Patch Coor menu items) or to import them to create block faces (File/Import/External Grid and
File/Import/Face Grid menu items). In the latter case, the number of points defined in the surface
data file must match the number of points of the face. An example of such a file is shown below:

Simple_surface
3 0 0
21 31
3.345 4.1234 .51234
3.435 4.1322 .54623
3. 01 4.813 1.21234
...
...

where:
• The first line is the surface name.
• The second line contains the three numbers 3 0 0 or 2 0 0 (for 2D surfaces where z is omitted).
The two zeros should be written as such and are reserved for future use.
• The third line contains the number of points in the I and J directions (21 and 31 in the example).
• The following lines contain the grid point coordinates (x y (z)) written by using two nested
loops over J then I:
for J = 1 to Jmax
for I = 1 to Imax
write x y (z)
end I

IGG™ 12-3
Input and Output Files Input Data Files

end J
 The z coordinate must be omitted when the second line is 2 0 0.

b) Multiple wireframe surfaces


Such files contain information about the coordinates of several structured surfaces in cartesian
coordinates and are used to create block faces (File/Import/External Grid). An example of such a
file is shown below:

# Airfoil mesh with 2 faces


3
2
21 31
15 17
3.345 4.1234 .51234
3.435 4.1322 .54623
3. 01 4.813 1.21234
...
...

where:
• The first line contains a comment, not interpreted by IGGTM.
• The second line contains the number 3 or 2, describing the surface dimension (for 2D surfaces,
z coordinate is omitted).
• The third line contains the number of surfaces. This line must be omitted from the file if there is
only one surface.
• Then for each surface a line contains the number of points in the I and J directions (21 and 31 in
the example for the first surface, 15 and 17 for the second one).
• The following lines contain the grid point coordinates (x y (z)) for each surface, written by using
two nested loops over J then I:
for J = 1 to Jmax
for I = 1 to Imax
write x y (z)
end I
end J
 The z coordinate must be omitted when the second line is 2.

c) Lofted surfaces
This type of file format allows to import lofted surfaces defined as a set of "parallel" curves. An
example of such file is shown below:

Simple_lofted_surface
3 0 3660
31
1 21
3.345 4.1234 .51234
3.435 4.1322 .54623
3. 01 4.813 1.21234

12-4 IGG™
Input Data Files Input and Output Files

...
2 21
4.8 295.5 4.1322
5.1 299.234 4.813
...
3 11
...

where:
• The first line is the surface name.
• The second line always contains the six numbers 3 0 3 6 6 0 (cannot be changed, reserved for
future use).
• The third line contains the number of curves defining the lofted surface.
• For each curve the following information must be given:
• The curve number ID and the number of points defining the curve.
• The x y z coordinate of each point.

12-2.3 Combined curve and surface data files


This file format allows to import several geometry curves or surfaces at once. It must have the ’.dst’
extension. It contains in fact a list of files (identified by their name) which will be imported into
IGGTM. Therefore their format must be compatible and can be one of the following: curve data file,
wireframe or lofted surface data file, and ’.geom’ files created by IGGTM. An example of such ’.dst’
file is shown below:

Tutorial geometry file


3
dif1.dat
test.dat
test.geom

where:
• The first line contains a comment, not interpreted by IGGTM.
• The second line contains the number of files that will be imported.
• The following lines contain the file names. The corresponding files must be located in the same
directory as the ’.dst’ file.

12-2.4 Block data files


Block data files contain information about the coordinates of structured blocks in Cartesian coordi-
nates and are used to export blocks grid from IGGTM (File/Export/Block Coor menu) or to import
external blocks generated by other grid generators (File/Import/External Grid menu). An exam-
ple of such a file is shown below:

Simple 3D Block Coords


3 0 0
21 31 9

IGG™ 12-5
Input and Output Files Input Data Files

3.345 4.1234 .51234


3.435 4.1322 54623
3.945 3.0623 1.5423
...
...

where:
• The first line contains a comment, not interpreted by IGGTM.
• The second line always contains the three numbers 3 0 0 (cannot be changed).
• The third line contains the number of points in the I, J and K directions (21, 31 and 9 in the
example).
• The following lines contain the grid point coordinates (x y z) written by using three nested loops
over K then J then I:
for K = 1 to Kmax
for J = 1 to Jmax
for I = 1 to Imax
write x y z
end I
end J
end J

12-6 IGG™
Grid file format Input and Output Files

12-3 Grid file format


The grid file structure consists of four files and is used to save and reload an IGGTM project:
• a .geom file, containing the definition of geometry points, curves and surfaces.
• a .igg file, containing the topology and grid information, such as number of blocks, number
of grid points, clustering, smoothing, projections...
• a .cgns file, containing the blocks coordinates.
• a .bcs file, containing the boundary conditions information required for the solver.
The .geom and .igg files are required by IGGTM. Without one of these, IGGTM will not be able to
reload a mesh.
The .cgns file should normally always be present since it contains the blocks coordinates. However
if IGGTM cannot find it, it will still be able to read the project (geometry + topology). The face and
block grid will have to be manually regenerated.
The .bcs file is not read by IGGTM. It is only used by external solvers.
The .geom and .igg files are internal files to IGGTM and are not intended to be read by the user. They
are consequently not explained here. The two next sections describe the .cgns and .bcs files.

12-3.1 CGNS file


The .cgns file is used to store block coordinates in binary format. The faces division into patches
and some related boundary conditions are also saved in this file but are not used by IGGTM except
when importing directly a cgns file. The boundary condition types that can be saved are the follow-
ing: UND, EXT, INL, MIR, OUT, SNG, SOL, CON connections. Other types (ROT; NMB, PER,
PERNM and full non matching connections) are saved as UND type.
The .cgns file is a direct implementation of the standard CGNS format for aerodynamic data.
CGNS (CFD General Notation System) is becoming the de-facto standard for the exchange of CFD
data among heterogeneous CFD systems. More and more CFD systems directly support the CGNS.
The CGNS provides an API to read and store CFD data onto disk. Reading and writing CGNS com-
pliant files becomes very easy since the user needs no care about the internals of reading and writ-
ing to disk or about platform compatibility. The library supporting the implementation of the API is
freely accessible in source or compiled form. More information can be found on the web site
www.cgns.org.

12-3.2 Boundary Conditions file format


The boundary condition file (.bcs file) is used to export the boundary condition settings of each
patch of a grid, defined with the Grid/Boundary Conditions menu. There exists one .bcs file for
each project. An example of a .bcs file is shown below:

NUMBER_OF_BLOCKS 2
Block_1
21 31 9
TRANSLATION 0 0 1
1
unknown PER 1 1 31 9 1 6 1 0 0 1 Block_1
1
unknown CON 1 1 21 9 2 2 1 0 0 Block_2

IGG™ 12-7
Input and Output Files Grid file format

2
unknown SOL 1 1 21 16
unknown SOL 1 16 21 31
1
unknown UND 1 1 21 31
1
unknown OUT 1 1 21 9
1
unknown PER 1 1 31 9 1 1 1 0 0 -1 Block_1
Block_2
21 15 9
ROTATION 0 0 1 0 0 0 9 1
1
unknown SOL 1 1 15 9
1
unknown CON 1 1 21 9 1 2 1 0 0 Block_1
1
unknown PER 1 1 21 15 2 4 1 0 0 1 Block_2
1
unknown PER 1 1 21 15 2 3 1 0 0 -1 Block_2
1
unknown INL 1 1 21 9
1
unknown SOL 1 1 15 9
NI_BEGIN FNMB_CONNECTION
Name: fnmb1
Projection_type: 3
Search_type: 1
Side: 1
Periodicity: 0
Tolerance: 0.0001
Left_patches: 1 1 1
Left_patches: 1 1 2
Right_patches: 2 5 1
NI_END FNMB_CONNECTION

12-3.2.1 Format description


The first line contains the number of blocks in the file (second field).
Each block is then described one after the other in the following way:
• Name of the block.
• Number of points in the I, J and K directions.
• Periodicity information of the block set with the Grid/Periodicity menu item. Periodicity infor-
mation is one of the following:
NONE no periodicity
TRANSLATION translation_x translation_y translation_z
MIRROR mirror_axis_x mirror_axis_y mirror_axis_z origin_x origin_y origin_z
ROTATION rot_axis_x rot_axis_y rot_axis_z origin_x origin_y origin_z num_repet
num_mesh_channels

12-8 IGG™
Grid file format Input and Output Files

In our example, the first block has a translation periodicity with translation axis (0,0,1). The sec-
ond block has a rotating periodicity with origin (0,0,0), rotation axis (0,0,1) and 9 repetitions (9
blades).
• The next lines describe the patches information for each block face. The order in which faces
are described is the following: Imin Jmin Kmin Kmax Jmax Imax (faces 5 3 1 2 4 6).

For each face:


• The number of patches for the face (one line).
• Patches description (one line per patch). This information depends on the patch type and is
summarized below:

For each patch, the line contains the patch name, its type and its limits min1, min2, max1, max2
(1 and 2 are the two principal axes of the patch: [I, J], [J, K] or [I, K]). The following figure
describes a solid patch going from (1,9) to (41,49):

name SOL 1 41 9 49

Patch name BC type


start index 2 end index2
start index 1 end index 1

FIGURE 12.3.2-1 SOLID patch type information

For CON, NMB, PER and PERNM patches, the line contains in addition the indices of the
connected patch (three indices giving the number of the connected block, face and patch) and
the relative orientation of the two patches, described by the corner and orientation indices.
Moreover the end of the line contains the name of the connected block. This information is not
mandatory (connected block is described by its index) and is only present to make things clear.

name CON 1 41 9 49 3 4 1 0 0 Block_2

Orientation Corner

General patch information Connected patch : Block Face Patch indices Connected block name

FIGURE 12.3.2-2 CON patch type information

 The index of the connected face (4 in the above example) is not directly the face number
in IGGTM. Instead the indices in the right column below are used (for historical reason):

IGG™ 12-9
Input and Output Files Grid file format

IGGTM Face index convention index saved in bcs file


1 3
2 4
3 2
4 5
5 1
6 6

FIGURE 12.3.2-3 Face index convention

The corner and orientation indices determine how the connected patch connects to the patch
currently described. The following table shows the eight possible configurations:

PATCH ORIENTATION : 0 (SAME) CORNER PATCH ORIENTATION : 1 (REVERSE)


POSITION
FROM TO FROM TO

n2 n2 n2 n1
0
n1 n1 n1 n2

1 1 1 1

n2 n1 n2 n2
1
n1 n2 n1 n1

1 2 1 2
3 3

n2 n1 n2 n2
2
n1 n2 n1 n1

1 1
4 4
n2 n1
n2 n2
3
n1 n1 n1 n2

1 1

n1, n2 : first and second variable coordinate indices along the patch

FIGURE 12.3.2-2 Standard notation for corner and orientation.

 In this table, the left patch is always the connected patch and is taken as reference. The
right patch is the patch currently described.

12-10 IGG™
Grid file format Input and Output Files

For PER and PERNM patches, the line contains in addition a connection sign (+1 or -1) before
the connected block name. This sign indicates the sense of the periodic transformation for the
given patch (the periodicity information is given previously in the file for each block):
+1 means that the patch connects to the other by rotating (or translating) it according to the peri-
odic axis (clockwise).
- 1 means that the patch connects to the other by rotating (or translating) it in the opposite direc-
tion as the periodic axis (counterclockwise).
This means that for two periodic patches, one will always have the sign +1 and the other -1.

After the information of each block, the full non matching connections are described. The descrip-
tion is done for each connection between the two following lines: "NI_BEGIN
FNMB_CONNECTION" and "NI_END FNMB_CONNECTION"; it contains the following infor-
mation:
• Fnmb connection name.
• General information for the connection (periodic or not, tolerance, ...).
• List of left patches involved in the connection.
• List of right patches involved in the connection.
Each patch is identified by three indices determining the Block, Face and Patch number.

The following figure is a summary of the bcs file content according to our example:

IGG™ 12-11
Input and Output Files PLOT3D file format

Number of blocks
Block name
Block size nI nJ nK
Block periodicity
Face Imin, 1 patch PER
Face Jmin, 1 patch CON
Block 1
Face Kmin, 2 patches SOL

Face Kmax, 1 patch UND

Face Jmax, 1 patch OUT

Face Imax, 1 patch PER

Block 2

Connection name

Fnmb
connection
Left patches list
Right patches list

12-4 PLOT3D file format


IGGTM provides options for file input/output in PLOT3D format (File/Import/PLOT3D and File/
Export/PLOT3D menu items). The PLOT3D file will have a ’.g’ extension.
The formats that can be read are the following:
• ASCII, Unformatted or Binary file.
• Little or big endian (for binary file).
• Single or multi-block.
• 3 dim (x, y and z coordinates are stored).

12-12 IGG™
PLOT3D file format Input and Output Files

• Single or double precision.


• No blanking information.
• Data layout of type "whole". This means that for all the grid points of a block, all the x
coordinates are read firstly, then the y coordinates and finally the z coordinates.

ASCII files are simple text files that can be read using either Fortran or C. Unformatted type
stands for Fortran binary files and can normally be read using Fortran only whereas Binary type
stands for C binary files and can normally be read using C only. Little and big endian is describing
the bytes ordering for binary files.
The output PLOT3D file generated by IGGTM has the same available formats, except for ASCII
type which is always written in double precision.
This PLOT3D format only stores the blocks coordinates and should be used with the .bcs file con-
taining the boundary conditions.
Following is a simple FORTRAN routine used to extract grid data from a PLOT3D Unformatted
file with the format specified above. For ASCII files, change (UNIT) to (UNIT,*).

a) Single-block file
READ (UNIT) IDIM,JDIM,KDIM
READ (UNIT) (((X(I,J,K),I=1,IDIM),J=1,JDIM),K=1,KDIM),
C (((Y(I,J,K),I=1,IDIM),J=1,JDIM),K=1,KDIM),
C (((Z(I,J,K),I=1,IDIM),J=1,JDIM),K=1,KDIM)

b) Multi-block file
READ (UNIT) NGRID
READ (UNIT) (IDIM(IGRID),JDIM(IGRID),KDIM(IGRID),IGRID=1,NGRID)
DO 10 IGRID=1,NGRID
READ (UNIT)
C (((X(I,J,K),I=1,IDIM(IGRID)),J=1,JDIM(IGRID)),K=1,KDIM(IGRID)),
C (((Y(I,J,K),I=1,IDIM(IGRID)),J=1,JDIM(IGRID)),K=1,KDIM(IGRID)),
C (((Z(I,J,K),I=1,IDIM(IGRID)),J=1,JDIM(IGRID)),K=1,KDIM(IGRID))
10 CONTINUE

IGG™ 12-13
Input and Output Files PLOT3D file format

12-14 IGG™
CHAPTER 13: Tutorials

13-1 Mesh Generation in pipes


13-1.1 Introduction
This section is an advanced tutorial explaining the mesh generation in intersecting pipes. The
geometry consists of two pipes of different diameters intersecting each other.
This tutorial is not intended to provide a step-by-step and detailed procedure but rather to explain
the main concepts necessary to create meshes around similar geometries. For details about basic
geometry, topology and grid generation, please refer to the chapter 1 of the IGG™ manual. The
tutorial covers different IGG™ functionalities such as:
1. Creation of the geometry,
2. Creation of an intersection,
3. Definition of the topology,
4. Creation of internal grid lines,
5. Projection of a face grid onto a surface geometry,
6. Creation of a butterfly topology,
7. Creation of a full non matching connection.
The final generated mesh is shown below:

IGG™ 13-1
Tutorials Mesh Generation in pipes

13-1.2 Geometry Definition


The geometry consists of two intersecting cylinders. The first cylinder is aligned with the Z axis,
has its bottom part at Z = -100, its top part at Z = 100 and a radius = 25. The second cylinder is
aligned with the X axis, has its bottom part at X = 0, its top part at X = 100 and a radius = 12.
1. Create a polyline from (0,25,-100) to (0,25,100) (Quick Access Pad/Geometry/Curve/
Polyline item).
2. Based on this polyline, create a surface of revolution around the Z axis (0,0,1) with center
(0,0,0) and an angle of 360 degrees (Quick Access Pad/Geometry/Surface/Revolution).
3. Unselect all curves (Geometry/Select/Curves followed by the <a> key binding and right-
click).
4. Create another surface of revolution around the X axis (1,0,0) with center (0,0,0), rotation angle
of 360 degrees and based on a polyline from (0,0,12) to (100,0,12).
The next step is to intersect the two surfaces:
5. Select both surfaces (Geometry/Select/Surfaces) and compute the intersection (Quick Access
Pad/Geometry/Curve/Surf-Surf Inters).

13-2 IGG™
Mesh Generation in pipes Tutorials

A new curve is created.


6. Unselect both surfaces (Geometry/Select/Surfaces followed by the <a> key binding and right-
click).
Next, a new small cylinder based on the intersection curve and the base circle of the small cylinder
at X = 100 will be generated:

Z
Y
Intersection curve

Base circle (X=100)

7. Select the two curves and show their orientation (Geometry/View/Curve Orientation). They
should normally have the same orientation. If it is not the case, the orientation of one curve must
be reversed before creating the new surface (Geometry/Modify Curve/Reverse).
8. Create a lofted surface based on the two curves (Quick Access Pad/Geometry/Surface/
Lofted). The new surface appears at the same location as the initial small cylinder.
9. Select the original small cylinder surface alone and delete it (Geometry/Delete/Surfaces). The
new surface is shown on the following figure:

IGG™ 13-3
Tutorials Mesh Generation in pipes

10. Save the project by using the File/Save menu item. Alternatively the geometry could be saved
by using the File/Export/Geometry Selection menu. In this case select the two surfaces and
apply the option.
The geometry is now created.

13-1.3 Meshing the larger cylinder


A first block is used to mesh the big cylinder. This block will be created by constructing an initial
cube, specified by two opposite corners, and by snapping its vertices to the boundary curves of the
surface. During these operations, the edges of the blocks will be automatically mapped on the
curves or surfaces.
1. Click on the Insert New Block icon.
2. Place the two opposite corners by attracting them to the two circles, as shown in the following
figure:
J

I K
First vertex

Z
Y

X
Second vertex

A local coordinate axis system IJK will appear at the location of the first vertex. Its orientation will
be modified so that the K axis points downward (along the Z axis), as an example.
3. Press the <s> key.
The orientation of the axis system is changed and the K axis now points downward. If this is not the
case, repeat the <s> press until getting the proper orientation.
4. Left-click to complete the block creation.
The block is now created and its eight vertices appear on the screen. The vertices lie close to the cir-
cles. In the next steps they will be moved and snapped to the circles.

 The block edges will automatically be mapped onto the circles.


5. Left-click on one vertex and move the mouse around its original position.
The block is instantaneously updated to reflect the new vertex position.
6. Move the vertex near the closest circle. It gets attracted to the circle.
7. Left-click to fix the new vertex position.

13-4 IGG™
Mesh Generation in pipes Tutorials

8. Repeat the operation for the other vertices and try to place the vertices as shown in the following
figure. Notice that the edges of face 4 should be placed symmetrically around the intersection
curve and should not cross it.

K J
Segment 1 1 3 1
Segment 1 1 2 1

Segment 1 5 4 1

Face 4

FIGURE 13.1.3-1 Position of the vertices on the circles.

At this stage the initial mesh created by IGG™ can be visualized.


9. Select the Block or Grid scope in the Quick Access Pad/View/Grid page.
10. Select the Toggle Face Grid icon to visualize the grid for the whole block.
 The face grids are by default generated using a bilinear interpolation. These initial grids
will be projected onto the surfaces at a later stage.
11. Repeat the previous operation to remove the grid from the screen.
Now the number of points for the block will be defined.
12. Right-click on the segment ’1 5 4 1’ (see above figure) to pop-up a menu and go to the Segment
sub-menu. Select the Set Number of Points menu item.
13. Enter the new number of points for the segment:
>> 65

 Increasing the number of points of a segment automatically affects the total number of
points in the associated direction. The total number of points along the K direction is
consequently 65.
14. Repeat the same operation for the segments ’1 1 2 1’ and ’1 1 3 1’ and increase their size to 33.
The block size should now be 33x33x65.
By default all the faces of the block are generated using a bilinear interpolation. The lateral faces
should however lie on the cylinder. A projection must be performed for these faces so that the grid
exactly points on the surface.
15. Select the surface corresponding to the large (vertical) cylinder (Geometry/Select/Surfaces
item).
16. Select one of the lateral faces (i.e. face 4) by left-clicking on one segment of the face until the
face edges are highlighted in white.

IGG™ 13-5
Tutorials Mesh Generation in pipes

17. Select the Project Face icon in the Quick Access Pad/Grid/Generate page.
It opens a dialog box to select projection parameters.

Select the default parameters:


• Projection on selected surfaces.
• Validation level 2.
• Boundary projection off, since the edges are already on the surface (automatic mapping fea-
ture).
• Entire face projection.
Then press Apply to perform the projection of the active face.
18. Repeat the above operations for the other lateral faces.
All the boundary faces of the block are now properly generated.

13-1.4 Meshing the small cylinder


To mesh the small cylinder a new block will be created by extruding a range of the face 4 of the first
block. In order that the meshing works properly, this face should normally completely cover the
intersection curve (see next figure).
1. Activate the face 4 of the first block.
2. Select the Extrude Range icon in the Quick Access Pad/Grid/Create page.
It opens a dialog box for selecting the range to extrude as well as the direction and magnitude of the
extrusion.

65
Click on the boundaries to change the
33
limits of the extrusion range.

13-6 IGG™
Mesh Generation in pipes Tutorials

By default the range corresponds to the complete face and is displayed in red in the graphics area.
3. Change the range by clicking on each boundary of the small yellow square and by entering the
appropriate values. These values should be such that the range fits the intersection curve, as
shown in the following figure:

Range of extrusion

4. In this case, the limits I = [6,28] and K = [29,37] have been selected.
5. Select the User Direction option and enter ’1 0 0’ (direction of the small cylinder).
6. Change the Magnitude to 75 (size of the small cylinder).
7. Press the Extrude button.
This will create the new block, similar to the following figure:

Vertices at intersection of internal edges

Internal edges created

Block 2, Face 4

FIGURE 13.1.4-1 Extrusion of a range, creating internal grid lines.

The extrusion automatically creates four internal edges in the active face of the first block. At each
intersection between two internal edges and between the internal edges and the boundary edges, a
vertex/fixed point is created (they can be visualized by pressing repeatedly the Toggle Vertices icon
of the Quick Access Pad/View/Grid page).
These internal edges are used as the basis for the creation of the boundaries of the second block.
During the creation of the new block, IGG™ automatically connects the new block to the internal
edges of the first block. The vertices at intersection of the internal edges are consequently used by
the new block.

 When extruding a new block, IGG™ automatically connects the new block to the exist-
ing one by connecting the vertices, the topological edges and the segments. A division
into patches of the reference face and a connection is also performed, if possible.

IGG™ 13-7
Tutorials Mesh Generation in pipes

The face 4 of the first block is automatically divided into 9 patches to allow a connection with the
second block, as shown in the following figure. The central patch is automatically connected to the
adjacent patch of the second block (Block 2 Face 3 patch).

FIGURE 13.1.4-2 Patch decomposition for the face 4 of the block 1

The internal edges will now be deformed to capture the intersection curve of the two cylinders. This
will be done by interactively moving the vertices and snap them to the intersection curve.
8. Select one of the four vertices at the intersection of the internal edges.
9. Snap this vertex to the intersection curve, as shown in the following figure.

Block 2, Face 4

10. Repeat the operation for the three other vertices.


 IGG™ will automatically map the central segment of each internal edge to the intersec-
tion curve. Notice also that the other segments are mapped onto the big cylinder.
11. Other vertices (intersecting the boundary edges of the block 1, face 1) can optionally be moved
to get a better face grid quality.
The opposite face (Block 2, Face 4) still needs to be adapted by snapping its vertices to the small
circle at (X=100).

13-8 IGG™
Mesh Generation in pipes Tutorials

12. Select each vertex of the face 4 and attract them to the circle at X=100.
As for the first block, the lateral faces must be projected to ensure that their grid exactly lie on the
cylinder.
13. Select the surface corresponding to the small cylinder alone and project the lateral faces of the
second block as done for the first block.

13-1.5 Generating the block grids


Before generating the block grids, a check must be done to ensure that the faces still lie on the input
geometry. This might not be the case any more if an operation has been performed on the block
faces, like for example adjusting a vertex interactively. In that case, IGG™ performs a default alge-
braic 4 boundary interpolation to keep the face grids inline with the boundaries.
This regeneration can be done in a straightforward way by replaying the generation of the face
grids.
1. Select the Regenerate Faces item in the Quick Access Pad/Grid/Generate page. A dialog box
is opened to select the face(s) to regenerate.
2. Select the All Blocks Faces option and press Apply. Finally close the dialog box.
This will fully regenerate all face grids of all the blocks in the project.
3. Select the Block 6 Bnd icon in the Quick Access Pad/Grid/Generate page. A dialog box is
opened to select the block(s) to generate. Select the All option and press Apply.
The grid in the two blocks is now generated.

13-1.6 Butterfly topology creation


In order to improve the mesh quality at block corners, a butterfly topology will be created in each
block.

IGG™ 13-9
Tutorials Mesh Generation in pipes

1. Activate the first block and select the Create Butterfly icon of the Quick Access Pad/Grid/
Create page. It opens the following dialog box and displays a default butterfly topology in the
block 1.
2. Remove the buffer blocks at faces 1 and 2 by pressing the corresponding buttons 1 & 2 in the
General variables frame. The shape of the butterfly topology is automatically updated in the
first block.
3. In the Section control frame, set the Radial depth to 30 for the first section (Section number ID
= 0). The four control points of the section are now closer to the cylinder center.
Now parameters of the second control section will be copied from the first one.
4. Activate the second section by setting the Section number ID to 1. Press the Copy from sec-
tion button and select the face 1 (upward face) of the first block by left-clicking on one of its
segments. Then middle-click to perform the copy.
Control points of the second section are now positioned in a same manner as those of the first sec-
tion.
5. Create the butterfly topology in the first block by pressing the Create/update button.

In a same way, a butterfly topology can be created in the second block.


6. Select the second block in the Block entry. This block will be automatically activated.
7. Set the Preferential direction to the axis of the small cylinder, J. A confirmation dialog box
will appear. Confirm the change by pressing the yes button. Control sections of the butterfly
topology are automatically updated.
Now the topology of the mesh must be chosen. Indeed a buffer block can be associated to the face 3
of block 2, leading to a matching connection between patches of the two cylinders. Otherwise, if
face 3 has no buffer block associated, it leads to a full non matching connection with the first block.
This latter topology is chosen in order to illustrate the FNMB connection.
8. Remove the buffer blocks at faces 3 and 4 by pressing the corresponding buttons 3 & 4.
9. Set the Radial depth to 30 for the first section. Then activate the second section and copy the
parameters from the first one, as done for the first block.
10. Create the butterfly topology in the second block.
As the two blocks were connected previously by the extrusion operation and that there is no buffer
block associated to the face 3 of the second block, IGG™ detects that it will lead to a FNMB topol-
ogy and that the matching connection is no more valid.

 The following message will appear when a matching connection is no more valid accord-
ing to the new butterfly creation: Creation of a topology with FNMB connections. The
matching connection will be therefore deleted automatically.

13-1.7 Connecting the blocks


In this section, the full non matching connection between the two blocks will be defined.
1. Open the Grid/Boundary Conditions dialog box.
2. Press the Define button in the Full Non Matching frame. It opens a dialog box controlling the
FNMB connections.
 Note that only the parent block patches appear in the lists of the dialog boxes. Conse-
quently connections are performed between parent block patches. Therefore these ones
are visualized instead of butterfly block patches.

13-10 IGG™
Mesh Generation in pipes Tutorials

3. In the left patches list, left-click on the patch 1 4 5. In the right patches list, left-click on the
patch 2 3 1. They are highlighted in the graphics area.
4. Enter a name for the connection in the Connection Name entry.
5. Create the FNMB connection by pressing the Create button. The new connection appears in the
list at the right of the dialog box.
 The type of the patches involved in the connection is automatically set from UND to
SOL.
6. Press the Compute & Show button to compute and visualize the triangulation of the connec-
tion. The result is shown in the following figure. Calling this item is optional in IGG™.

This completes the tutorial on pipes intersection.

IGG™ 13-11
Tutorials Mesh Generation in pipes

13-12 IGG™
INDEX
A
Active
segment 2-14
Aspect Ratio 10-21
Attach a fixed point to a vertex 3-16
Attraction
attraction features 9-2
tolerance 8-16
Autosave 8-17

B
Balloon help 8-18
Block
coordinates file format 12-5
creating new 3-3, 7-6, 7-7
creation
by duplicating an existing block 7-11
by expansion 10-45
by extruding range 7-9
by importing a CGNS file 8-8
by importing a GridPro file 8-8
by importing a PLOT3D file 8-7, 8-8
by importing an external grid 8-5
by rotation 10-47
by sweeping 10-44
by translation 10-46
delete 7-14
Generation
2Bnd interpolation 10-37
4Bnd interpolation 10-37
6Bnd interpolation 3-24, 7-24, 10-38
grouping 2-3, 3-42, 7-27
internal faces creation 10-27
moving 3-8
number of points 10-5
periodicity 10-4
save coordinates 8-9
smoothing 10-26, 10-38, 10-40
viewing the grid by sweeping 11-3
Boundary conditions
basic concepts 10-1
bc types 10-1, 10-10
file format 12-7
specifying 3-28, 10-9
specifying, example 4-22
BSplines creation 9-4, 9-5
Butterfly mesh 5-1

C
Cartesian point
creation 9-11
delete 9-30

IGG™ i
hide 9-28
select 9-24
Cells
deleting 11-8
searching cells with negative volume 10-54
CGNS
file format 12-7
import file 8-8
Circular arc
creating 9-7, 9-8, 9-10
creating, example 4-3
Clustering
copying a distribution 10-53
group 3-18
setting grid points distribution 10-47
setting grid points distribution, example 4-17
Coarse grid
basic concepts 10-2
change multigrid levels 11-5
Connections
Edge-Edge 7-19
Face-Face 7-20
visualizing connections 3-40, 7-21
Whole grid 7-20
Connectivity
automatic search 10-12
manual setting 10-15
Control points
adding new 9-20
deleting 9-21
displaying coordinates 9-25
hide 9-28
modifying 9-21
Convert files 8-11
Coordinate axis 2-8
Criterion
quality 10-21
CSplines
creating 9-3, 9-4
creating csplines, example 4-2
Curve
creating, examples 4-2
creation
group curves(composite curve) 9-15
offset curve 9-14
surface-plane intersection 9-12, 9-13
surface-surface intersection 9-11
trim curve 9-16
ungroup curves 9-15
delete 9-30
display curves 9-26
editing
duplicate 9-18
mirror 9-20
rotate 9-19
scale 9-19
translate 9-19
file format for saving 12-1
hide 9-28
import 8-4

ii IGG™
modifying
add control point 9-20
discretization 9-22
divide 9-22
modify control point 9-21
project on surface 9-21
remove control point 9-21
reverse orientation 9-22
orientation 9-2, 9-22, 9-28
save 8-9
save control points 8-9
saving selected curves, example 4-5
select 9-25
selecting, example 4-3
show curve orientation 9-28
visualisation, examples 4-3

D
Delete
blocks 7-14
cartesian points 9-30
cells 11-8
curves 9-30
surfaces 9-30
text in views 11-8
Disconnecting entities 3-40
Discretization 9-22, 9-23
Display
control point coordinates 9-25
curves 9-26
overlapping cells 10-30
surfaces 9-27
Display mesh entities 7-30
Distance
measuring the distance between a point and a curve 9-30
measuring the distance between two points 9-30
Distribution (see Clustering) 10-47

E
Edge
disconnecting 3-40
mapping onto geometry 1-6, 3-11
moving 3-8
numbering 1-7, 1-10, 1-11
orientation 1-7, 1-10, 1-11
show connections 7-21
Edit mode 7-30
Elliptic grid generation 1-12
Exit IGG 8-20
Expansion Ratio 10-21
Export
block coordinates 8-9
curve control points 8-9
curves and surfaces 8-9
face coordinates 8-10
patch coordinates 8-10
PLOT3D 8-10
segment discretization 8-10

F
Face

IGG™ iii
coordinates file format 12-3
creating new 7-8
creation
by mapping on a geometry surface 3-21, 10-30
by rotating an edge 10-35
creating internal face 10-27
disconnecting 3-40
divide in patches 10-11
Generation
2Bnd interpolation 10-28
4Bnd interpolation 3-19, 7-22, 10-29
generation tool 10-29
orthogonality control 10-31
projecting onto geometry surfaces 3-20, 10-34
internal face (see Internal face) 3-24
moving 3-8
numbering 1-7, 1-10
orientation 1-7, 1-10
regeneration 3-23, 7-24
save coordinates 8-10
File
format 12-1
Fixed Point
attach fixed point to a vertex 3-16
changing index 3-16
definition 1-8, 3-14
deleting 3-15
inserting 3-15, 7-15
moving 3-15
Full non matching 3-33, 10-16

G
Geometry
editing
duplicate curves and surfaces 9-18
mirror curves and surfaces 9-20
rotate curves and surfaces 9-19
scale curves and surfaces 9-19
translate curves and surfaces 9-19
grouping 2-3, 7-26
tolerance 8-15
Graphics area 2-10
Grid
quality 10-19
Grid parameters area 2-7
Grid Points
distribution 10-47
show connections 7-21
GridPro import file 8-8
Group
block 2-3, 3-42, 7-27
clustering 3-18
geometry 2-3, 7-26

H
Hide
cartesian points 9-28
curve control points 9-28
curves 9-28

iv IGG™
surfaces 9-28

I
IGES
importation 8-6
Import
block file 8-5
CGNS file 8-8
curves and surfaces 8-4
GridPro file 8-8
IGES data 8-6
PLOT3D file 8-7, 8-8
project file 8-3
Information area 2-6
Insert text in views 11-7, 11-8
Internal Edge (see Internal grid line) 3-25
Internal face
basic concepts 1-9
changing index 3-27, 10-6, 10-28
creating 3-24, 10-27
deleting 10-28
Internal grid line
basic concepts 1-8
changing index 10-6, 10-26
controlling shape 10-33
creating 3-25, 10-26, 10-33
deleting 10-26
example of use 13-5
Internal point insertion 7-15

K
Keyboard input area 2-6

M
Message Area 2-6
Mouse bindings 2-14
Mouse coordinates area 2-6
Moving an Edge, Face or Block 3-8
Multigrid
basic concepts 10-2
change coarse levels 11-5
smoothing 10-26, 10-38

N
Negative cells (see Cells) 10-54

O
Open
a new project 8-2
an existing project 8-1
Orientation
of curve 9-22, 9-28
Orthogonality
controlling face grid orthogonality 10-31
controlling grid orthogonality, example 4-21
Overlapping
display orvelapping cells 10-30
display overlapping cells, example 4-22

P
Patch
change limits 10-12
defining 3-28, 10-9
save coordinates 8-10

IGG™ v
select active patches for saving 11-4
visualization 10-10, 11-2
Periodicity 10-4
Perspective view 11-7
PLOT3D
file format 12-12
import file 8-7, 8-8
save 8-10
Points creation
cartesian point 9-11
curve-curve intersection 9-11
curve-plane intersection 9-11
Polylines creation 9-5, 9-6
Preferences
modifying preferences 8-15
saving preferences 8-18
Print
PNG file 8-15
PostScript file 8-14
Project
import project file 8-3
open new 8-2
open project file 8-1
project configuration(2D/3D/axisymetric) 8-18
save 8-3
Project configuration 6-11

Q
Quality
checking 10-19
criterion 10-21
Quick Access Pad 2-4, 7-1
Quit IGG 8-20

R
Repetitions
defining repetitions 10-4
set the number of repetition in the view 11-6
view repetitions 11-1, 11-6

S
Save
block coordinates 8-9
curve control points 8-9
curves and surfaces 8-9
face coordinates 8-10
patch coordinates 8-10
PLOT3D 8-10
PNG file 8-15
PostScript file 8-14
project 8-3
segment discretization 8-10
Scope mode 7-30
Segment
changing limits 10-6
clustering 3-17, 10-47
number of points 3-16, 10-6
save discreatization 8-10
show connections 7-21
Select
cartesian point 9-24
curve 9-25
surface 9-25
Short cuts 2-11

vi IGG™
Show connections 7-21
Smoothing
multigrid 10-26, 10-38
slor 10-26, 10-40
Surface
add uv curves 9-23
creation
Coons Patch 9-17
from face grid 9-18
linear sweep 9-18
lofted 9-16
offset surface 9-18
surface of revolution 9-17
delete 9-30
display surfaces 9-27
editing
duplicate 9-18
mirror 9-20
rotate 9-19
scale 9-19
translate 9-19
file format for saving 12-3
hide 9-28
import 8-4
modifying
discretization 9-23
divide 9-24
graphical representation 9-23
save 8-9
select 9-25
show lofting curves 9-28

T
Text
adding text in views 11-7, 11-8
deleting text 11-8
Toggle mesh entities 7-30
Tolerance
changing the tolerance 8-15
used in geometry modeling 9-2
Topology
defining periodicity 10-4
Transfinite interpolation 1-11
Trim curve 9-16

V
Vertex
accelerating the movement 3-13
adding and deleting 3-9, 7-15
attach fixed point 3-16
connecting vertices 3-38, 7-19
disconnecting 3-40
internal vertex 1-6
locking on a curve or surface 3-11
moving 3-8
show connections 7-21
snapping 1-6, 3-10
tolerance 3-12, 8-16

IGG™ vii
View
curve orientation 9-22, 9-28
view depth 11-7
view preferences 11-6
views position 11-6
Viewing buttons 2-7
Viewing scope 7-30

viii IGG™

Вам также может понравиться