Академический Документы
Профессиональный Документы
Культура Документы
User Manual
contains:
IGGTM v4.9
NUMECA International
5, Avenue Franklin Roosevelt
1050 Brussels
Belgium
IGG™ i
Contents
ii IGG™
Contents
IGG™ iii
Contents
iv IGG™
Contents
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
IGG™ vii
Contents
viii IGG™
Contents
IGG™ ix
Contents
x IGG™
Contents
IGG™ xi
Contents
Perspective 11-7
Hidden lines 11-7
Insert Text 11-8
Delete->Delete Text 11-8
INDEX
xii IGG™
CHAPTER 1: Getting Started
IGG™ 1-1
Getting Started Structure of the Manual
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.
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.
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
Block 1
Block 2
IGG™ 1-5
Getting Started Terms and Concepts
geometry 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
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
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).
Gap Intermediate
vertex
Edge
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.
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 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.
Edge 2
Edge 5
Edge 1
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).
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.
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
1-10 IGG™
Terms and Concepts Getting Started
IGG™ 1-11
Getting Started Terms and Concepts
1-12 IGG™
Visualization Getting Started
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
Toolbar
Menu bar
Quick Access Pad
Graphics area
Control
area Keyboard input area Viewing buttons
Message area
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.
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.
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).
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
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.
IGG™ 2-5
IGG™ Graphical User Interface GUI description
2-6 IGG™
GUI description IGG™ Graphical User Interface
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.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-8 IGG™
GUI description IGG™ Graphical User Interface
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-10 IGG™
GUI interaction IGG™ Graphical User Interface
TABLE 2.
IGG™ 2-11
IGG™ Graphical User Interface GUI interaction
TABLE 2.
2-12 IGG™
GUI interaction IGG™ Graphical User Interface
TABLE 2.
IGG™ 2-13
IGG™ Graphical User Interface GUI interaction
TABLE 2.
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
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
3-2 IGG™
Basic Block Creation Meshing fundamentals
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.
IGG™ 3-3
Meshing fundamentals Basic Block Creation
first vertices
current vertex
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-4 IGG™
Basic Block Creation Meshing fundamentals
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.
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-6 IGG™
Basic Block Creation Meshing fundamentals
Reference face with internal grid line New reference face position 2 grid points
K K
Newly created internal face
J I J I
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
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.
3-8 IGG™
Block Shape mapping Meshing fundamentals
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
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.
IGG™ 3-9
Meshing fundamentals Block Shape mapping
3-10 IGG™
Block Shape mapping Meshing fundamentals
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.
Placing a face
edge 3 edge 4
mapped on curve mapped on 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.
Gap Intermediate
vertex
Edge
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
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.
IGG™ 3-13
Meshing fundamentals Edge grid control
segment 1
Start vertex segment 2 End vertex
segment 3
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.
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
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-16 IGG™
Edge grid control Meshing fundamentals
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
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
The face grid of the selected scope will be displayed to show the result of the generation.
IGG™ 3-19
Meshing fundamentals Face generation
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
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.
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-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.
IGG™ 3-23
Meshing fundamentals Block generation
3-24 IGG™
Internal edges Meshing fundamentals
Block 1
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. 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.
IGG™ 3-27
Meshing fundamentals Defining patches and boundary conditions
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.
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-30 IGG™
Connections Meshing fundamentals
Principal block
Adjacent blocks
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
a) Non matching
boundaries
Adjacent block
First patch of principal
block
Patch boundary for
adjacent block
b) Matching
boundaries
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.
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
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.
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.
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).
Edge 1
Gap smalller than
specified tolerance
=> possible connection
Edge 2
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.
IGG™ 3-35
Meshing fundamentals Connections
Orphan vertex
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.
3-36 IGG™
Connections Meshing fundamentals
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.
IGG™ 3-37
Meshing fundamentals Connections
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.
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
3-40 IGG™
Connections Meshing fundamentals
IGG™ 3-41
Meshing fundamentals Blocks grouping
Group browser
List of blocks in the group
3-42 IGG™
Blocks grouping Meshing fundamentals
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
arc
polyline2
cspline
polyline 1
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>.
The <s> short cut can also be used to activate the option without accessing the menu.
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.
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.
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
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.
boundary curves
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.
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.
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-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
e4 e4
e1
e4
e1
e2 e1 e3
e3
e3 e2
e2
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
41 41
Edge 1 s1 s1 Edge 2
e1 e2
21 63 63 21
s1 s2 s3 s4
Edge 3 e3
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.
(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)
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
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
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
v6
v7 v5
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
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
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
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.
IGG™ 4-17
Basic Tutorials Grid generation tutorial
s5
s9
J cste lines s1
I cste lines
s7 s3
s8 s4
s2
s10
s6
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.
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. 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>).
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.
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
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.
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.
face 2
face 6
face 5
face 3
face 4
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.
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
5-2 IGG™
IGG™ butterfly implementation Butterfly mesh
Inner block
Buffer blocks
Buffer blocks
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
5-4 IGG™
IGG™ butterfly implementation Butterfly mesh
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
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
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.
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.
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.
FIGURE 5.2.3-7 Straight and mapped radial edges for first and last control section
IGG™ 5-7
Butterfly mesh 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:
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.
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
IGG™ 5-9
Butterfly mesh Butterfly dialog box
J
Faces 1, 2 and 5 without
K buffer block associated:
I
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.
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.
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.
IGG™ 5-11
Butterfly mesh Butterfly dialog box
Bisecting line
for first control
point
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.
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
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
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.
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
IGG™ 5-15
Butterfly mesh Butterfly dialog box
5-16 IGG™
Butterfly management Butterfly mesh
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:
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:
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-18 IGG™
Butterfly management Butterfly mesh
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.
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
IGG™ 5-21
Butterfly mesh Butterfly management
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.
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-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 IGG™
Templates Templates and Scripts
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.
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.
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-6 IGG™
Scripts Templates and Scripts
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-8 IGG™
Scripts Templates and Scripts
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-10 IGG™
Scripts Templates and Scripts
Examples:
save_project(“c:/users/greg/rexample.igg”) # correct
save_project(“c:\users\greg\rexample.igg”) # not correct !!
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.
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
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.
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.
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
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
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
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
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-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.
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-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 *
# 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
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/"
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.
IGG™ 6-31
Templates and Scripts Scripts
6-32 IGG™
Templates versus scripts Templates and Scripts
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
• 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.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.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-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.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
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.
To make easily the vertex positioning, a zoom (<F2>) or a 3D viewing (<F1>) operation
can be performed before resuming the 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.
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
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.
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.
Patch selection
Active face range
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:
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.
7-10 IGG™
Grid subpad description Quick Access Pad
Reference face,
divided in nine
patches
Extruded range
• 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.
IGG™ 7-11
Quick Access Pad Grid subpad description
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:
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.
IGG™ 7-13
Quick Access Pad Grid subpad description
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:
7-14 IGG™
Grid subpad description Quick Access Pad
" 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.
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.
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.
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).
Reference face with internal grid line New reference face position 2 grid points
K K
Newly created internal face
J I J I
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
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.
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
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-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.
IGG™ 7-21
Quick Access Pad Grid subpad description
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-22 IGG™
Grid subpad description Quick Access Pad
Surface specification
Projection mode
Range to project
Can be the whole face or a range
IGG™ 7-23
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.
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-24 IGG™
Grid subpad description Quick Access Pad
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.
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
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:
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:
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:
IGG™ 7-27
Quick Access Pad View subpad description
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:
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
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:
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 edges.
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.
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.
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 IGG™
File menu description File Menu
The IGG™ file formats are explained in the chapter 12 “Input and Output Files” (see See section
12-3 ”Grid file format”).
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™.
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:
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.
IGG™ 8-5
File Menu File menu description
8-6 IGG™
File menu description File Menu
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-8 IGG™
File menu description File Menu
The file created in this way can be read back by using the File/Import/IGES Data... menu item.
IGG™ 8-9
File Menu File menu description
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.
IGG™ 8-11
File Menu File menu description
8-12 IGG™
File menu description File Menu
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-14 IGG™
File menu description File Menu
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.
IGG™ 8-15
File Menu File menu description
Gap Intermediate
vertex
Edge
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.
Mouse
cursor
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
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.
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.
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-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:
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™.
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.
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.
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.
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-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.
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.
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.
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-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
anchor point
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
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-8 IGG™
Geometry menu description Geometry Menu
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-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-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.
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.
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-12 IGG™
Geometry menu description Geometry Menu
c1
c1
longitudinal curves
(boundaries of the surfaces) points selected on curve c1,
defining the cutting plane
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.
IGG™ 9-13
Geometry Menu Geometry menu description
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-14 IGG™
Geometry menu description Geometry Menu
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 2
IGG™ 9-15
Geometry Menu Geometry menu description
Part 1
Part 3
Part 2
Curve 1
Curve 2
Curve 3
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
9-16 IGG™
Geometry menu description Geometry Menu
Generating
curve
Boundary curves
automatically created
Intermediate
curves
FIGURE 9.2.27-1 Cylinder created by rotation of the generating line (250 degrees).
4 2
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.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-20 IGG™
Geometry menu description Geometry Menu
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.
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-22 IGG™
Geometry menu description Geometry Menu
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-24 IGG™
Geometry menu description Geometry Menu
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
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.
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-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.
IGG™ 9-29
Geometry Menu Geometry menu description
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.
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.
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:
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.
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, ...
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.
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
Periodicity types
Applies the current settings Clears the parameters Close the box
to the specified block
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:
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.
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
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
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.
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:
s3
Fixed point
K
J
20
35
s1
I
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.
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.
Automatic connectivity
block, face, patch index search according to Tol
Manual connection
Full Non Matching
specification
IGG™ 10-9
Grid Menu Grid menu description
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-10 IGG™
Grid menu description Grid Menu
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.
patch limits
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.
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-12 IGG™
Grid menu description Grid Menu
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.
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.
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.
Relative orientation
of the patches
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
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.
Patch 3 Patch 2
Second FNMB
connection
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.
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.
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).
IGG™ 10-17
Grid Menu Grid menu description
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).
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:
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
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).
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
a b
a+b c+d
x = ------------ y = ------------
2 2
max ( x, y )
Aspect Ratio = ------------------------
min ( x, y )
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 )
10-22 IGG™
Grid menu description Grid Menu
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
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-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:
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:
On the contrary, if there are cells with negative volumes after the complete search, a message like
the following will appear:
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-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>.
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
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-28 IGG™
Grid menu description Grid Menu
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.
Selection of an
active area on the
active face:
- patch selection
- selection by index
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.
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
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
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
d
d1 = 0.1 x L
d2 = 0.9 x L
d1 d2
L
Overlapping cells
10-32 IGG™
Grid menu description Grid Menu
(*)
(**)
Internal grid line I = 11
(**)
(*)
index = 11
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-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>.
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
Relative orientation of
reference and target face
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
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).
IGG™ 10-37
Grid Menu Grid menu description
Active face
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
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-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.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:
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
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.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:
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-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.
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-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.
IGG™ 10-47
Grid Menu Grid menu description
This tool can also be accessed through the Quick Access Pad/Grid/Insert/Edit page.
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
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.
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:
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
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).
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).
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
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-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.
IGG™ 11-1
View Menu View menu description
Solid visualization
control
Wireframe visualization control
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.
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
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.
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
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.
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:
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-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.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.
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.
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-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.
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.
In all these systems, the rotation axis must be the Z direction of the coordinate system.
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
...
...
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.
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.
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.
IGG™ 12-5
Input and Output Files Input Data Files
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
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-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 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
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.
Orientation Corner
General patch information Connected patch : Block Face Patch indices Connected block name
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
The corner and orientation indices determine how the connected patch connects to the patch
currently described. The following table shows the eight possible configurations:
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
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
Block 2
Connection name
Fnmb
connection
Left patches list
Right patches list
12-12 IGG™
PLOT3D file format Input and Output Files
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
IGG™ 13-1
Tutorials Mesh Generation in pipes
13-2 IGG™
Mesh Generation in pipes Tutorials
Z
Y
Intersection curve
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.
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.
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
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.
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:
Block 2, Face 4
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).
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
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.
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.
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-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™.
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™