Sie sind auf Seite 1von 348

IGG

Interactive Geometry Modeller and Grid Generator


User Manual

contains:

IGGTM version 4.9-1 - July 2004 -

NUMERICAL MECHANICS APPLICATIONS

IGG
User Manual Version 4.9-a

NUMECA International 5, Avenue Franklin Roosevelt 1050 Brussels Belgium Tel: +32 2 647.83.11 Fax: +32 2 647.93.98 Web: http://www.numeca.com

NUMERICAL MECHANICS APPLICATIONS

Contents

CHAPTER 1: Getting Started 1-1 What is IGG ? 1-2 Structure of the Manual 1-3 Installation and Settings Basic Installation Platform Compatibility Expert Display Options Graphics Driver Background Color 1-4 How to Start IGG Interface 1-5 Terms and Concepts Block Shape Control Grid Control Internal Grid Lines Internal Faces Block, Face, Edge, Segment Numbering and Active Entities Grid Generation Boundary Conditions 1-6 Visualization Geometry Grid CHAPTER 2: IGG Graphical User Interface 2-1 Overview 2-2 GUI description Menu bar Toolbar Quick Access Pad Control area Message area Keyboard input area Mouse coordinates Information area Grid parameters area Viewing buttons X, Y, and Z projection buttons Coordinate axis Scrolling 3D viewing button Rotate about x, y or z axis Zoom in/out Region zoom Fit button Original button Cutting Plane Graphics area and views

1-1 1-1 1-2 1-2 1-2 1-3 1-3 1-3 1-3 1-4 1-5 1-5 1-7 1-8 1-9 1-9 1-11 1-12 1-13 1-13 1-13 2-1 2-1 2-2 2-2 2-3 2-4 2-5 2-6 2-6 2-6 2-6 2-7 2-7 2-8 2-8 2-8 2-8 2-9 2-9 2-9 2-9 2-9 2-9 2-10

IGG

Contents

2-3 GUI interaction Keyboard short cuts Default mouse bindings CHAPTER 3: Meshing fundamentals 3-1 Introduction 3-2 Basic Block Creation Creating a block defined by two opposite vertices Creating a block by its eight vertices Creating a block by extrusion from an existing block Creating blocks by duplication of existing block(s) Block extension 3-3 Block Shape mapping Moving a vertex Adding and deleting vertices Vertex Snapping Vertex locking Edge Mapping Edge mapping onto disjointed curves Edge mapping on surface Faster vertex movement 3-4 Edge grid control Fixed Point Control Segment Control 3-5 Face generation Face generation by bilinear interpolation Face projection Mapping onto a surface Finer control on the face generation Face generation history and face regeneration History visualization Face regeneration 3-6 Block generation 3-7 Internal edges 3-8 Internal faces 3-9 Defining patches and boundary conditions 3-10 Connections Patch connections Matching and non matching connections Full non matching connections Topological connections (vertex, edge, segment) Vertex connection Orphan vertex connection Topological edge connection Segment connection Connection tools

2-11 2-11 2-14 3-1 3-1 3-3 3-3 3-3 3-4 3-5 3-6 3-8 3-8 3-9 3-10 3-11 3-11 3-12 3-13 3-13 3-14 3-15 3-16 3-19 3-19 3-20 3-21 3-21 3-22 3-22 3-23 3-24 3-25 3-27 3-28 3-30 3-30 3-30 3-33 3-35 3-35 3-36 3-37 3-37 3-37

ii

IGG

Contents

Connecting face grids Full non matching connections Disconnecting entities Visualizing connections 3-11 Blocks grouping Block groups usage Managing groups CHAPTER 4: Basic Tutorials 4-1 Overview 4-2 Geometry Tutorial Curves creation Curve selection Curve visualization Curve Saving Surface Creation Creation of a lofted surface Creation of a Coons patch Creation of a surface of revolution Surface visualization Surface selection Adding curves to the surface 4-3 Grid generation tutorial Case description Project configuration Importing and creating the boundary curves Importing the pressure and suction sides Creating boundary curves Creating and placing the block Grid points clustering Clustering the boundary layer area Clustering in the wake area clustering in the leading and trailing edges areas Grid Generation Boundary condition settings CHAPTER 5: Butterfly mesh 5-1 Introduction 5-2 IGG butterfly implementation Terminology Generation method Butterfly shape control 5-3 Butterfly dialog box "General variables" frame Preferential direction Buffer blocks

3-38 3-39 3-40 3-40 3-42 3-42 3-42 4-1 4-1 4-2 4-2 4-3 4-3 4-5 4-5 4-5 4-6 4-7 4-7 4-8 4-8 4-10 4-10 4-12 4-12 4-13 4-13 4-13 4-17 4-18 4-19 4-20 4-20 4-22 5-1 5-1 5-3 5-3 5-3 5-4 5-8 5-9 5-9 5-9

IGG

iii

Contents

Creation from uniform clustering "Section control" frame Section number ID Preferential direction buffer depth Radial depth Control points parameters Section interactive control "Clustering" frame Number of radial points Radial clustering Clustering reciprocity Butterfly command buttons 5-4 Butterfly management Creation specificities Blocks naming and numbering Interaction with the butterfly topology Forbidden operations Visualization of butterfly blocks inner mesh Cells volume calculation Grid quality checking Butterfly regeneration when using template Block transformation Block duplication Imposition of an initial solution in FINE Current limitations CHAPTER 6: Templates and Scripts 6-1 Introduction 6-2 Templates Introduction Fundamental assumptions Using the template option Analyzing the input geometry Creating the template project Geometry options Grid options Vertex positioning Replaying the template on the modified geometry Troubleshooting Input file format 6-3 Scripts Introduction Python Language Overview Adding Commented Lines Support for Mathematical Operations String Handling Lists Handling

5-10 5-11 5-11 5-11 5-11 5-13 5-13 5-14 5-14 5-14 5-15 5-16 5-17 5-17 5-18 5-18 5-20 5-21 5-22 5-22 5-22 5-23 5-23 5-23 5-24 6-1 6-1 6-2 6-2 6-2 6-3 6-3 6-3 6-3 6-4 6-4 6-4 6-5 6-5 6-6 6-6 6-6 6-6 6-6 6-7 6-7

iv

IGG

Contents

Control Flow Function Definition File Handling Error Handling Creating and Using Modules (library of functions) Running a Script File IGG Script Commands Project Commands Geometry Commands Global Functions Point and Vector Classes Range Class Curve Class Surface Class Topology and Grid Classes Commands Block Class Face Class Patch Class Edge Class Segment Class BlockGroup Class Vertex Class Topology Placement Connection Commands Quality Checking Commands MultiStage Module Examples 6-4 Templates versus scripts CHAPTER 7: Quick Access Pad 7-1 Overview 7-2 Geometry subpad description Point page Cartesian Point Curve-Curve Inters Curve-Plane Inters Curve page Polyline CSpline Arc Trim Group UnGroup Surf-Surf Inters Surf-Plane Inters Set Name Surface page

6-8 6-8 6-9 6-9 6-9 6-10 6-11 6-11 6-12 6-12 6-13 6-14 6-14 6-16 6-17 6-18 6-22 6-23 6-24 6-24 6-25 6-25 6-26 6-26 6-27 6-28 6-31 6-33 7-1 7-1 7-3 7-3 7-3 7-3 7-3 7-3 7-3 7-3 7-3 7-4 7-4 7-4 7-4 7-4 7-4 7-4

IGG

Contents

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

7-4 7-4 7-4 7-4 7-5 7-5 7-5 7-5 7-5 7-5 7-5 7-5 7-5 7-6 7-6 7-6 7-7 7-8 7-9 7-11 7-13 7-13 7-14 7-14 7-14 7-14 7-15 7-15 7-15 7-15 7-15 7-16 7-16 7-16 7-17 7-18 7-18 7-18 7-18 7-19 7-20 7-20 7-21 7-21 7-21 7-21 7-22 7-22

vi

IGG

Contents

4 Bnd Interpolation Face Generation Tool Project Face Block 6 Bnd Regenerate Faces Show History 7-4 View subpad description Geometry Groups page Block Groups page Grid page CHAPTER 8: File Menu 8-1 Overview 8-2 File menu description Open New Scripts --> Edit Scripts --> Save All Scripts --> Execute Scripts --> Re-execute Last Save --> Save Save --> Save As Save --> Save As Fine 6 Import -> IGG Project Prefix Importation operations Import -> IGG Data Import -> External Grid Import -> Face Grid Import -> Topology Import -> IGES Data Import -> PLOT3D Import -> CGNS Import -> GridPro Export -> IGES Export -> Geometry Selection Export -> Geometry Control Points Export -> Block Coor Export -> Face Coor Export -> Patch Coor Export -> Segment Discretization Export -> PLOT3D Replay Template -> Import IGG Data Convert Data Convert Data -> Rotate Data Convert Data -> Scale Data Convert Data -> Translate Data

7-22 7-22 7-22 7-24 7-24 7-25 7-26 7-26 7-27 7-29 8-1 8-1 8-1 8-1 8-2 8-2 8-2 8-2 8-3 8-3 8-3 8-3 8-3 8-3 8-4 8-4 8-5 8-5 8-6 8-6 8-7 8-8 8-8 8-9 8-9 8-9 8-9 8-10 8-10 8-10 8-10 8-11 8-11 8-11 8-12 8-12

IGG

vii

Contents

Convert Data -> Mirror Data Convert Data -> Swap Data Convert Data -> Reverse Sequence Convert Data -> Cartesian_Cylindrical Convert Data -> Extract 2D from 3D Convert Data -> Extract Curve Convert Data -> Grid : IJK_KJI Convert Data -> Grid : 2D_3D Convert Data -> Data : Expand Surface Print -> As PostScript Print -> As Bitmap PostScript Print -> As PNG Preferences Tolerances page Geom Tol (abs) Geom Tol (rel) Topo Tol (rel) Pick Aperture Saving page Graphics page Layout page Project Configuration Quit CHAPTER 9: Geometry Menu 9-1 Overview Basic Geometry Entities Curve Orientation Geometry tolerance Absolute tolerance Relative tolerance Attraction 9-2 Geometry menu description Draw CSpline->Free Draw CSpline->On Surfaces Draw CSpline->On Surface + Projection Draw BSpline->Free Draw B-Spline->On Surfaces Draw B-Spline->On Surface + Projection Draw Polyline->Free Draw Polyline->On Surfaces Draw Polyline->On Surface + Projection Circular Arc->Normal-Center-Point-Point Circular Arc->Normal-Point-Point-Radius Circular Arc->Point-Point-Point Create Points->Cartesian Point Create Points->Curve-Curve Intersection

8-12 8-13 8-13 8-13 8-13 8-13 8-14 8-14 8-14 8-14 8-14 8-15 8-15 8-15 8-15 8-15 8-16 8-16 8-17 8-17 8-18 8-18 8-20 9-1 9-1 9-1 9-2 9-2 9-2 9-2 9-2 9-3 9-3 9-3 9-4 9-4 9-5 9-5 9-5 9-6 9-6 9-7 9-8 9-10 9-11 9-11

viii

IGG

Contents

Create Points->Curve-Plane Intersection Create Curve->Surf-Surf intersection Create Curve->Surf-Plane inters->Point-Normal Create Curve->Surf-Plane inters->Normal to Curve Create Curve->Surf-Plane inters->Point-Point-Point Create Curve->Extend Curve Create Curve->Offset Curve (Cst) Create Curve->Offset Curve (Linear) Create Curve->Group Create Curve->UnGroup Create Curve->Trim Create Surface->Lofted Create Surface->Revolution Create Surface->Coons Patch Create Surface->Linear Sweep Create Surface->Offset Create Surface->From Face Edit->Copy Edit->Translate Edit->Rotate Edit->Scale Edit->Mirror Edit->Convert to CSpline Modify Curve->Add Control Point Modify Curve->Remove Control Point Modify Curve->Project Modify Curve->Modify Point Modify Curve->Modify Point On Surface Modify Curve->Discretization Modify Curve->Divide Modify Curve->Reverse Modify Curve -> Set Name Modify Surface->Discretization Modify Surface->Representation Modify Surface->Add uv Curves Modify Surface->Divide Modify Surface-> Set Name Select->Cartesian Points Select->Control Points Select->Curves Select->Surfaces View->Curves View->Surfaces View->Hide Selected Cartesian Points View->Hide Selected Curves View->Hide Selected Surfaces View->Control Points View->Curve Orientation View->Lofting curves

9-11 9-11 9-12 9-12 9-13 9-14 9-14 9-14 9-15 9-15 9-16 9-16 9-17 9-17 9-18 9-18 9-18 9-18 9-19 9-19 9-19 9-20 9-20 9-20 9-21 9-21 9-21 9-22 9-22 9-22 9-22 9-23 9-23 9-23 9-23 9-24 9-24 9-24 9-25 9-25 9-25 9-26 9-27 9-28 9-28 9-28 9-28 9-28 9-28

IGG

ix

Contents

View->Prepare View View->Clear View View->View Wireframe View->View Solid Delete Cartesian Points Delete->Curves Delete->Surfaces Distance CHAPTER 10:Grid Menu 10-1 Overview Boundary Conditions setting Coarse Grid Levels 10-2 Grid menu description Periodicity Grid Settings Resizing of one block Limitations Boundary Conditions Patch browser Filters Patch type specification Patch definition and editing Automatic connectivity search Mirror boundary conditions Connections Automatic search Tips and tricks Manual Connectivity Settings Full non matching connections Grid Quality Quality criterion definitions (Block page) Criterion class Criteria definition Quality criterion definitions (Boundaries page) 2D project particularities Negative cells Internal Grid line/Create from grid Internal Grid line/Delete Internal Grid line/Index Internal Face/Create Internal Face/Delete Internal Face/Index Create Edge/Copy Edge Create Face/Linear 2Bnd Create Face/Linear 4Bnd Create Face/Generation Tool

9-28 9-29 9-30 9-30 9-30 9-30 9-30 9-30 10-1 10-1 10-1 10-2 10-4 10-4 10-5 10-8 10-9 10-9 10-10 10-10 10-10 10-11 10-12 10-13 10-13 10-13 10-14 10-15 10-16 10-19 10-21 10-21 10-21 10-23 10-24 10-24 10-26 10-26 10-26 10-27 10-28 10-28 10-28 10-28 10-29 10-29

IGG

Contents

Grid Page Internal Grid Lines Page Create Face/Project onto Surfaces (N) Create Face/Project onto Surfaces (T) Create Face/Rotate Edge Create Face/Copy Face Create Face/Copy Face Range Create Block/Linear 2Bnd Create Block/Linear 4Bnd Create Block/Linear 6Bnd Create Block/Elliptic/Multigrid Create Block/Elliptic/Multigrid Parameters Create Block/Elliptic/SLOR Create Block/Butterfly Create Block/Change axis Create Block/Split Limitations Create Block/Split at internal faces Create Block/Merge Limitations Create Block/Sweeping Create Block/Extrude Normally Create Block/Translation Create Block/Rotation Grid Density/Clustering Clustering types Clustering groups Clustering convergence Segment optimum settings Grid Density/Copy Grid Density/Move Pt CHAPTER 11:View Menu 11-1 Overview Views View repetitions 11-2 View menu description Patch Viewer Sweep Surfaces Sweep Cells Show Unmapped vertices Coarse Grid Repetition View Position Face Displacement View Depth Perspective

10-29 10-33 10-34 10-34 10-35 10-35 10-35 10-37 10-37 10-38 10-38 10-39 10-39 10-40 10-40 10-40 10-41 10-42 10-42 10-43 10-44 10-45 10-45 10-46 10-47 10-48 10-49 10-51 10-51 10-53 10-54 11-1 11-1 11-1 11-1 11-2 11-2 11-3 11-4 11-5 11-5 11-6 11-6 11-7 11-7 11-7

IGG

xi

Contents

Hidden lines Insert Text Delete->Delete Text CHAPTER 12:Input and Output Files 12-1 Overview 12-2 Input Data Files Curve data files Surface data files Wireframe surfaces Multiple wireframe surfaces Lofted surfaces Combined curve and surface data files Block data files 12-3 Grid file format CGNS file Boundary Conditions file format Format description 12-4 PLOT3D file format Single-block file Multi-block file CHAPTER 13:Tutorials 13-1 Mesh Generation in pipes Introduction Geometry Definition Meshing the larger cylinder Meshing the small cylinder Generating the block grids Butterfly topology creation Connecting the blocks

11-7 11-8 11-8 13-1 13-1 13-1 13-1 13-3 13-3 13-4 13-4 13-5 13-5 13-7 13-7 13-7 13-8 13-12 13-13 13-13 14-1 14-1 14-1 14-2 14-4 14-6 14-9 14-9 14-10

INDEX

xii

IGG

CHAPTER 1:

Getting Started

1-1

What is IGG ?

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

IGG

1-1

Getting Started

Structure of the Manual

This chapter provides a discussion over the following topics:

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

1-2

Structure of the Manual

The structure of the IGG manual consists of several dedicated chapters which can be summarized as follows: Chapter 1 describes the basic terms needed to understand IGG functionalities. Chapter 2 describes the GUI and the different interaction modes with the system. Chapter 3 describes the fundamentals of meshing and the most commonly used options. Chapter 4 provides a basic hands-on tutorial for geometry modelling, topology decomposition and structured grid generation. It is highly recommended to follow this chapter before going any further with IGG. ferent modules. Each chapter is a description of a menu contained in the IGG interface.

Chapter 5 to Chapter 11 provide a detailed description of each functionality available in the dif Chapter 12 describes IGG file formats for importing and exporting data. Chapter 13 provides more advanced tutorials showing the grid generation for more complex
configurations. The first four chapters provide a complete overview of IGG and are recommended for first time use. Following chapters provide more detail to serve as reference during the use of IGG.

1-3
1-3.1

Installation and Settings


Basic Installation

When using IGG for the first time it is important to verify that IGG is properly installed according to the installation note. The installation note provided with the software should be read carefully and the following points are specifically important:

Hardware and operating system requirements should be verified to see whether the chosen
machine is supported.

Installation of IGG according to the described procedure in a directory chosen by the user and
referenced in the installation note as NUMECA_INSTALLATION_DIRECTORY.

A license should be requested which allows for the use of IGG. The license should be installed according to the described procedure in the installation note.

1-2

IGG

Installation and Settings

Getting Started

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

1-3.2

Platform Compatibility

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

1-3.3

Expert Display Options

a) Graphics Driver
The Graphics area of IGG interface uses by default an OPENGL driver that takes advantage of the available graphics card. When the activation of OPENGL is causing problems, IGG uses an X11 driver (on UNIX) or MSW driver (for Windows) instead. It is possible to explicitly change the driver used by IGG in the following ways: On UNIX: in csh, tcsh or bash shell: setenv NI_DRIVER X11 in korn shell: NI_DRIVER=X11 export NI_DRIVER The selection will take effect at the next session. On Windows:

Log in as Administrator. Launch regedit from the Start/Run menu. Go to the HKEY_LOCAL_MACHINE/SOFTWARE/NUMECA International/Fine# register. Modify the DRIVER entry to either OPENGL or MSW.
The selection will take effect at the next session.

b) Background Color
The background color of IGG can be changed by setting the environment variable NI_IGG_REVERSEVIDEO on UNIX/LINUX platforms or IGG_REVERSEVIDEO on Windows platforms. Set the variable to ON to have a black background and set it to OFF to have a white background. The variable can be manually specified through the following commands: On UNIX: in csh, tcsh or bash shell: setenv NI_IGG_REVERSEVIDEO ON in korn shell: NI_IGG_REVERSEVIDEO=ON export NI_IGG_REVERSEVIDEO The selection will take effect at the next session.

IGG

1-3

Getting Started

How to Start IGG Interface

On Windows:

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

1-4

How to Start IGG Interface

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

1-4

IGG

Terms and Concepts

Getting Started

1-5

Terms and Concepts

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

Block 1

Block 2

FIGURE 1.5.0-1 Edges

deformed and positioned on a geometry.

1-5.1

Block Shape Control

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

IGG

1-5

Getting Started

Terms and Concepts

geometry curve

FIGURE 1.5.1-1 Edge

vertices and edge mapping onto a curve.

The shape of an edge is directly controlled by the position of its vertices and of its topological edges onto the geometry entities (points, curves or surfaces).

The positioning of a vertex on a geometry entity is called "vertex snapping". The positioning of a topological edge on a geometry entity is called "edge mapping". It means
that the topological edge is deformed to lie on the geometry entity. IGG automatically detects when the two vertices of a topological edge lie on a same geometry entity and performs automatic mapping of the topological edge onto that geometry entity. IGG performs an automatic mapping when:

two vertices lie on a same curve, two vertices lie on different curves but can be considered as lying on the same curve at the
vertex tolerance,

two vertices lie on a same surface, two vertices lie on a surface and a curve belonging to that surface (i.e. trimming curve).
When one of the vertices of a topological edge does not lie on any geometry entity, IGG draws a straight line for the topological edge. Very often the input geometry is defined by a set of curves that all together define a closed region. These curves are however most of the time not connected in the sense that no topological information exists to go from one curve to another. To cope with this frequent case, IGG provides a method to easily insert additional vertices ( ) in the definition of an edge. The following figure shows an example of two curves lying next to each other. Using only one topological edge with two vertices, the edge would be a straight line. The insertion of an additional vertex allows to capture the junction of the curves and therefore the mapping of the edge onto the two curves.

curve 1

curve 2

Vertex required to map the edge on both curves Internal vertex insertion in an edge.

FIGURE 1.5.1-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

FIGURE 1.5.1-3

Grid edge defined by 4 vertices (3 topological edges)

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

Small tolerance Curve 1 Gap Edge Curve 2


FIGURE 1.5.1-4 Use

Greater tolerance

Start vertex Intermediate vertex

End vertex of the vertex tolerance for edge mapping

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

1-5.2

Grid Control

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

IGG

1-7

Getting Started

Terms and Concepts

Due to the structured approach, the edges varying along a same direction (I, J or K) are constrained to have the same number of points. The number of grid points can be controlled independently for the I, J or K directions. However the grid point distribution along an edge can be controlled independently for each edge. This distribution is controlled by segments. A segment is an entity controlling a range of grid points on an edge. Using these segments, the clustering (distribution) can be locally controlled along the edge. By default, each edge has one segment. Moreover, for each new created segment, grid points are distributed at equal intervals (uniform spacing). The creation of segments in an edge is done by insertion of fixed points ( lowing figure: segment 1 Start vertex segment 2 segment 3 Fixed point shared by segments 1 and 2 Fixed point shared by segments 2 and 3 End vertex ), as shown in the fol-

FIGURE 1.5.2-1

Edge division in segments using fixed points.

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

1-5.3

Internal Grid Lines


Edge 2

Edge 3 Edge 5

Edge 6

Edge 4

Edge 1
FIGURE 1.5.3-1 Two

internal edges added to the face

1-8

IGG

Terms and Concepts

Getting Started

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

1-5.4

Internal Faces

Internal faces ( ) are used to obtain a better control of the grid quality during block grid generation by inserting controllable faces within the blocks. They decompose a block into smaller regions which can be independently generated and manipulated. Internal faces are bound by four edges. These edges have the same general orientation as the boundary edges of the block and are manipulated in the same way. When creating new internal faces, IGG identifies all crossing faces and creates a new internal edge at each intersection. These edges are shared by the crossing faces to insure a consistency during block generation. Internal faces can be manipulated much in the same way as boundary faces:

Their boundary edges can be mapped onto the geometry, Internal grid lines can be added, They can be projected on geometry surfaces,...
The internal faces are taken into account during block generation when using a six boundary interpolation.

1-5.5

Block, Face, Edge, Segment Numbering and Active Entities

Each entity defining the grid topology (block, face, edge, segment) is identified by an index in IGG. Each block is defined by a local IJK coordinate system giving a natural naming convention for the faces. Faces, edges and segments are further numbered and identified by indices as indicated in the Figure 1.5.5-1. According to these conventions, entities are referenced as follows:

A block is identified by one index, describing its position in the grid. For example, block
"1" identifies the first block of the grid.

A face is identified by its block and face indices. For example, face "2 4" refers to the face
4 of block 2.

An edge is identified by its block, face and edge indices. For example, edge "1 5 2" refers to
the edge 2 of the face 5 of the first block.

A segment is identified by its block, face, edge and segment indices. The segment index is
simply the segment position in the edge, according to the edge orientation. For example, segment "1 5 2 3" refers to the third segment of the edge "1 5 2".

IGG

1-9

Getting Started

Terms and Concepts

Since an edge is shared by two faces it can be accessed by two identifiers. For example, the edge "1 2 4" (block 1, face 2, edge 4) is the same as the edge "1 6 2" (block 1, face 6, edge 2). Furthermore 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 underlying edge. FACES K = Kmax 2 5 I=1 K J 3 I J=1 1 K=1 SEGMENTS Edge 2 BLOCK 6 I = Imax J = Jmax 4 3 3 2 1 2 3 1 1 2 4 3 4 1 EDGES 3 4 1 3 2 2 4 1 2 4 4

Edge 3

Edge 4

Axis 2

Seg 1

Seg 2 Edge 1

Seg 3

Axis 1
FIGURE 1.5.5-1 :

Standard notation for the block, faces and orientation of edges

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

1-10

IGG

Terms and Concepts

Getting Started

1-5.6

Grid Generation

After the grid points along the block boundaries (edges) have been correctly positioned, the faces grid must be generated. Then the block grid generation can be performed by using these faces grid previously generated. The grid boundaries can have slope and/or line continuity or be totally discontinuous at the block interfaces. Faces can be generated by using the following options:

Algebraic grid generation: two- or four-boundary interpolation (linear or cubic) from the
face edges ( ). ).

Mapping a face on a geometry surface. Mapping is performed by linear interpolation from


the face edges in the geometry surface space ( Blocks can be generated by using the following options:

Algebraic grid generation by two-, four- or six-boundary interpolation (linear or cubic)


from the block edges ( ). ). ).

Translation of a face grid, combined with rotation and scaling (

Expansion of a face grid along face normals according to a user-specified distance ( Rotation of a face grid around a coordinate axis (
).

Sweeping of a face grid along an arbitrary curve, combined with rotation and scaling (
Moreover the following options can be applied on a grid initially created:

).

Projecting a face grid onto a set of geometry surfaces ( ). Overall or local smoothing (in a user-specified region of a face or block grid) by the elliptic method ( ). Algebraic methods based on transfinite interpolation are the most attractive options, due to fast real time generation for face and block grids. The smoothness of such algebraic grids can be improved by using the elliptic smoother. The algebraic grid generation is based on the transfinite interpolation methods with linear (Lagrange) interpolants. The grid generation options can be explained as follows:

Linear six-boundary transfinite interpolation


This type of algebraic generation is based on the determination of internal grid points of a block by linear (Lagrange) interpolation from the surface grids generated on six boundary faces (not applicable to face grids). Thus the grid conforms to the point distributions defined over the six boundary faces. The surface grid normal lengths have no effect on the grid, since the orthogonality is not considered for linear interpolation.

Linear four-boundary transfinite interpolation


With this option, the internal grid points in a face or block are generated by linear (Lagrange) interpolation from four boundaries. In the case of face grids, the user-specified grid point distributions on four boundary edges are used for interpolation. Such a grid can also be considered as a bilinearly blended Coons patch. The block grids are obtained from the grid created on four boundary faces, on which a variable coordinate index is common (faces 1, 2, 3 and 4 for common I index, faces 1, 2, 5 and 6 for common J index and faces 3, 4, 5 and 6 for common K index). The grid normal length distributions defined on the boundary curves or the surface normal lengths specified for the boundary faces have no effect on the grid, since the orthogonality is not considered for this case.

IGG

1-11

Getting Started

Terms and Concepts

Linear two-boundary interpolation + user-specified stretching


This technique has been introduced as a two step generation process using the opposite boundaries of each block. The face grids are generated by linear interpolation from the two opposite boundary edges (e.g. edges 1 and 2). The grid points along constant index lines between these two edges are then redistributed according to the user-defined grid point distributions on the other opposite boundaries (e.g. edges 3 and 4). Thus the grid conforms to distributions defined on all four boundaries, as in the four-boundary case. The block grids are created by interpolation from the grid on two opposite block faces (e.g. faces 1 and 2). Then, the interior grid points are redistributed according to the user-defined point distributions on one of the other two opposite faces (e.g. edges 3 and 4 of face 3 or 4). Again, there is no consideration of boundary orthogonality. If grid overlapping occurs when using one of the algebraic grid generation methods, please do not panic. Due to very tight grid point spacing or high degree of orthogonality constraints, the grid points may overlap initially. Simply try to smooth the grid locally or as a whole in several iterations, until overlapping disappears.

Overall or local smoothing:


The smoothness of algebraic grids can be improved by a few iterations with the elliptic solver. A local region of smoothing can be specified within the face or block grid by mouse or keyboard. The default smoothing area covers the overall grid.

Sweeping a face grid:


This method is similar to the translation of a block face for the generation of a block grid. However, the base grid (e.g. face 1) is swept along a specified sweep edge. The grid points along the sweeping edge are created according to the user-specified point distribution. Sweeping can also be combined with rotation and scaling.

Rotating a face grid:


This option is especially suitable for the generation of grids around turbomachinery components. A face grid can be rotated around any coordinate axis at a user-specified angle to form the block grid. For blade passages, the pressure side can be rotated around the axis of rotation at an angle of blade pitch and the resulting block grid can be intersected by a geometry surface representing the suction side stored in the geometry repository.

1-5.7

Boundary Conditions

Each block face can be divided in a certain number of patches on which will be applied the boundary conditions. It allows, for a same face, to have several different boundary conditions. Boundary conditions setting consists of imposing to each patch of the grid a type describing the physics of the flow. The boundary conditions setup is normally performed when the grid has been generated. The following standard notation is used to identify the type of the boundary condition applied on a patch:

UND : undefined type. INL : inlet. OUT : outlet. EXT : external. Used to impose farfield conditions. SOL : solid. Used for walls. SNG : singular. Used for patch degenerated into a line. MIR : mirror. Used to impose a symmetry plane.

1-12

IGG

Visualization

Getting Started

ROT : rotating. Used for rotor-stator interaction. CON : matching connection. NMB : non matching connection. PER : periodic matching connection. PERNM : periodic non matching connection.

1-6
1-6.1

Visualization
Geometry

Understanding the input geometry model is essential to perform fast and efficient meshing. Geometry models tend to be more and more complex and composed of lot of curves and surfaces. To facilitate the manipulation and visualization of these entities a grouping option is provided. Grouping allows to:

create and delete new groups, add curves and surfaces to a group, selectively visualize or hide one or more groups.
This organization in groups allows to display very fast only few geometry entities, and can greatly help during the interactive placement of blocks on the geometry. Interactive snapping of vertices can then be performed on a restrained number of entities avoiding the risk of interference with other unnecessary entities.

1-6.2

Grid

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

vertices, fixed points, boundary grid points, face grids (wireframe or shaded representation).

The visualization of each type of entities can be easily controlled using the scope of visualization. The visualization scope can be used to visualize an entity for the active segment, edge, face, block or grid.

IGG

1-13

Getting Started

Visualization

1-14

IGG

CHAPTER 2:

IGG Graphical User Interface

2-1

Overview

This section describes the appearance and use of the IGG Graphical User Interface (GUI). The IGG GUI is divided into several main components as shown in the figure of the following page and which are listed here below:

Menu bar Toolbar Quick Access Pad Control area Graphics area

The following sections describe these components as well as two important features of the GUI: keyboard short cuts and default mouse bindings.

IGG

2-1

IGG Graphical User Interface

GUI description

2-2

GUI description
Current project name

Toolbar Menu bar Quick Access Pad

Graphics area

Control area

Keyboard input area Message area

Viewing buttons

Grid parameters area

Mouse coordinates
FIGURE 2.2.0-1 IGG

Information area

Graphical User Interface.

2-2.1

Menu bar

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

2-2

IGG

GUI description

IGG Graphical User Interface

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

2-2.2

Toolbar

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

Icon

Description Opens an existing project previously created by IGG. See the File/Open menu item description on page 8-1. Saves the current work in the files of the current project. See the File/Save/Save menu item description on page 8-3. Closes the current project and opens a new empty one. See the File/New menu item description on page 8-2. Used to import CAD data stored in the standard IGES format. See the File/Import/IGES Data menu item description on page 8-6. Used to import external curves and surfaces stored in an ASCII IGG format. See the File/Import/IGG Data menu item description on page 8-4. Used to check the grid quality. See the Grid/Grid Quality menu item description on page 10-19. Used to check the negative cells. See the Grid/Negative cells menu item description on page 10-24. Used to measure distance between geometry or grid entities. See the Geometry/Distance menu item description on page 9-30.

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

FIGURE 2.2.2-1

Toolbar vertex attraction control

This set of four buttons provides an easy visualization and control of the vertex attraction. This vertex attraction is controlled by vertex. Each button can be toggled individually and it enables or disables 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. 2. 3.

Move the mouse over a vertex. Select it by a left-click. The current attraction mode of the vertex is instantly shown through the buttons. Move the mouse to the attraction control zone and select the appropriate mode(s).

2-2.3

Quick Access Pad

The Quick Access Pad is located in the left part of the GUI. It contains icons and more evolved options providing a fast access to the more used functions of IGG. Some of these functions are only accessible through the Quick Access Pad whereas others are also accessible through the menu bar, so that their description will be referenced to these menus. The Pad is divided into three subpads, each of which can be toggled by a simple mouse left-click:

Geometry subpad Grid subpad View subpad


All the commands and options accessible with these subpads are described in detail in chapter 7 Quick Access Pad. The three subpads are composed of pages containing icons or more evolved options. The icons perform specific function related to the subpad and the page. Each page can also be toggled by a simple mouse left-click. The Geometry subpad commands and tools allow the creation and the modification of geometry entities like points, curves and surfaces. It consists of four pages; three for geometry entities creation (respectively point, curve and surface creation) and one for curves and surfaces editing.

FIGURE 2.2.3-1

Geometry subpad

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

2-4

IGG

GUI description

IGG Graphical User Interface

FIGURE 2.2.3-2 Grid

subpad

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

FIGURE 2.2.3-3 View

subpad

2-2.4

Control area

The control area is composed of six major areas:

Message area

IGG

2-5

IGG Graphical User Interface

GUI description

Keyboard input area Mouse coordinates Information area Grid parameters area Viewing buttons

Each one is described in the following sections.

2-2.4.1 Message area


This area has several display functions:

Display of warning messages notifying the user Display of request messages asking the user for inputs from Keyboard input area or
Graphics area

Display of general information messages (current function options,...)

2-2.4.2 Keyboard input area


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

2-2.4.3 Mouse coordinates


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

2-2.4.4 Information area


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

2-6

IGG

GUI description

IGG Graphical User Interface

2-2.4.5 Grid parameters area


Active block, face, edge and segment indices Number of blocks, faces, edges and segments for the active topology

This area shows very useful informations about the grid:

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

2-2.5

Viewing buttons

The Viewing buttons are used to perform viewing manipulations on the active view, such as scrolling, zooming and rotating. The manipulations use the left, middle and right buttons of the mouse in different ways. The sub-sections below describe the function associated with each mouse button for each viewing button. For systems that only accept a mouse with two buttons, the middle mouse button can be emulated for viewing options by holding the <Ctrl> key with the left mouse button. During viewing operations, IGG automatically removes from the active view all heavy graphics representations such as solid model or color shading. This is done to keep a reasonable speed during rotation, translation or zoom operations. The complete picture is restored after a viewing operation is finished. A full visibility can be explicitly 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. Moreover, to avoid the displacement of the mouse cursor over the correct viewing button, several viewing commands and tools are accessible with keyboard short cuts listed in the dedicated section of this chapter (see section 2-3.1 on page 2-11).

2-2.5.1 X, Y, and Z projection buttons


These buttons allow to view the graphics objects on X, Y or Z projection plane.

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

2-2.5.2 Coordinate axis


The coordinate axis button acts as a toggle to display different types of coordinate axis on the active view using the following mouse buttons:

Left : press to turn on/off the display of symbolic coordinate axis at the lower right corner of
the view.

Middle : press to turn on/off the display of scaled coordinate axis for the active view. The axis
surrounds all objects in the view and may not be visible when the view is zoomed in.

Right : press to turn on/off the display of IJK axis at the origin of the active block (in Block
Viewing Scope) or of all the blocks (in Grid Viewing Scope). (For more informations about the viewing scope, see the View/Grid page of the Quick Access Pad).

2-2.5.3 Scrolling
This button is used to translate the contents of active view within the plane of graphics window in the direction specified by the user. Following functions can be performed with the mouse buttons:

Left: press and drag the left mouse button to indicate the translation direction. The translation is
proportional to the mouse displacement. Release the button when finished. The translation magnitude is automatically calculated by measuring the distance between the initial clicked point and the current position of the cursor.

Middle : press and drag the middle mouse button to indicate the translation direction. The translation is continuous in the indicated direction. Release the button when finished. The translation speed is automatically calculated by measuring the distance between the initial clicked point and the current position of the cursor.

2-2.5.4 3D viewing button


This button allows to perform viewing operations directly in the graphics area. Allowed operations are 3D rotation, scrolling and zooming. After having selected the option, move the mouse to the active view, then:

Press and drag the left mouse button to perform a 3D rotation Press and drag the middle mouse button to perform a translation Press and drag the middle mouse button, while holding the <Shift> key, to perform a zoom To select the centre of rotation, hold the <Shift> key and press the left mouse button on a geometry curve, a vertex or a surface (even if this one is visualized with a wireframe model). The centre of rotation is always located in the center of the screen. So, when changing it, the model is moved according to its new value. This 3D viewing tool is also accessible with the <F1> key.

2-8

IGG

GUI description

IGG Graphical User Interface

2-2.5.5 Rotate about x, y or z axis


The rotation buttons are used to rotate graphical objects on the active view around the X, Y or Z axis. The rotations are always performed around the centre of the active view. Following functions can be performed with the mouse buttons:

Left : press and drag the left mouse button to the left or to the right. A clockwise or counterclockwise rotation will be performed, proportional to the mouse displacement. Release the button when finished.

Middle : press and drag the middle mouse button to the left or to the right. A continuous rotation will be performed, clockwise or counterclockwise. Release the button when finished.

2-2.5.6 Zoom in/out


This button is used for zooming operations on the active view. Zooming is always performed around the centre of the view. Following functions can be performed with the mouse buttons:

Left : press and drag the left mouse button to the left or to the right. A zoom in - zoom out will
be performed, proportional to the mouse displacement. Release the button when finished.

Middle : press and drag the middle mouse button to the left or to the right. A continuous zoom
in - zoom out will be performed. Release the button when finished.

2-2.5.7 Region zoom


This button allows to specify a rectangular area of the active view that will be fitted to the view dimensions. After having selected the button,

Move the mouse to the active view Press and drag the left mouse button to select the rectangular region Release the button to perform the zoom operation
These operations can be repeated several times to perform more zooming.

Press <q> or the right mouse button to quit the option.


This tool is also accessible with the <F2> key.

2-2.5.8 Fit button


The fit button is used to fit the content of the view to the view limits without changing the current orientation of the camera (which can be interpreted as the users eyes).

2-2.5.9 Original button


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

2-2.5.10 Cutting Plane


This option displays a movable plane that cuts the geometry and the blocks of the mesh. The plane is symbolically represented by four boundaries and its normal, and is by default semi-transparent. After having selected the button,

Press and drag the left mouse button to rotate the plane Press and drag the middle mouse button to translate the plane

IGG

2-9

IGG Graphical User Interface

GUI description

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

2-2.6

Graphics area and views

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

2-10

IGG

GUI interaction

IGG Graphical User Interface

2-3
2-3.1

GUI interaction
Keyboard short cuts

IGG provides short cuts for the most commonly used options which allow to activate options without accessing the menus. A short cut consists of a single key or a 2 keys combination and is indicated at the right of each menu item, when available. To use a short cut:

Move the mouse to the graphics area Press the key corresponding to the short cut. The menu option is activated automatically.
For example, the selection of curves can be activated using the Geometry/Select/Curves menu or simply by pressing <s> in the graphics area. A list of the available short cuts is given in the following table.
TABLE 2.

Short cuts Alt-e Alt-f Alt-b Alt-g Alt-s Alt-w

Function Sets the viewing scope to Edge mode. See the Quick Access Pad View/Grid page description on page 7-29. Sets the viewing scope to Face mode. See the Quick Access Pad View/Grid page description on page 7-29. Sets the viewing scope to Block mode. See the Quick Access Pad View/Grid page description on page 7-29. Sets the viewing scope to Grid mode. See the Quick Access Pad View/Grid page description on page 7-29. Toggles solid representation of selected surfaces. See the Geometry/View/View solid menu item description on page 9-30. Toggles wireframe representation of selected surfaces. See the Geometry/View/View wireframe menu item description on page 930.

Alt-x Ctrl-o

Used to insert an internal face. See the Grid/Internal Face/Create menu item description on page 10-27. Toggles the visualization of curves orientation. See the Geometry/View/Curve Orientation menu item description on page 9-28.

Ctrl-e Ctrl-y

Closes the current project and opens a new empty one. See the File/New menu item description on page 8-2. 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. Saves the current work in the files of the current project. See the File/Save/Save menu item description on page 8-3. Toggles the display of the Quick Access Pad. See the File/Preferences menu item description on page 8-15.

Ctrl-g Ctrl-a

IGG

2-11

IGG Graphical User Interface

GUI interaction

TABLE 2.

Short cuts Ctrl-q Ctrl-z Ctrl-l Ctrl-j Ctrl-m Ctrl-x Ctrl-c Ctrl-f Ctrl-t

Function Used to end the current session. See the File/Quit menu item description on page 8-20. Toggles the block faces grid. See the Quick Access Pad View/Grid page description on page 7-29. Toggles grid points. See the Quick Access Pad View/Grid page description on page 7-29. Toggles edges. See the Quick Access Pad View/Grid page description on page 7-29. Toggles blocks shading. See the Quick Access Pad View/Grid page description on page 7-29. Used to set the active coarse grid levels. See the View/Coarse Grid menu item description on page 11-5. Used to select curves to be displayed. See the Geometry/View/Curves menu item description on page 9-26. Used to select surfaces to be displayed. See the Geometry/View/Surfaces menu item description on page 9-27. Toggles the selected curves control points. See the Geometry/View/Control Points menu item description on page 928.

Ctrl-p

Used to display the control point coordinates. See the Geometry/Select/Control Points menu item description on page 925.

Ctrl-s Ctrl-d Ctrl-r Escape Page-Up Page-Down

Used to select surfaces. See the Geometry/Select/Surfaces menu item description on page 9-25. Deletes the selected curves. See the Geometry/Delete/Curves menu item description on page 9-30. Deletes the selected surfaces. See the Geometry/Delete/Surfaces menu item description on page 9-30. Stops the current tool. Used to zoom in on UNIX. Used to zoom out on UNIX. Used to translate to the right the active view. Used to translate to the left the active view. Used to translate to the top the active view. Used to translate to the bottom the active view.

F1 F2

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

2-12

IGG

GUI interaction

IGG Graphical User Interface

TABLE 2.

Short cuts F3 F4 >

Function Used to fit the content of the view. See Fit button on page 2-9. Used to fit the content of the view and reset the camera orientation. See Original button on page 2-9. Opens the segment clustering dialog box. See the Grid/Grid Density/Clustering menu item description on page 1047.

Performs a four boundaries interpolation on the active face. See the Grid/Create Face/Linear 4Bnd menu item description on page 1029.

Performs a six boundaries interpolation on the active block. See the Grid/Create Block/Linear 6Bnd menu item description on page 10-38.

N S T X a

Opens the project face dialog box. See the Quick Access Pad Grid/Generate page description on page 7-22. Opens the grid settings dialog box. See the Grid/Grid Settings menu item description on page 10-5. Opens the periodicity dialog box. See the Grid/Periodicity menu item description on page 10-4. Opens the boundary conditions dialog box. See the Grid/Boundary Conditions menu item description on page 10-9. Draws an arc by specifying the center and two points. See the Geometry/Circular Arc/Normal-Center-Point-Point menu item description on page 9-7.

b c e f

Draws a bspline. See the Geometry/Draw BSpline/Free menu item description on page 9-4. Draws a cspline. See the Geometry/Draw CSpline/Free menu item description on page 9-3. Used to change in a cyclic way the mode of the viewing scope. See the Quick Access Pad View/Grid page description on page 7-29. Opens the generation tool dialog box. See the Grid/Create Face/Generation Tool menu item description on page 10-29.

i m

Used to insert a new vertex in an edge. See the Quick Access Pad Grid/Insert/Edit page description on page 7-15. Used to modify a curve control point. See the Geometry/Modify Curve/Modify Point menu item description on page 9-21.

p s

Draws a polyline. See the Geometry/Draw Polyline/Free menu item description on page 9-5. Used to select curves. See the Geometry/Select/Curves menu item description on page 9-25.

IGG

2-13

IGG Graphical User Interface

GUI interaction

TABLE 2.

Short cuts t w x y

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

2-3.2

Default mouse bindings

Left button bindings (<1>): when the cursor is in the Graphics area, the left button is used for
entity selection and positioning. The entities that can be selected by a simple click and release are listed here below:

Segment: as soon as a segment is created and is visible within the limits of the views, it can
be interactively selected with the mouse to become active. The selected segment is automatically displayed in yellow with an arrow showing its orientation and general informations about it is shown in the Information area. When the parent edge (which is also active) comprises several segments, the non active ones are displayed in pink.

Face, Block: when a segment is selected, its parent face is displayed in white and its parent
block in red which means that both become active. As a segment can belong to several faces or several segments can lie in the same place, multiple clicks on a segment will change the active face and/or active block.

Vertex, Fixed point: when the cursor is close enough, these entities are displayed in yellow
which means that they can be selected. When selected, an entity can be moved by simply dragging the mouse and replaced with a second click and release. A Fixed point can be moved only along its parent edge. As said in the previous section, the left mouse button is also used to select the active view among the views displayed in the graphics area.

Right button bindings (<3>): when the cursor is in the Graphics area, the right button gives
access to a wide variety of tools and commands from pop-up menus. This gives an efficient way to do an operation without continually moving the cursor to the pulldown 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 accessible with the right mouse button in conjunction with a keyboard key. For example, press the <Ctrl> key and the right mouse button over a vertex gives access to a pop-up menu specifying the vertex attraction features. The following figure shows two examples of pop-up menus and the way to access them:

2-14

IGG

GUI interaction

IGG Graphical User Interface

Press <3> over a segment

Press <Ctrl> + <3> over a vertex

FIGURE 2.3.2-1 Two

pop-up menus accessible with a right-click (<3>)

IGG

2-15

IGG Graphical User Interface

GUI interaction

2-16

IGG

CHAPTER 3:

Meshing fundamentals

3-1

Introduction

Blocks are used to decompose the space into smaller regions that can easily be meshed using algebraic 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 several logical steps:
1. 2. 3. 4. 5. 6.

Create block topologies and map their shape to the geometry; Control edge grid parameters on blocks such as the number of points or distribution; Define patches; Connect blocks together to ease later meshing process; Generate the face grids for each block; Generate the block grids.

The execution order needs not strictly follow the above enumeration. It is for example possible to add new blocks to already existing blocks and connect them at a later stage or to define patches after face grid generation. This chapter introduces all the concepts needed to generate a mesh with IGG. The chapter describes the following:

Basic block creation; Block mapping to the geometry; Edge Grid Control; Face grid generation; Block grid generation; Internal edges and faces insertion;

IGG

3-1

Meshing fundamentals

Introduction

Patch definitions and boundary condition settings; Connections; Blocks grouping.

3-2

IGG

Basic Block Creation

Meshing fundamentals

3-2

Basic Block Creation

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

3-2.1
1. 2.

Creating a block defined by two opposite vertices


Click on the Insert New Block icon. Move the mouse to the desired location and left-click the mouse to place the first vertex. The current vertex can be attracted to a curve or a visible vertex by moving it close to the desired entity. See section 3-3.3 on page 3-10 for more details on vertex snapping.

3. 4.

As the mouse is moved around, a box attached to the cursor appears. The box boundaries represent the 12 edges of the new block. Left-click to place the second (opposite) vertex. The position of a vertex can also be defined by entering directly its absolute coordinates in the keyboard input area.

The orientation of the block, defined by the IJK axes, appears at a default corner that can be changed in the next steps. The IJK axes always appear right-handed.

FIGURE 3.2.1-1 IJK 5. 6. 7.

axis placement

To change the origin of the IJK axis repeatedly press the <o> key. To change the orientation of the IJK axis press the <s> key. Left-click to complete the block creation. When the block is created the vertices of the block are drawn using solid square markers. At any stage the right-click cancels the block creation.

Changing the position of the vertices is explained in section 3-3.1 on page 3-8.

3-2.2
1. 2.

Creating a block by its eight vertices


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

IGG

3-3

Meshing fundamentals

Basic Block Creation

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


3. 4.

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

first vertices

current vertex

FIGURE 3.2.2-1 Block

placement by vertices.

The movement of the cursor can be locked in one direction by pressing one of the following key:

<x>, <y> or <z> to lock the movement in the specified direction, <n> to lock the movement perpendicular to the first face, <v> to lock the movement in a user defined direction. The direction must be entered as a
vector direction through the keyboard input area,

<u> to unlock.
5.

Repeat the click operation to place the other vertices defining the block. The placement of the block can be accelerated by middle-clicking the mouse one or two times (depending of the current creation status). This will give a default position for the remaining vertices.

When all the corners are defined, the IJK axis appears at a default corner that can be changed in the following optional steps:
6. 7. 8.

To change the origin of the IJK axis repeatedly press the <o> key. To change the orientation of the IJK axis press the <s> key. Left-click to complete the block creation.

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

3-2.3

Creating a block by extrusion from an existing block

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

3-4

IGG

Basic Block Creation

Meshing fundamentals

To create a block by extrusion:


1.

Click on the dedicated icon.

The following dialog box is opened:

Patch selection Active face range

2. 3. 4.

Select in the graphics area the face from which the block will be extruded. The face of extrusion is highlighted in red. 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. 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. Press the Extrude button to perform the final operation.

6.

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 connect the new block to the existing block. During the extrusion, the vertices, topological edges, segments and patches are automatically connected. See the reference chapter about the limitations.

3-2.4
1.

Creating blocks by duplication of existing block(s)


Click on the dedicated icon.

The following dialog box is opened:

IGG

3-5

Meshing fundamentals

Basic Block Creation

2. 3. 4. 5.

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. Select the number of duplication that will be performed for each selected block. Select the transformation that will be applied to the duplicated block(s): rotation, translation or scaling. Select the topology creation mode: No Topology: only the block mesh is duplicated. Topology from Grid: block edges are created by using the boundary grid points of the duplicated block. Therefore a slight shape difference can appear between the duplicated edge and the original one if this one is mapped on a geometry entity. Only the boundary edges and the corner vertices are reproduced. Duplicate Geometry: all block entities are reproduced and edges will have exactly the same shape as those of the initial block. Vertex snapping: same as previous option. Moreover, IGG tries to snap the duplicated block vertices on the neighboring geometry.

6.

Press the Apply button to perform the duplication.

3-2.5

Block extension

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

3-6

IGG

Basic Block Creation

Meshing fundamentals

Reference face with internal grid line 21 grid points

New reference face position

2 grid points 21 grid points

K J I

Newly created internal face J

K I

FIGURE 3.2.5-1 Block

extension along the J direction

During an extension operation, IGG automatically inserts a new internal face at the position of the reference face and increments the number of points of the block along the extension direction. This allows to keep the current shape of the block unchanged while being able to extend it. Internal edges are inserted in the new internal face at the same position and with the same shape as internal edges of the reference face. The connections of the reference face (vertices, edge, segments and patches) are deleted during the extension operation. A warning appears when a deletion of connections is performed.

To extend a block:
1. 2. 3.

Click on the Extend Block icon. Select the reference face with the left mouse button (<1>). Middle click (<2>) to acknowledge the face selection and to start the block extension. One vertex of the reference face is selected and can be moved with the mouse. The whole reference 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 keyboard input area. Left-click to end the block extension.

4.

IGG

3-7

Meshing fundamentals

Block Shape mapping

3-3

Block Shape mapping

The mapping of a block shape consists of deforming its edges so they partly or completely lie onto the geometry. The operation is essentially done by moving the vertices attached to the edges and by automatic mapping of the edges onto geometry curves or surfaces. This section describes how to:

Move a vertex, Insert and delete a vertex, Snap a vertex to curves or surfaces, Control edge mapping, Control vertex tolerance.

3-3.1
1. 2.

Moving a vertex
Make it visible with the Toggle Vertices icon (see section 7-4.3 on page 7-29). Move the mouse to the desired vertex and left-click.

To move a vertex of a block:

Subsequent mouse movement will move the vertex. The edges attached to the vertex are automatically following the vertex. When the vertex is close enough to another vertex, curve or surface, it is automatically snapped to this entity. See section 3-3.3 on page 3-10 for more detail on vertex snapping. The edges are automatically mapped onto the geometry when the vertices used by the edges are on a same curve or surface. Controlling the mapping is explained in a next section (section 3-3.5 on page 3-11).
3.

Left-click again to fix the vertex position.

To move a whole edge, face or block: To accelerate the placement of vertices, it is possible to perform collective movements of vertices (all vertices of an edge, face or block) at once. The following lines explain the movement of a whole face:
1. 2.

Left-click to select the desired face to move. Move the mouse to a vertex of the face and right-click. Select the Move Face option. Move the selected vertex to its new location. Left-click to fix the vertex and face positions. The <e>, <f> or <b> short cuts can be used to perform a collective movement of an edge, face or block respectively. In this case, the reference vertex must be selected first, then press the proper key binding.

A pop-up menu appears, showing three menu items dedicated to collective movements.
3. 4.

All the vertices of the active face are moved together with the selected vertex.
5.

3-8

IGG

Block Shape mapping

Meshing fundamentals

3-3.2

Adding and deleting vertices

By default edges are controlled by two vertices which appear as filled black squares. Additional vertices can be inserted or deleted to allow finer control over the block shape. These vertices are drawn using hollow squares. Vertex insertion is required when an edge of a block needs to be placed on several geometry curves. In this case, one vertex is required at the junction of each curve. The same principle holds when edges need lying on several surfaces.

curve 1

curve 2

Vertex required to map the edge on both curves


FIGURE 3.3.2-1 Mapping

an edge on several curves

When a grid edge is defined by more than two vertices, the edge is said to have several topological edges. Topological edges are entities defined by two consecutive vertices. They can be controlled independently. To insert a new vertex in an edge:
1.

Click on the Insert Vertex icon in the Quick Access Pad/Grid/Insert/Edit page. Use the short cut <i> to activate the Insert Vertex in a faster way.

2. 3. 4. 5.

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. Move the vertex and left-click again to fix its position. This vertex can subsequently be moved as described above. The insertion of a vertex splits the existing topological edge into two new topological edges. The edge mapping control is explained in section 3-3.5 on page 3-11.

To delete an existing vertex:


1. 2. 3.

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

IGG

3-9

Meshing fundamentals

Block Shape mapping

3-3.3

Vertex Snapping

Vertex snapping is the feature that automatically attracts the vertex to points, curves, curve endpoints or surfaces, when it falls within a small aperture. When a vertex is snapped to a curve, it is attracted by the curve. When a vertex is snapped onto a surface, the surface is highlighted in a blue wireframe mode. To snap a vertex to a curve:
1. 2.

Select the vertex to move. Move it close to a visible curve. When several curves exist at a nearly same location, a zoom (<F2>) or 3D viewing operation (<F1>) can be performed on the desired curve, then the placement of the vertex can be resumed.

When the vertex falls within the pick aperture, it is automatically attracted and the name of the curve appears in the status bar.
3.

Left-click to fix the new position.

To snap a vertex to a surface:


1. 2.

Select the vertex to move. Move it close to the desired surface. The surface is highlighted in a blue wireframe mode when it snaps the vertex. When several surfaces are stacked onto each other, IGG takes the one closer to the user. To change the current surface, middle-click repeatedly (surface sweeping) until the vertex lies on the proper surface. The new surface is highlighted in a blue wireframe mode and its name appears in the status bar.

The vertex can then be moved to its new position.


3.

Left-click to finish the operation.

To Control the vertex snapping: Vertex snapping can be selectively enabled or disabled for curves, curve end-points, curves intersection or surfaces. The control is done on a vertex basis and is done as follows:
1. 2. 3.

Move the mouse to the vertex. Right-click while holding the <Ctrl> key. The pop-up menu in the margin appears. Enable or disable the snapping for the desired type of entity. The curve or surface on which a vertex is snapped is indicated in the status bar, when the mouse is over the vertex.

The vertex snapping can also be controlled through the toolbar as follows:
1. 2. 3.

Move the mouse to the vertex and select it by left-clicking on it. Move the mouse over the toolbar (therefore the vertex follows the cursor) and enable or disable the snapping for the desired type of entity by pressing the corresponding button. Place the vertex.

3-10

IGG

Block Shape mapping

Meshing fundamentals

3-3.4

Vertex locking

By default a vertex is allowed to freely move in the 3D space and can be snapped to curves or surfaces that are far from the current vertex position. It is possible to constrain the movement of a vertex by locking it to a geometry entity. When a vertex is locked, IGG performs the snapping operation on the locked entity first. If the snapping fails (i.e. the vertex was moved away from the entity), the snapping is then performed on the other visible entities. Using the locking mechanism, the movement of the vertex is constrained to a small box surrounding the vertex and snapping to geometry entities will only occur if the entities intersect the box. To lock a vertex:
1. 2.

Select the vertex and snap it to the desired entity. Press the <l> key to lock the vertex on that entity.

A small box surrounding the vertex appears, showing that it is locked. Subsequent movements will be done preferably on the entity.
3.

To unlock the vertex, press the <l> key a second time. <l> is a toggle key that successively activates or deactivates the locking.

3-3.5

Edge Mapping

Edge mapping is the feature that automatically maps the edges of a block onto the geometry as soon as its vertices lie on geometry entities. As discussed previously, a grid edge is defined by two or more vertices. The mapping is performed for each piece between two consecutive vertices (topological edges). A mapping is performed when:

Two successive vertices lie on a same curve, Two successive vertices lie on different curves but can be considered as lying on the same curve
at the vertex tolerance,

Two successive vertices lie on a same surface (or its boundaries), Two successive vertices lie on a surface and a curve belonging to that surface (i.e. trimming
curve).

edge 2 Placing a face edge 3


mapped on curve

mapping disabled

edge 4
mapped on curve

single curve

edge 1 mapped on curve

FIGURE 3.3.5-1 Placing

a face on a single curve.

IGG

3-11

Meshing fundamentals

Block Shape mapping

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

Move the mouse to the edge. <Ctrl> right-click on the edge. The pop-up in the margin appears. Select one option to disable/enable the mapping on curves, surfaces or both. Select the option again to reactivate curve or surface mapping.

3-3.6

Edge mapping onto disjointed curves

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

Small tolerance Curve 1 Gap Edge Curve 2


FIGURE 3.3.6-1 Use

Greater tolerance

Start vertex Intermediate vertex

End vertex of vertex tolerance for edge mapping

When the gap is relatively large, the mapping on one of the curve may not succeed at first. To remedy this problem the tolerance of the vertex can be increased.

To control vertex tolerance:


1. 2. 3.

Move the mouse to the vertex. The vertex is highlighted when the mouse pointer is in the close vicinity. Right-click to pop-up the menu for the vertex. 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 absolute 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 surrounding vertices of the edge.

3-12

IGG

Block Shape mapping

Meshing fundamentals

3-3.7

Edge mapping on surface

When two consecutive vertices of an edge lie on a same surface, IGG automatically maps the portion between the two vertices (topological edge) onto the surface. To map this topological edge, IGG works in the (u,v) parameter space of the surface. In the case of very bad surface parametrization (dependent on the way the surface was generated by a CAD system), the edge shape could be irregular and not correspond to a shortest path between its two vertices. In these cases, adding intermediate vertices to the edge would not help in a satisfactory way. To circumvent this limitation another type of mapping has been introduced, giving much better solutions in these extreme cases. It consists of intersecting the surface by a plane passing through the two vertices and with a normal calculated by IGG. To change the mapping mode for a given topological edge:
1. 2. 3.

Move the mouse to the desired topological edge. <Ctrl> right-click on the edge. The pop-up menu in margin appears. Select the Surf Map 2 option. It automatically disables the Surf Map 1.

The edge will be automatically remapped onto the surface using the second mapping type. This mode may fail when the vertices of an edge lie far apart on folded surface. In that case, introducing one or more additional vertices will solve the problem. Since the default edge mapping works in most cases, the second mapping type should only be used when the surface parametrization leads to poor results.

3-3.8

Faster vertex movement

When the number of curves or surfaces is large or when surfaces are over-defined (lots of control points), the interactive movement of a vertex may be significantly slowed down by the dynamic mapping of the edges which is performed automatically for each new vertex position. To accelerate the interactive movement the dynamic mapping can be temporarily disabled as follows:
1. 2.

Left-click to select the vertex. Hold the <Ctrl> key and move the vertex.

The vertex will be snapped to curves or surfaces, as usual, but the mapping of the edge is temporarily disabled.
3. 4.

Release the <Ctrl> key to resume full edge mapping. Left-click again to fix the vertex position. The edge mapping will then be performed at that time.

IGG

3-13

Meshing fundamentals

Edge grid control

3-4

Edge grid control

The meshing of a block starts by controlling the grid parameters along the boundaries of the block such as number of points in the I, J and K directions or the clustering along each edge. Grid points density along edges is controlled by segments. Segments are entities controlling a range of grid points and are delimited by two fixed points. They are mainly used for two purposes:

to locally control the distribution and clustering of grid points along an edge, to control the number of grid points along edges.
By default an edge has only one segment extending over the whole edge. Adding more segments to an edge is done by inserting fixed points into existing segments. This insertion divides a segment into two new ones. segment 1 Start vertex segment 2 segment 3 Fixed Point shared by segments 1 and 2 Fixed Point shared by segments 2 and 3 End vertex

FIGURE 3.4.0-1 Edge

division in segments by using fixed points.

Inserting fixed points into an edge is useful to:

divide grid edges into segments, capture corners in a geometry. A grid point is then required to be exactly at the corner position,

insure grid consistency.


This last case occurs when internal grid lines are inserted in a face as shown in the following figure. fixed point automatically inserted during Internal Grid Line insertion

FIGURE 3.4.0-2 Fixed

Point insertion through internal grid line creation

3-14

IGG

Edge grid control

Meshing fundamentals

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

3-4.1

Fixed Point Control

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

create and delete fixed points, attach a fixed point to a vertex, change a fixed point index.
To Insert a fixed point:
1. 2. 3. 4. 5. 6.

Visualize the grid points for the desired edges (See section 7-4.3 on page 7-29) Click on the Insert Fixed Point icon in the Quick Access Pad/Grid Insert/Edit page. Move the mouse to the desired edge near a grid point to fix. A small marker is displayed when the insertion can be performed. Left-click to insert a new fixed point. The index of the fixed point will be that of the closest grid point. Move the point and left-click again to fix its position. This fixed point can subsequently be moved as described here below.

To Move a fixed point:


1. 2.

Move the mouse to the desired fixed point. The index of the fixed point will appear when it can be selected. Left-click to start moving the point. The fixed point is constrained to move along the edge to which it belongs.

As the fixed point is moved, the two segments surrounding the point are automatically updated and their grid points distribution automatically recalculated. The face grids touched by this operation are automatically regenerated using an algebraic 4 boundary interpolation. If these faces were generated using other options, like smoothing or projections on surfaces, they will need to be explicitly regenerated with the Regenerate Faces option (see section 3-5 on page 3-19).
3.

Left-click to stop the modification.

To Delete a fixed point:


1.

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

IGG

3-15

Meshing fundamentals

Edge grid control

2. 3.

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. 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 connected to others (as a consequence of connected segments), several indices will appear.

2. 3.

Right-click to pop-up a menu for the fixed point. Select the menu item corresponding to the desired index that will be changed. Enter the new value and press <Enter>.

A prompt will appear to enter the new index in the keyboard input area.
4.

Changing the index of the fixed point automatically changes the number of points controlled by its surrounding segments, as shown in the figure.

s3 s2
K = 31 Kmax = 51

s3 s2
K = 31 Kmax = 51

s1

K = 21

s1 Changing first point index

K = 17

s1 - 21 points s2 - 11 points s3 - 21 points


FIGURE 3.4.1-1 Changing

s1 - 17 points s2 - 15 points s3 - 21 points

the index of a fixed point

When a fixed point is belonging to an internal edge or to an internal face, IGG keeps grid consistency by automatically changing the index for the internal edge or face. Attaching a fixed point to a vertex:
1. 2. 3.

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. Right-click on the vertex to pop-up the menu. Select the Attach Fixed Point menu item.

The vertex and fixed point markers are merged as a diamond, indicating that the vertex is attached to the fixed point.
4.

The fixed point can now be moved by moving its vertex.

3-4.2
1.

Segment Control
Right-click on the desired segment to pop-up the menu in the margin. The segment gets activated. Further, go to the Segment sub-menu.

To increase or decrease the number of grid points on a segment:

3-16

IGG

Edge grid control

Meshing fundamentals

2.

Select the Set Number of Points menu item.

The following dialog box will appear:

Enter the new number of points for the segment. The fixed point indices will be automatically updated according to the new number of points. The Propagate button indicates whether segment resizing should also be applied to the blocks connected to the active block. If propagation is disabled, the modification of the number of points will only be applied to the active block and the segment connections (parallel to the reference 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 visualized, until the closing of the dialog box. When a resizing cannot be propagated along a specific 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 direction, 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. 2.

Left-click to select the desired segment. 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 (Segment/Distribution). Select the desired clustering type (for example "At Start"). Enter the required values in the fields ("Initial Spacing" entry for the previous example). 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.

The Clustering dialog box is opened.


3. 4. 5.

IGG

3-17

Meshing fundamentals

Edge grid control

To define a clustering group:


1.

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

2. 3. 4.

Press the Create button. An additional field is opened to enter the group name. Enter a group name and press <Enter> to create the group. 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. 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.

5.

To control the clustering on a group:


1. 2. 3.

In the "Clustering" dialog box, select a group in the Group area. Select the desired clustering type and enter the required values in the fields, just as for a single segment. Press the Apply to group button to apply the clustering on the selected group.

3-18

IGG

Face generation

Meshing fundamentals

3-5

Face generation

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

This section describes:

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

3-5.1

Face generation by bilinear interpolation

Basic generation method of a face is based on bilinear interpolation from the boundary grid points. This generation takes into account the clustering applied to each segment.
1.

Select a face by left-clicking on one of its edges. When several faces have an edge at the same location (i.e connected faces) repeat the left-click procedure until the proper face is activated.

2.

Click on the 4 Bnd Interpolation icon in the Quick Access Pad/Grid/Generate page.

This option opens the following dialog box that allows to select the faces to generate:

3. 4.

Select the scope of the generation. Press Apply.

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

IGG

3-19

Meshing fundamentals

Face generation

FIGURE 3.5.1-1 Active

face generated by bilinear interpolation.

3-5.2

Face projection

Algebraic face grid generation (bilinear interpolation) does not in general insure that grid points will lie on CAD surfaces. To insure this, projection of the face grid on the surfaces must be performed. Surface projection consists of projecting the grid points of a face onto one or more CAD surfaces, along the normals to the face. To insure a correct projection, it is required that the initial face grid is sufficiently close to the surfaces. To project a face grid onto geometry surfaces:
1. 2. 3.

Activate the Geometry/Select/Surfaces menu option (<Ctrl-s>) and select the desired surfaces. Right-click when the selection is finished. Select the face grid to project. Click on the Project Face icon in the Quick Access Pad/Grid/Generate page.

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

Surface specification

Projection mode Range to project


Can be the whole face or a range

Range Selection

Click on the border to change the current limit

FIGURE 3.5.2-1 Face

projection dialog box.

3-20

IGG

Face generation

Meshing fundamentals

4. 5. 6.

Select the target surfaces on which to project: selected surfaces or surfaces contained in a geometry group. Select the level of checks which will be applied during projection (usually level 2). 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 supposed to be mapped on the surface before the projection). Select the projection scope: the whole face or a range. 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 overlapped surfaces fails. In this case, projecting patch by patch onto dedicated surfaces may help.

7. 8.

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 smoothing the face grid and re-applying the projection. Smoothing is available through the Face Generation Tool icon of the Quick Access Pad/Grid/Generate page.

3-5.3

Mapping onto a surface

When a face completely lies on one geometrical surface, it is possible to avoid the projection option and to use a mapping instead. This method does not require an initial grid to be generated and is consequently less sensitive to projection problems.
1. 2. 3. 4. 5.

Select the face, Select the geometry surface, Click on the Face Generation tool icon in the Quick Access Pad/Grid/Generate page, Press on the Mapping button to perform the mapping, Close the dialog box.

3-5.4

Finer control on the face generation

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

Click on the Face Generation tool icon in the Quick Access Pad/Grid/Generate page.

The following dialog box appears:

IGG

3-21

Meshing fundamentals

Face generation

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

3-5.5

Face generation history and face regeneration

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

3-5.5.1 History visualization


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

FIGURE 3.5.5-1 Face

generation history.

3-22

IGG

Face generation

Meshing fundamentals

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

3-5.5.2 Face regeneration


1. 2.

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

3.

Select the scope of regeneration and press Apply.

IGG

3-23

Meshing fundamentals

Block generation

3-6
1.

Block generation
Select the desired block by left-clicking on one of its edges. When several blocks have an edge at the same location, repeat the left-click operation until the proper block is activated.

After all the faces of a block have been generated, the generation of the block can proceed. This section describes how to generate a basic block grid by interpolation:

2. 3.

Click on the Block 6 Bnd icon in the Quick Access Pad/Grid/Generate page. The following dialog box appears and enables to select the block(s) to generate.

Blocks specified by their indices

4.

Press Apply to generate the specified block(s).

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

3-24

IGG

Internal edges

Meshing fundamentals

3-7
1. 2.

Internal edges

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

Internal grid lines

Block 2 Internal grid lines

Block 1

FIGURE 3.7.0-1 Internal

edges used to connect blocks together

To insert an internal grid line:


1. 2. 3. 4. 5. 6.

Select a face by left-clicking on one of its edges. Click on the Insert Internal Grid Line icon in the Quick Access Pad/Grid/Insert/Edit page. Move the mouse to the active face. When moving the cursor over a grid line, the grid line is highlighted and its index appears on the screen. Press <i> or <j> to enable grid line selection in a preferred direction. Press <u> to disable the preferred direction. Left-click to create the internal grid line.

The newly created internal grid line is visualized and automatically intersects the other already existing edges as shown is the following figure. fixed point automatically inserted during Insert Grid Line insertion

FIGURE 3.7.0-2 Fixed

point insertion through internal grid line creation

IGG

3-25

Meshing fundamentals

Internal edges

The created internal grid line can be manipulated in the same way as boundary edges:

Additional vertices can be inserted and moved, The edge can be mapped onto curves or surfaces, Fixed points can be inserted and moved, Distribution of grid points can be fully controlled.
To change the index of an internal grid line:
1. 2. 3. 4.

Right-click on the internal edge and go to the Edge pop-up menu. Select the Change Index menu item. A prompt will appear to enter the new index for the internal edge. Enter new Edge Index:

>> 7 The fixed points of the internal edges are automatically updated.

3-26

IGG

Internal faces

Meshing fundamentals

3-8

Internal faces

Internal faces are very convenient to add control to the block generation and to improve the generation of blocks in case negative cells appear. They can be generated as boundary faces. It is possible to insert internal faces in the I, J or K directions of the existing blocks. To insert an internal face:
1. 2.

Select the desired block by left-clicking on one of its edges. Click on the Insert Internal Face icon in the Quick Access Pad/Grid/Insert/Edit page. The following dialog box appears.

3. 4.

Sweep the I, J or K indices in order to select the desired internal face grid. Click on the Save button to generate the internal face.

This action automatically creates new internal edges at the intersection between the new face and the other existing faces. At the same time, fixed points are introduced into intersected edges to insure grid consistency at any time. These fixed points are attached to the vertices of the internal edges.

Internal edges inserted into boundary faces

FIGURE 3.8.0-1 Creation

of an internal face

To change the index of an internal face:


1. 2. 3.

Select the internal face by left-clicking on one of its edges. Right-click on one of its edges and go to the Face pop-up menu, shown in the margin. Select the Change Index menu item. Enter new face index (q):

A prompt will appear to enter the new face index value:


4.

>> 6

IGG

3-27

Meshing fundamentals

Defining patches and boundary conditions

3-9

Defining patches and boundary conditions

Patches are dividing face grids into 2D regions. These regions should not overlap, although IGG performs no check on this. Patches are mainly used for two purposes:

to control the face grid generation process, to define boundary conditions of a face.
By default only one patch exists for each face grid extending over the whole face. Patch creation is done by division of an existing patch in one of the two directions of the face. To create more patches a recursive division must be done. To define patches on a face:
1. 2.

Select the desired face. Open the Grid/Boundary Conditions... dialog box.

The list of all patches for the current project is displayed. Use the filters to reduce the list and make the selection easier.
3. 4.

In the list, select one patch belonging to the desired face. The patch is highlighted in the graphics area. Click on the Edit Patch >> button. Move the mouse to the patch to divide in the Edit Patch area. Right-click on the patch to pop-up a menu. Select the menu item corresponding to the desired division direction.

The dialog box is extended and shows the current patch decomposition for the face.
5. 6. 7.

An entry is popped up to enter the division index. At the same time, for visual control, the range is displayed in the graphics area. If the wrong division direction was selected, simply press <Esc> to cancel and repeat step 6.
8.

Enter the division index and press <Enter> in the field to perform the division.

To change the limits of a patch:


1. 2. 3. 4.

Open the Grid/Boundary Conditions... dialog box. Select the patch in the Edit Patch >> area. Left-click on one of the border to modify its value. An entry is opened to enter the new value. Enter the value and press <Enter>.

To specify a boundary condition for a patch:


1. 2. 3.

Open the Grid/Boundary Conditions... dialog box. Select the patch in the list or in the Edit Patch >> area. Go to the Set Patch Type pop-up menu and select the proper boundary condition. Connection between adjacent patches (CON and NMB) or periodic connection between periodic adjacent patches (PER and PERNM) cannot be specified explicitly with this menu item and there are detected automatically by pressing the Search button. Checks must be done by IGG for these connections to insure integrity of data for the solver (i.e. relative orientation of the connected patches). Limitation: if the Boundary Conditions dialog box has been resized before clicking on

3-28

IGG

Defining patches and boundary conditions

Meshing fundamentals

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

To specify periodic boundaries: The imposition of the periodic connections requires that the periodicity is correctly specified for each block first.
1. 2.

Open the Grid/Periodicity... dialog box. Set the periodicity information for each block. See section 10-2.1 on page 10-4 for more information.

IGG

3-29

Meshing fundamentals

Connections

3-10 Connections
IGG is a multiblock structured grid generator. To be able to use such multiblock meshes with a solver, one must know how blocks are located and how they are interacting together. Thus "connections" 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 definition, see section 3-9 on page 3-28. A section here below is specially dedicated to patch connections. 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 considerably 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. Therefore 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 Topological connections (vertex, edge, segment)). Finally, a section lists all the several means that can be used in IGG to perform connections at different levels: vertex, topological edge, segment and patch (See section 3-10.3 Connection tools).

3-10.1 Patch connections


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

a) Matching and non matching connections


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

Four patch corners must be matching at the given tolerance.

3-30

IGG

Connections

Meshing fundamentals

Four patch boundaries must be matching at the given tolerance. Patch points must lie on a same common surface. For this, some points of the first patch are
projected on the surfacic cells of the second patch. An intersection must be found and the distance between the point and its projection must be lower than an internally calculated value based on the given tolerance and the patch dimension.

All the patch points must be matching at the given tolerance. Obviously, when number of
grid points is different in one or both directions, this test is never satisfied. The three first tests are performed for both matching and non matching connections and determine if a connection is possible between the two considered patches. The last test determines if the connection is matching or non-matching. According to these tests, several conditions must be satisfied to ensure connection between patches. First of all, make sure the division into patches is correctly done. It is illustrated in Figure 3.10.1-1 where a principal block has to be connected to two adjacent blocks. In this example, the face of the principal block that has to be connected must be divided into two patches before performing connections.

Principal block Face of first block must be divided into two patches Adjacent blocks

FIGURE 3.10.1-1 Division

into patches

Secondly, to connect two patches, their boundaries must be coincident. If it is not the case, it can be achieved by inserting fixed points or internal grid lines into faces. As shown in case a) of Figure 3.10.1-2, a principal block has to be connected with a smaller adjacent 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 second face, their grid points would not be coincident, as shown in Figure 3.10.1-3.

IGG

3-31

Meshing fundamentals

Connections

Patches boundaries for principal block Principal block Second patch of principal block

a) Non matching boundaries

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

Patches boundaries coincident for first patch of principal block and patch of adjacent block b) Matching boundaries

FIGURE 3.10.1-2

Matching and non matching patch boundaries

First block: face generated by a 4Bnd interpolation

Second block: smoothing applied on face

Patches with matching boundaries and non matching grid points

FIGURE 3.10.1-3 Different

methods used for face generation

3-32

IGG

Connections

Meshing fundamentals

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

b) Full non matching connections


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

Inlet patch (block 1, face 2) Common region (connection)

Solid patch (block 1, face 2)

Solid patch (block 2, face 1)


FIGURE 3.10.1-4 Full

non matching connection between two blocks

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

IGG

3-33

Meshing fundamentals

Connections

entirely contained in the connection region. In the previous example, the basic type of the patches of block 1 face 2 are inlet and solid. However a region of these patches actually belongs to the full non matching connection. In the case a patch has an undefined type (UND) and is used in the definition of the FNMB (full non matching boundary), IGG automatically sets its type to solid (SOL). This is required by the solver to run properly. Following rules must be respected when performing FNMB connections:
1.

A patch can be contained in only one list (either the left patches list or the right one) and one FNMB connection. It is illustrated in the following figure.

First FNMB connection

Patch 1

Patch 3

Patch 2 Second FNMB connection

FIGURE 3.10.1-5 Patch 2.

contained in two FNMB connections

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

FIGURE 3.10.1-6 Patch 3.

closed on itself

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

FIGURE 3.10.1-7 Patches

with coincident points

3-34

IGG

Connections

Meshing fundamentals

4.

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

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


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

Gap smalller than specified tolerance => possible connection

Edge 1

Edge 2

Vertex shared by edge 1 and edge 2

Edge 2 shape modified automatically after vertex connection


FIGURE 3.10.2-1

Edge remapping after connection

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

Edge closed on itself

These vertices should not be connected if one of them is attached to a fixed point

FIGURE 3.10.2-2 Edge

closed on itself

IGG

3-35

Meshing fundamentals

Connections

b) Orphan vertex connection


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

Grid edge 1 with one topological edge Orphan vertex

Grid edge 2 with two topological edges


FIGURE 3.10.2-3 Two

Edges at same location within tolerance

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 vertex). The insertion of a new vertex in the edge automatically divides it into two topological edges. An orphan vertex connection is possible if the distance between the orphan vertex and the edge is less than a specified tolerance. In order to keep consistency, topological edges in which a vertex is inserted are remapped on the geometry, if possible, otherwise their shape is updated according to the new vertex position. It is illustrated in the following figure.

Topo edge 1 and 2 mapped on curve Topo edge 1 Curve Topo edge 3 Topo edge 2

Gap smaller than specified tolerance => possible connection

Topo edge 3 mapped on curve after vertex connection


FIGURE 3.10.2-4

Edge remapping after connection

3-36

IGG

Connections

Meshing fundamentals

c) Topological edge connection


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

Topological edge connection does not imply the entire grid edge connection.

FIGURE 3.10.2-5 Topological

edge connection

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

d) Segment connection
Segment connection consists of finding segments that are at the same position at a specified tolerance, 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 connected. Two segments belonging to an edge closed on itself will not be connected.

3-10.3 Connection tools


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

IGG

3-37

Meshing fundamentals

Connections

Tools of the Quick Access Pad are the following:

Connect Edge - Edge Connect Face - Face Connect Whole grid


They are used to perform connections between two edges, two faces and for the whole grid, respectively. Topological connections (vertex, topological edge, segment) are exclusively performed by using these Quick Access Pad tools. Patch connections can be performed by several means:

The first one is the use the Grid/Boundary Conditions... menu (See section 10-2.3
Boundary Conditions). It allows to find and define all connections: matching, non matching and full non matching; periodic or not. The most interesting mode is the "automatic search" (Search button), which performs automatically the search and the effective connection for all undefined patches of the grid. The second mode "manual connect" (Manual... button) is rarely used, when other means cannot perform the connection correctly.

Secondly, the Connect/Face - Face and Connect/Whole grid tools can be used. In this
case, only matching and non periodic connections (CON type) can be found. The "Face Face" item allows to find connections between patches of two selected faces, whereas the "Whole grid" item performs connections for all the patches of the grid. This last tool is strictly equivalent to the "automatic search" previously described, except that it finds only CON connections.

3-10.3.1 Connecting face grids


In this section connectivity control between two faces is described. Connecting two edges or the whole grid follows the same principle. The connection of two faces requires the selection of a reference face and a second face (target). During the different connection operations, IGG may need to remap edges affected by the operation. By convention IGG keeps the reference face unchanged and applies the modifications on the second face only. This is important when an existing face cannot be modified at all.
1.

Click on the Face-Face menu option in the Grid/Connect page. Left-click (<1>) on face edges to start the face selection. Repeat the left-click procedure until the proper face is activated. Middle-click (<2>) to store the active face as reference face. Left-click (<1>) on face edges again to start the second face selection. Repeat the left-click procedure until the proper face is activated. Middle-click (<2>) to store the active face as target face.

A prompt will appear to select the reference face.


2. 3. 4. 5.

A pop-up dialog box will be opened to enable connections at different levels, each level being identified by a button in the dialog box. For the first four "topological" levels, an order must be respected as explained in the beginning of this section on page 3-30. On the other hand the Patches level can be applied independently. The All button performs all the connections of the previous buttons, if possible. For vertex or orphan vertex connections, the topological edges using the replaced vertex are remapped on the geometry.

3-38

IGG

Connections

Meshing fundamentals

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

3-10.3.2 Full non matching connections


Such patch connections are described previously in this chapter (See section 3-10.1 Patch connections). It consists of the following:

A connection name. A list of left patches defining one side of the connection. A list of right patches defining the other side of the connection.
To define full non matching connections:
1.

Open the Grid/Boundary Conditions... dialog box. This dialog box offers an additional field Full Non Matching that can be activated by pressing on the Define... button. It opens the dialog box shown below:

List of created FNMB connections

Connection name (mandatory)

Computes and visualizes the connection (optional) Non Matching Connections dialog box

FIGURE 3.10.3-1 Full 2. 3. 4. 5. 6. 7.

Select the patches defining the left side. These patches are highlighted in yellow in the graphics area. Select the patches defining the "right" side. These patches are highlighted in blue. Enter a name for the connection. Activate the Periodic button to define a periodic FNMB connection. Press on the Create/update button to define the FNMB connection. This connection will appear in the list located on the right of the dialog box.

Once the connection is defined, it is possible to visualize the triangulation of the common region (press the Compute & Show button). This triangulation is not directly used in IGG but only serves to visualize the triangulation that will be used by the solver and to verify that the connection is correctly performed. Calling this item is optional in IGG.

IGG

3-39

Meshing fundamentals

Connections

To view and/or delete an existing FNMB connection:

Left-click on the desired connection in the connection list to select it. The patches participating in the definition of the full non matching connection will be automatically highlighted 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 connection list.

Press the Delete button to delete the selected FNMB connection (the type of the corresponding patches is unchanged but the "*" symbol is removed).

3-10.4 Disconnecting entities


Disconnection can be performed by Segment, Edge, Face or Block. When performing a disconnect operation, IGG disconnect all the entities at once. For example, disconnecting an edge disconnects the vertices, topological edges and segments of that edge. To disconnect a face:
1. 2. 3.

Left-click on the face to select the desired face. Right-click on the face to pop-up the Grid menu and go to the Face sub-menu. Select the Disconnect All menu item.

All the vertices, topological edges, segments and patches making up the face will be disconnected.

3-10.5 Visualizing connections


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

Visualize the vertex with the Toggle Vertices icon (

).

Select the Show Vertex Connections option in the Quick Access Pad/Grid/Connect page. Left-click to select a vertex.

All the blocks using that vertex will be highlighted in yellow. To see one block at a time, do the following operations:
4. 5. 6. 7.

Middle-click to visualize only the first highlighted block. Repeat the middle-click to visualize the other blocks using the vertex, one by one. Left-click to select another vertex to visualize and repeat the above operations. Right-click to stop the visualization.

The visualization of connected topological edges and segments proceeds in the same way. To visualize connected patches:
1. 2.

Select The Grid/Boundary Conditions... menu item. Go to the Type combo box and select the CON type.

3-40

IGG

Connections

Meshing fundamentals

The list of all connected patches will appear.


3. 4.

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

Connected Patch indices

IGG

3-41

Meshing fundamentals

Blocks grouping

3-11 Blocks grouping


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

Group browser List of blocks in the group Check button allowing selective visualization of items.

FIGURE 3.11.0-1 Block

groups browser.

3-11.1 Block groups usage


Block groups can be used for:

visualization control global operations on a set of blocks


Group visualization control is performed with the browser shown above. It operates in collaboration with the icons of the Quick Access Pad/View/Grid page. By pressing on the check button in front of a group, the block boundaries visualization can be toggled. By pressing on the check button in front of a block, the visualization of that block can be controlled. To show only one group:
1. 2. 3.

Go to the group browser. Select the Hide All button. This operation will remove all the blocks from the screen. Select the check button in front of the desired group. The edges of all the blocks in the group will be displayed on the screen. It may be needed to fit the view to see all the blocks properly.

3-11.2 Managing groups


Groups can be created, modified or deleted. Blocks can currently appear several times in different groups. To create a new group:
1.

Select the Create Group button below the browser.

A dialog box is opened to enter the name of the group.

3-42

IGG

Blocks grouping

Meshing fundamentals

2. 3. 4. 5. 6. 7.

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

IGG

3-43

Meshing fundamentals

Blocks grouping

3-44

IGG

CHAPTER 4:

Basic Tutorials

4-1

Overview

This chapter will introduce some of the most commonly used features and tools of IGG. The use of basic operations of IGG will be learned through tutorials, in a faster way than by reading the entire User Manual. This chapter is divided into two tutorials:

Geometry tutorial Topology and grid generation tutorial


The first tutorial describes basic geometry modelling operations, including curves and surfaces creation, and their manipulation. The second tutorial describes the creation of a block topology and the generation of a simple mesh. Before beginning the tutorials of this chapter, chapter 1 Getting Started should be necessarily read, to familiarize with some fundamentals, including:

Running IGG Terminology Topology and grid generation concepts

IGG

4-1

Basic Tutorials

Geometry Tutorial

4-2
4-2.1

Geometry Tutorial
Curves creation

The following section describes how to:

create basic curves use the keyboard or the mouse to input points use the attraction feature
The following geometry, consisting of two polylines, one cspline and one arc, will be created. arc polyline2

cspline polyline 1

FIGURE 4.2.1-1

Creation of basic curves.

Creation of a polyline curve


1. 2.

Select the Geometry/Draw Polyline/Free menu option to initiate the creation of a polyline. While in the graphics area, enter the sequence 1 0 0 in the keyboard input area with the keyboard followed by <Enter>. This action will create the first point of the polyline. the keystrokes are automatically echoed in the keyboard input area.

3. 4. 5. 6.

Enter a second point at position (1.2,0.5,0) and press <Enter>. Enter a third point at position (1,1,0) and press <Enter>. Press the right mouse button or <q> in the graphics area to end the polyline creation. Create another polyline passing through the points (0,0,0), (-0.2,0.5,0) and (0,1,0),

Creation of a cspline curve


1. 2.

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

3.

4-2

IGG

Geometry Tutorial

Basic Tutorials

4. 5.

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

Creation of a circular arc curve


1.

Select the Geometry/Circular Arc/Normal-Point-Point-Radius menu option to initiate the creation of a circular arc. Several inputs will be requested to define the arc: Enter normal to the arc Enter 0 0 1, followed by <Enter> to define the arc normal. Enter start point

2.

The start point will be specified with the keyboard:


3.

Enter 1 1 0, followed by <Enter> to define the starting point. Enter end point

The end point will be specified with the mouse by attracting it to an existing point:
4.

Move the point near the point (0,1,0) of the second polyline. When close enough the point will be highlighted (if there is no attraction, press <a> in the graphics area). Press the left mouse button to define the end point. Enter Radius 0.6 <Enter> Select Sense Press <o> until the circle has the same shape as the one of Figure 4.2.1-1 on page 4-2. Then, press the left mouse button to create the arc.

5.

6.

4-2.2

Curve selection

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

Select the Geometry/Select/Curves option to initiate curve(s) selection.

2. 3. 4. 5. 6.

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

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

4-2.3

Curve visualization

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

IGG

4-3

Basic Tutorials

Geometry Tutorial

1. 2. 3.

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. Select the cspline in the chooser (by left-clicking on it) and press Apply. Only the cspline curve now appears in the view. Select the first polyline in the chooser while holding the <Ctrl> key. The polyline is highlighted in the chooser, together with the cspline. Press Apply to visualize both curves.

FIGURE 4.2.3-1 4.

Curve chooser

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). 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. 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. Press the right button to quit the option. Select the Geometry/Distance menu. A prompt appears to select two points between which the distance will be measured and displayed. 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). 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.

7. 8.

9. 10. 11. 12.

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". Press the left mouse button to fix the distance on the screen.

14.

The operations can be repeated to measure the distance between other points.
15.

Press the right button to quit the option.

4-2.4

Curve Saving

It is possible to save during the work the curves created in the previous steps. Only the curves selected (with Geometry/Select/Curves - highlighted in green) are saved into a file:
1.

Select File/Export/Geometry Selection... menu. A file chooser is opened to specify the name of a file. The name should have a .dat extension. This file can be read back using the File/ Import/IGG Data... menu.

4-2.5

Surface Creation

In this section simple surface creation is described, starting from a set of curves. A new session will be opened to clear all previous drawings.
1.

Select File/New to close the current project and open a new, empty, project. Opening a new project closes the current project without automatic saving.

4-2.5.1 Creation of a lofted surface


2.

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

FIGURE 4.2.5-1 Imported 3. 4.

geometry curves, after some viewing manipulations

Select the curves using Geometry/Select/Curves (<s>) in the order indicated on the figure. Select the Quick Access Pad/Geometry/Surface/Lofted menu. A NURBS surface, interpolating 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 automatically created 4

FIGURE 4.2.5-2 Lofted

surface

4-2.5.2 Creation of a Coons patch


A Coons surface is a surface interpolating 4 boundary curves using a bilinear interpolation. To avoid overlapping with the lofted surface, the selected curves will be copied and translated.
1. 2.

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

3.

Select the Quick Access Pad/Geometry/Surface/Coons menu. A new surface is created which interpolates the four selected curves.

FIGURE 4.2.5-3

Coons patch

4-6

IGG

Geometry Tutorial

Basic Tutorials

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

4-2.5.3 Creation of a surface of revolution


A surface of revolution will be created by rotating a newly created curve around the Y axis.
1.

First create a cspline (Quick Access Pad/Geometry/Curve/CSpline) between the points (-0.5,2,0.1), (-0.5,0.,0.2) and (-0.5,2,0.1). These points were selected so that the surface of revolution that will be created intersects the lofted surface. Make this curve the only selected curve (Geometry/Select/Curves).

2.

A surface of revolution will now be created by rotating this curve around a line parallel to the Y axis. The rotation origin is taken so that the surface of revolution intersects the lofted surface.
3.

Select the Quick Access Pad/Geometry/Surface/Revolution and follow the instructions requested by IGG as follows: Rotation axis vector (q) >> 0 1 0 Rotation axis origin (q) >> -0.5 0 -1 Rotation angle (q) >> 300

boundary curves

FIGURE 4.2.5-4

Surface of revolution

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

4-2.6

Surface visualization

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

IGG

4-7

Basic Tutorials

Geometry Tutorial

1.

Select the Geometry/View/Surfaces option. A surface chooser appears with the name of all the surfaces in the geometry repository. All surfaces in the chooser are highlighted since they are all visible in the graphics area. Select the lofted surface in the chooser and press Apply. The lofted surface appears alone in the graphics area. Select the surface of revolution in the chooser while holding the <Ctrl> key. The surface of revolution 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 (highlighted in blue). 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.

2. 3.

4.

5.

Close the chooser.

4-2.7

Surface selection

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

Select the Geometry/Select/Surfaces menu to initiate surface(s) selection.

2. 3. 4. 5. 6.

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

Press <a> to unselect all the surfaces (toggle option), which become unhighlighted (boundary curves are unhighlighted). Move the mouse over one of the curves of the lofted surface. The surface becomes highlighted (boundary curves highlighted). Press the left button to select the surface. The boundary curves remain now permanently in red. Select in the same way the surface of revolution. Quit the selection operation with the right mouse button. Selection and deselection of all the visible surfaces can be done by pressing <a> repeatedly (toggle option).

4-2.8

Adding curves to the surface

When manipulating parametric surfaces (i.e. bsplines, or NURBS), it is possible to create curves in the parametric directions of the surfaces. These curves can be used to better visualize the surfaces or for other geometry and grid modelling operations.
1.

Select the Geometry/Modify Surface/Representation menu. IGG requests the number of curves to be created in the u and v direction of each selected surface: Number of curves in the u and v directions (q) >> 15 15

2.

Repeat the previous operation and specify 5 curves in each direction.

4-8

IGG

Geometry Tutorial

Basic Tutorials

1. 2. 3.

Select the Geometry/Modify Surface/Add uv Curves menu. Then a point must be selected on the selected surfaces. 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. Press the left mouse button to add the two curves in the geometry repository. The curves created in the previous steps are deleted when the surface is deleted, except if they are used by other entities.

IGG

4-9

Basic Tutorials

Grid generation tutorial

4-3

Grid generation tutorial

A C-type single block grid around an airfoil is proposed to explain the basic features of the major topology and grid generation modules. The tutorial shows the successive steps that must be followed to generate a 2D mesh and to define the boundary conditions required before starting a solver:

setting up a 2D project importing and creating geometry curves needed for meshing defining the topology before meshing creating and placing a block specifying the clustering generating a face grid defining the boundary conditions

4-3.1

Case description

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

e4 e4 e1

e4 e1

e2

e1 e3 e3 e2

e3

e2

FIGURE 4.3.1-1 Deforming

a block to get a C-type mesh.

Before running the IGG system, it is advised to make a sketch of the face to generate and to identify 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 s2
63 pts

21 pts

s1

5,10

J=1
41 pts

e1

e4 e3
I =Imax - 9,0 I =1 0,0 s3
63 pts 63 pts

s1 i j 5,0

s2

21 pts

s1 1,0 s4

21 pts

Nodes : 41 x 165 s3
63 pts

s1
41 pts

J = Jmax y x 1,-10 s4
21 pts

e2
5,-10

FIGURE 4.3.1-2 C-type

grid topology for the airfoil.

In the topological space of the face, our boundary decomposition is as follows: Edge 4
21 s1 63 s2

e4
63 s3 21 s4

41

41 s1 s1

Edge 1

Edge 2

e1
21 s1 63 s2 63 s3 21 s4

e2

Edge 3

e3

FIGURE 4.3.1-3

Topological representation of the 2D face.

A few comments can be made from the previous figures:

IGG

4-11

Basic Tutorials

Grid generation tutorial

edges 1 and 2 have only one segment. The start point of the segment of edge 1 corresponds
to the start point of the segment of edge 2.

edge 3 is used to model the pressure and suction sides of the airfoil as well as the wake. It is
decomposed into 4 segments to capture the discontinuity in the wake and to facilitate the grid point distribution settings.

edge 4, opposite to edge 3, is also decomposed into 4 segments. segments 1 and 4 of the edge 3 coincide geometrically. They do however have an opposite
orientation.

4-3.2

Project configuration

When launching IGG, a 3D project is by default initialized. For this tutorial, the 2D option needs to be activated as follows:
1.

Select File/Project Configuration... menu. A dialog box is opened. In the Dim area, left-click on the 2D button and then press the Apply button to validate the input. A confirmation is asked. Answer "yes" and Close the dialog box.

A new 2D project is now initialized and only the XY plane is active. The depth of the view, controlling the z coordinate, is invariably set to 0.

4-3.3

Importing and creating the boundary curves

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

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

p3

a1

suction
(-9,0,0)

p1
(1,0,0)

(5,0,0)

pressure

a2
(1,-10,0)

p2

(5,-10,0)

FIGURE 4.3.3-1 Geometry

curves.

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

4-12

IGG

Grid generation tutorial

Basic Tutorials

4-3.3.1 Importing the pressure and suction sides


2.

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

3.

4-3.3.2 Creating boundary curves


The missing curves are now created by using the IGG geometry moduling capabilities. For a complete description on how to create basic curves refer to section 2.3 of this manual.
4.

Create a polyline (Quick Access Pad/Geometry/Curve/Polyline) between the points (5,0,0) and (1,0,0).

Since the line lies far from the airfoil, it will not be visible in the current view. The view must be fitted to the curve sizes.
5.

Left-click on the Default orientation button (

) in the viewing buttons area.

Next, the name of the curve will be modified. Naming a curve explicitly is needed when using template capabilities. It is performed here as an exercise.
6. 7. 8. 9. 10.

Select the polyline alone (Geometry/Select/Curves or <s>). Select the Quick Access Pad/Geometry/Curve/Set Name option and change the name of the curve to "p1". Apply and Close the dialog box. Create a polyline between the points (1,-10,0) and (5,-10,0) and name it "p2". Create a polyline between the points (5,10,0) and (1,10,0) and name it "p3". Create a circular arc (Quick Access Pad/Geometry/Arc/Normal-Center-Point-Point) by entering the normal to the arc (0,0,1), the center (anchor point) (1,0,0), the start point (1,10,0) and the end point (-9,0,0). Name the curve "a1". Create a second circular arc by entering the normal (0,0,1), the center (anchor point) (1,0,0), the start point (-9,0,0) and the end point (1,-10,0). Name the curve "a2".

11.

4-3.4

Creating and placing the block

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

Left-click on the Insert New Face icon ( ) of the Quick Access Pad/Grid/Create page. A square face will appear in the graphics area. 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. 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. Left-click to accept this default orientation and to complete the face creation.

2. 3. 4.

IGG

4-13

Basic Tutorials

Grid generation tutorial

second point e4 e2 e3 J I e1

first point

FIGURE 4.3.4-1

Creation of the first face

At this stage the face is created. Its four edges appear as straight lines which still need to be wrapped around the airfoil. The number of grid points along the I and J directions is currently 9 (default) and will be changed to (41x165), as described in the initial sketch.
5.

The number of grid points will be changed as follows:

Select the Grid/Grid Settings... menu. A dialog box is opened. Specify the number of grid points in each direction. To this end, move the cursor to the
Imax box and type 41 followed by <Enter>. This setting takes effect immediately after pressing <Enter> and deletes any previously generated grid.

Specify in the same way Jmax = 165. Notice that Kmax has a value of 2 in the 2D option.
This value cannot be changed. Close the dialog box. The initial mesh can be visualized by pressing the Toggle Face Grid icon ( ) of the Quick Access Pad/View/Grid page.

The face can now be positioned correctly around the airfoil:


6.

Move the cursor over the upper right vertex. When it is highlighted, left-click on it to initiate the placement. Move and attract the cursor to the start point of the polyline p3. Then, left-click to fix the position of the vertex. 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.

7.

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

edge 3

v1

FIGURE 4.3.4-2 Insertion

of the block face

Capturing the pressure and suction sides: The edge 3 will be used to capture the shape of the airfoil.
8.

Now, a zoom can be performed on the airfoil. To do this, left-click on the Zoom Area button ( ) of the Viewing buttons area. Press and drag the left mouse button to select a rectangular region around the airfoil, then release the left button to perform the zoom.

9.

Insert one vertex (v5) on edge 3 and place it on the start point of the suction curve. Then, to be sure to firstly map edge 3 on the suction curve and not on the pressure curve, insert another vertex (v6) on edge 3, and place it on the suction curve (about in the middle). Eventually, insert and place a third vertex (v7) on the end point of suction curve, as in the following figure. Attach two fixed points to vertices v5 and v7.

v7

v6 v5

FIGURE 4.3.4-3 Mapping

on the suction curve

IGG

4-15

Basic Tutorials

Grid generation tutorial

10.

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

v1, v4

v3

FIGURE 4.3.4-4 Mapping 11.

on the boundary curves

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 v8 v5

v7

v6 v5, v9 v8

FIGURE 4.3.4-5 Mapping

on the pressure curve

4-16

IGG

Grid generation tutorial

Basic Tutorials

Now, the face is correctly placed and the segments are created according to the sketch made previously. The mesh can be visualized (the face mesh is automatically generated) by pressing the Toggle 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 visualized as explained before. In some cases, the index will not be changed because the new value is higher than the index of the next fixed point on the same edge. So, the index of the next fixed point must be changed first before changing the one of the current fixed point. Set the fixed points indices as in the following figure:

J = 21

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

J = 145

FIGURE 4.3.4-6 Fixed

points indices

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

4-3.5

Grid points clustering

Once the edges of the face are set-up adequatly, the next step consists of specifying the clustering of grid points along each edge. This step is essential before proceeding to the face grid generation since the location of the grid points at the boundaries (on the edges) is directly used to interpolate the face grid. Grid point clustering will here be specified to capture:

the boundary layer on the pressure and suction sides the wake the leading edge and trailing edges
The following picture shows the segment numbering and orientation selected in the next coming steps. I and J constant grid lines are also outlined.

IGG

4-17

Basic Tutorials

Grid generation tutorial

s9
J cste lines

s5
I cste lines

s1

s7 s8

s3 s4 s2

s10 s6

FIGURE 4.3.5-1 Segment

numbering and orientation.

a) Clustering the boundary layer area


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

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

FIGURE 4.3.5-2 Clustering

dialog box

4-18

IGG

Grid generation tutorial

Basic Tutorials

2.

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

3. Group is added to the list

2. Enter the name of the group 1. Select the Create button

FIGURE 4.3.5-3 Segment 3.

group definition dialog.

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 segment, repeat step 4. Middle-click to add the segment to the list. The segment appears in the group in the dialog box. Repeat steps 4 and 5 to add the segment s2 (segment 1 1 2 1). Select the Close button in the dialog box or right-click in the graphics area to complete the group creation.

5. 6. 7.

The group is now defined and can be used to specify the clustering on both segments at once.
8. 9. 10.

In the popup menu of the Clustering dialog box select the group name "group1" (it should be the default). Select the distribution type At Both Ends 2 and set the initial spacing at start to 1e-5, the initial spacing at end to 0 and the number of constant cells to 10. Press the Apply to group button to apply the clustering to each segment in the group.

The grid point distribution can be visualized by selecting the Quick Access Pad/View/Grid/Toggle Grid Points icon (or <Ctrl-l>). The effect of the clustering on the mesh can be seen by viewing the mesh using the icon Quick Access Pad/View/Grid/Toggle Face Grid (<Ctrl-z>).

b) Clustering in the wake area


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

IGG

4-19

Basic Tutorials

Grid generation tutorial

11. 12. 13.

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: Select the segment s3 (left-click) and add it to the group (middle-click). Select the segment s4.

This segment must be added to the group using a reverse orientation:


14. 15. 16. 17. 18.

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. Middle-click to add the segment to the group. Select the segment s5 and add it to the group. Select the segment s6, reverse the orientation (<o>) and add it to the group. 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. 20. 21.

Select the group "group2" in the combo box of the Clustering dialog box. 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. Press the Apply to group button to apply the clustering.

c) clustering in the leading and trailing edges areas


The clustering on the segments controlling the leading and trailing edges will be set one by one, with no group defined, as an exercise.
22.

Select the segment (1,1,3,2). This segment extends from the far field to the trailing edge and allows to control the grid point distribution in the wake. Select the distribution type Hyperbolic Tangent and set the initial spacing at start to 0.005, and the initial spacing at end to 0.001. Then press on the Apply to seg button to perform the clustering. Select the segment (1,1,3,3). This segment extends from the trailing edge to the far field and is actually located at the same position as the segment (1,1,3,2), but with a reverse orientation. Its distribution should consequently be opposite to this segment Select the distribution type Hyperbolic Tangent and set the initial spacing at start to 0.001, and the initial spacing at end to 0.005. Then press on the Apply to seg button to perform the clustering. Close the dialog box.

23.

Finally, the clustering on segments s9 and s10 will be copied from the segments s7 and s8, respectively.
24.

Select the Grid/Grid Density/Copy... menu to copy the grid points clustering of the segment s7 to the segment s9. Enter 1 1 3 2 in the From box and 1 1 4 2 in To box then press the Apply button to perform the copy. In the same dialog box, enter 1 1 3 3 in the From box and 1 1 4 3 in To box then press the Apply button to copy the distribution from segment s8 to s10.

25.

4-3.6

Grid Generation

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

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

4-20

IGG

Grid generation tutorial

Basic Tutorials

FIGURE 4.3.6-1

Zoom near the airfoil : 4 Bnd interpolation

The orthogonality of the mesh to the pressure and suction sides could still be improved and must be improved. To do this, the cubic interpolation option (orthogonality control + algebraic generation) will be used. Orthogonality will be enforced between the edges 3 and 4.
2.

Select Edges: 3-4 and Orthogonality Control buttons to set up the orthogonality control between edge 3 and edge 4. The normals are displayed in black (or white) indicating the range and the level of orthogonality.

The normals are currently too large and must be reduced before regenerating the face:
3.

Reduce the Ratio 1st Edge to 0.1 and the Ratio 2st Edge to 0.01 and press the Algebraic button to regenerate the grid according to these values. Then unselect the Orthogonality Control button.

FIGURE 4.3.6-2

Orthogonality control - detection of the overlapping cells

IGG

4-21

Basic Tutorials

Grid generation tutorial

4. 5.

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

The face 1 of the block is now completely created and generated.

4-3.7

Boundary condition settings

This section explains the division of a face into patches and the setting of a boundary condition type for each patch. As explained in the introduction, a 2D project consists of a 2D face grid extruded orthogonally to yield a 3D block. Within the 2D project, boundary conditions are specified directly on this 3D block. The extrusion is performed automatically by IGG when opening the dialog box for boundary condition setting.
1.

Select the menu item Grid/Boundary Conditions... to open the dialog box. The 3D block is automatically extruded and appears in a 3D view:

face 2

face 6

face 5

face 3

face 4 face 1
FIGURE 4.3.7-1 3D

block created by extrusion of face 1

The boundary condition type for block faces 1 and 2 is automatically set to MIR (mirror condition) in 2D, which explains that these faces do not appear in the patch browser (because their boundary condition type cannot be changed). The face 3 is activated in the dialog box and displayed in pink meaning that its boundary condition type is undefined.
2.

For the face 3, set the Patch Type to EXT (external boundary condition). For this, left-click on the Set Patch Type menu, drag the mouse to the EXT button and release the left mouse button.

4-22

IGG

Grid generation tutorial

Basic Tutorials

3. 4.

Select the face 4 in the dialog box (by left-clicking on it) and set the Patch Type to EXT. 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. 7.

Press the Connectivity/Search button to set up automatically the connection between the patches 1 and 4 of the face 5. Close the dialog box. The view is set automatically back to the projected XY view. Then, save the mesh using the menu item File/Save/Save. The mesh file is now ready to be loaded in the FINE GUI environment.

IGG

4-23

Basic Tutorials

Grid generation tutorial

4-24

IGG

CHAPTER 5:

Butterfly mesh

5-1

Introduction

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

FIGURE 5.1.0-1 Butterfly

topology on a circle

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

IGG

5-1

Butterfly mesh

Introduction

FIGURE 5.1.0-2 Examples

of different butterfly topologies

5-2

IGG

IGG butterfly implementation

Butterfly mesh

5-2
5-2.1

IGG butterfly implementation


Terminology

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

Inner block

Buffer blocks

Buffer blocks

FIGURE 5.2.1-1 Butterfly

topology with seven blocks

5-2.2

Generation method

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

FIGURE 5.2.2-1 Default

shape representation of the butterfly topology

IGG

5-3

Butterfly mesh

IGG butterfly implementation

At the creation of a butterfly topology, a default calculated shape of the butterfly blocks is automatically displayed in the graphics area (Figure 5.2.2-1). In fact, butterfly blocks are not directly created 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 associated parent block face towards the corresponding inner block face.

K Faces 1

Faces 2 K K

FIGURE 5.2.2-2 Buffer

blocks orientation

5-2.3

Butterfly shape control

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

5-4

IGG

IGG butterfly implementation

Butterfly mesh

Buffer blocks associated to faces 1 and 2

No buffer block associated to face 1

FIGURE 5.2.3-1 Buffer

blocks association to parent block faces

Secondly, the curves symbolising the edges can be modified to give the desired shape to the future edges and therefore to control the shape of the butterfly blocks. The curves can be modified by moving control points. Each curve has by default two control points at its extremities and additional control points can be inserted. Control points are constrained to move on a geometric surface constructed 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 sections can be seen as a control of the shape of the butterfly block faces aligned along a same direction. This control is illustrated in the following figure.

Surface 1 constructed from face 1 grid Preferential direction K

Surface 2 constructed from face 2 grid

Control point constrained to move on surface 2 Control point constrained to move on surface 1
FIGURE 5.2.3-2 Control

points displacement

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

IGG

5-5

Butterfly mesh

IGG butterfly implementation

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

Preferential direction

FIGURE 5.2.3-3 Butterfly

topology representation and section control

The geometric surface defining a section is generally fixed except for the first and last control sections 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 direction) cannot be modified and is obtained automatically by interpolation in the parent block mesh. After each control point repositioning, the touched edges of a section are remapped on its geometric surface, assuming that a straight line links the two end control points of an edge in the parameter space of the surface.

Edge mapped on the section surface

Edges interpolated in the parent block mesh

FIGURE 5.2.3-5 Edge

mapping on section surface

5-6

IGG

IGG butterfly implementation

Butterfly mesh

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

FIGURE 5.2.3-6 Additional

points insertion on edge

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

Buffer block at first control section Straight edges

No buffer block at last control section Additional point on radial edge

FIGURE 5.2.3-7 Straight

and mapped radial edges for first and last control section

IGG

5-7

Butterfly mesh

Butterfly dialog box

5-3

Butterfly dialog box


) of the

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

FIGURE 5.3.0-1 Butterfly

dialog box

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

FIGURE 5.3.0-2 Message

indicating that the block may be regenerated

5-8

IGG

Butterfly dialog box

Butterfly mesh

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

5-3.1

"General variables" frame

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

5-3.1.1 Preferential direction


This first item allows to choose the preferential direction along which the section control will proceed. The possible values for this direction are the I, J or K axis of the parent block. Obviously, the shapes obtained with different directions are rather variable because the geometric surfaces of the control sections are constructed by taking different surfacic meshes. Consequently all the parameters of the butterfly dialog box are reset to default values and a new optimized shape is calculated. To prevent wrong manipulations and a non desired reset of the parameters, a dialog box asking for confirmation appears when changing the preferential direction. K I J Preferential direction along J axis Preferential direction along K axis

FIGURE 5.3.1-1 Influence

of preferential direction on shape control

5-3.1.2 Buffer blocks


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

IGG

5-9

Butterfly mesh

Butterfly dialog box

J K I

Faces 1, 2 and 5 without buffer block associated:

FIGURE 5.3.1-2

Buffer block selection by parent face index

5-3.1.3 Creation from uniform clustering


For each control section, a geometric surface is created from a surfacic mesh, leading to a different edge mapping if the mesh is different. Also, the edges interpolated in the parent block mesh have a different shape when using different meshes. This option allows to change the mesh used to calculate the edges position. It is important to note that the activation of this option is not modifying the mesh of the parent block. A duplication of this mesh is done, all the clusterings are reset to uniform, all the faces are regenerated and a new mesh is re-interpolated. This option is useful when a clustering already exists on a parent block and allows to always obtain the same butterfly blocks shape with different clusterings. This option is illustrated in the following figure.

Uniform clustering activated

Uniform clustering deactivated

FIGURE 5.3.1-3

Creation of a butterfly topology by using a uniform clustering

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

5-10

IGG

Butterfly dialog box

Butterfly mesh

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

5-3.2

"Section control" frame

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

5-3.2.1 Section number ID


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

5-3.2.2 Preferential direction buffer depth


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

FIGURE 5.3.2-1 Different

geometric surface positions for first control section

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

5-3.2.3 Radial depth


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

IGG

5-11

Butterfly mesh

Butterfly dialog box

Bisecting line for first control point

FIGURE 5.3.2-2 Optimization

on inner block corners position

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

Limit value for convergence Radial depth: 11 Convergence of optimization: Radial depth: 19

Radial depth: 20 No convergence of optimization: (0.2,0.8) (0.2,0.2) (0.8,0.8) (0.8,0.2)

Radial depth: 40

(0.4,0.4)

FIGURE 5.3.2-3

Different shapes obtained by increasing the "Radial depth"

This optimization cannot be deactivated manually. It is always applied as long as there is convergence. When it cannot converge, it is automatically deactivated and default values are assigned to the points parameters. It is important to note that all the additional control points of the active section are deleted when changing this parameter, as the optimization can only be done on the inner block corners.

5-12

IGG

Butterfly dialog box

Butterfly mesh

5-3.2.4 Control points parameters


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

Reference section chosen for copy

Active section

Control points copied from reference section to active section => same shape obtained

FIGURE 5.3.2-4 Copy

of section parameters

5-3.2.5 Section interactive control


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

IGG

5-13

Butterfly mesh

Butterfly dialog box

To move a control point, move the mouse on the corresponding marker to highlight it and select it by a left-click. Then it can be positioned continuously on the geometric surface of the section by moving the mouse. To fix it, left-click again. To insert an additional control point, press <i> and move the mouse cursor on the desired edge of the active section. When the cursor is close enough and an additional point can be inserted, a marker appears; left-click to insert the corresponding control point. Then it can be moved as previously. 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 automatically on the geometric surface.

5-3.3

"Clustering" frame

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

5-3.3.1 Number of radial points


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

5-3.3.2 Radial clustering


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

FIGURE 5.3.3-1 Radial

clustering dialog box

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

5-14

IGG

Butterfly dialog box

Butterfly mesh

5-3.3.3 Clustering reciprocity


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

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

First button activated before creation: optimized clustering on parent and inner blocks; first layer of cells with constant thickness in inner block.

Second button activated before creation: uniform clustering on parent and inner blocks; first layer of cells with great variations in thickness for inner block.

FIGURE 5.3.3-2 Clustering

reciprocity options

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

IGG

5-15

Butterfly mesh

Butterfly dialog box

5-3.4

Butterfly command buttons

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

5-16

IGG

Butterfly management

Butterfly mesh

5-4
5-4.1

Butterfly management
Creation specificities

Several parent block configurations can lead to warnings during the butterfly creation, or even more, to a butterfly creation failure.

Face divided into several patches If a parent block face has no associated buffer block and if this face contains several patches, the butterfly topology cannot be created. The reason is that, in general, it is impossible to associate butterfly blocks patches to parent block patches in this case. So the following message will appear:

FIGURE 5.4.1-1 Face

without buffer containing several patches

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

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

FIGURE 5.4.1-2 Periodic

connections detected at the creation

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

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

FIGURE 5.4.1-3 Creation

of the butterfly topology forbidden

Invalid connections (of type CON or NMB)

IGG

5-17

Butterfly mesh

Butterfly management

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

FIGURE 5.4.1-4 Invalid

connections detected

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

5-4.2

Blocks naming and numbering

As said in the section 5-2.2 "Generation method" on page 5-3, the butterfly blocks numbering and naming is hidden to the user. The butterfly blocks naming is based on the parent block name, according to the following rule: If "X" is the name of the parent block, the name of the butterfly blocks will be the following:

Inner block: X_but0 Face 1 buffer block: X_but1 ... ... Face 6 buffer block: X_but6

If the butterfly group is split, the part "but" of the butterfly blocks name is automatically replaced by "split". If the parent block name is changed, the butterfly blocks names are automatically updated according to this rule. Concerning the butterfly blocks numbering, as they are not added in the grid, their number is not seen. However, there are differences in blocks numbering between IGG and FINE, EURANUS and CFView. Indeed, parent blocks are only seen in IGG and block number 2 in FINE, EURANUS and CFView may not correspond with block number 2 in IGG. Moreover, the number of blocks can also be different. For example, for one parent block containing a butterfly topology, there is one block seen by the user in IGG whereas there are 7 blocks in FINE (the butterfly blocks). On the other hand, when a butterfly group is split, the parent block is deleted and the butterfly blocks are added at the end of the grid. It implies that blocks number are modified. For example, lets take two butterfly groups to split: parent block 1 and parent block 2. Start to split group 1: parent block 1 is deleted and parent block 2 becomes block number 1. So, to split the remaining butterfly group, block number 1 must be split and not the block number 2, which has no more a butterfly topology!

5-4.3

Interaction with the butterfly topology

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

5-18

IGG

Butterfly management

Butterfly mesh

Setting blocks number of points The number of points of the butterfly blocks is updated automatically in order to be always matching with the parent block. The radial number of points, independent from the parent block, must be
changed in the Butterfly dialog box ( ).

Setting segments clustering Clustering is automatically applied from a parent block segment to the underlying buffer block segment, if existing. Moreover, the same arc-length distribution can be applied from a parent block segment to the corresponding segment of the inner block by using the "Clustering reciprocity parent->inner" option of the Butterfly dialog box ( ). The radial clustering, independent from the parent block, must be changed in the Butterfly dialog box ( ).

Face generation When a face mesh is modified (for example by projecting a face) and that there is a buffer block associated, the face 1 of this buffer block is automatically updated. Block generation The butterfly blocks are generated by generating the parent block. Block deletion Obviously, when the parent block is deleted, the butterfly topology is also removed. Boundary conditions, connection of patches and division of the faces into patches If a parent face is associated to a buffer block, the same division into patches will be applied from this face to the face 1 of the buffer block. If there is no associated buffer block, the parent face can contain only one patch and cannot be divided.
Connections are performed between parent blocks. Then connections between corresponding butterfly blocks are set automatically. If the butterfly blocks configuration does not allow this connection, the connection between parent blocks is not found.

Parent block

Butterfly topology created

Parent block face containing 1 patch. No buffer block associated. Patch type set to SOL or patch included in a FNMB connection
FIGURE 5.4.3-1

Five butterfly patches. Their type is set to SOL or they are all included in the FNMB connection

Face without buffer block associated

IGG

5-19

Butterfly mesh

Butterfly management

Concerning the boundary conditions, the patch type is applied from the parent block patch to the corresponding butterfly blocks patch. If there is no buffer associated to the patch face, the same type is applied to all the butterfly block patches adjoining the parent face. It is exactly the same for the full non matching connections, as illustrated in Figure 5.4.3-1. All these operations can be performed before or after the creation of the butterfly topology; they will be taken into account in both cases.

Visualization Edges of butterfly blocks are visualized but cannot be accessed. They are toggled with the edges of the parent block.
Vertices, fixed points, edges grid points and patches are only displayed for the parent block. Faces grids are displayed for the butterfly blocks. This means that if there is no buffer block associated to a parent block face, the adjoining butterfly faces will be shown, as illustrated in the following figure.

No buffer block associated


FIGURE 5.4.3-2 Face

Butterfly faces displayed grid representation

5-4.4

Forbidden operations

Vertex displacement
To keep consistency between the parent block and its corresponding butterfly blocks, the vertices of the parent block cannot be moved when the butterfly topology is created. If a vertex has to be moved, the butterfly topology must be deleted and then re-created after vertex displacement.

Vertices connection
When connecting vertices of the parent block, some care must be taken to avoid vertex displacement and therefore keep consistency between parent and butterfly blocks. Indeed a vertex can be displaced automatically when connecting it to another vertex if it is too far away. If a vertex is moved, the butterfly topology of the parent block will not be updated. It is recommended to do Edge-Edge or Face-Face connections (Quick Access Pad/ Grid/Connect page) by always choosing the parent block as reference to avoid its modification.

5-20

IGG

Butterfly management

Butterfly mesh

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

5-4.5

Visualization of butterfly blocks inner mesh

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

FIGURE 5.4.5-1 Sweeping

of butterfly blocks mesh

IGG

5-21

Butterfly mesh

Butterfly management

5-4.6

Cells volume calculation

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

5-4.7

Grid quality checking

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

FIGURE 5.4.7-1 Grid

quality checking on butterfly topology

5-4.8

Butterfly regeneration when using template

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

5-22

IGG

Butterfly management

Butterfly mesh

Consequently a new option has been added in order to replay a template by geometry file importation 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 applicable 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 butterfly topology because in general, a clustering is always set on a parent block after the butterfly creation. On the other hand, it is not restrictive as it is advised to create a butterfly topology on a parent block by using a uniform clustering. Moreover, the options "Clustering reciprocity" will be taken into account for regeneration. Patches connections between butterfly groups and their adjacent blocks will be lost because they are deleted when removing the existing butterfly topology.

5-4.9

Block transformation

When a parent block is transformed (Quick Access Pad/Grid/Insert/Edit page), its butterfly topology is automatically regenerated by IGG. The following steps will be executed to regenerate a parent block:

Memorization of the butterfly generation parameters Deletion of the butterfly topology Transformation of the parent block New butterfly topology creation according to the memorized parameters

All the same parameters of the initial butterfly topology are re-used to create the new one.

5-4.10 Block duplication


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

5-4.11 Imposition of an initial solution in FINE


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

IGG

5-23

Butterfly mesh

Butterfly management

If "X" is the name of the parent block, the name of the butterfly blocks will be the following:

Inner block: X_but0 Face 1 buffer block: X_but1 ... ... Face 6 buffer block: X_but6

If the butterfly group is split, the part "but" of the butterfly blocks name is automatically replaced by "split". As the relative position of a block to the butterfly group can be known from these names, there is no need to look in IGG the orientation of this block. If the flow direction chosen for the parent block is respectively K, J or I, the corresponding flow direction for the butterfly blocks will be the following:

Inner block:

J J J K Reverse K I Reverse I

I I Reverse I Reverse I I K Reverse K

Face 1 buffer block: K Face 2 buffer block: Reverse K Face 3 buffer block: J Face 4 buffer block: J Face 5 buffer block: J Face 6 buffer block: J

5-4.12 Current limitations


Avoid using the "File/Export/Block Coor" functionality if butterfly blocks have to be
exported. Only the parent block is exported when selecting this functionality.

Avoid connections of type PER and PERNM for butterfly groups. They are not available. Avoid setting periodicity to a butterfly group (set by the Grid/Periodicity menu item). It is
not applied from the parent block to the butterfly blocks. Moreover, there is no warning message. Split the butterfly group to set the periodicity and to find periodic connections.

For patch visualization, it is the parent block patches that are displayed. The mapping of radial edges on a geometric surface of the section can sometimes lead to curved
edges. It is due to the parametrization of the surface. In this case additional control points can be inserted in the edge to improve its shape.

Coarse grids cannot be visualized for butterfly blocks because their coarse grid levels are different than the ones of the parent block (due to the radial number of points).

5-24

IGG

CHAPTER 6: Templates and Scripts

6-1

Introduction

IGG provides two options to automate the generation of grids around similar geometries: templates 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 geometry 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, organized 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 operations 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
6-2.1

Templates
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 proceeds 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 automatically 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 parametrization changes widely. In that case, manual corrective operations may be needed to obtain an optimized topology.

6-2.2

Fundamental assumptions

A few basic assumptions must be fulfilled in order for the template implementation to work properly:

Same topology of the geometry:


The reference and modified geometries must have the same topology. This means that they should contain the same entities (curves and surfaces), arranged in a similar way. The shape of these entities may however change from one file to another.

Same names for the curves and surfaces:


The curves and the surfaces in the modified geometries must have the same name as in the original geometry. IGG uses these names to detect a one-to-one correspondence between the entities in the two geometries and to perform the replacement of one by the other.

6-2

IGG

Templates

Templates and Scripts

6-2.3

Using the template option

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

analysis and preparation of the geometry, generation of the initial grid, yielding the template project, replay of the template.

6-2.3.1 Analyzing the input geometry


Before creating the initial grid, the user should verify that the reference and modified geometries conform to the basic assumptions enumerated above. To do this, the user should open the reference and modified geometries in separate IGG sessions and compare them using the visualization tools. The user should verify that:

The curves and surfaces in the reference geometry are present in the modified geometry. The name of each curve and surface is the same in the two geometries. The name of entities can
be displayed by using the Geometry/Select Curves (<s>) or Surfaces (<Ctrl-s>) and by moving the mouse on top of the desired entity. The name will then appear in the information area. If the naming condition is not satisfied, the user can adapt the reference or modified geometries by assigning explicitly a proper name to the curves or surfaces, using the Quick Access Pad/Geometry/Curve/Set Name or Quick Access Pad/Geometry/Surface/Set Name options. Name assignment should of course be performed in a consistent way in each project.

6-2.3.2 Creating the template project


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

a) Geometry options
Geometry creation or modification options should not be used during the creation of the grid. Placing 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 applying 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/Surface/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 boundary 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 process, 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 absolute position after replay of the template.

6-2.3.3 Replaying the template on the modified geometry


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

In the context of templates, the Replace mode should be used. This option will instruct IGG to automatically replace the old curves and surfaces by the new ones. Replacement will take place after the Apply or Apply to All buttons has been pressed At the end of the importation, IGG will automatically remap all the vertices and edges lying on these curves or surfaces. At this stage the edges of the blocks should be checked to verify that the mapping has been performed in a satisfactory way. Depending on the parametrization of the new geometry, the new position 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 corrective 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 happen that the default tolerance of a vertex, which used to work on the original geometry, is not large enough to close the gaps in the modified geometry. Straight edges will appear which must be corrected by increasing the tolerance of the vertices.

6-2.5

Input file format

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

IGG

6-5

Templates and Scripts

Scripts

6-3
6-3.1

Scripts
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 parametrizing 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 example. Automatic recording of operations can be performed in IGG. The menu item File/Scripts/Save All... can be used to save the current record of the commands performed interactively by the user. Visualization of the recorded operations can be performed in IGG. The menu item File/Scripts/ Edit... can be used to edit the current record of the commands performed interactively by the user.

6-3.2

Python Language Overview

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

6-3.2.1 Adding Commented Lines


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

6-3.2.2 Support for Mathematical Operations



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

logarithmic functions log(x) for neperian logarithm, log10(x) for base 10 logarithm, exp(x),

6-6

IGG

Scripts

Templates and Scripts

x to the power y is obtained by the function pow(x,y), boolean values are returned by the operators >, <, <=, >=, ==, !=, and, or, the constants pi and e are predefined.

6-3.2.3 String Handling


Strings are handled in Python in the following way:

they are enclosed in single <> or double <> quotes, concatenation is obtained with the operator +, duplication is obtained by the multiplication by an integer (operator *), access to the ie element is obtained by the suffix [i] and access to a substring is obtained by the
suffix [i:j] for a substring starting from the ie character to the je,

numerical values contained in variables can be inserted in a string by enclosing the variable
name with reverse quotes () or by using a formatting specification: Example: s = The Value of x is +x s = The Value of x is %3d %(x) The formatting symbols are interpreted as follows:

%d formats in an integral value (rounded if necessary) %nd (where n is an integer) in an integral value having a length of exactly n characters
(space characters are inserted on the left if necessary)

%n.mf (where n and m are integers and n>m) formats into a floating point value having at
most n characters length and a fractional part of m characters exactly

%n.me(where n and m are integers and n>m) formats into a scientific representation having
at most n characters length and a fractional part of m characters exactly

stripping of the leading or trailing white spaces is obtained by the function strip.
Example: myStrippedString = strip(myString)

6-3.2.4 Lists Handling


A list is an ordered set of items.

a list is defined by enclosing the comma separated items by square brackets. A list may be
empty, Example: my_list = [a,b] empty_list = [] Note that list definition can be extended over several lines without the \ terminating character.

an item is accessed by adding the suffix [i] to the list name (ex: my_list[1]). Note that list indices start at 0,

lists can be nested to any level, appending is obtained by the operator + (ex: my_list + my_list2) or by the function append
(ex:my_list.append([c, d])),

multiplication (appending oneself n times) is obtained by the multiplication operator (ex:


my_list*3),

IGG

6-7

Templates and Scripts

Scripts

the functions insert(index, value) inserts value at position index, the elements at upper position
are shifted,

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

6-3.2.5 Control Flow


The body part of these instructions is defined by the indented lines and the specific control lines are terminated by a colon. The end of the loop body is marked by the first line that does not start by a tab character. Nested loop are obtained by heading lines with multiple characters.

if statement:
Example: if x < 0 : print x is negative elif x==0 : print x is null else : print x is positive elif and else clauses may be omitted.

loop statements: the for loop iterates on the elements of a list and the while loop iterates as long
as the condition is met. A break statement may be inserted to step out of the loop. Example: for x in a[:] : for x in range(0,10) : while x>0 : where the range function returns a list of integers starting from the first argument value to the second argument value with a step indicated by the third argument if existing (default value is 1).

6-3.2.6 Function Definition


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

6-8

IGG

Scripts

Templates and Scripts

6-3.2.7 File Handling


Files can be opened for reading and writing. A file is associated to a variable which is initialized at its opening: f = open(fileName, mode, bufferSize) where fileName is the full file name including its path. The parameter mode is a character string of which the value may be:

r or rb: file opened for reading, w or wb: file opened for writing, creates it if not existing or the previous content is discarded,

a or ab: file opened for appending, creates if not existing or writes at the end of the file.
The b character is used only on Windows systems to indicate that the file is in binary mode, on Unix system, it is neglected.The parameter bufferSize is the integer value of the size of the buffer, the system default size is chosen if the value is negative, the file is opened in the unbuffered mode if the value is 0, a value of 1 specifies a line-buffered mode. The following functions can be used to handle the file content:

f.close(): closes file, f.flush(): flushes files internal buffer, f.read(n): reads at most n bytes from the file and returns as a string. If n is omitted, reads to the
end of the file,

f.readline(): reads one entire line, f.readlines():reads until the end of the file and returns a list of lines, f.seek(offset, whence=0): sets file position, if whence =0 or is omitted, offset is the absolute
position, if whence=1 offset is relative to the current position and if whence = 2, offset is relative to the file end,

f.tell(): returns file current position, f.write(string): writes string to file.

6-3.2.8 Error Handling


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

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


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

IGG

6-9

Templates and Scripts

Scripts

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

6-3.3

Running a Script File

Script files can be run from the graphical user interface or from the command line.

From the interface, the option is accessed with the File/Scripts/Execute... menu item. It opens a
file chooser prompting to select a .py script file. After acceptation, the script is executed by IGG and the results are visualized in the graphics area.

From the command line, a script can be run by launching IGG with the -script option. For
example: igg -script my_script.py. IGG will execute the script and then open the graphical user interface. When running a script from the command line, it is possible to execute a process in batch mode, avoiding to open the GUI. To do so, the -batch option should be used as the very first argument to the igg command: igg -batch -script my_script.py.

6-10

IGG

Scripts

Templates and Scripts

6-3.4

IGG Script Commands

The functionalities classically available within the IGG graphical interface are provided in scripts as commands or functions that can be combined together to provide higher level functionalities. Since the language is object-oriented, classes of objects are naturally provided to the user and functions applicable to these objects are associated with these classes. Typical examples of classes defined for IGG are Curve, Surface, Block, Face, Vertex, Edge, etc Commands and classes are classified by categories. There are three main categories: project commands, geometry commands and grid commands. Commands are either global functions that can be called as normal functions without any object or member functions that must be called with an object previously defined. Examples: save_project(example.igg) # global function call c = Curve(curve_1) # create an object c referring to a curve in IGG c.set_name(new_name) # member function call applied to object c Note for Windows users: The specification of path names when using commands requiring file names as input must be performed using a UNIX style coding. This practically means that / should be used as separator between directories instead of \. Examples: save_project(c:/users/greg/rexample.igg) # correct save_project(c:\users\greg\rexample.igg) # not correct !!

6-3.4.1 Project Commands


Project commands are provided to control the project currently opened in IGG and to perform global operations on this project.

set_project_configuration(dim,axis)
Sets the project configuration. This command must be called at the very first stage of the project setting. It closes the current project without saving and opens a new one with the specified properties. dim can be "2D" or "3D" or "AXISYM". By default the project dimension is 3. axis is the axisymmetric axis and is only meaningful when dim is "AXISYM". Its values can be 0, 1 or 2, corresponding to X, Y or Z axis respectively.

open_igg_project(filename)
Opens an existing IGG project from disk. This command closes the previous project without saving it. Example: open_igg_project("/usr/people/test/volute.igg")

import_igg_project(filename,prefix)
Imports an existing IGG project into the current project. prefix is an optional string that can be specified to easily recognize the blocks and patches of the imported project from those in the current project. When specified, the prefix is appended to the block, patch and group names of the imported project. It is mostly useful when importing several projects into the current one, to distinguish them easily. The block indices of the imported projects are changed to follow those of existing blocks.

IGG

6-11

Templates and Scripts

Scripts

Example: import_igg_project("/usr/people/test/volute.igg",p1)

close_project()
Closes the current project without saving and clears the screen from all previous drawings.

save_project(filename)
Saves the project into the specified file. Example: save_project("/usr/people/test/volute.igg") Notice: During interactive saving from the GUI, IGG checks for blocks needing to be regenerated and asks whether to regenerate the blocks before saving. In the current implementation this confirmation will also appear when saving from a script. It is consequently advised to regenerate all touched blocks before calling the save_project command.

exit_session()
Quits the IGG session. This command can be used to close IGG in the middle of a script. All required savings must be performed explicitly before calling this function.

text_message_box(message)
Opens a generic information dialog box and displays the message in it.

6-3.4.2 Geometry Commands


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

a) Global Functions
import_data_file(filename,mode)
Imports a geometry file in the current project. filename specifies the name of the file and must have the extension ".dat", ".dst" or ".geom". mode is used to specify the importation mode in the case where curves or surfaces with the same name are already exists in the geometry repository. Possible values are "REPLACE", "IGNORE", "RENAME". Example: import_data_file("modified_volute.dat","REPLACE") Note: the quotes around filename and the keyword REPLACE are needed.

import_iges_file(filename)
Imports an IGES file in the current project.

save_geometry_entities(filename,list_entities)
Saves the geometry entities in the specified file. list_entities is the list of curves and/or surfaces (specified with their name or as an object).

save_curve_ctr_points(filename,curve)
Saves the coordinates of the curve control points in the specified file.

set_geometry_abs_tol(tol)
Sets the absolute tolerance of the system. This tolerance is for example used when performing geometry or topology operations.

rotate(origin,direction,angle,list_entities)
Rotates a list of curves and/or surfaces around a given axis. origin and direction specify the rotation axis. angle is the angle of rotation in degrees. list_entities is the list of curves and/or surfaces (specified with their name or as an object).

translate(direction,list_entities)
Translates a list of curves and/or surfaces along a given direction.

6-12

IGG

Scripts

Templates and Scripts

direction is the translation direction, in direction and magnitude. list_entities is the list of curves and/or surfaces (specified with their name or as an object).

mirror(origin,direction,list_entities)
Mirrors a list of curves and/or surfaces with respect to a given plane. origin and direction specify the mirror plane. list_entities is the list of curves and/or surfaces (specified with their name or as an object).

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

b) Point and Vector Classes


Two types of points can be constructed or manipulated within scripts:

Points that are local to scripts and deleted when the script finishes. These points are used very
frequently as argument to functions to specify a 1D position such as a vertex position, for example.

Points that are created and stored in the geometry repository of IGG. Such points typically
result from operations performed on curves or surfaces, such as curve-plane intersections. These points are saved permanently when saving the IGG project, in the .geom file. IGG currently supports the creation of points of the first type within scripts. For this purpose, four classes are provided, allowing to create and manipulate such points: Point, Vector, CurvePointNorm, SurfPointNorm.

Point(x,y,z) Vector(x,y,z)
Defines a point with coordinates x, y, z. This point is NOT created as a Cartesian Point in the IGG repository. It is only local to the script. Vector class is just derived from Point class and is used frequently as argument to functions to specify a direction. All operations on Points are also available on Vectors. Example: p1 = Point(1,1.2,1+2) # create a point (class Point) with coords (1,1.2,3)

CurvePointNorm(curve_name,normalized_position)
Defines a point on a curve given by its name at a normalized parameter position. This kind of point is local to the script.

SurfPointNorm (surf_name,normalized_u_pos,normalized_v_pos)
Defines a point on a surface given by its name and located at the normalized (u,v) parameters. This kind of point is local to the script. Points and Vectors coordinates can be accessed by calling directly their data members: x, y, and z. Global operations on points are: +,-,/,* Basic operations like adding or subtracting points are allowed. Example: p1 = Point(0,0,1) print p1.x, p1.,y, p1.z

IGG

6-13

Templates and Scripts

Scripts

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

distance(p1,p2)
Computes the distance between two points. Example: dist = distance(p1,p2)

scalarProduct(p1,p2) crossProduct(p1,p2)
Computes the cross product or scalar product of two vectors. Example: v3 = crossProduct(p1,p3) # returns a Vector a = scalarProduct(p1,p3) # returns a real stored in 'a'

curve_curve_intersection(curve_list,tol)
Creates a point at each intersection between all curves of the list. Returns the list of points.

c) Range Class
The range class is mostly used to specify a range of a face during an operation on this face.

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

d) Curve Class
The Curve class is used to manipulate curves defined within IGG. They are mostly used to create higher level entities like surfaces or as a mean to place vertices of a block. Curves can be created from the script file or accessed from the geometry repository. They can be accessed with their name and can be stored as local object of type Curve.

Member functions:
Curve(name)
Constructor for Curve class allowing to access an existing curve already defined in IGG. Example: c1 = Curve("polyline_1") # polyline_1 is the name of a curve in IGG

num_ctr_pnt()
Returns the number of control points of the curve.

get_ctr_pnt(i)
Returns the ith control point of the curve as an object of class Point. Index starts from 0.

first_ctr_pnt()

6-14

IGG

Scripts

Templates and Scripts

last_ctr_pnt()
Returns the first and last control point of the curve.

get_length()
Returns the length of the curve.

get_p_min() get_p_max()
Returns the min and max parameter value of the curve.

calc_point(param)
Returns the point at the parameter value param. The returned point is an object of class Point. param is an absolute parameter value between get_p_min() and get_p_max().

calc_tangent(param)
Returns the tangent at the parameter value param. The returned value is an object of class Vector. param is an absolute parameter value between get_p_min() and get_p_max().

project_point(point)
Projects a point onto the curve and returns the corresponding absolute parameter value. point is the point to project and is of class Point. If the specified point is not on the curve, the closest point on the curve is used instead. Example: p1 = Point(1,1,1) abs_param = curve1.project_point(p1) # curve1 is an existing curve p2 = curve1.calc_point(abs_param) # calc the point on the curve (p1==p2 if p1 was on the curve)

set_name(name)
Assigns a new name to the curve. The name must be unique and not already used by another curve in the repository. If this condition is not met, an exception is raised.

Curve constructions (global functions):


Several functions are provided to create polylines, splines, arcs,. These functions create a curve entity in the IGG repository (saved with the project), which is returned within the script as an object of type Curve.

new_polyline() new_polyline(p1,..,pi) new_polyline(name,p1,...pi)


Constructs a polyline in the IGG geometry repository. The first function defines an empty polyline. The other functions allow to specify points of the polyline. These points are objects of class Point. name is a unique name assigned to the curve. This argument is optional but it is however strongly recommended to specify a name. It must be surrounded by quotes. Example: p3 = new_polyline("poly1",Point(1,0,0),Point(1,1,0),Point(1,1,1))

new_cspline() new_cspline (p1,..,pi) new_cspline (name,p1,...pi)


Constructs a cspline in the IGG geometry repository. See polyline for details about arguments.

new_bspline()

IGG

6-15

Templates and Scripts

Scripts

new_bspline (p1,..,pi) new_bspline (name,p1,...pi)


Constructs a B-spline in the IGG geometry repository. See polyline for details about arguments.

create_arc_ppp(startpoint,endpoint,midpoint,name)
Creates an arc through three points. name specifies the name assigned to the arc. The name may not already be used by another curve in the repository.

surf_surf_intersection(surf1,surf2,root_name)
Intersects two surfaces and returns a list of curves. surf1 and surf2 are the two surfaces specified with their name or through a Surface object. root_name specifies the root of the names assigned to the resulting intersection curves. It must be surrounded by quotes. Example: curve_list = surf_surf_intersection(s1,"surface_2","first_inters") foreach curve in curve_list: print 'Result length',curve.length()

surface_intersect_plane(surf,plane,root_name)
Intersects a surface with a plane. surf is the surface being intersected. It is of class Surface. plane defines the intersection plane and may be specified in three ways: Plane(origin,normal): Defines the plane by an origin (class Point) and a normal (class Vector) PlanePPP(p1,p2,p3): Defines the plane by three points (class Point) CurveNormPoint(curve,normalized_param): Defines the plane by a point on a curve at the specified normalized parameter and normal to the curve at the point. root_name specifies the root of the names assigned to the resulting intersection curves. It must be surrounded by quotes. Examples: surface_intersect_plane("surf2",Plane(Point(0.5,0,0),Vector(1,0,0)),"resu1") surface_intersect_plane("surf2",CurveNormPoint("curve1",0.5),"resu1")

delete_curves(curve_list)
Deletes a set of curves. curve_list is the list of curves to be deleted (i.e. c1,c2,c3). The curves are specified with their name or as an object of class Curve.

e) Surface Class
Surfaces can be created from the script file or accessed from the geometry repository. They can be accessed with their name and can be stored as local object of type Surface.

Member functions:
Surface(name)
Constructor for Surface class allowing to access an existing surface already defined in IGG. Example: s1 = Surface("lofted_1") # lofted_1 is the name of a surface in IGG

calc_point(u,v)
Returns the point at the parameter values u,v. The returned point is an object of class Point. u and v are the absolute parameter values on the surface.

6-16

IGG

Scripts

Templates and Scripts

project_point(point)
Projects a point onto the surface and returns the corresponding (u,v) absolute parameter values. point is the point to project and is of class Point. If the specified point is not on the surface, the closest point on the surface is used instead. u,v are returned as a list [u,v]. Example: p1 = Point(1,1,1) [u,v] = surf1.project_point(p1) # surf1 is an existing surface p2 = surf1.calc_point(u,v) # calc the point using u and v (p1==p2 if p1 was on the surface)

set_name(name)
Assigns a new name to the surface. The name must be unique and not already used by another surface in the repository. If this condition is not met, an exception is raised.

Surface constructions (global functions):


lofted_surface(curve_list,name)
Constructs a lofted surface from a list of existing curves. A curve may be specified by its name of by an object referencing the curve in the script (class Curve). curve_list is the list of curves used to define the surface. It is a tuple and must be surrounded by brackets (i.e. [c1,c2,c3]). The curves are specified with their name or as an object of class Curve. name is an optional name assigned to the surface. Example: s1 = lofted_surface(["curve_1","curve_2"],"first_loft")

surface_revolution(curve,Point(0,1,0),Vector(1,0,0),-90,"Surfacesisl_2")
Constructs a surface of revolution by rotating a curve around an axis. curve is the curve to rotate and can be specified by its name or can be an existing object of class Curve in the script.

create_surface_from_face(face)
Constructs a surface from a given face of a block. face is the face from which to create a geometry surface and must be of class Face. The function returns an object of class Surface.

create_surface_from_faces(faces)
Constructs a set of surfaces from a list of block faces.

6-3.4.3 Topology and Grid Classes Commands


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

IGG

6-17

Templates and Scripts

Scripts

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

a) Block Class
The Block class is used to access and manipulate blocks created within IGG. Blocks can be accessed with their index or their name, by using the global function block:

block(B)
B is either the index of the block, starting from 1, or its name. Examples: b1 = block(1) # access block 1 by its index, store it as a variable b2 = block(gap_block) # access a block by its name Operations can then be performed on the block by calling one of its member functions listed below. Examples: b2.set_size(21,21,21) # change the number of points of block 2 block(2).set_size(21,21,21) # another way to do the same operation

Member functions:
delete()
Deletes the block.

set_size(nI,nJ,nK,propagate)
Changes the size of the block. This function follows the same rule as the Grid/Settings dialog 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" set_repetition("ROTATION"

,num_period) ,num_period,orig,normal)

set_repetition("TRANSLATION",num_period,vector) 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. Returns a list of all the faces of the block, including the internal faces. Each element of the list is of class Face.

get_all_faces()

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

6-20

IGG

Scripts

Templates and Scripts

from_uniform_clustering = 0 param_list = buffers + [direction, radial_depth_value, nk, clust_type, clust_start, clust_cst_cells, clust_reciprocity, from_uniform_clustering] block(1).create_butterfly_from_scratch(param_list)

delete_butterfly()
Deletes the butterfly topology of the block.

split_butterfly()
Splits the butterfly topology of the block.

split_and_merge_butterfly()
Splits the butterfly topology of the block and merges into one block all the buffer blocks "normal" to the preferential direction of the butterfly topology.

Global functions:
new_block()
Creates a unit cube block at the origin.

new_block(p1,p2,p3,p4,p5,p6,p7,p8)
Creates a new block by specifying its eight vertices. The type of <pi> can be one the Point classes.

new_block_face() new_block_face(p1,p2,p3,p4)
Creates a new block by initializing only one face (face 1).

extrude_new_block(ref_face,range,normal_mode,0,2,dir)
Creates a new block by extruding from an existing block face. ref_face is the face used a the basis for extrusion. range is the range of the reference face to extrude and is of class Range. normal_mode specifies the mode for the normal extrusion. dir specifies the direction when the mode is 3 (user specified). Its type is Vector. Example: extrude_new_block(face(1,2),Range(27,39,9,27),0,2,Vector(1,0,0))

num_of_blocks()
Returns the number of blocks in the current project.

transform_blocks_translate(blocks,vec,duplic_geom_create = 0)
Translates a set of blocks along a vector. blocks is a list of blocks, between brackets (i.e. [block_1,block_2,]. Specifying a block group is currently not permitted. vec specifies the translation vector, in direction and magnitude. geom_create specifies whether to duplicate the geometry or not (0 or 1).

transform_blocks_rotate(blocks,orig,vec,angle,geom_create = 0)
Rotates a set of blocks around a given axis. blocks is a list of blocks, specified between brackets (i.e. [block_1, block_2,]. Specifying a block group is currently not permitted. orig is the origin of the rotation axis. vec is the direction of the rotation axis. angle is the rotation angle specified as a real N (angle in degree = 360/N). geom_create specifies whether to duplicate the geometry or not (0 or 1).

transform_blocks_scale(blocks,scale_vec,geom_create = 0)

IGG

6-21

Templates and Scripts

Scripts

Scales a set of blocks around a given axis. blocks is a list of blocks, specified between brackets (i.e. [block_1, block_2,]. Specifying a block group is currently not permitted. scale_vec is a vector (type Vector) given the scale factor in the three directions. geom_create specifies whether to duplicate the geometry or not (0 or 1).

set_repetition_all_blocks()
This function sets a periodicity information for all the blocks in the project at once. The arguments are the same as the function set_repetition of the class Block. See class Block for more information.

b) Face Class
The Face class allows to manipulate and perform operations on existing faces of a block. Faces can be accessed using the global function face:

face(B,F)
B is either the index of the block, starting from 1, or its name. F is the index of the face to access, starting from 1. This function returns an object of class Face that can be stored locally. Example: f1 = face(2,1) # get face 2 of block 1 f1 = face(block_2,1) # accessing the face using the block name f1.new_patch(...) # use f1 to apply a member function.

Member functions:
num_edges()
Returns the number of edges of the face, including the internal edges.

edge(i)
Returns the ith edge of the face. The index starts from 1.

num_patches()
Returns the number of patches of the face.

patch(i)
Returns the ith patch of the face. The index starts from 1.

delete_patch(patch_index)
Deletes the patch.

new_patch(range)
Creates a new patch by specifying its range. range is of class Range.

create_internal_edge(dir,index)
Creates an internal edge along dir at specified index. dir specifies the variable direction of the edge and can have the values 1 or 2. For example: for an IJ face dir = 1 means the edge will vary along I and will be constant for J.

linear_4Bnd(range):
Generates the face using an algebraic 4 boundaries interpolation. range specifies the range of the face on which to apply the interpolation. This parameter is optional, if omitted the full range of the face is taken. Example: face(1,2).linear_4Bnd(Range(1,6,1,9))

project_on_surfs([surf_list],bound_projection,validation,proj_ratio,Range(1,4,1,9))

6-22

IGG

Scripts

Templates and Scripts

Global functions:
regenerate_faces(face)
Regenerates the specified face. The argument must be of class Face.

regenerate_faces(block)
Regenerates all the faces of a block. The argument must be of class Block.

regenerate_faces(face_list)
Regenerates a list of faces. face_list is a list of faces specified as [face1,face2,...,facei], where facei is an object of class Face, or the name of the face. The [] must be present in the list definition.

regenerate_all_block_faces()
Regenerates all the faces of all the blocks in the project. Examples: regenerate_faces(face(1,1)) # regenerates the face 1 of block 1 f1 = face(2,4) # getting face 2 of block 4 f2 = face(2,5) # getting face 2 of block 5 regenerate_faces([f1,f2]) # regenerates both faces regenerate_faces(block(1)) # regenerates all faces of block 1

c) Patch Class
The Patch class allows to manipulate and perform operations on existing patches of a face. Patches can be accessed using the global function patch:

patch(B,F,P)
B is either the index of the block, starting from 1, or its name. F, P are the indices of the face and patch to access, starting from 1. This function returns an object of class Patch that can be stored locally. Examples: p1 = patch(2,1,2) # access block 2, face 1, patch 2 p2 = patch(inlet_block,1,2) # access the patch by specifying the block name

Member functions:
set_name(name)
Gives a name to the patch. name is a string, surrounded by quotes, and must be maximum 30 characters.

get_type()
Returns the boundary condition type currently assigned to the patch.

set_type(type)
Assigns a boundary condition type to the patch. type is the BC type and can have the following values: EXT, INL, OUT, SNG, SOL.

divide(range)
Divides the patch in two. During the division one new patch is created. The limits of the current patch are adapted to reflect the division.

set_limits(range)
Assigns new limits to the patch. range specifies the limits (starting from 1) and must be of class Range. Example: patch(2,1,2).set_limits(Range(1,1,9,5)

IGG

6-23

Templates and Scripts

Scripts

d) Edge Class
The Edge class is used to manipulate and perform operations on existing edges of a block. An Edge can be accessed with the edge command:

edge(B,F,E)
B is the index of the block, starting from 1, or its name. F, E are the indices of the face and edge starting from 1. This function returns an object of class Edge that can be stored locally. Examples: e = edge (1,2,1) # access edge 1 of Block 1, face 2 e = edge(ablock,2,1) # access the same edge using the name of the block

Member functions:
num_segments()
Returns the number of segments of the edge.

segment(i)
Returns the ith segment of the edge. The index starts from 1.

change_index(new_index)
Changes the index of the edge. Only valid for internal edges.

delete()
Deletes the edge. Only valid for internal edges.

insert_vertex(norm_param)
Inserts a new vertex at the specified normalized parameter value. A value of 0 corresponds to the beginning of the edge while a value of 1 corresponds to its end.

e) Segment Class
The Segment class is used to manipulate and perform operations on existing segments of an edge. A segment can be accessed with the segment command:

segment(B,F,E,S)
B is the index of the block, starting from 1, or its name. F, E and S are the indices of the face, edge and segment, starting from 1. This function returns an object of class Segment that can be stored locally. Examples: s = segment (1,2,1,2) # access segment 2 of Block 1, face 2, edge 1 s = segment(ablock,2,1,2) # access the same segment using the name of the block Alternatively, the segment can also be accessed using an Edge object: edge = edge(1,2,1) # get edge of block 1, face 2, edge 1 s = edge.segment(2) # get segment 2 of the previous edge

Member functions:
increase_size(new_number_of_point)
Increases the size of a segment.

cluster_start(distance) cluster_end(distance)

6-24

IGG

Scripts

Templates and Scripts

cluster_both_ends(distance)
Clusters at start, end or both ends with a given absolute value representing the size of the first (last) cell.

cluster_both_ends2(start_dist,end_dist,num_cst_cell)
Clusters at both ends by specifying the start and end distances as well as a number of constant 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. Distances are given as absolute values. Example: segment(1,1,1,1).cluster_tanh(0.01,0.01)

cluster_uniform()
Resets the clustering of the segment to uniform.

f) BlockGroup Class
Block grouping functionalities are available through the BlockGroup class. The users can create or delete block groups as well as add or remove blocks from a group. Groups can be used with several grid functionalities like block generation

Member functions:
add_block(block)
Adds a block to the group. block specifies the block and is a name or a Block object.

remove_block(block)
Removes a block from the group. block specifies the block and is a name or a Block object.

delete()
Deletes the group. Using the object after deleting it is forbidden.

Global functions:
create_block_group(group_name)
Creates a new group with the given name. The name must be a unique name not already used by another group. In case a group already exists with that name, an exception is raised.

block_group(name)
Gets the block group by its name. Returns an object of class BlockGroup.

g) Vertex Class
The Vertex class is used to manipulate vertices of a block. A vertex can be accessed with the vertex command:

vertex(B,F,E,V)
B is the index of the block, starting from 1, or its name. F, E and V are the indices of the face, edge and vertex, starting from 1. This function returns an object of class Vertex that can be stored locally. Examples: v = vertex (1,2,1,2) # access vertex 2 of Block 1, face 2, edge 1 v = vertex(ablock,2,1,2) # access the same vertex using the name of the block

Member functions:
get_coords()
Returns the position of the vertex as an object of class Point.

IGG

6-25

Templates and Scripts

Scripts

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

h) Topology Placement
Several global functions are provided to place the topology of a block onto a geometry. The most common method is to place the vertices by using the move_vertex command. It is also possible to move a complete edge, face or block at once by using the move_edge, move_face or move_block functions. In all the cases the new position is defined by a point object which can be specified in three ways (see Point classes definition). When moving an edge, face or block, a reference vertex must be specified together with its new position.

move_vertex(vertex,position)
Moves the specified vertex at the new position. vertex is the vertex to move and is of class Vertex. position is the new location of the vertex. Example: move_vertex(vertex(1,1,1,1),CurvePointNorm("cspline_1",0.5))

move_edge(edge_object,ref_vertex,new_vertex_position)
Moves the whole given edge (class Edge) to a new position. The new position of the edge is calculated by moving ref_vertex (class Vertex) to new_vertex_position (class Point).

move_face(face_object,ref_vertex,new_vertex_position)
Moves the whole given face (class Face) to a new position. The new position of the face is calculated by moving ref_vertex (class Vertex) to new_vertex_position (class Point).

move_block(block_object,ref_vertex,new_vertex_position)
Moves the whole given block (class Block) to a new position. The new position of the block is calculated by moving ref_vertex (class Vertex) to new_vertex_position (class Point).

6-3.4.4 Connection Commands


Connection commands allow to perform connections for the different entities manipulated in IGG: vertices, topological edges, segments and patches. The commands correspond to the options available in the Quick Access Pad/Grid/Connect menu or in the Boundary Conditions dialog box.

connect_edges(edge1,edge2,level,tol)
Connects two block edges together at the specified level and with the given tolerance. edge1 and edge2 are the two edges to connect and must be of class Edge. The first edge is taken as reference. level specifies what to connect. It can take one of the following values: VERTEX, ORPHAN, SEGMENTS, EDGES or ALL. Quotes must surround these values. tol is a real, specifying the absolute tolerance for connections. It is optional, if omitted it has a default of 1e-5.

connect_faces(face1,face2,level,tol)
Connects two faces together at the specified level and with the given tolerance. face1 and face2 are the two faces to connect and must be of class Face. The first face is taken as reference. level specifies what to connect. It can take one of the following values: VERTEX, ORPHAN, SEGMENTS, EDGES, PATCHES or ALL. Quotes must surround these values;

6-26

IGG

Scripts

Templates and Scripts

tol is a real specifying the absolute tolerance for connections. It is optional, if omitted it has a default of 1e-5.

connect_whole_grid(level,tol)
Connects the whole grid at a given level. level specifies what to connect. It can take one of the following values: VERTEX, ORPHAN, SEGMENTS, EDGES, PATCHES or ALL. Quotes must surround these values; tol is a real specifying the absolute tolerance for connections. It is optional, if omitted it has a default of 1e-5.

search_connections(tol)
Searches all the connections of type CON, NMB, PER, PERNM, falling within a given tolerance. This function corresponds to the Search button in the Grid/Boundary Conditions... dialog box. tol is the tolerance search given in absolute units.

connect_patches(patch1,patch2,dir1,dir2,con_type,tol)
Manually connects two patches by specifying their relative orientation and connection type. IGG will check the validity of the connection. This function corresponds to the Manual button in the Boundary Conditions dialog box. patch1, patch2 are the two patches to connect and must be of class Patch. dir1,dir2 specify the relative connection orientation. It can take one of the following values: IHIGH, ILOW, JHIGH, JLOW (surrounded by quotes). con_type specifies the type of connection: CON, NMB, PER, PERNM. tol is the absolute tolerance used for connecting. Example: connect_patches(patch(2,1,1),patch(1,2,1),"IHIGH","JHIGH","CON",1E-005)

delete_all_connections()
Deletes all existing connections (type CON, NMB, PER, PERNM) in the project. Similar to the Delete All button in the Grid/Boundary Conditions... dialog box.

6-3.4.5 Quality Checking Commands


calc_negative_cells(block, precision, right_handed, levels, cI, cJ, cK)
Computes the negative cells according to the specified parameters. Returns a string giving the result. block is the block on which the test will be done and must be of class Block. However the value 0 can be specified to apply the test on all the blocks of the grid at once. precision can be equal to "single" or "double" and specifies the precision mode of the check. right_handed specifies whether calculation should proceed using a right_handed local reference frame (0 or 1). levels specifies the multigrid levels on which the calculation is done. Set it to "all" to make the check on all levels available at once. Otherwise set it to "custom" and specify the desired multigrid levels as the last three arguments. cI, cJ, cK are the multigrid levels for the check. Not used when levels is set to "all". Example: text = calc_negative_cells(block(1), "double", 1, "all", 0, 0, 0)

calc_mesh_quality(type, block, axis, range_start, range_end, range_number)


Computes the mesh quality. Returns a list giving a spreaded number of cells as in a barchart. type is the name of the quality criterion: "Orthogonality", "Aspect Ratio" or "Expansion Ratio". block is the block on which the test will be done and must be of class Block. However the value 0 can be specified to apply the test on all the blocks of the grid at once. axis is either "All", "I", "J" or "K" and is the direction along which the quality is computed.

IGG

6-27

Templates and Scripts

Scripts

range_start range_end specify the criterion range to be tested. range_number is the number of items of the returned list (i.e. the number of bars in the chart). Example: list = calc_mesh_quality("Orthogonality", block(1), "All", 0, 90, 9) # list will contain 9 items, giving the number of cells for each interval of 10 degrees between 0 and 90.

get_extremum_quality_values()
Returns the two extremum quality values of the previous quality check (list with two items). Must be run after the function calc_mesh_quality. Example: list = get_extremum_quality_values() min_orthogonality = list[0] max_orthogonality = list[1]

calc_mesh_quality_inter_block(type, block, range_start, range_end, range_number)


Computes the mesh quality at block boundaries. Returns a list giving a spreaded number of cells as in a barchart. type is the name of the quality criterion: "Orthogonality", "Angular deviation", "Expansion Ratio" or "Cell width". block is the block on which the test will be done and must be of class Block. However the value 0 can be specified to apply the test on all the blocks of the grid at once. range_start range_end specify the criterion range to be tested. range_number is the number of items of the returned list (i.e. the number of bars in the chart).

get_extremum_quality_values_inter_block()
Returns the two extremum quality values of the previous quality inter block check (list with two items). Must be run after the function calc_mesh_quality_inter_block.

6-3.4.6 MultiStage Module


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

multi = MultiStage()

6-28

IGG

Scripts

Templates and Scripts

Next, the full path name of the directory where the AutoGrid templates or meshes reside must be specified:

multi.path = "/home/_release/_autogrid/"
All the directory paths in the MultiStage module must be specified by using "/" (on all platforms). "\" should not be used because it is interpreted as a script special character. Once a MultiStage object is created and its path specified, its member functions can be called to perform the desired operations.

exec_autogrid(trb_file,geom_turbo_file,save_file,batch)
Runs AutoGrid with the given geometry and template files. The resulting mesh will be saved in the specified output file. trb_file specifies the .trb file required to run AutoGrid. The file name is relative to the path specified above. geom_turbo_file specifies the .geomturbo file required to run AutoGrid. The file name is relative to the path specified above. save_file is the name of the file where the mesh will be saved. It must be a full path name. batch is a boolean indicating whether the process should be run in batch mode. It can take the values 0 or 1. When the value is 0, the graphical user interface remains on the screen and dialog boxes indicating possible negative cells will appear at the end of the generation. When the value is 1, the process will be run in batch mode, with no graphical user interface or dialog box. In this case an explicit call to the exit_session command must be added at the end of the script to quit IGG.

concatenate(list_of_igg_files)
Concatenates a list of .igg files (each representing a single stage project generated by AutoGrid) into a new project. During the concatenation, IGG will convert the interfaces between stages to a rotor-stator boundary condition type (ROT). The convertion is applied to all the patches with an INL or OUT type, except for the first and last stages for which the INL and OUT patches are respectively kept. list_of_igg_files is a list containing the file names of each igg project file. The path name for each file is relative to the path member specified above. The list can contain any number of file names. The file names must be given in the proper order. Example: m.concatenate(rotor.igg,stator.igg,rotor2.igg)

save(filename)
Saves the current project, resulting from the concatenate operation, in the specified file name. The full path name must be given.

add_stage(trb_file,geom_file)
Adds a stage to the MultiStage object. This function is used to prepare the MultiStage project. It does not perform any computation. The run member function should be used after all the stages have been specified. trb_file and geom_file are the template and geometry files required to run Autogrid. They are specified relatively to the path member function.

run(save_file,batch)
Runs the whole MultiStage project by running each AutoGrid template specified with the add_stage member function and concatenating the different stages thus generated. save_file is the full path name specifying where to save the final mesh. batch specifies whether the whole process should be run in batch mode. It can have the values 0 or 1. See exec_autogrid function for more explanation.

IGG

6-29

Templates and Scripts

Scripts

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

# Initialize a new object for MultiStage. multi = MultiStage()

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

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

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

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

# Initialize a new object for MultiStage. multi = MultiStage()

6-30

IGG

Scripts

Templates and Scripts

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

# Run three times AutoGrid explicitly. savein = "/raid/home/_concatenate/_mesh/ " multi.exec_autogrid("_autogrid/Bld01.trb","_autogrid/Bld01.geomTurbo", savein+"Bld01.igg",batch) multi.exec_autogrid("_autogrid/Bld02.trb"_autogrid/Bld02.geomTurbo", savein+"/Bld02.igg",batch) multi.exec_autogrid("_autogrid/Bld03.trb"_autogrid/Bld03.geomTurbo", savein+"/Bld03.igg",batch)

# Concatenate and save the three generated meshes. multi.concatenate("_mesh/Bld01.igg","_mesh/Bld02.igg","_mesh/Bld03.igg) multi.save("/raid/home/multi_stage.igg") if batch==1: exit_session()

6-3.5

Examples

A couple of examples are provided as an introduction to the script capabilities. These examples are provided with the distribution and can be found in the directory /Test-Case/IGG/scripts of the installation cdrom. Basic geometry operations (geom.py) Curves and surfaces constructions are provided in this script file. The following features are used:

polyline creation, spline creation, lofted surface creation, surface of revolution creation, surface intersection with a plane.

Pipe-to-pipe (pipe2pipe_1.py, pipe2pipe_2.py) This example shows the usage of some geometry and grid script capabilities. It shows the creation of the two cylinders together with their intersections. The following features are used:

polyline creation, surface of revolution creation, surface-surface intersection, block creation, block resizing, vertex placement on the geometry,

IGG

6-31

Templates and Scripts

Scripts

face projection on surfaces, patch specification.


Full automatic regeneration (full_auto.py) This example shows the usage of the standard templates capabilities followed by the regeneration of block faces and block grids. The following features are used:

importation of an IGG project, importation of IGG data files with automatic replacement, regeneration of faces, regeneration of blocks, project saving.

6-32

IGG

Templates versus scripts

Templates and Scripts

6-4

Templates versus scripts

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

IGG

6-33

Templates and Scripts

Templates versus scripts

6-34

IGG

CHAPTER 7:

Quick Access Pad

7-1

Overview

The Quick Access Pad is located in the left part of the GUI. It contains icons and more evolved options providing a fast access to the most used functions of IGG. Some of these functions are only accessible through the Quick Access Pad whereas others are also accessible through the menu bar, so that their description will be referenced to this menu. The Pad is divided into three subpads, each of which can be toggled by a mouse left-click:

Geometry subpad Grid subpad View subpad


The three subpads are composed of pages containing icons or more evolved options. The icons perform specific function related to the subpad and the page. Each page can be toggled by a simple mouse left-click.

IGG

7-1

Quick Access Pad

Overview

Subpads

Pages

FIGURE 7.1.0-1

Geometry, Grid and View subpads

The Geometry subpad commands and tools allow the creation and the modification of geometry entities like points, curves and surfaces.

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

The View subpad allows viewing operations on the geometry and the grid. In particular, the two
first pages provide options allowing the creation and the visualization of geometry and block groups. All the commands and options accessible with the subpads are described in the following sections.

7-2

IGG

Geometry subpad description

Quick Access Pad

7-2

Geometry subpad description

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

7-2.1

Point page

7-2.1.1 Cartesian Point


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

7-2.1.2 Curve-Curve Inters


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

7-2.1.3 Curve-Plane Inters


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

7-2.2

Curve page

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

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

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

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

IGG

7-3

Quick Access Pad

Geometry subpad description

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

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

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

7-2.2.7 Surf-Surf Inters


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

7-2.2.8 Surf-Plane Inters


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

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

7-2.2.9 Set Name


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

7-2.3

Surface page

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

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

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

7-2.3.4 Linear Sweep


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

7-4

IGG

Geometry subpad description

Quick Access Pad

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

7-2.3.6 From Face Grid


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

7-2.3.7 Set Name


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

7-2.4

Edit page

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

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

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

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

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

IGG

7-5

Quick Access Pad

Grid subpad description

7-3

Grid subpad description

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

7-3.1

Create page

This page contains icons used to create and delete blocks. When moving the cursor above one of these icons, a balloon containing a description appears, indicating the function of the corresponding icon. Each icon is referenced here below with this description. When inserting a new block and placing a vertex, this one can be attracted to a visible Cartesian point, curve, surface, vertex or fixed point by moving it close to the desired entity. There is attraction when the distance between the vertex and the entity is small enough. This distance is controlled by the Pick Aperture (see section 8-2.44.1 on page 8-15 for more informations). When a vertex is attracted, the block drawing in the graphics area is highlighted. This attraction feature cannot be deactivated.

7-3.1.1 Insert New Block


This icon is used to create a block by defining two opposite vertices. The following steps have to be followed to insert a new block:
1.

A block with a default position appears in the graphics area. The first vertex that has to be placed is displayed as a filled-in circle. Move the cursor to the desired location and left-click or middle-click to place it. The current vertex can be attracted to a visible Cartesian point, curve, surface, vertex or fixed point by moving it close to the desired entity (see the beginning of this section for more information). To make easily the vertex positioning, a zoom (<F2>) or a 3D viewing (<F1>) operation can be performed before resuming the placement.

FIGURE 7.3.1-1 IJK 2.

axis placement

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 second (opposite) vertex.

7-6

IGG

Grid subpad description

Quick Access Pad

The position of a vertex can also be defined by entering its coordinates in the keyboard input area.
3.

The orientation of the block, defined by the IJK axis, appears at a default block corner (Figure 7.3.1-1). The following message is displayed in the message area, asking to position the axis system: Place the IJK Axis (o = origin, s = orientation, <1> or <2> = create, <3> = abort) To change the origin or the orientation of the IJK axis, press respectively the <o> or the <s> key. The axis system displayed is always right-handed. Left-click or middle-click to complete the block creation. When the block is created, the vertices of the block are drawn using solid square markers.

To quit this tool, press <q> or the right mouse button.

7-3.1.2 Insert New Block by picking vertices


This icon is used to create a new block by defining its eight vertices. The following steps must be followed after selection of the icon:
1.

A block face with a default position appears in the graphics area and the first vertex to place is displayed as a filled-in circle. Move the cursor to the desired location and left-click to place it. The position of a vertex can also be defined by entering its coordinates in the keyboard input area. The current vertex can be attracted to a visible Cartesian point, curve, surface, vertex or fixed point by moving it close to the desired entity (see the beginning of this section for more information). During the vertex placement it is possible to change the view orientation using the zoom (<F2>) or a 3D viewing (<F1>) options.

2. 3.

Repeat the operation to place the other three next vertices defining the first face. When the first four vertices positions are specified, a 3D block appears, for which the drawing is updated according to the cursor position.

first vertices

current vertex

FIGURE 7.3.1-2 Block

drawing with the first four vertices specified

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

IGG

7-7

Quick Access Pad

Grid subpad description

Place vertex (Locking: x, y, z, n = normal, v = vector, u = unlock; <2> = default position) The movement of the cursor can be locked in one direction by pressing one of the following keys:

<x>, <y> or <z> to lock the movement in the specified direction. <n> to lock the movement perpendicular to the first face. <v> to lock the movement in a user defined direction. The direction must be entered through
the keyboard input area.

<u> to unlock. (It is also possible to press the same key twice to unlock the corresponding
direction).
4.

Repeat the click operation to place the other vertices defining the block. At each step of the vertices positioning, the process can be accelerated by pressing the middle mouse button. If any of the vertices of the first face is positioned, middle-clicking will position this face as it appears on the screen so that the next step will be the placing of the first vertex of the second face. During this step, middle-clicking will position the second face as it appears on the screen so that the next step will be the choice of IJK axis.

5.

When all the vertices are defined, the orientation of the block, defined by the IJK axis, appears at a default block corner (see Figure 7.3.1-1 on page 7-6). The following message is displayed in the message area, asking to position the axis system: Place the IJK Axis (o = origin, s = orientation, <1> or <2> = create, <3> = abort) To change the origin or the orientation of the IJK axis, press respectively the <o> or the <s> key. The axis system displayed is always right-handed. Left-click or middle-click to complete the block creation. When the block is created, the vertices of the block are represented by solid square markers. After having specified the orientation of the IJK axis, IGG will attempt to automatically map the edges of the new block onto the geometry, before completing the block creation.

To quit this tool, press <q> or the right mouse button.

7-3.1.3 Insert New Face


This icon is used to create partially a block by defining its face 1. The complete creation of the block from this face can be done by using construction tools such as: create block by translation, rotation,... (see a detailed description in the next sections). The face 1 is positioned by two opposite corners. The following steps have to be followed to insert a new face:
1.

A face with a default position appears in the graphics area. The first vertex that has to be placed is displayed as a filled-in circle. Move the cursor to the desired location and left-click or middleclick to place it. The current vertex can be attracted to a visible Cortisone point, curve, surface, vertex or fixed point by moving it close to the desired entity (see the beginning of this section for more informations). To make easily the vertex positioning, a zoom (<F2>) or a 3D viewing (<F1>) operation can be performed before resuming the placement.

7-8

IGG

Grid subpad description

Quick Access Pad

2.

As the cursor is moved around, the drawing of the face is updated according to the cursor position. 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 following 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 vertices of the face are drawn using solid square markers.

To quit this tool, press <q> or the right mouse button.

7-3.1.4 Extrude Range


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

Patch selection

Active face range

Click on the border to change the current limit

FIGURE 7.3.1-3 Extrude

Range dialog box

The first thing to choose is the active face range from which the new block will be extruded:

The Patch box allows to choose an existing patch of the active face to perform the extrusion.
The patch is automatically displayed in the graphics area. By default, the patch number is 0, that is the patch corresponding to the entire active face.

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

FIGURE 7.3.1-4 Changing

range limits

IGG

7-9

Quick Access Pad

Grid subpad description

The new limits can be entered manually or modified using the scrollers. Pressing <Enter> applies the new limits to the range. Pressing <Esc> cancels the limit modification. Once the range is chosen, the direction in which the extrusion will proceed must be selected. Three possibilities are available (simply left-click on the desired one in the box):
1. 2. 3.

Average Normal. This normal is computed as the average of all the normals to the face in each range grid point. Normal to Face. Each range grid point is extruded along the face normal in this point. 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 orientation. 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 opening, 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 automatically 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 extrusion. Here below are listed its main features:

The new extruded block is always right-handed. Internal grid lines are automatically created in the active face to capture the first face of the new
block.

The number of points in the extrusion direction is the default one (9). In other directions, the
number is the same as those of the corresponding internal grid lines segments.

Connections between the reference block and the extruded one are automatically performed for
vertices, topological edges, segments and patches. Patch connection is subject to limitations described below.

Patch decomposition and connection When extruding a new block, IGG attempts, as much as possible, to divide correctly the reference face and the new one into patches and to perform matching connections between them. Several cases may happen:
1.

The reference face contains only one patch: The reference face is divided into patches in order to match the patch of the new face and the connection is performed. The reference face is decomposed in several patches and the complete face is extruded: The new face is divided in the same way as the reference face. Each patch will be connected to its counterpart. The reference face is decomposed in several patches and a range is extruded: Three sub-cases may happen:

2.

3.

The range is completely included in one of the patches of the reference face. In this case,
the reference face is further divided into smaller patches and the connection is performed with the new face. It is illustrated in the figure below where the central patch will be further divided into nine patches and the new central patch will be connected to the new face.

7-10

IGG

Grid subpad description

Quick Access Pad

Reference face, divided in nine patches Extruded range

FIGURE 7.3.1-5 Extruded

range included in a reference face patch

The range covers exactly a set of existing patches. In this case, the new face is divided
using the same limits as the covered patches and the connection is performed with these patches.

The range overlaps two or more patches. In this case patch decomposition will NOT be performed automatically and a warning will appear. It is illustrated in the figure below where the range being extruded overlaps two patches. In this case, the division into patches and the connections must be performed manually.

Reference face, divided in two patches

Extruded range overlapping the two patches

FIGURE 7.3.1-6 Extruded

range overlapping two reference face patches

7-3.1.5 Duplicate Block


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

IGG

7-11

Quick Access Pad

Grid subpad description

FIGURE 7.3.1-7 Duplicate

Block dialog box

The first item "Blocks to Duplicate" offers three possibilities to choose the blocks to duplicate (simply left-click on the desired one in the box):
1. 2.

Active Block. Select only the active block. 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. 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.

3.

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 computed 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 available (simply left-click on the desired one in the box):

7-12

IGG

Grid subpad description

Quick Access Pad

1. 2.

No topology. Only the mesh of the selected blocks will be duplicated but not the edges and vertices. It is useful when the duplicated blocks do not have to be modified. Topology From Grid. The boundary edges are created by using the boundary grid nodes of the duplicated blocks. Only the boundary edges and the corner vertices are reproduced.

3.

Duplicate Geometry. All the selected blocks entities are duplicated: vertices, fixed points, edges, internal grid lines, internal points, internal faces. The duplicated edges will have exactly the same shape as those of the initial block, which is not the case when edges are created by using the boundary grid nodes of the duplicated block. The difference can be seen clearly in the figure below for the edge mapped on the curve:

Topology From Grid

Duplicate Geometry

Duplicated blocks

Curve

Initial blocks

FIGURE 7.3.1-8 Difference 4.

between Topology From Grid and Duplicate Geometry

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

7-3.1.6 Block by Sweeping


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

7-3.1.7 Block by Face translation


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

IGG

7-13

Quick Access Pad

Grid subpad description

7-3.1.8 Block by Face Expansion


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

7-3.1.9 Block by Face Rotation


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

7-3.1.10 Create Butterfly


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

7-3.1.11 Delete Block(s)


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

FIGURE 7.3.1-9

Delete blocks dialog box

This box allows to choose the blocks to delete. Two possibilities are available (simply left-click on the desired one in the box):
1. 2.

Active Block. Select only the active block. 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 confirmation is asked for each block:

FIGURE 7.3.1-10 Deletion

confirmation

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

7-14

IGG

Grid subpad description

Quick Access Pad

7-3.2

Insert/Edit page

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

7-3.2.1 Insert Vertex


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

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

Move the mouse to the desired edge. A small marker is displayed when the candidate edge has been identified. Left-click to insert a new vertex in this edge. Then, this vertex can be moved as for a corner vertex. Left-click again to fix its position. The insertion of a vertex splits the existing topological edge into two new topological edges. The mapping of these edges can be controlled separately. The insertion of a vertex is firstly attempted on the active edge. In this way it is possible to control in which edge the vertex is inserted in the case several edges lie at the same position.

7-3.2.2 Insert Fixed Point


This icon is used to insert a new fixed point in an edge. Move the mouse to the desired edge near a grid point to fix. A small marker is displayed when the insertion can be performed. Left-click to insert a new fixed point in this edge; its index will then be displayed. This fixed point can be moved as for a corner vertex. Left-click again to fix its position. The insertion of a fixed point splits the existing segment into two new segments. The insertion of a fixed point is first attempted on the active edge. In this way it is possible to control in which edge the fixed point is inserted in the case several edges lie at the same position.

7-3.2.3 Insert Internal Grid Line


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

7-3.2.4 Internal Point


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

IGG

7-15

Quick Access Pad

Grid subpad description

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

7-3.2.5 Internal Face


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

7-3.2.6 Cluster Points


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

7-3.2.7 Transform Blocks


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

FIGURE 7.3.2-1

Transform Blocks dialog box

The first thing to choose is the Block(s) to Transform. Three possibilities are available (simply leftclick on the desired one in the box):
1. 2.

Active Block. Select only the active block. 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. 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.

3.

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

2.

7-3.2.8 Extend Block


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

Reference face with internal grid line 21 grid points

New reference face position

2 grid points 21 grid points

K J I

Newly created internal face J


FIGURE 7.3.2-2 Block

K I

extension along the J direction

During an extension operation, IGG automatically inserts a new internal face at the position of the reference face and increments the number of points of the block along the extension direction. This allows to keep the current shape of the block unchanged while being able to extend it. Internal edges are inserted in the new internal face at the same position and with the same shape as internal edges of the reference face. The connections of the reference face (vertices, edge, segments and patches) are deleted during the extension operation. A warning appears when a disconnection is performed.

IGG

7-17

Quick Access Pad

Grid subpad description

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


1.

Click on the icon. The following prompt appears:

<1> to select a face, <2> to perform extension, <3> to quit


2. 3.

Select the reference face with the left mouse button. Middle-click to acknowledge the face selection. One vertex of the reference face is selected and can be moved with the mouse. The whole reference 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 keyboard input area. Left-click to end the block extension.

4.

7-3.2.9 Split Block


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

7-3.2.10 Split Block at internal faces


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

7-3.2.11 Merge Blocks


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

7-3.3

Connect page

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

FIGURE 7.3.3-1 Connect

page

For general information about connections, see section 3-10 "Connections" on page 3-30. Connection operations can be applied on different entities (see the related bars of the Connect page):

between two grid edges, between two faces, for the whole grid at once.
For each one of these tools, the following topological connection levels are accessible:

vertex, orphan vertex, topological edge, segment.

7-18

IGG

Grid subpad description

Quick Access Pad

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

7-3.3.1 Edge - Edge


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

FIGURE 7.3.3-2

Edge-Edge connection dialog box

For the first four "topological" levels, an order must be respected as explained in the beginning of this section on page 7-18. For vertex or orphan vertex connections, the topological edges using the replaced vertex are remapped 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 without leaving the tool. To quit this tool, press <q> or the right mouse button.

IGG

7-19

Quick Access Pad

Grid subpad description

7-3.3.2 Face - Face


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

FIGURE 7.3.3-3

Face-Face connection dialog box

For the first four "topological" levels, an order must be respected as explained in the beginning of this section on page 7-18. On the other hand the Patches level can be applied independently. For vertex or orphan vertex connections, the topological edges using the replaced vertex are remapped 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 without leaving the tool. To quit this tool, press <q> or the right mouse button.

7-3.3.3 Whole grid


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

7-20

IGG

Grid subpad description

Quick Access Pad

For the first four "topological" levels, an order must be respected as explained in the beginning of this section on page 7-18. On the other hand the Patches level can be applied independently. For vertex or orphan vertex connections, the topological edges using the replaced vertex are remapped 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 Conditions dialog box (See section 10-2.3 Boundary Conditions), except that it finds only CON connections. For each level, the successfully connected entities are highlighted in green in the graphics area. Entities that were already connected in a previous operation are highlighted in red. To quit this tool, press <q> or the right mouse button.

7-3.3.4 Show Vertex Connections


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

7-3.3.5 Show Edge Connections


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

7-3.3.6 Show Segment Connections


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

7-3.3.7 Show Face Connections


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

IGG

7-21

Quick Access Pad

Grid subpad description

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

7-3.4

Generate page

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

7-3.4.1 2 Bnd Interpolation


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

7-3.4.2 4 Bnd Interpolation


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

FIGURE 7.3.4-1 Face

4 Bnd Interpolation dialog box

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

7-3.4.3 Face Generation Tool


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

7-3.4.4 Project Face


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

7-22

IGG

Grid subpad description

Quick Access Pad

Surface specification

Projection mode Range to project


Can be the whole face or a range

Range selection

Click on the border to change the current limit

The dialog box is divided into four parts: Surface specification The surfaces used during the projection can be:

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

IGG

7-23

Quick Access Pad

Grid subpad description

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

FIGURE 7.3.4-2 Changing

range limits

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

7-3.4.5 Block 6 Bnd


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

FIGURE 7.3.4-3 Block

6 Bnd Interpolation dialog box

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

7-3.4.6 Regenerate Faces


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

7-24

IGG

Grid subpad description

Quick Access Pad

FIGURE 7.3.4-4 Regenerate

Faces dialog box

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

7-3.4.7 Show History


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

FIGURE 7.3.4-8 Face

generation history.

The list of operations is dynamically updated when selecting a new active face. It is to be remembered that a bilinear interpolation is always performed implicitly by IGG as the very first operation performed on a face. This operation is not shown in the list. Editing The editing capabilities are currently limited to the deletion of one or more operations from the list. It avoids to begin the face generation from scratch when an operation does not provide expected results. To delete an operation, simply select the desired operation and press the Delete button. For speed reason, IGG does NOT automatically regenerate the face after a deletion. This operation must be performed explicitly with the "Regenerate Faces" option.

IGG

7-25

Quick Access Pad

View subpad description

7-4

View subpad description

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

7-4.1

Geometry Groups page

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

Group browser

List of curves and surfaces in the group

Check button allowing selective visualization of items.

FIGURE 7.4.1-1 Geometry

Groups page

All the existing geometry groups are listed by name in the browser of the page. Each group name is preceded by two buttons. Left-clicking on the first one toggles the list of curves and surfaces of the corresponding group in the Quick Access Pad. Left-clicking on the second one toggles the display of curves and surfaces of the group in the graphics area. Each item in a group is also preceded with a check button that allows to individually show or hide the item. The page contains four buttons at the bottom:

Create Group. Before pressing this button, curves and surfaces that will be put in the new
group must be selected (see the Geometry/Select menu). The following dialog box will be opened:

FIGURE 7.4.1-2 Geometry

group creation

7-26

IGG

View subpad description

Quick Access Pad

Simply enter the new group name and press the Create button to create the new group.

Delete Group. It opens the following dialog box:

FIGURE 7.4.1-3 Geometry

group deletion

All existing geometry groups are listed in the box. Simply select a group by left-clicking on its name and press the Delete button to delete it (this will not delete the related geometrical entities).

Show All. This button shows all the geometry in the graphics area: curves, surfaces and Cartesian points.

Hide All. This button hides all the geometry in the graphics area: curves, surfaces and Cartesian
points. Two pop-up menus are also accessible by right-clicking on a group name or on a geometry entity in the page browser:

FIGURE 7.4.1-4 Geometry

group pop-up menus

The first menu contains three items:

Add Selection. This adds the currently selected curves and surfaces to the group. Remove Selection. This removes the currently selected curves and surfaces of the group. If
some selected curves or surfaces are not in the group, the removal of these entities will have no effect on the group.

Delete. This deletes the geometry group.


The second menu allows to remove of the group the geometry entity from which the menu is opened.

7-4.2

Block Groups page

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

IGG

7-27

Quick Access Pad

View subpad description

Group browser

List of blocks in the group

Check button allowing selective visualization of items.

FIGURE 7.4.2-1 Block

Groups page

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

Create Group. The following dialog box will open:

FIGURE 7.4.2-2 Block

group creation

Simply enter the new group name and press the Create button to select the group blocks. The following prompt will appear: <1> Select a Block, <2> Add to Group, <3> Quit, <Keyboard Area>: Block Indices Left-click on a block to select it. The block will be highlighted. Then, middle-click to add the block to the group. This block will remain highlighted until leaving this tool. Add in the same manner as many blocks as desired. Blocks can also be added to the group by entering their number in the keyboard input area. In this case, the blocks are directly added to the group without being highlighted and without any validation. The numbers must be separated by spaces. A range of blocks can also be added by entering two numbers separated by a -. For example, enter 1 5 10-15 3 to add the blocks 1, 3, 5 and the range 10->15. The numbers do not have to be ordered and the same number can be entered more than one time. If a syntax error is made, a warning message will appear. Press <q> or the right mouse button to complete the group creation.

Delete Group. It opens the following dialog box:

7-28

IGG

View subpad description

Quick Access Pad

FIGURE 7.4.2-3 Block

group deletion

All existing block groups are listed in the box. Simply select a group by left-clicking on its name and press the Delete button to delete it (this will not delete the related blocks).

Show All. This button shows all the blocks in the graphics area. Hide All. This button hides all the blocks in the graphics area.
Two pop-up menus are also accessible by right-clicking on a group name or on a block in the page browser:

FIGURE 7.4.2-4 Block

group pop-up menus

The first menu contains three items:

Add Selection. This adds the active block to the group. Remove Selection. This removes the active block of the group. If it is not in the group, this
operation will have no effect on the group.

Delete. This deletes the block group.


The second menu allows to remove of the group the block from which the menu is opened.

7-4.3

Grid page

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

FIGURE 7.4.3-1 Grid

page

IGG

7-29

Quick Access Pad

View subpad description

The first row of buttons is used to determine the viewing scope, that is the grid scope on which the viewing commands provided by the icons of the second row will apply. There are five modes determining the scope, each one being represented by a button: Segment, Edge, Face, Block, Grid (all blocks). Only one mode is active at a time and the current mode is highlighted. Simply left-click on a button to select the desired mode.

In Segment mode, a viewing operation applies to the active segment only. In Edge mode, a viewing operation applies to the active edge only. In Face mode, a viewing operation applies to the active face only. In Block mode, a viewing operation applies to the active block only. In Grid mode, a viewing operation applies to all the blocks of the grid.

The icons of the second row and their related commands are listed in the following table:

Icon

Command Toggles vertices.

Toggles fixed points.

Toggles segment grid points.

Toggles edges.

Toggles face grid.

Toggles shading.

7-30

IGG

CHAPTER 8:

File Menu

8-1

Overview

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

8-2
8-2.1

File menu description


Open

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

FIGURE 8.2.1-1

IGG file chooser

IGG

8-1

File Menu

File menu description

Upon selection of a valid IGG project, IGG closes the current project and installs the new project. The old project is NOT automatically saved before being closed. Therefore, please make sure that the current work is saved before this option is used.

8-2.2

New

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

8-2.3

Scripts --> Edit

File/Scripts/Edit... opens a dialog box displaying all the commands performed by the user since the beginning of its session. The user can easily edit this script (add, remove and modify commands).

The dialog box contains two pull-down menus. File menu allows to open a script in a separate dialog box and to save the script in a file. Run menu allows to run the script shown in the window under the current session ("Rerun on top").

8-2.4

Scripts --> Save All

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

8-2.5

Scripts --> Execute

File/Script/Execute... is used to run a python script file containing IGG commands. A file chooser is opened to select a file with a .py extension. Upon selection of a valid file, the script is executed in the current session and the result is visualized in the graphical window. Depending on the content of the script, operations will be added to the current project or a new project will be automatically opened before operations are performed (The previous project is closed). If the script being run contains a syntactical error it will be aborted and a message will appear in the shell.

8-2

IGG

File menu description

File Menu

8-2.6

Scripts --> Re-execute Last

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

8-2.7

Save --> Save

File/Save/Save saves the current work. When the project is saved for the first time, a new file name must be specified with the extension.igg through a file chooser. During the saving, the information about the project is distributed in four files:

the name.igg file, which contains all relevant information about the topology and grid settings, except for faces and blocks coordinates.

the name.geom file which contains all the curves, surfaces and Cartesian points of the
geometry repository.

the name.cgns files containing informations about faces and blocks coordinates. the name.bcs files containing informations about boundary conditions.
The IGG file formats are explained in the chapter 12 Input and Output Files (see See section 12-3 Grid file format).

8-2.8

Save --> Save As

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

8-2.9

Save --> Save As Fine 6

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

8-2.10 Import -> IGG Project


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

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

IGG

8-3

File Menu

File menu description

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

8-2.10.2 Importation operations


During project importation the following operations are performed:

All the curves and surfaces from the imported project are added to the current project. When a
name clashing occurs with existing curves or surfaces, IGG automatically renames the imported entities. The prefix currently does not apply to curves and surfaces.

All the blocks of the imported project are appended to the existing blocks. The index of the
imported blocks are adapted automatically to follow the last block of the current project. The name of the patches and blocks follow the rule described here above.

The geometry and block groups are imported in the current project. The names of the groups
follow the rule described here above.

8-2.11 Import -> IGG Data


File/Import/IGG Data... is used to read external curves and surfaces stored in an ASCII IGG format. The file formats are specific to IGG (Curve & Surface data files) and are described in chapter Input and Output Files on page 12-1. When using the option, a file chooser is opened to select files with .dat or .dst extensions. Upon acceptance, the entities are automatically stored in the geometry repository and displayed in the graphical area. A fitting of the view may be needed to see all the entities properly. Since IGG uses the name of curves and surfaces to access them, no duplicate is allowed. During importation of a geometry file, IGG checks for name duplication. When an entity being loaded has the same name as an existing entity in the current session, a dialog box is opened with different possibilities:

FIGURE 8.2.11-1 Importation

options dialog box.

8-4

IGG

File menu description

File Menu

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

8-2.12 Import -> External Grid


File/Import/External Grid... is used to import inside the current IGG project a block grid generated either by IGG (using File/Export/Block Coor... menu item) or by another grid generator. A file chooser is opened to select a file with a .dat extension. Several file formats are available:

Block data file Surface data file (2D or 3D wireframe) Multiple surface data file (2D or 3D wireframe)
See the chapter Input and Output Files on page 12-1 for a detailed description of the formats. Upon selection of a valid file, a new block (or several for multiple data files) is created and put at the end of the list of blocks. For "Surface data file", which represent surfacic meshes, only face 1 of the block is created. For 2D meshes, the z coordinate is set automatically to 0 for all the points. IGG automatically creates the block topology (edges) by using the boundary grid points of the block.

8-2.13 Import -> Face Grid


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

IGG

8-5

File Menu

File menu description

8-2.14 Import -> Topology


The option File/Import/Topology... allows to re-use an existing IGG project on a similar geometry by importing all the topology and grid information from the related .igg file. The complete current project is deleted before importing. During the import operation, the following happens:

all the geometry entities are discarded from the imported project. the geometry groups are loaded, emptied from any curve or surface. the grid information like number of blocks, connection between blocks, clustering,... is
kept.

the blocks topology (vertices and edges) is kept, as well as their position and shape. the face generation recording, including the projection on geometry groups is kept. (See
section 7-3.4.4 on page 7-22 for projection on geometry groups). Then, to use the imported topology on a similar geometry, do the following:

Import the new geometry with the File/Import/IGG Data... or IGES... options. Redefine the geometry groups by selecting the proper surfaces and by adding them to the
existing groups (right button press on a geometry group pops up a menu for adding or removing the current geometry selection).

Remap all the vertices manually onto the new geometry. New vertices may be added if the
topology of the new geometry has changed. Regenerate the faces with the Regenerate Face option. It is to be noted that face projected onto a geometry group will be successfully re-projected if the groups have been redefined as described in the previous operation.

8-2.15 Import -> IGES Data


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

8-6

IGG

File menu description

File Menu

FIGURE 8.2.15-1

IGES file browser.

8-2.16 Import -> PLOT3D


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

FIGURE 8.2.16-1 Input

file and file format selection

IGG

8-7

File Menu

File menu description

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

ASCII Binary single Binary double Unformatted single Unformatted double

Binary stands for C binary files whereas Unformatted stands for Fortran binary files. Single and double describe the precision of reals. Then three buttons are provided to select the remaining file specifications. These ones must be specified only for binary files (the buttons are deactivated when ASCII type is selected). The two first radio buttons allow to select the binary order in the file : little or big endian. The last button specifies if the file is single or multi-block. The desired file can be selected by entering its full path name into the "Plot3D File" entry or through a file chooser opened by pressing the icon ( ) next to the file entry.

Upon selection of a valid file, the blocks of the imported file are created and put at the end of the current list of blocks. IGG automatically creates the block topology by using the block coordinates.

8-2.17 Import -> CGNS


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

8-2.18 Import -> GridPro


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

8-8

IGG

File menu description

File Menu

8-2.19 Export -> IGES


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

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

8-2.20 Export -> Geometry Selection


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

8-2.21 Export -> Geometry Control Points


File/Export/Geometry Control Points... is used to save the control points of the selected geometry curves into an ASCII file. It does not save the complete information about the curve (type, parametrization,...). The files created in this way are not intended to be directly read by IGG. Their main use is to print out the coordinates of the control points of the curves. This option is only available for curves, not for surfaces.

8-2.22 Export -> Block Coor


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

IGG

8-9

File Menu

File menu description

8-2.23 Export -> Face Coor


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

8-2.24 Export -> Patch Coor


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

8-2.25 Export -> Segment Discretization


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

8-2.26 Export -> PLOT3D


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

FIGURE 8.2.26-1 Output

file and file format selection

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

ASCII

8-10

IGG

File menu description

File Menu

Binary single Binary double Unformatted single Unformatted double

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

8-2.27 Replay Template -> Import IGG Data


File/Replay Template/Import IGG Data... is used when using the current project as a template and when it contains blocks with a butterfly topology (See the chapter related to templates for additional information). This tool is composed of two separated operations:

Importation of an IGG data file (geometry importation). Regeneration of all the butterfly topologies contained in the grid of the current project.
The geometry importation proceeds in a same way as the File/Import/IGG Data... menu item described previously on page 8-4. Then for all blocks containing a butterfly topology, this one will be deleted and recreated by using the same parameters. For additional information on butterfly regeneration, see section 5-4.8 on page 5-24. If the current project does not contain at least one butterfly topology, this tool has the same effect as the File/Import/IGG Data... menu item.

8-2.28 Convert Data


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

8-2.29 Convert Data -> Rotate Data


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

IGG

8-11

File Menu

File menu description

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

8-2.30 Convert Data -> Scale Data


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

8-2.31 Convert Data -> Translate Data


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

8-2.32 Convert Data -> Mirror Data


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

8-12

IGG

File menu description

File Menu

8-2.33 Convert Data -> Swap Data


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

8-2.34 Convert Data -> Reverse Sequence


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

8-2.35 Convert Data -> Cartesian_Cylindrical


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

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


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

8-2.37 Convert Data -> Extract Curve


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

IGG

8-13

File Menu

File menu description

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

8-2.38 Convert Data -> Grid : IJK_KJI


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

8-2.39 Convert Data -> Grid : 2D_3D


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

8-2.40 Convert Data -> Data : Expand Surface


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

8-2.41 Print -> As PostScript


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

8-2.42 Print -> As Bitmap PostScript


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

8-14

IGG

File menu description

File Menu

8-2.43 Print -> As PNG


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

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

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

8-2.44.1 Tolerances page


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

a) Geom Tol (abs)


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

the computation time, which increases as the tolerance reduces, the accuracy of some algorithms (i.e surface-surface intersection), the size of the result, for example the number of control points of intersection curves.

b) Geom Tol (rel)


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

IGG

8-15

File Menu

File menu description

c) Topo Tol (rel)


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

Small tolerance Curve 1 Gap Edge Curve 2


FIGURE 8.2.44-1

Greater tolerance

Start vertex Intermediate vertex

End vertex Edge mapping on two curves

As shown, there is a gap between the curves 1 and 2. To map an edge on these two curves, the start and end vertices have to be positioned firstly, then an intermediate vertex must be inserted on the edge and moved to the curve 1 end point. If the tolerance of this intermediate vertex is too small, the edge cannot map the curve 2. If it is sufficient, the edge also maps the curve 2, filling in the gap with a straight line. When a new block is created, all its vertices are provided with this tolerance. It is also the case when inserting a new vertex on an edge. This tolerance can be changed for a vertex with the command "Set Tolerance" of the pop-up menu accessible by right-clicking on the vertex (thus the tolerance 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 positioning a vertex or a fixed point and with activated attraction features of some geometry modelling tools (insertion of a cspline, bspline, polyline, circular arc). The following figure illustrates the influence of the Pick Aperture on the attraction of a vertex to a Cartesian point. Small value: no attraction High value: attraction

Face

Cartesian point

Mouse cursor
FIGURE 8.2.44-2 Attraction

of a vertex to a Cartesian point

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

8-16

IGG

File menu description

File Menu

8-2.44.2 Saving page

Automatic Saving button activates or deactivates automatic project backup saving. When activated, it only saves the geometry and the topology of the current project (.geom and .igg files). The grid points coordinates of the faces and of the blocks are not saved, for efficiency reasons. IGG saves the project using a .autosave extension (<projectname>.autosave.igg). Backup when saving is used to make a backup of the geometry and topology files at saving. IGG backups the project using a .bak extension (<projectname>.igg.bak). Quality check option is used to make automatically some tests on the grid each time a project is saved. It includes:

A calculation of the number of multigrid levels available in the I, J and K directions for the
whole grid.

A calculation of the negative cells in single and double precision. A rough idea of the grid quality (extremum values) in terms of orthogonality, aspect ratio
and expansion ratio. The results are displayed in a dialog box appearing automatically just after the saving.

8-2.44.3 Graphics page

IGG

8-17

File Menu

File menu description

The Graphics Driver frame allows to change the underlying graphics engine used by IGGTM to render its graphics. The available drivers depend on the type of machine and display used when running IGGTM. The X11 driver is available for all kinds of machines and displays and uses X Windows 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 operations. 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 displayed during viewing operations. Edges width frame allows to control the width of the block edges displayed in the graphics area. The width of the active block edges can be controlled by Normal width and the width of other block edges by Highlight width. The new widths are automatically updated for new inserted blocks but not for the edges of already created blocks. Simply left-click on these blocks to update the display.

8-2.44.4 Layout page

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

8-2.45 Project Configuration


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

8-18

IGG

File menu description

File Menu

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

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

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

IGG

8-19

File Menu

File menu description

watching at the boundary conditions (Grid/Boundary Conditions... menu item). In fact, for better patch visualization, the rotation performed in this case is of 10 degrees and this value cannot be changed. For axisymmetric projects the automatic rotation is done positively around the chosen axis according to a right-handed reference frame. Therefore if faces are put below the axis, the rotation will yield to negative cells. To avoid it all the faces should be inserted above the axisymmetric axis. For 2D projects, the global distance of extrusion of all the mesh along the Z axis can also be controlled by using the Grid/Periodicity... menu item. In this case, the dialog box contains an additional item Global 2D translation as shown in the following figure:

FIGURE 8.2.45-1 Modified

Periodicity dialog box

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

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

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

8-20

IGG

CHAPTER 9:

Geometry Menu

9-1

Overview

The Geometry module provides simple and efficient tools to create, edit and delete points, curves and surfaces. Without having the complexity of CAD systems, it allows to create wire or surface models from scratch or to complement imported geometries. The module allows to:

create and edit basic and advanced curves and surfaces, visualize and probe the geometry entities, perform advanced geometry operations such as surface-surface intersection, offsetting...
Other features include:

attraction features to points, curves and surfaces, importation of external CAD geometry in IGG or IGES formats, exportation of CAD geometry in IGG format.

9-1.1

Basic Geometry Entities

The basic type of curves provided in IGG are:

Polylines. CSplines, which are parametric cubic splines. These curves interpolate a set of user-defined
points and have the property to pass through these points. They are the most commonly used curve entity in IGG.

BSplines, are spline curves defined with basic functions. In general, bspline curves do not pass
through the control points. This kind of curve is generated by IGG when performing, for example, surface-surface intersections or other geometry manipulations.

Circular arcs or circles.


The basic type of surfaces provided in IGG are:

Wireframes, which are defined by a structured network of points. Lofted surfaces, which are surfaces interpolating a set of "parallel" curves. Lofted surfaces are
internally represented as BSpline or NURBS surfaces.

IGG

9-1

Geometry Menu

Overview

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

9-1.2

Curve Orientation

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

9-1.3

Geometry tolerance

a) Absolute tolerance
This geometry tolerance controls the accuracy of some geometry modelling operations, such as surface-surface intersection. This tolerance is specified in absolute units and should be adapted to the size of the current problem. For example, for a geometry with a global size of 1, a tolerance of 1e-5 is a good choice. For a global size of 1000, a better value is 1e-2 or 1e-3. The tolerance may affect various parameters in IGG:

the computation time, which increases as the tolerance reduces, the accuracy of some IGG algorithms (i.e surface-surface intersection), the size of the result, for example the number of control points of intersection curves.
The current tolerance can be queried, modified and saved for other sessions with the File/Preferences... menu (Tolerances/Geom Tol (abs) item).

b) Relative tolerance
This geometry tolerance controls the accuracy of some geometry modelling options, such as attraction features (e.g. accuracy of the position of the curve closest point when using the curve attraction feature). This tolerance is a relative one and a value of 1e-5 is a good choice. The current tolerance can be queried, modified and saved for other sessions with the File/Preferences... 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 corresponding section if it is available.

9-2
9-2.1

Geometry menu description


Draw CSpline->Free

Geometry/Draw CSpline/Free is used to draw a parametric cubic spline through a set of control points entered with the mouse and/or with the keyboard.

Using the mouse, the user must simply move the cursor to the desired position and press the left
mouse button to add a control point to the curve.

Using the keyboard, the user must enter the 3 coordinates separated by a blank, while the cursor
is in the graphics area. The keyboard inputs are automatically echoed in the string input area. Pressing <Enter> adds a control point to the curve.

The creation of the curve is terminated by pressing the right mouse button. Notice that the last
curve segment, attached to the mouse movement is not part of the curve and is removed from the screen.

When entering the points with the mouse, the depth of the point is automatically fixed by
IGG. The current depth can be seen by reading the mouse coordinates in the corresponding area. This depth can be changed using the View/View Depth menu.

During the specification of the points with the mouse, it is possible to attract the cursor to existing points, curves or surfaces. This feature is very interesting since it allows to connect curves together and to create T junctions. By default this attraction is enabled. To toggle the attraction to points, press <a> in the graphics area. Similarly, to toggle the attraction to curves or surfaces, press <c> or <s> respectively. When the cursor is attracted to an entity, a filled-in circle is displayed. The attraction works on:

point attraction: cartesian points and curves end points if they are visible. curve attraction: visible curves. surface attraction: visible surfaces. vertices and fixed points. This attraction always work and cannot be deactivated. The point, curve or surface attraction feature is activated or deactivated by pressing respectively <a>, <c> or <s> repeatedly, while the cursor is in the graphics area.

This tool can also be accessed through the Quick Access Pad/Geometry/Curve/CSpline menu item.

9-2.2

Draw CSpline->On Surfaces

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

IGG

9-3

Geometry Menu

Geometry menu description

The final spline curve does not, in general, completely lie on the selected surfaces. Only the control points are on the surface(s). Except for the attraction feature which is described below, all other operations are the same as for free cspline and are explained in the Draw CSpline -> Free menu. When adding points using the mouse, it is possible to attract the cursor to existing points. This feature 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 attraction works on all control points of the curves and on the grid points of the edges if they are visible. The point attraction feature is activated or deactivated by pressing <a> repeatedly, while the cursor is in the graphics area.

9-2.3

Draw CSpline->On Surface + Projection

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

9-2.4

Draw BSpline->Free

Geometry/Draw BSpline/Free is used to draw bsplines by defining control points with the mouse and/or with the keyboard.

Using the mouse, the user must simply move the cursor to the desired position and press the left
mouse button to add a control point to the curve.

Using the keyboard, the user must enter the 3 coordinates separated by a blank, while the cursor
is in the graphics area. The keyboard inputs are automatically echoed to the string input area. Pressing <Enter> adds a control point to the curve.

The creation of the curve is terminated by pressing the right mouse button. Notice that the last
curve segment, attached to the mouse movement is not part of the curve.

When entering the points with the mouse, the depth of the point is automatically fixed by
IGG. The current depth can be seen by reading the mouse coordinates in the corresponding area. This depth can be changed using the View/View Depth menu.

During the specification of the points with the mouse, it is possible to attract the cursor to existing points, curves or surfaces. This feature is very interesting since it allows to connect curves together and to create T junctions. By default this attraction is enabled. To toggle the attraction to points, press <a> in the graphics area. Similarly, to toggle the attraction to curves or surfaces, press <c> or <s> respectively. When the cursor is attracted to an entity, a filled-in circle is displayed. The attraction works on:

point attraction: cartesian points and curves end points if they are visible. curve attraction: visible curves. surface attraction: visible surfaces.

9-4

IGG

Geometry menu description

Geometry Menu

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

9-2.5

Draw B-Spline->On Surfaces

Geometry/Draw BSpline/On Surfaces is used to draw a bspline of which control points must lie on one or more surfaces. The drawing works by projecting the input control points on all selected surfaces. The projection direction is the normal to the current view plane. A control point falling outside any selected surface will not be projected. The final spline curve does not, in general, lie completely on the selected surfaces. Only the control points are on the surface(s). Except for the attraction feature which is described below, all other operations are the same as for free bspline and are explained in the Draw BSpline -> Free menu. When adding points using the mouse, it is possible to attract the cursor to existing points. This feature 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 attraction works on all control points of the curves and on the grid points of the edges if they are visible. The point attraction feature is activated or deactivated by pressing <a> repeatedly, while the cursor is in the graphics area.

9-2.6

Draw B-Spline->On Surface + Projection

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

9-2.7

Draw Polyline->Free

Geometry/Draw Polyline/Free is used to create a polyline by entering a set of control points. Between two points, the curve is represented as a line segment.

Using the mouse, the user must simply move the cursor to the desired position and press the left
mouse button to add a control point to the curve.

Using the keyboard, the user must enter the 3 coordinates separated by a blank, while the cursor
is in the graphics area. The keyboard inputs are automatically echoed to the string input area. Pressing <Enter> adds a control point to the curve.

The creation of the curve is terminated by pressing the right mouse button. Notice that the last
curve segment, attached to the mouse movement is not part of the curve.

IGG

9-5

Geometry Menu

Geometry menu description

When entering the points with the mouse, the depth of the point is automatically fixed by
IGG. The current depth can be seen by reading the mouse coordinates in the corresponding area. This depth can be changed using the View/View Depth menu.

During the specification of the points with the mouse, it is possible to attract the cursor to existing points, curves or surfaces. This feature is very interesting since it allows to connect curves together and to create T junctions. By default this attraction is enabled. To toggle the attraction to points, press <a> in the graphics area. Similarly, to toggle the attraction to curves or surfaces, press <c> or <s> respectively. When the cursor is attracted to an entity, a filled-in circle is displayed. The attraction works on:

point attraction: Cartesian points and curves end points if they are visible, curve attraction: visible curves, surface attraction: visible surfaces, vertices and fixed points. This attraction always work and cannot be deactivated. The point, curve or surface attraction feature is activated or deactivated by pressing respectively <a>, <c> or <s> repeatedly, while the cursor is in the graphics area.

This tool can also be accessed through the Quick Access Pad/Geometry/Curve/Polyline menu item.

9-2.8

Draw Polyline->On Surfaces

Geometry/Draw Polyline/On Surfaces is used to draw a polyline of which control points must lie on one or more surfaces. The drawing works by projecting the input control points on all selected surfaces. The projection direction is the normal to the current view plane. A control point falling outside any selected surface will not be projected. The final polyline curve does not, in general, lie completely on the selected surfaces. Only the control points are on the surface(s). Except for the attraction feature which is described below, all other operations are the same as for free polyline and are explained in the Draw Polyline -> Free menu. When adding points using the mouse, it is possible to attract the cursor to existing points. This feature 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 attraction works on all control points of the curves and on the grid points of the edges if they are visible. The point attraction feature is activated or deactivated by pressing <a> repeatedly, while the cursor is in the graphics area.

9-2.9

Draw Polyline->On Surface + Projection

Geometry/Draw Polyline/On Surface + Projection is used to create a curve in the same way as Geometry/Draw C-Spline/On Surface + Projection. The final curve is a polyline with a number of control points defined by the user. These control points are guaranteed to lie on the selected surface. Geometry/Draw Polyline/On Surface + Projection is used to draw a polyline and to project it on a selected surface as the final step of its creation.

9-6

IGG

Geometry menu description

Geometry Menu

The control points are initially entered with the mouse or the keyboard (see Draw Polyline -> Free menu for a more complete description of the operations). Then, after pressing the right mouse button, the control points are projected on the first selected surface and a new polyline created. This polyline interpolates the projected points. The total number of control points defining the final curve can be entered manually or automatically calculated. Number of control points (automatic = 0) (q) >> 0

9-2.10 Circular Arc->Normal-Center-Point-Point


This menu option is used to create circles or circular arcs through two points and perpendicular to an anchored vector. It allows also the creation of an arc perpendicular to an anchored vector, running through one point and of a given angle. The following inputs are requested:

an anchored vector, defined by a direction and an anchor point, the start and end points (or an angle in place of the end point).
All these data (except for the angle) can be entered either through the keyboard input area or with the mouse. The centre of the circle is calculated so that the circular arc runs exactly through the two points. The anchor of the vector can be used to define it. However, in case it is not on the perpendicular to the chord bound by the two points, the centre is set on this perpendicular, the nearest to the vector. See the figure below.

first point

anchored vector

second point

Centre anchor point

closest distance

Plane defined by the two points and perpendicular to the vector


FIGURE 9.2.10-1

: Circular arc

To draw a complete circle, the start point must be equal to the end point. The following prompts are given for the anchor vector and the two points (data entered with the keyboard):

IGG

9-7

Geometry Menu

Geometry menu description

Enter normal to the arc >> 0 1 0 Enter normal anchor point (q) >> 0 0 0 Enter start point >> 0 1 1 Enter end point >> 1 1 0 The normal to the arc can be chosen as the screen normal by simply left-clicking in the graphics area. For the specification of the normal anchor point, start and end points, it is possible to attract the cursor to existing points, curves or surfaces. This feature is very interesting since it allows to connect curves together and to create T junctions. By default this attraction is enabled. To toggle the attraction to points, press <a> in the graphics area. Similarly, to toggle the attraction to curves or surfaces, press <c> or <s> respectively. When the cursor is attracted to an entity, a filled-in circle is displayed. The attraction works on:

point attraction: Cartesian points and curves end points if they are visible, curve attraction: visible curves, surface attraction: visible surfaces, vertices and fixed points. This attraction always work and cannot be deactivated. The point, curve or surface attraction feature is activated or deactivated by pressing respectively <a>, <c> or <s> repeatedly, while the cursor is in the graphics area.

An angle can be specified in place of the end point by pressing <p> when the start point is entered. The following prompt will appear: Enter angle >> 45 Enter the desired angle and press <Enter>. To quit this tool without creating an arc, press <q> or the right mouse button. This tool can also be accessed through the Quick Access Pad/Geometry/Curve/Arc menu. Example: To draw a circular arc from (1,1,0) to (0,1,1) with centre (0,1,0), enter the following: plane normal anchor point start point end point (0,1,0) (0,1,0) (0,1,1) (1,1,0)

Notice that entering (0,0,0) for the anchor point would give the same result. Indeed, (0,0,0) is located on the same arc normal than (0,1,0).

9-2.11 Circular Arc->Normal-Point-Point-Radius


This menu option is used to create circles or circular arcs through two points, with a given radius and perpendicular to a normal. The following inputs are requested from the user:

Circle/arc normal,

9-8

IGG

Geometry menu description

Geometry Menu

Start and end point, Circle/arc radius, Arc position.


All these data (except the arc position) can be entered either through the keyboard input area or with the mouse. The normal to the arc can be chosen as the screen normal by simply left-clicking in the graphics area. For the specification of the arc start and end points, it is possible to attract the cursor to existing points, curves or surfaces. This feature is very interesting since it allows to connect curves together and to create T junctions. By default this attraction is enabled. To toggle the attraction to points, press <a> in the graphics area. Similarly, to toggle the attraction to curves or surfaces, press <c> or <s> respectively. When the cursor is attracted to an entity, a filled-in circle is displayed. The 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.

Once the start point is entered, it is displayed in a filled-in circle and a semicircle is drawn through this start point and the cursor (Figure 9.2.11-1). Moreover, a line representing the radius and a cross representing the center are displayed; the corresponding values of the radius and center are shown in the information area. When the end point is entered, it is also displayed in a filled-in circle.

FIGURE 9.2.11-1 Arc

representation before its creation

FIGURE 9.2.11-2 Six

arcs drawn through two points with a given radius

IGG

9-9

Geometry Menu

Geometry menu description

If the radius is entered through the keyboard input area, it is possible that the value entered is too small (if value is lower than half distance between start and end point), in which case a warning message appears. When the radius is entered, the sense of the circular arc can be chosen by pressing <o> repeatedly. In fact, there are six possibilities to draw an arc between two points and with a given radius, which includes two possibilities of complete circle, as shown in Figure 9.2.11-2. Once the correct sense is chosen, simply click on the left mouse button to complete the arc creation. To quit this tool without creating an arc, press <q> or the right mouse button. This tool can also be accessed through the Quick Access Pad/Geometry/Curve/Arc menu.

9-2.12 Circular Arc->Point-Point-Point


This menu option is used to create circular arcs through three points. The following inputs are requested from the user:

Start point, End point, Middle point.


All these data can be entered either through the keyboard input area or with the mouse. During the specification of the points with the mouse, it is possible to attract the cursor to existing points, curves or surfaces. By default this attraction is enabled. To toggle the attraction to points, press <a> in the graphics area. Similarly, to toggle the attraction to curves or surfaces, press <c> or <s> respectively. When the cursor is attracted to an entity, a filled-in circle is displayed. The attraction works on:

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

The start and end points must be specified first and are displayed in a filled-in circle. When both points are specified, a circular arc is drawn between the start point, end point and the current cursor position, representing the mid point (Figure 9.2.12-1). Moreover, a line representing the radius and a cross representing the center are displayed; the corresponding values of the radius and center are shown in the information area. It is possible to get a complete circle by pressing the <o> key. Pressing <o> a second time comes back to the circular arc mode.

FIGURE 9.2.12-1 Circular

arc representation before its creation

9-10

IGG

Geometry menu description

Geometry Menu

Entering the mid point will complete the circular arc (or circle) creation. To exit the tool without creating an arc, press <q> or the right mouse button. This tool can also be accessed through the Quick Access Pad/Geometry/Curve/Arc menu.

9-2.13 Create Points->Cartesian Point


This command is used to create Cartesian points, that is a point defined by its three Cartesian coodinates x, y and z. The following prompt appears: Enter Point Coordinates (x y z) ? (q) >> 0 1 0 Enter the desired coordinates and press <Enter>. The corresponding Cartesian point will be displayed in a filled-in circle in the graphics area. To quit this command, enter q and press <Enter>. This tool can also be accessed through the Quick Access Pad/Geometry/Point/Cartesian Point menu item.

9-2.14 Create Points->Curve-Curve Intersection


This command is used to create Cartesian points at the intersection of curves that must be selected before using this command. More than two curves can be selected and the Cartesian points will be displayed in filled-in circles. If a curve has an intersection with itself, it will not have a Cartesian point created at the corresponding location. This tool can also be accessed through the Quick Access Pad/Geometry/Point/Curve-Curve Inters menu item.

9-2.15 Create Points->Curve-Plane Intersection


This command is used to create Cartesian points at the intersection between a plane and curves that must be selected before using this command. The Cartesian points will be displayed in filled-in circles. The following prompts allowing the selection of the plane will appear: Enter plane origin >> 0 0 0 Enter plane normal >> 0 0 1 To quit this command before the end, enter q in the keyboard input area and press <Enter>. This tool can also be accessed through the Quick Access Pad/Geometry/Point/Curve-Plane Inters menu item.

9-2.16 Create Curve->Surf-Surf intersection


Geometry/Create Curve/Surf-Surf intersection is used to compute the intersection curve(s) between two selected surfaces. The computation algorithm makes use of the absolute geometry tolerance defined in the system.

IGG

9-11

Geometry Menu

Geometry menu description

The calculation time and the resolution of the intersection curve(s) directly depend on this geometry tolerance. It is strongly advised not to take too small values for this tolerance. A typical value for the tolerance is 1e-5 for surface sizes equal to 1. The tolerance can be modified using the File/Preferences... menu option. It is to be noticed that an intersection between two surfaces may result in several curves, which may need to be concatenated with the Geometry/Create Curve/Group menu. Limitations: the geometry library used in IGG cannot properly find intersection of surfaces which are not continuous in slope (C1 continuity). This is the case, for example, when creating lofted surfaces using polylines or curves of degree 1. In this case, it is advised to decompose the problem and search the intersection of each continuous part of the surface. This tool can also be accessed through the Quick Access Pad/Geometry/Curve/Surf-Surf Inters menu item.

9-2.17 Create Curve->Surf-Plane inters->Point-Normal


This command is used to compute the intersection curve(s) between NURBS surfaces and a plane. In this option, the plane is specified by an origin and a normal. These values can be entered through the keyboard or with the mouse. The following prompts will appear: Enter plane origin >> 0 0 0 Enter plane normal >> 0 0 1 When using the mouse to define the normal, the normal is calculated by taking the vector going from the origin (first point entered) to the selected point. IGG then computes the intersection between the plane and all the selected surfaces (Geometry/ Select/Surfaces). To quit this command before the end, enter q in the keyboard input area and press <Enter>. This tool can also be accessed through the Quick Access Pad/Geometry/Curve/Surf-Plane Inters menu. The computation algorithm makes use of the absolute geometry tolerance defined in the system. The calculation time and the resolution of the intersection curve(s) directly depend on this geometry tolerance. It is strongly advised not to take too small values for this tolerance. A typical value for the tolerance is 1e-5 for surface sizes equal to 1. The tolerance can be modified using the File/Preferences... menu option.

9-2.18 Create Curve->Surf-Plane inters->Normal to Curve


This command is used to compute the intersection curve(s) between NURBS surfaces and a plane. It allows the user to specify the cutting plane by simple selection of a point on a curve. The plane will be defined with its origin at the selected point and its normal tangent to the curve, at the selected point. This option is especially useful for internal flow geometries like volutes or pipes, where intersection of lateral surfaces with a radial plane can be performed easily by selecting a point on a longitudinal curve (see example below). The resulting intersection curves can then be used to easily place radial internal faces.

9-12

IGG

Geometry menu description

Geometry Menu

resulting intersection curves

c1

c1

longitudinal curves
(boundaries of the surfaces) points selected on curve c1, defining the cutting plane

two lateral surfaces, defining a pipe

FIGURE 9.2.18-1 Surface

intersection with planes defined perpendicularly to a curve.

To perform an intersection:
1. 2. 3.

Select the surfaces to intersect (Geometry/Select/Surfaces). Select this command. Move the mouse to a curve, at the location where the plane should intersect. When the mouse is close enough to the curve, the current point is highlighted.

4. Left-click to select the point and to perform the intersection. This tool can also be accessed through the Quick Access Pad/Geometry/Curve/Surf-Plane Inters menu.

9-2.19 Create Curve->Surf-Plane inters->Point-Point-Point


This command is used to compute the intersection curve(s) between NURBS surfaces and a plane. In this option, the plane must be defined by three points, specified from the keyboard or with the mouse. When activating the option, IGG prompts to enter the three points successively: >> Select first point <1>, <3> to quit To enter the point from the keyboard, simply type the three coordinates separated by a blank then press <Enter>. The coordinates are echoed in the string input area. When specifying a point with the mouse, the current point can be attracted to points, curves or surfaces. The second and third points must be specified in the same way. After the third point has been specified, IGG performs the intersection with the selected surfaces. This tool can also be accessed through the Quick Access Pad/Geometry/Curve/Surf-Plane Inters menu.

IGG

9-13

Geometry Menu

Geometry menu description

9-2.20 Create Curve->Extend Curve


This option is used to extend an existing geometry curve at one or both ends in the direction tangent to the curve at the end points. It is especially useful when an input CAD file contains curves supposed to intersect but which practically do not. In this case, using the option will allow to extend one curve and make it intersect the other. The following dialog box is provided to extend a selected curve by specifying the extension factor at one or both ends of the curve:

The specified values must be null or positive and correspond to a percentage of the curve length. A null value means that no extension will be performed for the specified end. For example, specifying a factor of 0.1 at one end of curve whose length is 5, will extend the curve by an amount of 0.5. This option creates a new curve. The reference curve remains unchanged to avoid side effects like for example position modification of vertices lying on the curve.

9-2.21 Create Curve->Offset Curve (Cst)


Geometry/Create Curve/Offset Curve (Cst) is used to create curves by offsetting the selected curves in the view plane with an offset distance. The offset distance can be negative. The following prompt is given to enter the offset distance: Offset Distance (q) >> -0.3 The offset curves are automatically drawn in blue indicating that they are not activated. To quit this command, enter q and press <Enter>.

9-2.22 Create Curve->Offset Curve (Linear)


Geometry/Create Curve/Offset Curve (Linear) is used to create curves by offsetting the selected curves in the view plane by entering two offset distances. These distances correspond respectively to the offset at the beginning and at the end of the curve. The offset distance can be negative. The following prompt is given to enter the offset distance Offset Distance (start, end) (q) >> 1 1 The offset curves are automatically drawn in blue indicating that they are not activated. To quit this command, enter q and press <Enter>.

9-14

IGG

Geometry menu description

Geometry Menu

9-2.23 Create Curve->Group


Geometry/Create Curve/Group is used to create a curve by joining together the curves currently selected. The joining starts from the first selected curve and uses the orientation of this curve as reference. Curves created with this option may be discontinuous (i.e joining an arc with a line). Discontinuous curves and surfaces are not always properly treated by intersection algorithms. The following prompt is given to enter a tolerance: Enter tolerance for curves grouping : (q) >> 1E-6 Two curves can be joined if this tolerance is higher than the distance separating points (start or end point) of each curve. If the tolerance is higher than the absolute geometry tolerance defined in the system, each gap (between two curves) greater than this geometry tolerance is filled, meaning that the curves are joined with a straight line (Figure 9.2.23-1).

Curve 1 Gap

Composite curve Straight line

Curve 2

FIGURE 9.2.23-1

Grouping of two curves presenting a gap

The tolerance can be modified using the File/Preferences... menu option. The composite curve created (if one) is automatically drawn in blue indicating that it is not activated and the curves used to create this resulting curve are deleted. These curves can be recovered by using the Geometry/Create Curve/UnGroup command (so, the composite curve will be deleted). To quit this command, enter q and press <Enter>. This tool can also be accessed through the Quick Access Pad/Geometry/Curve/Group menu item.

9-2.24 Create Curve->UnGroup


Geometry/Create Curve/UnGroup is used to create curves by splitting a composite curve previously created by the command Geometry/Create Curve/Group. In fact, it recovers the curves used to create the composite curve, which is deleted. The straight lines filling the gaps are also deleted. This tool can also be accessed through the Quick Access Pad/Geometry/Curve/UnGroup menu item.

IGG

9-15

Geometry Menu

Geometry menu description

9-2.25 Create Curve->Trim


This tool is used to trim curves (selected or not). It operates by removing the curve part (delimited by the other visible curves) lying under the cursor. A filled-in circle will appear on the part that will be deleted if the cursor is close enough. To delete this part, simply press the left mouse button. In fact, the parts of a curve are defined by all its intersections with the other visible curves. So, an extremity piece of a curve can be removed or a middle piece, dividing the initial curve into two other curves. For example, on Figure 9.2.25-1, either part 1, 2 or 3 of curve 1 can be trimmed.

Part 1 Part 3 Part 2 Curve 1 Curve 2 Curve 3

FIGURE 9.2.25-1 Parts

of a curve that can be trimmed

If a curve has only one part (before or after trimming), a warning message will appear when trying to trim it because this operation will result in the total deletion of the curve. To manage this, use the appropriate command (Geometry/Delete/Curves). A curve intersecting itself has not two parts but only one. So, the trimming of such a curve may seem sometimes strange but it is normal. For example, on Figure 9.2.25-2, left-clicking on part 1 will delete it, that is all the left part of curve 1 (bold part).

Curve 1 Part 2 Part 1 Curve 2

FIGURE 9.2.25-2 Trimming

on a curve intersecting itself

To quit this tool, press <q> or the right mouse button. This tool can also be accessed through the Quick Access Pad/Geometry/Curve/Trim menu item.

9-2.26 Create Surface->Lofted


Geometry/Create Surface/Lofted is used to create a NURBS surface interpolating a set of selected curves. The orientation and the order of the selected curves are taken into account to define the surface. This tool can also be accessed through the Quick Access Pad/Geometry/Surface/Lofted menu item.

9-16

IGG

Geometry menu description

Geometry Menu

9-2.27 Create Surface->Revolution


Geometry/Create Surface/Revolution allows to create a NURBS surface by rotating a curve around a user-defined line. Each selected curve, used as generating line, leads to the creation of a surface. The following prompts are given to specify the rotation line: Rotation axis vector (q) >> 0 0 1 Rotation axis origin (q) >> 0 0 0 Rotation angle (q) >> 90 After the surface creation, the option automatically creates several additional curves, corresponding to the boundaries of the revolution surface. Moreover, intermediate curves are created for a better surface representation. All these curves are deleted when the surface is deleted. Generating curve

Boundary curves automatically created

Intermediate curves

FIGURE 9.2.27-1 Cylinder

created by rotation of the generating line (250 degrees).

To quit this option, enter q and press <Enter>. This tool can also be accessed through the Quick Access Pad/Geometry/Surface/Revolution menu item.

9-2.28 Create Surface->Coons Patch


Geometry/Create Surface/Coons Patch allows to create a NURBS surface from four selected curves, using a bilinear interpolation. The four curves should define a closed region and should have the following orientation (see Geometry/View/Curve Orientation menu item): 3 2

1
FIGURE 9.2.28-1 Curve

order when creating a Coons surface

IGG

9-17

Geometry Menu

Geometry menu description

The four curves must also be selected as indicated in the figure (curve 1 first, ...). This tool can also be accessed through the Quick Access Pad/Geometry/Surface/Coons menu item.

9-2.29 Create Surface->Linear Sweep


Geometry/Create Surface/Linear Sweep allows to create a NURBS surface from two selected curves by making the tensor product of the two curves. The two curves should be "perpendicular" in the parametric space of the surface and must have a point in common (i.e curves 1 and 4 in Figure 9.2.28-1). This tool can also be accessed through the Quick Access Pad/Geometry/Surface/Linear Sweep menu item.

9-2.30 Create Surface->Offset


Geometry/Create Surface/Offset is used to create surfaces by offsetting the selected surfaces according to an offset distance which can be negative. The following prompt is given to enter the offset distance: Enter offset distance (q) >> -0.3 The boundary curves of the offset surfaces are automatically drawn in blue indicating that they are not activated. To quit this command, enter q and press <Enter>. This tool can also be accessed through the Quick Access Pad/Geometry/Surface/Offset menu item.

9-2.31 Create Surface->From Face


Geometry/Create Surface/From Face allows to create a NURBS surface from a face grid. To create a NURBS from a face:
1. 2.

Activate the face by selecting it interactively or by entering its indices in the keyboard input area, Apply the menu option.

The surface will be created at the same location as the active face and can be manipulated with the Geometry/Edit or Geometry/Modify Surface menus. This tool can also be accessed through the Quick Access Pad/Geometry/Surface/From Face Grid menu item.

9-2.32 Edit->Copy
Geometry/Edit /Copy is used to create new curves and surfaces by cloning the selected geometry curves and surfaces. After the cloning, new entities can be transformed directly through this tool: Translation(t), Rotation(r), Scale(s), Mirror(m), None(q) To perform a simple copy, enter q and press <Enter>. Other operations are strictly equivalent to the corresponding ones of the Edit menu.

9-18

IGG

Geometry menu description

Geometry Menu

After the cloning, all currently selected geometry entities are unselected and the new created entities 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 surfaces) along a user-defined vector. The following prompt is given to specify the translation vector: Translation vector (q) >> 1 1 1 A curve used in the definition of a surface (i.e. lofting curve) cannot be freely translated, since it would implicitly change the definition of the surface. To translate such a curve a copy must first be made (see section 9-2.32). The copy can then be freely translated. To quit this option, enter q and press <Enter>. This tool can also be accessed through the Quick Access Pad/Geometry/Edit/Translate menu item.

9-2.34 Edit->Rotate
Geometry/Edit /Rotate is used to rotate all the selected geometry entities (curves and surfaces) around a user-defined line. The following prompts are given to specify the rotation line: Rotation axis vector (q) >> 0 0 1 Rotation axis origin (q) >> 0 0 0 Rotation angle (degree) (q) >> 90 A curve used in the definition of a surface (i.e. lofting curve) cannot be freely rotated, since it would implicitly change the definition of the surface. To rotate such a curve a copy must first be made (see section 9-2.32). The copy can then be freely rotated. To quit this option, enter q and press <Enter>. This tool can also be accessed through the Quick Access Pad/Geometry/Edit/Rotate menu item.

9-2.35 Edit->Scale
Geometry/Edit /Scale is used to scale all the selected geometry entities (curves and surfaces) with a user-defined scale factor. The following prompt is given to specify the scaling factor in the three directions: Scale factor (x y z) (q) >> 1 1 1 A curve used in the definition of a surface (i.e. lofting curve) cannot be freely scaled, since it would implicitly change the definition of the surface. To scale such a curve a copy must first be made (see section 9-2.32). The copy can then be freely scaled. To quit this option, enter q and press <Enter>. This tool can also be accessed through the Quick Access Pad/Geometry/Edit/Scale menu item.

IGG

9-19

Geometry Menu

Geometry menu description

9-2.36 Edit->Mirror
Geometry/Edit /Mirror is used to mirror all the selected geometry entities (curves and surfaces) according to a mirror plane. The following prompts are given to specify the mirror plane: Mirror Plane Normal (q) ? >> 0 0 1 Mirror Plane Origin (q) ? >> 0 0 0 A curve used in the definition of a surface (i.e. lofting curve) cannot be freely mirrored, since it would implicitly change the definition of the surface. To mirror such a curve a copy must first be made (see section 9-2.32). The copy can then be freely mirrored. To quit this option, enter q and press <Enter>. This tool can also be accessed through the Quick Access Pad/Geometry/Edit/Mirror menu item.

9-2.37 Edit->Convert to CSpline


Geometry/Edit/Convert to CSpline is used to convert the selected curves into csplines with a specified number of control points. A number of control points (set by the user or automatically) is calculated on each curve. Then a cspline is interpolated through these control points. The following prompt appears to select the number of control points: Number of control points (automatic = 0) (q) Enter 0 for an automatic setting. The next prompt allows to select the type of control points distribution: Control points Fct. of curvature(1) or uniform(0) (q) Enter 0 for a uniform distribution or 1 for a distribution calculated according to the curve curvature. For a distribution calculated according to the curve curvature, two additional prompts appear: Maximum curvature ratio (1 -> 1e5)(q) Curvature weight (1e-5 -> 1e5)(q) When the ratio of curvature extrema is higher than the maximum curvature ratio, the points density is limited and is set to uniform. A value of 50 is advised. The curvature weight is used to decrease or increase the influence of the curve curvature on the points density. To quit this option, enter q and press <Enter>.

9-2.38 Modify Curve->Add Control Point


Geometry/Modify Curve/Add Control Point is used to add control points to the selected curves. The following prompt is given: Select a point (a = attraction, q = quit) a:Off The control points are displayed as markers (cross surrounded by a circle). New point is also visualized as marker under the cursor and is simply specified by left-clicking. The attraction to edges grid points can be activated by simply pressing <a> repeatedly, while the cursor is in the graphics area. Control points cannot be added to circles or circular arcs.

9-20

IGG

Geometry menu description

Geometry Menu

To quit the option, press <q> or the right mouse button.

9-2.39 Modify Curve->Remove Control Point


Geometry/Modify Curve/Remove Control Point is used to remove one or more control points of the selected curves. The following prompt is given: Select a point (q) The control points are displayed as markers (cross surrounded by a circle). To remove a control point, move the cursor on it and press the left mouse button. If a curve has more than two control points, the removal of the start or end control point will also remove the curve part between this extremity control point and the next control point. Obviously, if a curve has only two control points, these ones cannot be removed. To quit the option, press <q> or the right mouse button.

9-2.40 Modify Curve->Project


Geometry/Modify Curve/Project is used to project the selected curves onto a selected surface. When more surfaces are selected, the first selected surface is used for the projection. The user is requested to specify a projection vector: Enter Projection Vector (d = view plane normal) Typing d instead of the three vector coordinates will take the view plane normal as the projection vector. Enter q and press <Enter> to quit this command.

9-2.41 Modify Curve->Modify Point


Geometry/Modify Curve/Modify Point is used to modify the shape of a curve by modifying one or more control points and/or tangents of the curve. Modification is only possible on the curves selected by the user. After selecting this option, the control points and tangents of all selected curves are displayed and a prompt appears to select a point for modification: Select a point (a = attraction, q = quit) a:Off The operations needed to modify a point are as follows:

Select the point to be modified with the left mouse button. Move the selected point to a new location. The new position of the point can be entered from
the keyboard by typing the new coordinates x y z in the graphics area and pressing <Enter>.

Repeat the operation with other points. Quit the option with the right mouse button or by pressing <q>.
During the modification, it is possible to attract the current point to other existing points by enabling the attraction mode. Attraction to points is activated or deactivated by pressing <a> within the graphics area (toggle). The message in the message area is updated accordingly. The attraction works on all control points of the curves and on the grid points of the grid edges, when they are visible.

IGG

9-21

Geometry Menu

Geometry menu description

Modification of tangents is only possible for cspline curves. In this case, select the tangent to be modified with the left mouse button and move the cursor to indicate the new tangent direction. The new direction of the tangent can be entered from the keyboard by typing the new coordinates x y z in the graphics area and pressing <Enter>. Attraction is also available by still pressing <a>.

9-2.42 Modify Curve->Modify Point On Surface


Geometry/Modify Curve/Modify Point On Surface is used to modify the control points and the tangents of the selected curves and project them onto the selected surfaces. The modification is done in the same way as for the Modify Curve/Modify Point menu. At the end of the modification of a control point, the point is projected on the selected surfaces. The curve modified in this way does not in general completely lie in the surfaces. Only the control points are guaranteed to be on the surfaces.

9-2.43 Modify Curve->Discretization


Geometry/Modify Curve/Discretization allows the user to change the number of points used to discretize the curve. These points are used to draw the curve on the screen. This command applies to all the selected curves. The following prompt is given to enter the number of intermediate points between two consecutive control points of the curve: Number of discretization points between control points (q) ? >> 10 Enter q and press <Enter> to quit this command.

9-2.44 Modify Curve->Divide


Geometry/Modify Curve/Divide allows the user to divide a selected curve. After the division the old curve is removed from the geometry repository and two new curves (bsplines) are created. The following prompt is given when activating the option: Select the division point (a = attraction, q = quit) a:On The division point is displayed as marker (cross surrounded by a circle) and can be specified by selecting a point with the mouse within the limits of the curve or it can be entered with the keyboard. It is possible to attract the division point to edges grid points by enabling the attraction mode. Attraction to points is activated or deactivated by pressing <a> within the graphics area. To quit this command, press <q> or the right mouse button.

9-2.45 Modify Curve->Reverse


Geometry/Modify Curve/Reverse is used to reverse the orientation of the selected curves. Recall that the orientation of curves is important when creating surfaces using these curves (i.e. Coons patch or lofted surface).

9-22

IGG

Geometry menu description

Geometry Menu

9-2.46 Modify Curve -> Set Name


Geometry/Modify Curve/Set Name... is used to change the name assigned to a curve. It opens a dialog box allowing to enter a new name for a curve. The name specified must be a unique name, not already used by another curve. When pressing on the Apply button, IGG assigns the specified name to the first selected curve. The current name of a curve can be at any time known by activating the curve selection option (<s>) and by moving the mouse on top of the curve. The curve name will appear in the information area. Assigning proper name to curves is especially important when working with templates. This tool can also be accessed through the Quick Access Pad/Geometry/Curve/Set Name menu item.

9-2.47 Modify Surface->Discretization


Geometry/Modify Surface/Discretization allows the user to choose the number of points used to discretize the selected surfaces in the u and v directions. This discretization is used during surface grid generation by approximate mapping. The following prompt is given: Number of points in the u and v directions (q) ? >>50 100 To quit this command, enter q and press <Enter>.

9-2.48 Modify Surface->Representation


Geometry/Modify Surface/Representation allows the user to create curves in the two parametric directions of the selected surfaces. The most common use of the option is to have a better visual representation of the surfaces and to create curves which are usable in other geometry modelling operations. These curves are represented as cspline curves and can be freely manipulated. The following prompt is given to enter the number of curves in each parametric direction: Number of Curves in the u and v directions (q) ? >>20 25

The minimum number of curves in one parametric direction is 2, which corresponds to the
boundary curves.

The curves created in this way belong to the surface and are deleted when the surface is deleted,
if not used by other entities. To quit this command, enter q and press <Enter>.

9-2.49 Modify Surface->Add uv Curves


Geometry/Modify Surface/Add uv Curves is used to interactively create two orthogonal curves in the parametric space of a surface, running through a user-defined point. The surface must first be selected before being able to add uv curves. After activating the option, the user is requested to select a point on the selected surface(s) through which the curves will run. Select a point (a = attraction , q = quit) a = Off

IGG

9-23

Geometry Menu

Geometry menu description

This point can be entered with the mouse or with the keyboard. When using the mouse, the attraction to an existing point (control point of a curve or grid point of an edge) can be activated by pressing <a> within the graphics area. The curves created in this way belong to the surface and are deleted when the surface is deleted, if not used by other entities. To quit this option, press <q> or the right mouse button.

9-2.50 Modify Surface->Divide


Geometry/Modify Surface/Divide allows the user to divide a selected surface by selecting an existing parametric curve on the surface. The surface is split into two new surfaces along the given curve. The old surface is deleted from the geometry repository. The curve used for dividing the surface must be a parametric curve (along u or v), created with Geometry/Modify Surface/Add uv Curves or Geometry/Modify Surface/Representation menus. After activation of the option, the user is requested to select a curve of the surface Select a curve belonging to the surface (q = quit) The curve selection is operated with the left mouse button (the curve is highlighted when the cursor is close enough). After the selection, the division is automatically performed. To quit this option, press <q> or the right mouse button.

9-2.51 Modify Surface-> Set Name


Geometry/Modify Surface/Set Name... is used to change the name assigned to a surface. It opens a dialog box allowing to enter a new name for the selected surface. The name specified must be a unique name, not already used by another surface. When pressing on the Apply button, IGG assigns the specified name to the first selected surface. The boundary curves, as well as the othercurves created from the surface (i.e. using the Geometry/Modify Surface/Representation option) will be automatically renamed according to the name assigned to the surface. The current name of a surface can be at any time known by activating the surface selection option (<Ctrl-s>) and by moving the mouse on top of the surface. The surface name will appear in the information area. Assigning proper names to surfaces is especially important when working with templates. This tool can also be accessed through the Quick Access Pad/Geometry/Surface/Set Name menu item.

9-2.52 Select->Cartesian Points


Geometry/Select/Cartesian Points allows the user to select or unselect one or more visible Cartesian points with the mouse. When selected, the Cartesian points appear highlighted in blue (default) else they appear in white. The following prompt appears when selecting this option: Select Cartesian Point(s) (a = all, q = quit) Subsequent operations are done with the mouse in the graphics area:

moving the mouse over a non-selected point highlights it, pressing the left mouse button selects it,

9-24

IGG

Geometry menu description

Geometry Menu

pressing one more time unselects it, pressing the right button or <q> terminates the selection process.
It is possible to select or unselect all points at once by pressing <a> in the graphics area. The first time <a> is pressed all the points are unselected. The next time, <a> acts as a toggle.

9-2.53 Select->Control Points


Geometry/Select/Control Points allows the user to display the coordinates of a control point of a selected curve. When activated, the option shows the control points of all selected curves. Then the user is requested to select one of these control points: Select control points with the mouse (q) Subsequent operations are as follows:

moving the mouse over a control point highlights it, pressing the left mouse prints its coordinates in the information area, pressing the right button or <q> terminates the selection process.

9-2.54 Select->Curves
Geometry/Select/Curves allows the user to select or unselect one or more visible curves with the mouse for subsequent operations in geometry modelling or grid generation. When selected, the curves appear highlighted in green (default) else they appear in blue. The following prompt appears when selecting this option: <1> Select curve(s), <1 Drag> Rectangle selection, <3> quit, (a = all) Subsequent operations are done with the mouse in the graphics area:

moving the mouse over a non-selected curve highlights it, pressing the left mouse button selects it, pressing one more time unselects it, pressing the left mouse button without releasing it and dragging the mouse draw a rectangle.
Releasing the left button selects all the curves having a part in this rectangle,

pressing the right button or <q> terminates the selection process.


It is possible to select or unselect all curves at once by pressing <a> in the graphics area. The first time <a> is pressed all the curves are unselected. The next time, <a> acts as a toggle. During the selection, the information area is used to display information about the current curve. Typical information is: curve name, arc length of the discretization curve,...

9-2.55 Select->Surfaces
Geometry/Select/Surfaces allows the user to select or unselect one or more visible surfaces with the mouse for subsequent operations in geometry modelling (i.e surf-surf intersection) or grid generation (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 surfaces 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 (unselection) 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 surface 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 rectangle 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 users eyes,
IGG takes by default the closest surface to the user. The user can sweep through the surfaces by middle-clicking the mouse, until the desired surface is highlighted. Left-click then allows to select the highlighted surface. It is possible to select or unselect all surfaces at once by pressing <a> in the graphics area. The first time <a> is pressed all the surfaces are unselected. The next time, <a> acts as a toggle. During the selection, the information area is used to display information about the current surface, such as its name.

9-2.56 View->Curves
Geometry/View/Curves... allows the user to choose which curves are displayed. A curve chooser (Figure 9.2.56-1), showing all the curves in the geometry repository, is opened to select the curves. The visible curves are highlighted. To make one or more curves visible, select them with the left mouse button in the chooser, then press Apply. The curves are automatically displayed in the graphics area. The <Ctrl> key is used in combination with the left mouse button to select several curves in the chooser. The <Shift> key is used in combination with the left mouse button to select a range of curves in the chooser. A range of curves can also be selected by pressing the left button, dragging the mouse and releasing the left button. A filter, using regular expression search, is provided to select or unselect curves by their name.

9-26

IGG

Geometry menu description

Geometry Menu

FIGURE 9.2.56-1 Curve

chooser

9-2.57 View->Surfaces
Geometry/View/Surfaces... allows the user to choose which surfaces are displayed. A surface chooser (Figure 9.2.57-1), showing all the surfaces in the geometry repository, is opened to select the surfaces. The visible surfaces are highlighted. To make one or more surfaces visible, select them with the left mouse button in the chooser, then press Apply. The boundary curves of the surfaces are automatically displayed in the graphics area.

FIGURE 9.2.57-1 Surface

chooser

The <Ctrl> key is used in combination with the mouse to select several surfaces in the chooser.

IGG

9-27

Geometry Menu

Geometry menu description

The <Shift> key is used in combination with the mouse to select a range of surfaces in the chooser. A range of surfaces can also be selected by pressing the left button, dragging the mouse and releasing the left button. A filter, using regular expression search, is provided to select or unselect surfaces by their name.

9-2.58 View->Hide Selected Cartesian Points


Geometry/View/Hide Selected Cartesian Points is used to hide all the selected cartesian points.

9-2.59 View->Hide Selected Curves


Geometry/View/Hide Selected Curves is used to hide all the selected curves.

9-2.60 View->Hide Selected Surfaces


Geometry/View/Hide Selected Surfaces is used to hide all the selected surfaces.

9-2.61 View->Control Points


Geometry/View/Control Points acts as a toggle to show or hide the control points of all selected curves.

9-2.62 View->Curve Orientation


Geometry/View/Curve Orientation acts as a toggle to show or hide the orientation of the selected curves. An arrow is displayed indicating the orientation of the curve.

9-2.63 View->Lofting curves


Geometry/View/Lofting curves is only available for lofted surfaces and is used to toggle the display of the curves defining a lofted surface, except the boundary curves. The option applies to the selected lofted surfaces and has no effect on the other surfaces.

9-2.64 View->Prepare View


Geometry/View/Prepare View... allows to define the parameters for the faceting of the selected surfaces. The dialog box (Figure 9.2.64-1) is provided to control the creation of the triangulated representation of the selected surfaces: SPcurves tolerance: the "Tolerance" value is the maximum deviation allowed between a trimming curve given in model space and its equivalent in the parametric space of the surface to be trimmed. A default value, calculated from the overall dimension of the selected surfaces, can be set by pressing the "Default" button. Size: the minimum and maximum length of the facets in the triangulated representation of surfaces can be specified through the two items "Minimum length" and "Maximum length". For both parameters, a default value, calculated from the overall dimension of the selected surfaces, can be set by pressing the "Default" button.

9-28

IGG

Geometry menu description

Geometry Menu

Tolerance: The chordal tolerance between a curve and its facet edges in model units, i.e. the upper bound on the distance from the chord to the curve it approximates, can be specified through the "Curve chordal tolerance" item. Similarly, the distance tolerance in model units between a surface and its faceted representation, i.e. the upper bound on the distance from a position on a facet to the surface, can be specified through the "Surface plane tolerance" item. For both parameters, a default value, calculated from the overall dimension of the selected surfaces, can be set by pressing the "Default" button. Resolution: The maximum angle between a curve and the chord used to approximate it, i.e. the upper bound on the sum of the angles between the chord and curve tangents measured at the chord ends, can be specified in degrees through the "Curve resolution" item. Similarly, the angular tolerance between a surface and its faceted representation can be specified in degrees through the "Surface 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 representation of the selected surfaces created when pressing the "Apply" button in the bottom of the dialog box. Key bindings: <Alt-s> toggles the display of the solid view for the triangulated representation of the selected surfaces, while <Alt-w> toggles the display of the wireframe view.

FIGURE 9.2.64-1 Faceting

settings

9-2.65 View->Clear View


Geometry/View/Clear View is used to clear the triangulated representation for the selected surfaces.

IGG

9-29

Geometry Menu

Geometry menu description

9-2.66 View->View Wireframe


Geometry/View/View Wireframe is used to toggle the display of the wireframe triangulated representation for the selected surfaces. If a surface does not have any triangulated representation yet, one will be created with default settings.

9-2.67 View->View Solid


Geometry/View/View Solid is used to toggle the display of the solid triangulated representation for the selected surfaces. If a surface does not have any triangulated representation yet, one will be created with default settings.

9-2.68 Delete Cartesian Points


Geometry/Delete/Cartesian Points is used to delete selected Cartesian points from the geometry repository. There is no undo associated with the delete operation.

9-2.69 Delete->Curves
Geometry/Delete/Curves is used to delete selected curves from the geometry repository. A curve cannot be deleted while it is used in the definition of the surface. To delete it, the surface itself must first be deleted. There is no undo associated with the delete operation.

9-2.70 Delete->Surfaces
Geometry/Delete/Surfaces is used to delete selected surfaces from the geometry repository, if not used by other entities. When deleting a surface all the curves which belong to it are automatically deleted. Typical curves belonging to a surface are uv curves, created with the Geometry/Modify Surface/Representation menu. There is no undo associated with the delete operation.

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

The following prompt appears, asking to enter the first point: Enter first point (toggle selection: a = points, c = curves, s = surfaces, l =distance to line)

9-30

IGG

Geometry menu description

Geometry Menu

Once the first point (or line) is entered, a second prompt appears, asking to enter the second point: Enter second point (toggle selection: a = points, c = curves, s = surfaces, l =distance to line) To measure the distance between two points, simply select the points with the mouse or enter the coordinates with the keyboard. For example, to measure the distance between (0,0,0) and (1,1,1), enter the sequence 0 0 0 in the graphics area, followed by <Enter>. Then enter 1 1 1 followed by <Enter>. The distance is indicated in the graphics area and in the information area. To select an existing point, attraction features are available, allowing attraction to points, curves and surfaces. To activate the attraction to points, press <a> in the graphics area, then move the cursor 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 interactive 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 capabilities for a large number of 2D and 3D geometries.

10-1.1 Boundary Conditions setting


Each block face can be divided in a certain number of patches on which will be applied the boundary conditions. It allows, for a same face, to have several different boundary conditions. Boundary conditions setting consists of imposing to each patch of the grid a type describing the physics of the flow. The boundary conditions setup is normally performed when the grid has been generated. The different types of boundary conditions are the following. Each one is referenced in IGG by an abbreviation given between brackets:

Undefined (UND) Inlet (INL) Outlet (OUT) External (EXT) Solid (SOL) Singular (SNG) Mirror (MIR) Rotating (ROT) Matching connection (CON) Non matching connection (NMB) Periodic matching connection (PER) Periodic non matching connection (PERNM)

IGG

10-1

Grid Menu

Overview

Except for the mirror and the four connection types, all the boundary conditions have to be set manually. 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 interacting 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 provided, 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. 2. 3. 4. 5.

Define the periodicity for each block (Grid/Periodicity... menu item). 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. Manually impose the boundary conditions of type: INL, OUT, EXT, SOL, SNG, ROT. Apply automatic connectivity search (Grid/Boundary Conditions... menu item, Connectivity/ Search button) to find automatically matching and non matching connections (periodic or not). Check that no non matching connection (NMB or PERNM) is defined where a matching connection was expected. If it is not the case, delete the corresponding connection and try to determine why the connection is non matching (see explanations with the connection tools). Define the full non matching connections. 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, ...

6. 7.

10-1.2 Coarse Grid Levels


When generating 2D or 3D grids with IGG, it may be advantageous for the solver to generate the blocks using a multigrid scheme. Multigrid corresponds to the capability of extracting coarser grids several times by skipping over two points in each block direction:

Finest Grid 9x9 (coarse grid level 0 0)

Coarse Grid 5x5 (coarse grid level 1 1)

10-2

IGG

Overview

Grid Menu

Multigrid schemes are not automatically enforced in IGG. Thus special care must be taken manually for proper grid settings to accomplish multigrid meshes. Following are some guidelines to generate such grids:

The number of multigrid levels is computed as follows: if n is the number of grid points of
an edge, the number of levels m is such that n-1 can be recursively divided m-1 times by 2. For example a 9x9x9 grid has 4 grid levels in each direction ( (9-1)/2/2/2 ).

When dividing a face into patches (for specifying different boundary conditions), each
patch has to follow a multigrid scheme. For example, if a face has 9 grid points in one direction, dividing the face in that direction into two patches with limits [1 4] and [4 9] does not yield to an efficient multigrid scheme. However, better limits for the patches are [1 5] and [5 9], resulting in 3 grid levels for the face in that direction. The multigrid rule can be applied independently for each I, J, K direction. The multigrid level available for the flow solver EURANUS through the FINE interface will be the lower level of patches multigrid level for each I, J and K direction. The following table summarizes the allowed number of grid points for each level of the grid. MultiGrid level Number of grid points per level

FIGURE 10.1.2-1 Coarse

grid levels

For example, if the number of grid points in one direction is 225, the number of levels in that direction will be 6 and the number of grid points for each level will be respectively 225 (for the finest level), 113, 57, 29, 15 and 8 (for the coarsest level).

IGG

10-3

Grid Menu

Grid menu description

10-2 Grid menu description


10-2.1 Periodicity
Grid/Periodicity... menu is used to define the periodicity for each block of the grid to generate. It can be done in the following dialog box: Index of the block affected by "Apply" (0 applies the settings to all the blocks) Periodicity parameters, function of the periodicity type

Periodicity types

Applies the current settings to the specified block

Clears the parameters

Close the box

FIGURE 10.2.1-1 Periodicity

dialog box

In this box, the following things can be specified: Block number: The periodicity can be defined block by block or for the whole grid. To define the periodicity for the whole grid, the block number should be set to 0. All subsequent "Apply" will affect ALL the blocks of the grid, overwriting previous settings. Periodicity types: Three types of periodicity can be specified:

Rotation: A rotation periodicity rotates a block around a given axis by a specified angle. The
rotation axis is specified by a rotation axis direction (axis) and an anchor point (origin). The angle is indirectly specified by indicating the number of periodicities for the block (e.g. a compressor with 4 blades should have a number of periodicities of 4) and the number of meshed passages is directly specified.

Translation: A translation periodicity, e.g. a cascade in turbomachinery, is obtained by specifying a translation vector, in direction and magnitude. For example, a translation vector of (0,0,2) will repeat a block along the Z axis by 2 absolute units.

Mirror: A mirror periodicity mirrors a block with respect to a symmetry plane and is specified by the origin and normal of the mirror plane. To choose among these types, simply left-click on it. The dialog box contains also three buttons at the bottom:

"Apply": it applies the current settings to the specified block(s).

10-4

IGG

Grid menu description

Grid Menu

"Clear": it resets the periodicity parameters to default values for the specified block(s). "Close": it closes the dialog box.
For 2D projects, the global distance of extrusion of all the mesh along the Z axis can also be controlled by this dialog box through an additional item:

FIGURE 10.2.1-2 Control

of the global distance of extrusion for 2D projects

If the 2D project is a new one, the default value is 1. Otherwise the value of the 2D project which is loaded is displayed. This value has an influence on the solver convergence and should be set according to the mesh size. In particular for the EURANUS solver, the value should not be lower than the smaller cell of the mesh, otherwise it can slow down the convergence.

10-2.2 Grid Settings


Grid/Grid Settings... menu is used to examine or modify all important grid parameters of the segments, edges, faces and blocks of the current project, using a dialog box. Name of the active block Number of points along the I, J, K directions, for the active block

Active Block, Face, Edge, Segment indices

Number of segments for the active edge Limits of the active segment Number of points for the active segment
FIGURE 10.2.2-1 Grid

Table giving the Multi Grid Levels Settings dialog box.

There is no Apply button which implies that the changes in the different input fields take effect IMMEDIATELY after pressing <Enter> or selecting another field, without any

IGG

10-5

Grid Menu

Grid menu description

possibility of automatic undo. The dialog box is divided into 4 different parts:

Block data: The active block index can be specified from the Block box. The total number of
grid points in I, J and K directions can be checked in the related box and modified at any time on the active block. The values can be changed by simply left-clicking on the box arrows or with the keyboard. In this latter case, press <Enter> to validate the change. The Propagate button is used to propagate the changes in number of points to the connected blocks. See below for a complete description on the change of block limits Imax, Jmax, Kmax and propagation. The name of the block can also be specified in the Name field.

Face data: The active face index can be specified from the Face box. When changing the active
face index, the edge and segment informations are automatically updated.

Edge data: The active edge index can be specified from the Edge box. The total number of segments of the active edge is displayed (it cannot be changed here, it is only for information purpose).

Segment data: The active segment index can be specified from the Segment box. The number
of grid points on that segment is displayed next to this area. The low and high limits of the active segment can be changed with the keyboard from the min and max boxes. Once a new value is entered, press <Enter> to activate the change. The following constraints must be respected:

new lower limit > lower index of the previous segment new upper limit < upper index of the next segment
When changing the limits of a segment, the index of the fixed points delimiting it will be obviously changed. If the new values imply the change of an internal grid line index, it is done automatically without asking any confirmation. However, if the new values imply the change of an internal face index, the following message appears:

FIGURE 10.2.2-2 New

block limits imply the change of internal face index

If the "no" button is pressed, the index will not be changed and the limit will be reset to the previous one. The dialog box also contains at its bottom two buttons: MG Levels and Close buttons. The first one opens a box containing the table of the MultiGrid levels shown at page 10-3. It allows to choose a number of grid points in order to have multigrid meshes. The second one is obviously used to close the dialog box.

Changing block limits Imax, Jmax or Kmax


The following considerations have to be taken into account when changing block limits:
1.

The minimum number of grid points in one direction is 2, which corresponds to one cell.

10-6

IGG

Grid menu description

Grid Menu

2.

When changing the number of grid points in the I, J or K direction, the faces and block grids affected by the modification are deleted. For example, when modifying the number of points in the K direction, the grids of the faces 3, 4, 5 and 6 are deleted. Connections with patches of the touched faces are also deleted. Moreover, patch boundaries are resized automatically in order to cover the whole face. 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 segments, the connection will be deleted at the next loading of the project. When increasing the number of points in one direction, these points are added to the last segment of edges aligned on this direction. 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:

3. 4.

5. 6.

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

Fixed point index

40

s2
30

s3
Fixed point
K J 20 I 35

s1

FIGURE 10.2.2-4 Example

of segment division

IGG

10-7

Grid Menu

Grid menu description

It will not be possible to reduce Imax below 41, since segment s2 on the figure has its lower bound equal to 40. To reduce Imax to 30, for instance, the lower limit of segments s1, s2 and s3 must be manually changed below 30 (the last segment must have at least 2 points). The segments before the last ones may also need to be changed (recall that a segment must have at least two grid points). If a bad limit is entered, an error message similar to the following will appear:

FIGURE 10.2.2-5 Error

message appearing with wrong new block limits

It indicates the segment(s) that have to be modified to impose the new block limits. Once the "Close" button is pressed, the limits are reset to the previous ones.

Grid resizing and propagation


The increasing or decreasing of the number of points on a segment can be automatically propagated along connected blocks. This option drastically reduces the number of operations required to modify the number of grid points in meshes consisting of a large number of connected blocks. Propagation is insured through segment connections. This means that if two blocks are connected along some of their segments, changing the number of points of a segment of one block will automatically change the number of points in the other block, along the connection. When several blocks are connected together as a chain (along segment connections), the grid point modification will be performed on all these blocks. If propagation is disabled, the modification of the number of points will only be applied to the active block and the segment connections (parallel to the reference segment) with other blocks will be deleted to keep consistency.

a) Resizing of one block


Changing the number of points of an isolated block segment affects all the edges of the block "parallel" to the segment, as shown in next figure. s1 20

Resized segment
30

s2 40

s3

K J 30 I

Modified segments

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 overlapping 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 automatically. 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 overlapping the reference segment would be assigned a negative value, which is obviously impossible. In this case, the operation will not be performed and a message will be given to the user. The user will have to reduce the number of segments along the parallel edges before attempting to change the size again.

10-2.3 Boundary Conditions


Patch type specifier

Patch name specifier Filters, allowing selective visualization in the patch list

Patch browser, allowing to select patches Automatic connectivity search according to Tol Manual connection Full Non Matching specification Visualization options Patch editing: creation, deletion and limits settings
FIGURE 10.2.3-1 Boundary

block, face, patch index

Conditions dialog box

IGG

10-9

Grid Menu

Grid menu description

Grid/Boundary Conditions... menu item serves three different purposes:


1. 2. 3.

To divide the faces of the grid into patches, for grid generation purposes. To specify the boundary conditions on these patches, as input to a flow solver. To establish connection between the patches (see section 3-10.1 on page 3-30 for a detailed description of the connections).

When invoking the menu item, a dialog box is opened (Figure 10.2.3-1).

10-2.3.1 Patch browser


The patch browser (see Figure 10.2.3-1) lists all the patches in the grid, according to the current "Block", "Face", "Patch", "Type" or "Name" filters. In this browser, a patch can be selected with the left mouse button. This patch is automatically visualized in the graphics area according to the visualization options in the dialog box:

Show Grid will display the grid of the patch. Show Solid will display the patch as a solid face.
It is possible to select several patches at once in the following ways:
1. 2. 3.

While holding the <Ctrl> key down, select the desired patches in the browser. While holding the <Shift> key down, select two patches delimitating a range of patches. While pressing the left mouse button, drag the mouse and release the left button to select a range of patches.

The last patch selected is always the current patch for manual connections and patch editing.

10-2.3.2 Filters
The different filters allow to display specific patches in the browser while hiding the others. The "Block", "Face" and "Patch" filters are cumulative and allow to display patches by indices. For example: Block Filter: Face filter: Patch filter: * (* means ALL) 1 2 *

shows in the browser all the patches of faces 1 and 2 of all the blocks. The "Face" filter allows also to select a boundary face by choosing imin, imax, jmin, jmax, kmin or kmax. These items can be shown and selected by left-clicking on the "Face" filter arrow. The "Type" filter is very useful to list all the patches of a given type (according to the other filters). In particular it allows to easily identify the connected patches (CON, NMB, PER, PERNM) and the patches that have not any type yet (UND). The "Name" filter allows to display patches by name. Enter or choose an expression. All the patches of which the name contains this expression will be listed.

10-2.3.3 Patch type specification


An option menu allows the setting of the boundary condition type for the selected patch(es). The possible boundary condition types are the following:

UND : undefined type. INL : inlet. OUT : outlet.

10-10

IGG

Grid menu description

Grid Menu

EXT : external. Used to impose farfield conditions. SOL : solid. Used for walls. SNG : singular. Used for patch degenerated into a line. MIR : mirror. Used to impose a symmetry plane. ROT : rotating. Used for rotor-stator interaction. CON : matching connection. NMB : non matching connection. PER : periodic matching connection. PERNM : periodic non matching connection.

The following types can be set manually: INL, OUT, EXT, SOL, SNG, ROT, MIR. To set such a type, left-press on the "Set Patch Type" button of the dialog box; a list with all the types that can be set manually appears. Move the cursor to the desired type and release the left button to set it to the selected patch(es). If a patch is involved in a full non matching connection, a "*" will appear next to the patch type.

10-2.3.4 Patch definition and editing


The patch definition mode is enabled by pressing the "Edit Patch >>" button. The dialog box is then enlarged to show a symbolic definition of the current face, as shown in the following figure. Limitation: if the Boundary Conditions dialog box has been resized before clicking on the Edit Patch button, the dialog box will not extend. In this case the dialog box has to be closed and opened again.

Edit Patch area


Symbolic face representation

patch limits

Clicking the right mouse button pulls down a menu for deleting or dividing the patch: Current patch

Clicking on the border allows to change the patch limits Close Edit Patch area Current patch info
FIGURE 10.2.3-2 Patch

editing

IGG

10-11

Grid Menu

Grid menu description

In this example the active face has three patches with a topology indicated in the figure. The current patch is represented in yellow. The current patch can be changed by clicking with the left mouse button within the rectangle corresponding 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 relative orientation of the connected patch if existing, and patch type). See Manual Connectivity Settings section for information about the relative orientation. Creation of a new patch A new patch can be created by dividing an existing patch in one direction. When several patches must be created, the division must be successively applied on the existing patches. To divide a patch, click on the patch with the right mouse button. A menu is opened allowing to divide either horizontally or vertically. Upon selection of a direction, a box appears to enter the index of division. It can be entered manually or modified by using the scrollers. At the same time a visualization of the division appears in the graphics area.

FIGURE 10.2.3-3 Index

of division selection

Pressing <Enter> performs the division. Pressing <Escape> cancels the division. Editing an existing patch It is possible to change the limits of an existing patch by clicking on its borders. A box is then opened to enter the new limits (same as Figure 10.2.3-3 box). The new limits can be entered manually 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 manually 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 1011).

10-2.3.5 Automatic connectivity search


Automatic connectivity search allows to detect MIR boundary conditions and to perform connections between patches (matching and non matching, periodic or not). For MIR boundary conditions and periodic connections, the block periodicity must be set previously by using the Grid/Periodicity... menu item.

10-12

IGG

Grid menu description

Grid Menu

a) Mirror boundary conditions


A mirror connection exists when a patch matches itself after the application of the mirror periodicity of the block to this patch. In fact, patch points are transformed according to the mirror periodicity and a check is done to see if they match with the initial points of the patch. The setting of the mirror periodicity on the block in the Grid/Periodicity... dialog box is optional (information not needed by the solver) but in this case, MIR boundary condition cannot be found automatically by this tool and must be set manually.

b) Connections
Matching connections are obtained between two patches with same number of grid points along the two directions, and when all their points are matching at a specified tolerance. Non matching connections 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 connection 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 absolute tolerance used to compare point coordinates, another one to delete all connections currently set (CON, NMB, PER, PERNM types) and one to start the search.

FIGURE 10.2.3-4 Automatic

connectivity search interactors

To make a new automatic connectivity search on all the patches, left-click on the Delete All button to delete all connections currently set. To delete only some connections, select the corresponding patches and set the patch type to UND by using the related button (see Patch type specification section).

IGG

10-13

Grid Menu

Grid menu description

Before starting the automatic search, the tolerance must be adjusted. It is specified in absolute units in the Tol input field. For example, if the mesh coordinates range from 0 to 1, a possible value is 1e5, 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, otherwise 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 disconnected. The search can be started by clicking on the Search button. At the end of the operation, the number of simple connections found as well as the number of periodic connections are displayed in the information area. The "Type" filter is automatically set to CON and the corresponding patches are listed in the Patch browser. It is advised to do this search operation after all the blocks have been properly defined and are ready to be used by the solver.

d) Tips and tricks


Connection cannot be found (CON, NMB, PER or PERNM), patches remain UND. This
means that one of the three first tests checking the connection has failed. Check the periodicity for PER and PERNM types. Check patches division, patches coincidence or try to increase the tolerance and redo an automatic search.

Connection of type CON (or PER) cannot be found, patches are set to NMB (or PERNM).
This means that the three first tests checking the connection are satisfied (therefore patch boundaries are matching) but the fourth one has failed. Firstly check that the number of points along the two patch directions are the same. If it is the case, the reason of the test failure is generally that some points on patch are really non matching at the specified tolerance, even if the grid of the two patches seems to be apparently coincident. In some very rare cases, the failure can be due to a wrong relative orientation found automatically. This can be verified by checking the relative orientation and eventually trying a manual connect with the correct orientation. If the problem still persists, patch points are non matching. Try to increase the tolerance or solve the non matching by manipulating the mesh. Then reset non desired NMB (or PERNM) patches to UND and redo an automatic search.

In some special configurations (for example a patch degenerated into a line) or when tolerance
is too high compared to the patch size, the automatic search would not behave correctly and the following message will appear:

FIGURE 10.2.3-5 Automatic

search error

It indicates that the automatic search procedure has failed for the patch whose indices (Block, Face, Patch) are displayed. Two cases are possible:

10-14

IGG

Grid menu description

Grid Menu

1.

The connection type has been set to the patch. So, check if the connected patch is at the same location (by taking into account the periodicity of the block) as this patch. Check also if the relative orientation of this patch and the connected one is correct. If one of these two checks is wrong, delete the connection type for these two patches.

2. The connection type has not been set. So, the type has remained UND. To get rid of the problem, try to decrease the tolerance or try to use the manual connectivity settings.

10-2.3.6 Manual Connectivity Settings


When automatic connectivity search fails, the manual connectivity option can be activated by pressing the "Manual..." button. Within this option, the relative orientation of the two selected patches must be entered manually and checks are performed according to the connection type selected to detect if the connection is possible or not. This option opens a dialog box shown below: Connected patch Connection type

Relative orientation of the patches

FIGURE 10.2.3-6 Manual

Connectivity dialog box

Firstly, specify the indices of the patch that will be connected to the current patch and the connection 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 reference 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 relative 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. 2. 3. 4.

Take the first axis of the reference patch. Search the axis of the connected patch which has the same direction, that is to say X (where X is I, J or K). If the two axis have the same orientation, dir 1 = "Xhigh", else dir 1 = "Xlow". 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:

Patch 1

Patch 2

Reference patch: Patch 1 Patch 1 first axis: I Dir 1: Klow Dir 2: Ihigh

Indeed, it can be seen that Patch 1 axis I increasing corresponds to Patch 2 axis K decreasing, while Patch 1 axis J increasing corresponds to Patch 2 axis I increasing. The correct relative orientation specification should consequently be: "Klow", "Ihigh". After pressing "Apply", IGGTM checks whether the connection is possible or not. A warning appears if the connection cannot be set.

10-2.3.7 Full non matching connections


This type of connection allows to connect several patches of several blocks with non matching boundaries. The definition of such connection consists of the following:

A connection name. A list of left patches defining one side of the connection. A list of right patches defining the other side of the connection.
The patches in one list are not restricted to belong to the same face or same block. It is to be noticed that full non matching connections are always defined on top of 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. In the case a patch has an undefined type (UND) and is used in the definition of the FNMB (full non matching boundary), IGG automatically sets its type to solid (SOL). This is required by the solver to run properly. However, the type is not reset to UND when deleting a FNMB connection, even if the SOL type has been set automatically by IGG. Following rules must be respected when performing FNMB connections:
1.

A patch can be contained in only one list (either the left patches list or the right one) and one FNMB connection. It is illustrated in the following figure.

First FNMB connection Patch 3

Patch 1

Patch 2 Second FNMB connection


FIGURE 10.2.3-7 Patch

contained in two FNMB connections

10-16

IGG

Grid menu description

Grid Menu

2.

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

FIGURE 10.2.3-8 Patch 3.

closed on itself

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

FIGURE 10.2.3-9 Patches 4.

with coincident points

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 102.1 "Periodicity" on page 10-4). List of created FNMB connections

Connection name (mandatory)


FIGURE 10.2.3-10 Full

Computes and visualizes the connection (optional) Non Matching Connections dialog box

IGG

10-17

Grid Menu

Grid menu description

To define and edit full non matching connections: Press the Full Non Matching/Define... button of the "Boundary Conditions" dialog box. It opens the dialog box shown on Figure 10.2.3-10. This dialog box contains two patch browsers to define the left and right patches lists. The use of the patch browsers and filters is the same as for the "Boundary Conditions" dialog box. A list containing the connections already defined is displayed on the right of the dialog box. To define a FNMB connection:

Select the patches defining the left side. These patches are highlighted in yellow in the
graphics area.

Select the patches defining the "right" side. These patches are highlighted in blue. Enter a name for the connection. Select the Periodic button to define a periodic FNMB connection. Press on the Create/update button to define the FNMB connection. This connection will appear in the connection list.

Once a connection is created, patches can be added and/or removed from it. Simply update patches lists by clicking on them and press the Create/update button. To compute a FNMB connection: Once a connection is defined, it is possible to visualize the triangulation of the common region by pressing the "Compute & Show" button. This triangulation is not directly used in IGG but only serves to visualize the triangulation that will be used by the solver and to verify that the connection is correctly performed. Calling this item is optional in IGG. This calculation can be performed on the desired grid level by selecting it freely in the "Grid level computed" entry (this parameter is global and not saved in connections). Moreover several parameters can be controlled by pressing the "Options" button. It opens an additional frame:

FIGURE 10.2.3-11 FNMB

computing parameters

The process of the computation involves that one side of the connection is triangulated whereas the other side is projected on it. Default values should normally be used. If the computation fails, parameters can be tuned. These parameters are local to each connection and saved into it, therefore to be taken into account they must be set before creating the connection or the button Create/ update must be pressed once a parameter is modified. Maximum projection distance: when the projection distance of a point is greater than this value, it is rejected. Minimum projection distance: when all the points of a patch (contained in the projected side of the connection) have a projection distance greater than this value, the patch projection is rejected.

10-18

IGG

Grid menu description

Grid Menu

Normals smoothing steps: before projection, some smoothing steps are done on the projection normals. Reverse triangulated side: to reverse the triangulated side which is by default the one containing the greater number of points. To view and/or delete an existing FNMB connection:

Left-click on the desired connection in the connection list to select it. The patches participating in the definition of the connection will be automatically highlighted 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 connection list.

Press the Delete button to delete the selected FNMB connection (the type of the corresponding patches is unchanged).

10-2.4 Grid Quality


This item gives access to a tool for performing an analysis of the grid quality. The following dialog box will appear:

FIGURE 10.2.4-1 Mesh

Quality dialog box

This dialog box contains two pages, one dedicated to analyse the grid quality on whole block cells and the other the grid quality at the block boundaries (boundary faces), including matching connections with adjacent blocks. The items for both pages are similar and described here after. The quality criteria are just slightly different. The Block entry allows to choose the block in which the quality will be analyzed. It is selected by its number. Each change must be validated by pressing <Enter> to recompute the quality checking. If 0 is entered, the mesh quality is analyzed on all the blocks of the grid. Next to this entry, the

IGG

10-19

Grid Menu

Grid menu description

selected block name and the grid points number in each direction are displayed. By default, when opening this dialog box, the active block is selected. If the selected block is not generated or has been modified since the last generation (by moving a vertex, for example), the following message will appear:

FIGURE 10.2.4-2 Message

indicating that the block may be regenerated

It asks for block regeneration. If the "no" button is pressed, the quality analysis is not performed. The next entry Butterfly block is a special item dedicated to butterfly topologies allowing to choose the butterfly block in which the quality will be checked. When the block selected in the first entry is a parent block, the second entry is activated, displaying the number of the butterfly block which is analyzed. The range goes from 0 to 6. The number 0 represents the inner block and is therefore always present. The other numbers between 1 and 6 represent the parent face number and thus the associated buffer blocks. If there is no associated buffer, the corresponding number does not appear. The Quality Criterion frame is used to choose the criterion type which will be used to analyze the block cells quality. The criterion is chosen through the Type pull-down menu. According to the criterion, 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 displayed as surfaces or volumes by switching on the corresponding button. The Display frame is used to show in the IGG graphics area the cells falling inside the quality criterion range. The All cells button shows all the bad quality cells of the selected block(s). The Sweep cells scrollers allow to sweep the selected block to display cells by constant I,J,K face. The Show chart button is used to toggle a histogram displaying the result of the quality checking. Left-clicking on a bar displays the corresponding cells in the IGG graphics area.

10-20

IGG

Grid menu description

Grid Menu

FIGURE 10.2.4-3

Quality analysis histogram

The entry Number of intervals is used to select the number of bars of the histogram. The default value is 5 and the maximum number is 10. Each new number must be validated by pressing <Enter>. The More info button is used to toggle a window giving more information about the quality checking: minimum and maximum values with their location (and possibly the block number in which they are detected if the check is performed on all the blocks).

FIGURE 10.2.4-4 Additional

information on quality analysis

10-2.4.1 Quality criterion definitions (Block page)


These criteria are dedicated to evaluate the grid quality on whole cells of a block.

a) Criterion class
Two classes can be defined according to the type of element on which criterion is applied:

2D criterions: application on surfacic cells (quadrilateral cells) 3D criterions: application on volumic cells (hexahedral cells)
Obviously, the number of cells falling in the criterion range is always greater for a 2D criterion than for the equivalent 3D one because an hexahedral cell contains six quadrilateral cells. This means that, for a 2D criterion, the number of cells falling in the range can easily be greater than the block number of points. On the other hand, as 2D criteria are applied on surfacic cells, they are all direction dependent.

b) Criteria definition
Following criteria are available:

Orthogonality, Aspect Ratio, Expansion Ratio.

IGG

10-21

Grid Menu

Grid menu description

Each one is described here below. Orthogonality 2D criterion. Range: 0 - 90 degrees. Orthogonality is a measure of the minimum angle between edges of the element. If angle between two edges is greater than 90 degrees, the value taken into account is (180 - real angle). Aspect Ratio 2D criterion. Range: 1 - 10000. If the calculated value is outside the range, the value is reset to 10000.

c a d
a+b x = ----------2 c+d y = ----------2

max ( x, y ) Aspect Ratio = ----------------------min ( x, y )


FIGURE 10.2.4-5 Aspect

Ratio definition

Expansion Ratio 3D criterion. Range: 1 - 100. Expansion Ratio is a measure of the size variation between two adjacent 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.

b1 b4

a1 a4 a2 a3 a 1 + a2 + a3 + a4 x = ---------------------------------------4

b2 b3

b1 + b2 + b3 + b4 y = ---------------------------------------4

max ( x, y ) Expansion Ratio (K) = ----------------------min ( x, y )

FIGURE 10.2.4-6 Expansion

Ratio definition

10-22

IGG

Grid menu description

Grid Menu

10-2.4.2 Quality criterion definitions (Boundaries page)


These criteria are dedicated to evaluate the grid quality at the boundaries of a block (boundary faces), including matching connections with adjacent blocks. Following criteria are available:

Orthogonality, Angular deviation, Expansion Ratio, Cell width.

Each one is described here below. Orthogonality Range: 0 - 90 degrees. Orthogonality is a measure of the cell angle relatively to the block boundary (face S). If angle is greater than 90 degrees, the value taken into account is (180 - real angle). Block boundary face
a1 N

S
a4 a2

a3 Orthogonality = ( x, projx on S )
FIGURE 10.2.4-7 Orthogonality

a 1 + a 2 + a 3 + a4 x = ---------------------------------------4

definition

Angular deviation Range: 0 - 90 degrees. Angular deviation is a measure of the angular variation between two adjacent 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 a2 a3 Angular deviation = ( x, y ) b3 a 1 + a2 + a3 + a4 x = ---------------------------------------4 b1 + b2 + b3 + b4 y = ---------------------------------------4

FIGURE 10.2.4-8 Angular

deviation definition

IGG

10-23

Grid Menu

Grid menu description

Expansion Ratio Range: 1 - 100. Expansion Ratio is a measure of the size variation between two adjacent cells, the first one being in the current block and the adjacent one in the matching connected block. Obviously, this criterion is nonsense if there is no matching connected block. The definition is the same as for the Block page (see before). Cell width Range: 0 - 1000. Cell width is the height of the cell measured normally to the block boundary (face). If the calculated value is outside the range, the value is reset to 1000.

10-2.4.3 2D project particularities


2D or axisymetric projects (see File/Project Configuration... menu) have only one layer of cells along the K direction (k = 2). Therefore some functionalities of the dialog box are useless considering that no check is needed along the K direction. As the grid must be generated to perform a quality calculation, all the created faces are automatically extruded (or rotated for axisymetric projects) at the opening of the dialog box. Particularities are the following:

Quality criterion direction: this menu is deactivated except for the Expansion Ratio criterion. Therefore it allows in this case to apply the criterion separately along the I and J axis. Obviously, the calculation along K axis will lead to nothing as there is only one cell.

The cells viewing mode is set to Volume to allow cells visualization on a 2D view with the
Expansion Ratio criterion.

Sweep cells options along I, J and K directions are deactivated. These are useless because
the view of the mesh is 2D.

10-2.5 Negative cells


Grid/Negative cells... is used to compute, store the indices and show the cells with a negative volume. The following dialog box is provided to select calculation preferences:

FIGURE 10.2.5-1 Preferences

dialog box for Negative cells calculation

Four preferences can be controlled:

Scope: determines whether the calculation will proceed on the active block or on all blocks. Coord Sys: specifies whether calculation should proceed using a left-handed local reference
frame for each cell or a right-handed one.

Precision: specifies whether to perform calculation in single or double precision.

10-24

IGG

Grid menu description

Grid Menu

This preference is the most important to control. Indeed, IGG always works in double precision. 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 message will appear:

FIGURE 10.2.5-2 Message

indicating that the block may be regenerated

The View neg cells button allows to visualize cells with negative volume. The computation of the negative volumes is performed automatically as a first step. Cells with negative volumes are displayed 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 negative cells by pressing the Apply button. If no cell with negative volume is detected, the following message appears:

FIGURE 10.2.5-3 No

negative cells detected

On the contrary, if there are cells with negative volumes after the complete search, a message like the following will appear:

FIGURE 10.2.5-4 Grid

contains cells with negative volume

IGG

10-25

Grid Menu

Grid menu description

It shows the number of each block containing negative cells and the corresponding number of negative cells. For butterfly topologies, the calculation is performed on all the butterfly blocks of the corresponding parent block. The number of negative cells of each butterfly block is added and displayed in the previous dialog box by referencing the parent block.

10-2.6 Internal Grid line/Create from grid


Grid/Internal Grid Line/Create from grid allows to add an internal edge to the active face by selecting an internal grid line with the mouse. Internal edges allow a better control of the face grid and are also used to realize connections between adjacent blocks. The face grid must be already created.The following prompt appears to select a grid line: Select a Grid Line <1> (i or j = select a direction, u = unselect) <3> to quit. Move the cursor to the desired grid line of the active face. When the cursor is close enough, the grid line is highlighted and its index is displayed. Simply press the left mouse button to create the internal edge. To quit this command without creating an internal grid line, press <q> or the right mouse button. The <i> and <j> key bindings allow to select a grid line in a prefered direction. When one of the keys is selected, only grid lines in that direction will be selectable. Press <u> to remove the prefered direction. After the creation of the internal edge, a dialog box is opened to ask whether a geometrical curve should be created at the position of the internal edge. Geometrical curve allows to modify the shape of the internal grid line and possibly come back to its original position. If no geometrical curve is created, the internal edge will lose its initial shape as soon as a vertex is moved, without any possibility to come back to its first position. If such curve is not created, it is always possible to later create a curve at the position of the internal grid line by right-clicking on it and selecting the Edge/Create Curve pop-up menu item. This tool can also be accessed through the Quick Access Pad/Grid/Insert/Edit page.

10-2.7 Internal Grid line/Delete


Grid/Internal Grid Line/Delete allows to delete the active internal edge. This edge is permanently removed from the system and the total number of edges for the active face is decreased by one. Note that the internal edge is deleted but not its end vertices (which are attached to fixed points). Obviously, using this command on a boundary edge will have no effect and a warning message will appear.

10-2.8 Internal Grid line/Index


Grid/Internal Grid Line/Index allows to change the index of the active internal edge. The following prompt is given to enter the new index of the internal edge: Enter New Edge Index (q) ? >> 17 If a value greater than the corresponding block limit or greater than the index of the face nearest fixed point is entered, the index will not be changed. Setting a new index to an internal grid line will not change its position but the block grid points will be moved.

10-26

IGG

Grid menu description

Grid Menu

If the internal edge belongs to an internal face, its index cannot be changed. To quit this command, enter q and press <Enter>.

10-2.9 Internal Face/Create


Grid/Internal Grid Face/Create... allows to add an internal face to the active block for better control of the block grid. If the active block is not generated or has been modified since the last generation (by moving a vertex, for example), the following message will appear:

FIGURE 10.2.9-1 Message

indicating that the block may be regenerated

It asks for block regeneration. If the block is not generated and that the "no" button is pressed, the dialog box of the next figure will appear but without being able to do something except pressing the "Close" button. If the block has been modified since the last generation (a block is not automatically regenerated after modifications of its topology) and that the "no" button is pressed, the mesh that will be interactively displayed (see below) may look quite strange. The creation of an internal face is done through a dialog box allowing the selection of a face along I, J or K axis.

Active Block

Constant Index I,J or K Create Internal Face

FIGURE 10.2.9-2

Internal face creation dialog box

The Block box allows to choose the active block in which the internal face will be inserted. Next to this box, the active block name and the grid points number in each direction are displayed. The I, J and K scrollers allow to interactively sweep the grid along the three directions. While scrolling, surface grids are displayed for each constant index direction. When pressing the "Save" button, the surface currently visible is saved as internal face of the active block.

IGG

10-27

Grid Menu

Grid menu description

When an internal face is created, an internal edge is also created for each existing face crossing the new face. This edge is shared by the faces which means that modifying the edge on one face affects the other face as well. This tool can also be accessed through the Quick Access Pad/Grid/Insert/Edit page.

10-2.10 Internal Face/Delete


Grid/Internal Face/Delete menu item is used to delete the active internal face from the active block. This face is permanently removed from the system and the total number of faces for the active block is decreased by one. A dialog box appears to select if the face boundary edges must be kept or not. Even if the boundary edges are deleted, the end vertices (which are attached to fixed points) are kept. Obviously, using this command on a boundary face will have no effect and a warning message will appear.

10-2.11 Internal Face/Index


Grid/Internal Face/Index allows to change the index of the active internal face. The following prompt is given to enter the new index of the internal face: Enter new face index:(q) >> 17 If a value greater than the corresponding block limit or greater than the nearest fixed point along the face direction is entered, the index will not be changed. Setting a new index to an internal face will not change its position but the block grid points will be moved. To quit this command, enter q and press <Enter>.

10-2.12 Create Edge/Copy Edge


Grid/Create Edge/Copy Edge is used to copy the active edge from another existing edge. The following prompt appears to specify the reference edge from which to copy: <1> to select a reference edge, <2> to perform the copy <3> to quit. The reference edge is selected by left-clicking near that edge. When several edges lie at the same position, the left-click operation must be repeated until the proper edge is selected. The copy operation takes effect after middle-clicking the mouse. After the operation, the active edge has the same shape, same orientation and same segment division as the reference edge. The other edges connected to the active edge are automatically following the new position.

10-2.13 Create Face/Linear 2Bnd


Create Face/Linear 2Bnd menu item is used to create an algebraic face grid using two opposite boundaries of the active face. The grid matches the point distributions on the active boundary and its opposite. Other grid boundaries are computed by linear interpolation and the internal grid points are distributed according to the user-defined point distributions between opposite boundaries. This option can also be accessed through the Quick Access Pad/Grid/Generate page.

10-28

IGG

Grid menu description

Grid Menu

10-2.14 Create Face/Linear 4Bnd


Create Face/Linear 4Bnd menu item is used to create an algebraic face grid using the four boundaries of the active face. The grid matches the point distributions defined on four boundaries. This is the default generation mode for face grid. Whenever a face grid is touched, IGG automatically performs a four boundaries linear interpolation. If operations like smoothing or projections onto geometrical surfaces were applied previously on that face grid, it is necessary to redo them by using the "Regenerate Faces" option of the Quick access Pad/Grid/Generate page. This option can also be accessed through the Quick Access Pad/Grid/Generate page.

10-2.15 Create Face/Generation Tool


Grid/Create Face/Generation Tool... menu item is used to define internal grid lines and to generate the grid of the active face. The dialog box is divided into two pages:

Grid: the page gives access to the grid generation tools. Internal Grid Lines: this page gives access to the internal grid lines control.
When the dialog box is opened, the interactive selection of the active face remains operational. The pages are automatically updated when selecting another active face. This tool can also be accessed through the Quick Access Pad/Grid/Generate page.

10-2.15.1 Grid Page


Selection of an active area on the active face: - patch selection - selection by index Generation acts also on the boundary of the active area Generation methods: - linear interpolation or, - mapping on a selected surface Activation of the orthogonality control Elliptic smoothing of the active area

Overlapping cells display Edges used for interpolation

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 highlighted using a small circle. Overlapping cells can be correctly detected for planar grids only. The selection of a face range by specifying the boundary indices is illustrated in the following figure.

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 displayed 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 parameters allow the control of the orthogonality of the mesh near two opposite active edges through definition of the active edges normals. Normals to the edges are automatically displayed in black. The normal ranges and lengths (Ratio) can be controlled for both active edges.

Orthogonality range on edge1

Orthogonality range on edge 2 Normal length on edge 2

Normal length on edge 1

Edge 1&2 are activated

The orthogonality parameters are not active for the four boundaries interpolation (button 1-2-3-4 activated). When orthogonality control is applied, the mesh fits the four boundaries of the active area and is orthogonal to the two opposite active edges

Elliptic Smoothing: this button opens an additional area controlling smoothing:

The grid inside the active area can be smoothed using an elliptic solver by pressing the Smooth button. The level of smoothing can be controlled through the Ratio entry, which is in fact the relaxation factor of the smoothing algorithm and should be lower than 1. If the button "On Surface" is activated, IGG smoothes the grid on the active surface.

Mapping, orthogonality control or smoothing generation options do not take into account internal grid lines of the face generated. Therefore the user must take care because an inconsistency can appear (no grid points corresponding to the internal grid line points).

IGG

10-31

Grid Menu

Grid menu description

edge 2

Orthogonality control between edge 1 & 2

edge 1

relative normal length set to 2 on edge 1.

Relative Normal range on edge 1: 0.1 -> 0.9 Edge 1 Normals Definition

d = ratio of first edge (normal length)

d1 = 0.1 x L d2 = 0.9 x L d1 d2

Overlapping cells

Mesh created with a normal length = 5 on edge 1.

10-32

IGG

Grid menu description

Grid Menu

10-2.15.2 Internal Grid Lines Page

(*) (**) Internal grid line I = 11 (**) (*) index = 11

Control of the internal grid line geometry : - selection of the internal grid line location by definition of a constant index - control of the orthogonality at both ends through ratio 1 and ratio 2

Creation of the new internal grid line using the displayed geometry Deletion of the internal grid line selected by the indices This dialog box allows the creation of C-Spline curves used to define the geometry of new internal edges. Constant Index: the location of the internal grid lines can be chosen through the selection of a direction and a constant index. The geometry of the future internal grid line is automatically displayed when scrolling the I or J index. Orthogonality Control: the orthogonality of the geometry can be controlled at both ends through two different parameters:

ratio 1: real number defining the relative distance along which the geometry of the internal
grid line is perfectly normal to the edge: 3 control points are computed at both ends of the geometry to define the orthogonality.

ratio 2: real number defining the tangential condition of the curve after the three first control
points and before the three last control points. Create: when the geometry is correctly set, this button can be used to create a new internal edge. Delete: the internal edge selected previously by the indices can be deleted by using this button. Note that the internal edge is deleted but not its end vertices (which are attached to fixed points).

IGG

10-33

Grid Menu

Grid menu description

10-2.16 Create Face/Project onto Surfaces (N)


Grid/Create Face/Project onto Surfaces (N) can be used to project a patch of the active face onto the selected surfaces. Each point of the patch is projected using the normal of the active face at the point. The following prompt is given to choose the face or a patch of the face that must be projected: Surface (=0) or Patch (=1)? (q) >> 1 The following prompt is given to choose the patch number: Patch number (1...n)? (q) >> 1 If the active face contains only one patch, the two previous prompts will not appear. The following prompt is given to allow the creation of the edges of the active face: Edge Creation (y/n)? (q) >> y Validation Level 1, 2 or 3 (q) ? >> 1 : projection with validation 1 implies that no check is done to validate the projected points. >> 2 : projection with validation 2 implies that one check is done to choose the nearest projected points (ex : to project a patch on a sphere). >> 3 : projection with validation 3 implies that checks are done to fill the possible gaps in the surface data. It also involves the check of validation 2. A projection ratio must be defined. It corresponds to the highest distortion ratio admitted by the projection. A value of 10 is advised. To exit this command, enter q in the keyboard input area and press <Enter>.

10-2.17 Create Face/Project onto Surfaces (T)


Grid/Create Face/Project onto Surfaces (T) can be used to project a patch of the active face onto the selected surfaces. Each point of the active face is projected using a specified projection vector. The following prompt is given to choose the face or a patch of the face that must be projected: Surface (=0) or Patch (=1)? (q) >> 1 The following prompt is given to choose the patch number: Patch number? (q) >> 1 If the active face contains only one patch, the two previous prompts will not appear. The following prompt is given to allow the creation of the edges of the active face: Edge Creation (y/n)? (q) >> y Then, the projection vector must be entered: Projection vector (q) ? >> 1 0 0 Validation Level 1, 2 or 3 (q) ? >> 1 : projection with validation 1 implies that no check is done to validate the projected points.

10-34

IGG

Grid menu description

Grid Menu

>> 2 : projection with validation 2 implies that one check is done to choose the nearest projected 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 corresponds to the highest distortion ratio admitted by the projection. A value of 10 is advised. To exit this command, enter q in the keyboard input area and press <Enter>.

10-2.18 Create Face/Rotate Edge


Grid/Create Face/Rotate Edge is used to create the active face by rotation of the edge 1 of this face. It ensures that the face points are exactly on a specified cylinder, which is not necessarily the case with a 4Bnd interpolation. Firstly, create a new face (see the Insert New Face icon of the Quick Access Pad/Grid/Create page) before selecting this option. The edges of this face must contain only one segment. A face of an existing block cannot be used, otherwise the face created by rotation will be deconnected from the other block faces. After the single face has been created by rotation, the creation of the block can be completed by a face expansion (Grid/Create Block/ Extrude Normally menu item). The following prompt is given to choose the rotation axis vector: Rotation axis vector : (q) >> 0 0 1 The following prompt is given to choose the anchor point of the axis: Center of rotation : (q) >> 1 0 0 The following prompt is given to choose the rotation angle in degrees: Rotation angle -360...360 deg : (q) >> 20 To exit this command, enter q in the keyboard input area and press <Enter>.

10-2.19 Create Face/Copy Face


Grid/Create Face/Copy Face is used to copy the active face from another existing face. The following prompt appears to specify the reference face from which to copy: <1> to select a reference face, <2> to perform the copy <3> to quit. The reference face is selected by left-clicking near an edge of the face. When several edges lie at the same position, the left-click operation must be repeated until the proper face is selected (highlighted in white). The copy operation takes effect when middle-clicking the mouse and is performed in order to obtain a common axis system for both faces (active and reference one). After the operation, the active face has the same shape, same orientation and segment division as the reference face. All the edges connected to the active face are automatically following the new position.

10-2.20 Create Face/Copy Face Range


Grid/Create Face/Copy Face Range... is used to copy part of a face grid onto another face or patch, possibly with a different orientation. In the following example, the face 4 of block 1 is created and the face 1 of block 2 is created by copying a part of the face 4, with the proper orientation.

IGG

10-35

Grid Menu

Grid menu description

Block 2 K Face 1 of block 2 I J

Face 4 of block 1

Block 1

J K I

FIGURE 10.2.20-1 Copying

a face range onto another face

The following dialog box will appear:

Reference face indices

Target face indices

Reference face range Click on the border to change the current limit Relative orientation of reference and target face

FIGURE 10.2.20-1 Copy

Face Range dialog box

The first thing to choose is a reference and a target face between which the copy will proceed. They are selected by entering their indices (Block and Face indices) in the From and To boxes respectively. 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 leftclicking on it will open a box allowing to enter the new limits:

10-36

IGG

Grid menu description

Grid Menu

FIGURE 10.2.20-2 Changing

range limits

The new limits can be entered manually or modified using the scrollers. Pressing <Enter> applies the new limits to the range. Pressing <Escape> cancels the limit modification. Once the range is chosen, the orientation in which the copy will proceed must be selected. When the reference and target faces have different origin and/or local axis orientation, as in our example, the correspondence between the axis must be specified. It is done by assigning an expression (such as "Ilow", "Khigh") for each axis of the reference face. These expressions are determined as follows:
1. 2. 3. 4.

Take the first axis of the reference face. Search the axis of the target face which has the same direction, that is to say X (where X is I, J or K). If the two axis have the same orientation, expression = "Xhigh", else expression = "Xlow". 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:

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 specification should consequently be: "Klow", "Ihigh". After pressing "Apply", IGGTM checks whether the copy is possible or not. A warning appears if the copy cannot be performed (i.e. if the number of points for the reference face range and the target face is different).

10-2.21 Create Block/Linear 2Bnd


Create Block/Linear 2Bnd menu item is used to create an algebraic block grid using two opposite boundaries of the active block. The grid matches the point distributions on the active boundary and its opposite. Other grid boundaries are computed by linear interpolation and the internal grid points are distributed according to the user-defined point distributions between opposite boundaries.

10-2.22 Create Block/Linear 4Bnd


Create Block/Linear 4Bnd menu item is used to create an algebraic block grid using the four boundaries of the active block. The grid matches the point distributions defined on the four boundaries. The active face number determines the direction of interpolation as follows:

IGG

10-37

Grid Menu

Grid menu description

Active face 1 or 2 3 or 4 5 or 6

Direction K J I

Block faces for interpolation 1+2+3+4 3+4+5+6 1+2+5+6

Active face

Faces used for interpolation


FIGURE 10.2.22-1 The

four boundaries used for interpolation

10-2.23 Create Block/Linear 6Bnd


Create Block/Linear 6Bnd menu item is used to create an algebraic block grid using the six boundary faces of the active block. The grid matches the point distributions defined on six boundaries. This option can also be accessed through the Quick Access Pad/Grid/Generate page.

10-2.24 Create Block/Elliptic/Multigrid


Grid/Create Block/Elliptic/Multigrid menu item is used to create an elliptic face or block grid by solving a Poisson type quasilinear PDE (Partial Differential Equation) with the multigrid (MG) technique, for the active face or block depending on the Viewing Scope. When this option is repeated, the last created grid is taken as the initial solution and solved with the current values of MG parameters. The number of iterations for convergence is also displayed in the status area. This item can also be used to smooth the algebraic face or block grids within a user-defined area of the block (local smoothing) or completely. Multigrid parameters can be controlled using the Grid/Create Block/Elliptic/Multigrid Parameters menu item. The following prompts are given to specify the smoothing area for 2D/3D surface and block grids: Smoothing area (0) or all (1) : (q) >> 0 In case of local smoothing, the grid indices are specified as ; Smooth index 1 min,max 1 ... 65 (q) >> 7 25 Smooth index 2 min,max 1 ... 41 (q) >> 3 17 For 3D surface or block grids Smooth index 3 min,max 1 ... 33 (q) >> 15 33 After the initial number of user-specified iterations is completed the following prompt is given to ask for more iterations, if the solution is not converged: Iterate more ? ... 12 so far (q) >> 8

10-38

IGG

Grid menu description

Grid Menu

10-2.25 Create Block/Elliptic/Multigrid Parameters


Grid/Create Block/Elliptic/Multigrid Parameters menu item is used to set the multigrid parameters through a dialog box.

FIGURE 10.2.25-1 MG

Parameters dialog box.

The range of MG level is computed and displayed on the top line to enter the desired value from a string input box. The coarse grid correction (CGC) is performed by the red-black point relaxation and linear interpolation. The relaxation steps before and after the CGC can be specified between 1 and 20. The number of MG cycles can also be set between 1 and 200. The tolerance for the total error can be set within the range of 1e-10 to 1. The multigrid mode can be set to normal or full MG and the type of cycles can be chosen as V or W cycles. The following options are available to change the effect of control functions: P, Q (R) : include both the effect of coordinate line spacing and angle control in each curvilinear coordinate direction P=0, Q (R) : exclude the effect of control functions for grid points on constant I lines. P, Q=0 (R) : exclude the effect of control functions for grid points on constant J lines. P=Q=(R)=0 : no effect of control functions.

10-2.26 Create Block/Elliptic/SLOR


Grid/Create Block/Elliptic/SLOR menu item is used to create an elliptic surface or block grid by solving a Poisson type quasi linear PDE with the Successive Line Over Relaxation (SLOR) technique, for active face or block depending on the Viewing Scope. When this command is repeated, the latest created grid is taken as the initial solution and solved with the current values of SLOR parameters. The active view is updated after each iteration to show the progress of the generation process. The number of iterations for convergence is also displayed on the status area. This item can also be used to smooth the algebraic surface or block grids within a user-defined area of the block (local smoothing) or completely. For 2D/3D surface grids, the control functions (CF) are computed by interpolation from the edges. In Keyboard mode, the grid points on edges 3 and 4 are also shifted after the grid is solved, to conform to the slopes of internal grid lines near the boundaries.

IGG

10-39

Grid Menu

Grid menu description

The following prompts are given to specify the smoothing area for 2D/3D surface and block grids: Smoothing area (0) or all (1) : (q) >> 0 In case of local smoothing, the grid indices are specified as ; Smooth index 1 min,max 1 ... 65 (q) >> 7 25 Smooth index 2 min,max 1 ... 41 (q) >> 3 17 For 3D surface or block grids : Smooth index 3 min,max 1 ... 33 (q) >> 15 33 After the initial number of user-specified iterations is completed and if the solution is not converged, the following prompt is given to ask for more iterations (ranging from 1 to 200). If a value is indicated, the same prompt is repeated in a loop, after the additional iterations are completed: Iterate more ? ... 20 so far (q) >> 4

10-2.27 Create Block/Butterfly


Create Block/Butterfly... opens the "Butterfly" dialog box which is used to automatically create a butterfly topology in a block. Refer to chapter 5 for a complete description of this dialog box and for information about the butterfly topology. This tool can also be accessed through the Quick Access Pad/Grid/Create page.

10-2.28 Create Block/Change axis


Grid/Create Block/Change axis menu item is used to change the axis system of the active block, for example to transform a left handed block into a right handed block. Only right handed blocks can be created. The active block is simply deleted and a new one is created with the same points, topology, the same name and number, but with a different axis system. This new block has the same division in patches and patch naming than the old one. Moreover, all the connections are kept (vertices, 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 interpolation. 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.29 Create Block/Split


Grid/Create Block/Split... menu item is used to split a block along a face mesh (I, J or K) in order to obtain two new blocks.

10-40

IGG

Grid menu description

Grid Menu

The features and details about block splitting, as well as the limitations, are described here after. The splitting operation will yield several new blocks with the same grid point coordinates as the initial block and the topology of the new blocks will closely follow the one of the initial block (i.e. if an additional vertex is present in the initial block, it will also be present in a new created block, at the same position). Upon successful splitting of a block, the new split blocks will be such that:

The two split blocks are fully connected at their interface: vertices, edges, segments and
patches connection.

All the topological connections with the adjacent blocks are recovered: vertices, edges and
segments.

The periodicity of the original block is recovered. The division into patches, as well as their type, name and connection are recovered. When a patch overlaps the splitting region, it results into two segmented patches: one in the
first split block and the other in the second split block. If the original patch is connected (CON OR PER connection type), its connected patch is also divided, and the connection between these segmented patches is established. For NMB and PERNM connection types, such a division is not applicable and is not performed. Therefore the type of the original patch is set to UND in this case.

All the FNMB connections involving the block to be split are recovered.

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

It is up to the user to take care about multigrid levels. Indeed, no checks are done on
block and patch sizes that will be obtained. Therefore, even if the original block has several multigrid levels, the split blocks can have no multigrid levels if indices of splitting are unproperly chosen. This tool opens a dialog box allowing the selection of the face mesh where the block will be split. If the active block is not generated or has been modified since the last generation (by moving a vertex, for example), the following message will appear:

FIGURE 10.2.29-1 Message

indicating that the block may be regenerated

It asks for block regeneration. If the block is not generated and that the "no" button is

IGG

10-41

Grid Menu

Grid menu description

pressed, the dialog box of the next figure will appear but without being able to do something except pressing the "Close" button. If the block has been modified since the last generation (a block is not automatically regenerated after modifications of its topology) and that the "no" button is pressed, the mesh that will be interactively displayed (see below) may look quite strange.

Active Block

Constant Index I,J or K Split block

FIGURE 10.2.29-2 Split

block dialog box

The Block box allows to choose the active block which will be split. Next to this box, the active block name and the grid points number in each direction are displayed. The I, J and K scrollers allow to interactively sweep the grid along the three directions. While scrolling, surface grids are displayed for each constant index direction. When pressing the Split button, the selected block is split at the face mesh currently visible and the dialog box is closed. This tool can also be accessed through the Quick Access Pad/Grid/Insert/Edit page.

10-2.30 Create Block/Split at internal faces


Grid/Create Block/Split at internal faces menu item is used to split the active block along all its internal faces. The splitting operation is performed until there is no remaining internal face in the split blocks. Therefore more than two new blocks can be created at once. The features and the limitations of this option are identical to the ones of the "Grid/Create Block/ Split" menu item and are described in the previous section. This tool can also be accessed through the Quick Access Pad/Grid/Insert/Edit page.

10-2.31 Create Block/Merge


Grid/Create Block/Merge menu item is used to merge two blocks having two faces fully connected to obtain a new block. The two fully connected faces will be transformed in an internal face in the new block. "Fully connected" means that an entire face must be completely connected to another face at all levels: vertices, edges, segments and patches must be connected. This means that a face cannot be connected to only a part of another face. The merging operation proceeds in two main steps:

A re-orientation of the two blocks to be merged in order to obtain a same axis system for
both blocks.

The merging of the two blocks having the same axis system.

10-42

IGG

Grid menu description

Grid Menu

The first mandatory procedure means that the axis system of the final merged block can be different than the one of the two original blocks. The features and details about blocks merging, as well as the limitations, are described here after. Upon successful merging of the two blocks, the new block will be such that:

All the topological connections with the adjacent blocks are recovered: vertices, edges and
segments.

The division into patches, as well as their type, name and connection are recovered. All the FNMB connections involving the two blocks to be merged are recovered. The merging operation does not alter the block. This means that the final merged block does
not have to be regenerated after merging.

10-2.31.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) 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.31-1 A

fully connected face cannot be found for selected face

If one of the blocks to be merged is not generated or has been modified since the last generation (by moving a vertex, for example), the following message will appear:

FIGURE 10.2.31-2 Message

indicating that the block may be regenerated

IGG

10-43

Grid Menu

Grid menu description

It asks for block regeneration. If the "no" button is pressed, the merging will not be performed. After the merging has proceeded, the following prompt will appear, allowing the selection of a face to perform another merging operation: Select a New Face to merge, <3> to quit This tool can also be accessed through the Quick Access Pad/Grid/Insert/Edit page.

10-2.32 Create Block/Sweeping


Grid/Create Block/Sweeping menu item is used to create a block grid by sweeping a base grid (arbitrary face) along an arbitrary edge (sweep edge). The base face that will be swept must be a boundary face (so an internal face cannot be swept) and must be active. When clicking on this menu item, a sweep edge will appear in a default position for the active face (except for internal faces, in which case a warning message will appear). The following prompt is given in the message area: Move sweep edge vertices ( <2> = sweep, q = quit) The sweep edge is just like another one except that it exists and is visible only for the active face used to create a block by sweeping. So, all operations commonly available can be performed on this edge (vertices positioning, vertex insertion, control of the grid points distribution, pop-up menus accessible, ...). The number of points and their distribution in the sweeping direction will be those of this sweep edge. When this one is correctly positioned, press the middle mouse button. The following prompt will appear, allowing to combine the sweeping with rotation or scaling: T(1), TR(2), TS(3) or TRS(4) : (q) >> 4 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 generated 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 distorted meshes. Once a block has been created by sweeping, another use of this tool will display the active face sweep edge as positioned during the previous creation of the block. It is strongly recommended to be careful when using this tool because a lot of operations available outside this tool can be done so that it can easily be forgotten that a sweeping is made. Look at the message area to see the related prompt. To quit this tool: if the middle mouse button has not been pressed yet, press <q>, else enter q in the keyboard input area and press <Enter>. The sweep edge will disappear. This tool can also be accessed through the Quick Access Pad/Grid/Create page.

10-44

IGG

Grid menu description

Grid Menu

10-2.33 Create Block/Extrude Normally


Grid/Create Block/Extrude Normally menu item is used to create a block grid by expansion of the active face with a user-specified distance. In fact, each grid point of the active face is translated along the local normal to the face with the user-specified distance. The number of grid points and their distribution in the expansion direction is set as follows:

The parent block of the active face has only this face created (other faces are created by using
tools as this one or Grid/Create Block/Rotation, ...): the number of grid points is the default one (9) and the distribution is uniform.

The parent block of the active face has all its boundary faces created: the number of grid points
and their distribution are those of the reference edge determined as follows: Active face Faces 1 or 2 Faces 3 or 4 Faces 5 or 6 Reference edge Face 3, Edge 3 Face 1, Edge 3 Face 1, Edge 1

During the expansion, the boundary edges can be created using the boundary grid nodes of the generated block: Edge creation (y/n)? (q) >> y The expansion distance is defined using the keyboard input area: Translation distance : (q) >> 1 To quit this command, enter q in the keyboard input area and press <Enter>. This tool can also be accessed through the Quick Access Pad/Grid/Create page.

10-2.34 Create Block/Translation


Grid/Create Block/Translation menu item is used to create a block grid by translating the active face along an arbitrary vector (translation vector). The number of grid points and their distribution in the translation direction is set as follows:

The block to which the active face belongs has only this face created (other faces are created by
using tools as this one or Grid/Create Block/Rotation, ...): the number of grid points is the default one (9) and the distribution is uniform.

The block to which the active face belongs has all its boundary faces created: the number of grid
points and their distribution are those of the reference edge determined as follows: Active face Faces 1 or 2 Faces 3 or 4 Faces 5 or 6 Reference edge Face 3, Edge 3 Face 1, Edge 3 Face 1, Edge 1

The translation vector is defined by using the keyboard input area. The translation (T) can be combined with rotation (TR), scaling (TS) or both rotation and scaling (TRS). During the translation, the boundary edges can be created using the boundary grid nodes of the generated block: Edge creation (y/n)? (q) >> y

IGG

10-45

Grid Menu

Grid menu description

Translation (1) can be combined with rotation (2), scaling (3) or both (4) as follows: T(1), TR(2), TS(3), TRS(4) (q) >> 4 Translation vector (q) >> 1 1.5 5 For rotation or scaling, the vector origin can be specified as: Origin (q) ( for 2, 3 and 4) >> 1 1 0 The rotation axis is equal to the translation vector. The rotation angle can be given as : Angle (-360...360 deg) (q) ( for 2 and 4) >> 60 The scale factor is given for all index directions as a single value: Scale factor (q) ( for 3 and 4) >> 0.5 Next, IGG will ask to create the geometry. Create Geometry ? (y/n) (q) >> y This geometry consists of NURBS surfaces representing the lateral faces of the block. It is strongly advised to create these surfaces so that any later modification of a vertex of the block will automatically map the touched edges onto these surfaces. Without these surfaces, the touched edges (or any new internal grid lines) would be drawn as straight lines. After the creation of the block grid, it is possible to intersect a selected geometry surface and adapt the new block according to the intersection. The following prompt is given to ask for intersection: Intersect selected surface ? (y/n) (q) (only for 1) >> y The geometry surface must have been previously selected using the Geometry/Select/Surfaces menu item to use this option. To quit this command, enter q in the keyboard input area and press <Enter>. This tool can also be accessed through the Quick Access Pad/Grid/Create page.

10-2.35 Create Block/Rotation


Grid/Create Block/Rotation menu item is used to create a block grid by rotating the active face grid around a coordinate axis by a user-specified angle. The required inputs are entered from the keyboard input area. During the rotation, the boundary edges can be created using the boundary grid nodes of the generated block: Edge creation (y/n)? (q) >> y The following prompts are given to specify the rotation parameters: Rotation axis : (x=0, y=1, z=2) (q) >> 1 Angle (-360...360 deg) (q) >> 60

10-46

IGG

Grid menu description

Grid Menu

Next, IGG will ask to create the geometry. Create Geometry ? (y/n) (q) >> y This geometry consists of NURBS surfaces representing the lateral faces of the block. It is strongly advised to create these surfaces so that any later modification of a vertex of the block will automatically map the touched edges onto these surfaces. Without these surfaces, the touched edges (or any new internal grid lines) would be drawn as straight lines. After the creation of the block grid, it is possible to intersect a selected geometry surface and adapt the new block according to the intersection. The following prompt is given to ask for intersection: Intersect selected surface ? (y/n) (q) >> y The geometry surface must have been previously selected using the Geometry/Select/Surfaces menu item to use this option. To quit this command, enter q in the keyboard input area and press <Enter>. This tool can also be accessed through the Quick Access Pad/Grid/Create page.

10-2.36 Grid Density/Clustering


Grid/Grid Density/Clustering... is used to modify the grid points clustering along the segments defining the blocks. This option opens a dialog box providing different clustering schemes. It allows also to define clustering groups which are groups of segments and for which the same clustering is applied to all the segments contained in the group. This tool can also be accessed through the Quick Access Pad/Grid/Insert/Edit page.

Clustering group name User inputs according to clustering type

Clustering types

FIGURE 10.2.36-1 Clustering

dialog box

IGG

10-47

Grid Menu

Grid menu description

At the opening, the dialog box will be updated according to the active segment. If this one is contained 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 segment 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 clustering 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.

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

10-48

IGG

Grid menu description

Grid Menu

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 segment 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 geometrical progression, while the distribution in the intermediate region will be made as smooth as possible. 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.

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

IGG

10-49

Grid Menu

Grid menu description

List of segments in the group

Check button allowing selective visualization of segments

FIGURE 10.2.36-2

Clustering groups dialog box

This dialog box contains a list of the clustering groups defined in the current project. Each group name is preceded by two buttons. Left-clicking on the first one toggles the segment list of the corresponding 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. 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 following 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 parent 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.

10-50

IGG

Grid menu description

Grid Menu

Group pop-up menu


FIGURE 10.2.36-3 Pop-up

Segment pop-up menu menus accessed through the dialog box

For a group, the active segment can be added, the group can be modified just as with the "Modify" button previously described and the group can be deleted. For a segment of a group, this one can be removed from the group and the clustering distribution can be reversed.

c) Clustering convergence
In some cases, the computation of the grid points distribution on a segment, according to the 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 new clustering type cannot be applied to the segment and a warning appears. If a clustering is applied on a segment alone ("Apply to seg" button), the following dialog box will appear:

FIGURE 10.2.36-4 No

convergence on a segment

If a clustering is applied on a group ("Apply to group" button), the following dialog box will appear:

FIGURE 10.2.36-5 No

convergence on segments of a group

It contains the list of group segments for which the distribution cannot converge. Moreover, these ones are highlighted in the graphics area to easily localise them. Once this warning box is closed, all the segments of the group keep the same clustering as previously (clustering unchanged).

d) Segment optimum settings


Optimum settings can be calculated for the active segment through a dedicated dialog box shown below, accessed by left-clicking on the Clustering info... button of the "Clustering" dialog box.

IGG

10-51

Grid Menu

Grid menu description

FIGURE 10.2.36-6 Clustering

info dialog box

The basic idea of this tool is to impose several independent parameters and to calculate from them a dependent variable, which can be either the expansion ratio, the segment number of points or the distribution parameters (start or end spacing). Before doing any calculation, the clustering type that will be used must be chosen in the top of the dialog box. The clustering types have the same name and meaning as the ones of the "Clustering" dialog box. The dependent variable is selected by left-clicking on the corresponding radio button. Then other parameters can be modified. The parameters not preceded by a radio button cannot be chosen as dependent variable. Pressing <Enter> or the Compute button will recalculate the dependent variable 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.

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 bottom 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 computed spacing on a segment, the value must be introduced manually in the "Clustering" dialog box).

10-52

IGG

Grid menu description

Grid Menu

10-2.37 Grid Density/Copy


Grid/Grid Density/Copy... is used to copy the grid points distribution from a segment, an edge or a face onto another one. If the target entity is connected, the copy is automatically repeated for the connected segments. When selecting this option, the following dialog box is opened.

FIGURE 10.2.37-1

Copy Distribution dialog box.

It allows to specify the reference (From) and target (To) entities by entering their block, face, edge and segment indices. By omitting the segment number in the From and To boxes, one can copy the distributions of a complete edge onto another edge, even if they have different number of segments. By omitting the segment and edge numbers in the From and To boxes, one can copy the distributions of a complete face. Examples:

Specifying From: 1 3 2 2 and To: 2 1 2 1 will copy the distribution from segment (1 3 2 2) to
the segment (2 1 2 1).

Specifying From: 1 3 2 and To: 2 1 2 will copy the distribution from the edge (1 3 2) to the
edge (2 1 2). Copying distributions from an entity to an other is performed by copying the distribution 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 direction Same direction

Segment

Grid point with Reverse or Same orientation

FIGURE 10.2.37-2 Copying

IGG

10-53

Grid Menu

Grid menu description

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 Repeat step 1 to select the target segment. When the middle button is pressed, the segment indices will appear in the To box and the following prompt will appear: <1> Press Apply or Select reference segment, <2> Acknowledge Press the Apply button in the dialog box to perform the copy or proceed to a new segment selection by repeating the steps 1-2.

2.

3. 4.

10-2.38 Grid Density/Move Pt


Grid/Grid Density/Move Pt is used to modify interactively the location of a grid point of the active segment. With this option, a grid point can be picked and moved on the segment by using the mouse. When a point is picked to be moved, it is surrounded by a red circle as well as its neighbours. The red circles indicate the limits inside which the point can be moved. Please note that this option remains active until selecting a new menu or disabling the option by pressing <q>. The following prompt is given to select the desired point: Select a node to modify (q) Move the mouse inside the graphics area and select a grid point of the active segment using the left mouse button. The three red circles will appear. Move the selected point (q) The point can be moved inside the range indicated by its neighbours. When the correct location is found, left-click to perform the action.

10-54

IGG

CHAPTER 11: View Menu

11-1 Overview
The View menu options provide a set of display options to visualize the grid boundaries, surface and block grids, repetition, hidden lines and rendered surfaces. The viewing parameters and projection, as well as window attributes can also be modified interactively. Other options include the text insertion and deletion.

11-1.1 Views
IGGTM allows to display graphic entities in up to four views. In each view, different entities can be visualized in different ways. By default, only one view is visible in full screen and has a default 3D camera position. Only one view is active at a time, and is recognized by its red border. The active view can be changed by selecting the desired view with the left mouse button. The views position and camera orientation inside the views are controlled with the View/View Position... menu.

11-1.2 View repetitions


When dealing with projects with some kind of symmetry (i.e. mirror plane, rotating symmetry,...), the grid needs to be generated for only one part of the geometry. IGGTM allows to get a complete visual representation of the whole mesh by applying a repetition to the graphic objects of the active view. The view repetition uses the information specified in the Grid/Periodicity... menu and is controlled by the menu View/Repetition..., which can toggle the repetition on or off.

IGG

11-1

View Menu

View menu description

11-2 View menu description


11-2.1 Patch Viewer
View/Patch Viewer... is used to visualize selected patches in wireframe or solid mode to produce full rendered pictures of the grid. The dialog box provides control over the colour and transparency effects for each patch.

Patch browser, allowing to select the current patch(es)

Visibility control during transparency setting

Wireframe visualization control

Solid visualization control

Show the selected patches as wireframe Hide solid for selected patches Hide wireframe for selected patches
FIGURE 11.2.1-1 Patch

Show the selected patches as solid

Viewer dialog box

Patch Browser: The patch browser (see figure below) lists all the patches in the grid, according to the current Block, Face, Patch or Type filters. In this browser, one or more patches can be selected with the left mouse button. It is possible to select several patches at once in the following way:

While holding the <Ctrl> key down, select the desired patches in the browser. While holding the <Shift> key down, select two patches delimiting a range of patches. While pressing the left mouse button, drag the mouse and release the left button to select a
range of patches.

11-2

IGG

View menu description

View Menu

Filters: The different filters allow to display specific patches of a grid in the browser while hiding the others. The Block, Face and Patch filters work together and allow to display patches by indices. For example: Block Filter: Face filter: Patch filter: * 1 2 *

shows in the browser all the patches of faces 1 and 2 of all the blocks. * means ALL. 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 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. 2. 3.

Select the patches in the patch browser, Select one color from the predefined colors or from customized colours (Ed. button),

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 transparent). 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 transparency effect will be recomputed each time the transparency slider is moved. Since the rendering of transparent patches is computationally intensive and may take up to several minutes, it is not advised to use the Full Visibility flag on large grids.

11-2.2 Sweep Surfaces


View/Sweep Surfaces... is used to scroll the constant grid index surfaces within 3D grid blocks. If the active block is not generated or has been modified since the last generation (by moving a vertex, for example), the following message will appear:

FIGURE 11.2.2-1 Message

indicating that the block may be regenerated

IGG

11-3

View Menu

View menu description

It asks for block regeneration. If the block is not generated and that the "no" button is pressed, the dialog box of the next figure will appear but without being able to do something except pressing the "Close" button. If the block has been modified since the last generation (a block is not automatically regenerated after modifications of its topology) and that the no button is pressed, the mesh that will be interactively displayed (see below) may look quite strange. Mesh sweeping is done through the following dialog box:

Active block

Constant index I, J or K

FIGURE 11.2.2-2 Sweep

Surfaces dialog box.

The Block box allows to choose the active block in which the surface grids will be scrolled. Next to this box, the active block name and the amount of grid points in each direction (according to the coarse grid levels selected) are displayed. The I, J and K scrollers allow to interactively sweep the surface grid along the three directions. While scrolling, surface grids are displayed for each constant index direction.

11-2.3 Sweep Cells


View/Sweep Cells... is used to scroll the individual grid cells within 3D grid blocks. If the active block is not generated or has been modified since the last generation (by moving a vertex, for example), the following message will appear:

FIGURE 11.2.3-1 Message

indicating that the block may be regenerated

It asks for block regeneration. If the block is not generated and that the "no" button is pressed, the dialog box of the next figure will appear but without being able to do something 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 distorted.

11-4

IGG

View menu description

View Menu

A dialog box is used to scroll in I, J and K index directions.

FIGURE 11.2.3-2 Sweep

Cells dialog box.

11-2.4 Show Unmapped vertices


View/Show Unmapped vertices is used to show the vertices which are not mapped on any geometry entity or which are mapped on curves automatically created by IGG (i.e. when extruding a new block). It is useful for templates that must be successfully applied to similar geometries, where the vertices of the blocks should be placed on the input curves and surfaces. IGG cannot currently detect whether a curve or surface is imported from a CAD file or explicitly created within IGG. This tool will consequently not flag vertices lying on such entities. Right-click to quit this tool.

11-2.5 Coarse Grid


View/Coarse Grid is used to set the active coarse grid levels of the active block or grid for all the views. To select the scope (active block or grid), set the viewing scope (see the Quick Access Pad/ View/Grid page description) to Block or Grid mode. The active coarse grid levels are taken into consideration while:

displaying the block faces and BC patches on all active views, saving the block or face coordinates, scrolling the block surface grids or cells.
These graphical representations are automatically updated after each change to the coarse grid levels. The finest grid level is identified as 0. The smallest number of grid points for coarse levels is 2. The coarsest level is computed and updated in each index direction separately. The keyboard input area is used to enter the desired levels within available ranges.

IGG

11-5

View Menu

View menu description

A different coarse grid level can be specified in each grid direction. The following prompt is given to specify the coarse grid levels: Levels ( 0 / 3, 0 / 4, 0 / 2 ) (q) >> 2 2 1 To quit this command, enter q and press <Enter>.

11-2.6 Repetition
View/Repetition... opens the following dialog box to control the repetition of the blocks on the active view:

FIGURE 11.2.6-1 View

Repetition dialog box

For each block, the number of repetition desired can be set in the Nb Repet entry. The repetition of all blocks can be displayed or hidden respectively by pressing the Show or Hide button. To perform a repetition, IGGTM takes the information about the periodicity of each block (angle, rotation axis,...) in the Grid/Periodicity dialog box. By default, the repetition is not displayed.

11-2.7 View Position


View/View Position... is used to modify the configuration and the orientation of the active view in IGGTM. Up to four views can be displayed at the same time in the graphics area. By default, only one view appears, in isoparametric orientation. The windows dialog box is opened to modify the settings of the position and orientation in the active view.

Position of the active view in the IGGTM graphics area Camera orientation in the active view

Modification of the view position or camera orientation takes effect after pressing Apply.
FIGURE 11.2.7-1 View

Position dialog box.

11-6

IGG

View menu description

View Menu

The position can be specified as the original, full screen, half top, half bottom, half right or half left of the screen:

The original position is used to display four views in the graphics area. The full position displays the active view in all the graphics area. Half top, half bottom, half right or half left displays the active view in the corresponding half
part of the graphics area. The orientation can be XY, XZ, YZ or XYZ. The Apply button is used to update the active view.

11-2.8 Face Displacement


View/Face Displacement menu option is used to change the shift factor of the active view. In fact, when the block face grids are visualized in both wireframe and solid modes (shading), a visual interference may be produced between the grid lines and the shading. For this reason, IGGTM slightly shifts the grid lines towards the user to get a correct picture. This shift is controlled by the shift factor of the active view. This parameter represents the amount by which the grid is shifted along the view plane normal vector (normal to the screen), and is used to get a correct display when combining wireframe and solid representations. The following prompt is given to enter the shift factor within the range of 0 to 1 (default is 0.1): Shift fac (0....1) : D=0.1 (q) >> 0.2 Enter q and press <Enter> to quit this option.

11-2.9 View Depth


View/View Depth menu option is used to control the depth of the active view. This depth is used for all interactive geometry editing operations with the mouse, i.e. curve creation with the mouse. For example, when working in the X-Y plane, the Z coordinate of a point is set to the current depth. When using the option, the new depth for the active view is requested: New view plane const z value (q) >> 0. All subsequent inputs with the mouse will be at z = 0. This can be controlled by reading the cursor coordinates in the related area. To quit this option, enter q and press <Enter>.

11-2.10 Perspective
View/Perspective is used as a toggle to switch between orthogonal and perspective projection in the active view. By default, the orthogonal projection is used. In perspective projection, the selection of curves and edges and the rendering of hidden surfaces may not succeed.

11-2.11 Hidden lines


View/Hidden lines is used to display the grid edges of all the mesh using hidden line - hidden surface algorithms. By default, the hidden line removal flag is off. It is switched on/off after each

IGG

11-7

View Menu

View menu description

selection of this item. When hidden line removal is applied, the grid quality and solid model representations (shading) are removed from the display to avoid any overlap of incompatible graphical objects.

Classic representation

Hidden line representation

FIGURE 11.2.11-1 Representation

using hidden line/surface

When the face grids are visualized, a visual interference may be produced with the grid lines. For this reason, IGGTM slightly shifts the grid lines towards the user to get a correct picture. This shift is controlled by the shift factor of the active view which can be changed. This parameter represents the amount by which the grid is shifted along the view plane normal vector (normal to the screen), and is used to get a correct display when combining wireframe and solid representations. This parameter can be changed with the View/Face Displacement menu item.

11-2.12 Insert Text


View/Insert Text can be used to insert a descriptive text in the active view. The position of the text must be first specified by pressing the left mouse button at the desired position in the active view. Then the following prompt allows to enter the text and to display it at the specified position: Text description (q) >> DLR F5 wing - coarse grid levels 1 1 1 - 129 x 33 x 25 Press <Enter> to validate and display the text. It can be erased from the view by using the View/ Delete Text menu. To quit this option, enter q and press <Enter>.

11-2.13 Delete->Delete Text


View/Delete Text is used to delete all the descriptive texts displayed in the graphics area.

11-8

IGG

CHAPTER 12: Input and Output Files

12-1 Overview
This chapter describes the file formats used in IGGTM or generated by IGGTM. There are basically two categories of files: files used to import and export a geometry or a grid (points, curves, surfaces or blocks) and files used to save and reload an IGGTM project. First the file formats used to import geometry and grid data are described. Then, the file structure of an IGGTM project will be presented.

12-2 Input Data Files


The most common way of importing geometries from CAD systems is to use the File/Import/ IGES Data menu option which provides a powerful browser to inspect and import IGES files. However, it is also possible to import simple curves, surfaces and blocks defined by arrays of points by using the simple IGGTM data file format. This section describes the format for curves, surfaces and blocks importation in IGGTM. By convention, IGGTM data files must have the .dat extension (or .dst extension for combined curve and surface data files).

12-2.1 Curve data files


Curve data files are used to import geometry curves defined as a set of points. IGGTM uses these points to create either a polyline or a C-spline curve. The curves always pass through the points. The coordinate system in which the points are described can be cartesian or cylindrical. The general format is as follows:
curve name coordinate_system [options] number_of_data_points data_point_coordinates

IGG

12-1

Input and Output Files

Input Data Files

where:

The first line is the curve name. The second line defines the coordinate system in which the points are described. Options may
follow on the same line. See description below.

The third line contains the number of points. The following lines contain the points coordinates.
Coordinate System description Possible keywords for the coordinate system are: XYZ, RZ, ZR, THRZ, THZR, RTHZ, RZTH, ZRTH, ZTHR, R*THZ or ZR*TH where:

XYZ is used to define the points in cartesian coordinates, RZ or ZR are used to define 2D points by specifying their radius and z coordinate or viceversa,

THRZ, THZR, RTHZ, RZTH, ZRTH or ZTHR are used to define points in cylindrical
coordinates. Each keyword indicates the order in which the r, theta and z values are defined. For example ZRTH indicates that Z then R then TH are stored for each point,

R*THZ or ZR*TH are used to define 3D points at a constant radius. For these keywords,
the radius value must be specified. For example: R*THZ R= 3.2 Options The options must be written after the coordinate system keyword and are used to modify the characteristics of the curve. The keywords can be one of the following:

polyline: used to define a polyline curve (default is C-spline interpolation).


When the keyword polyline is not present, IGGTM creates a C-spline. However, when importing the file using the File/Import/IGG Data, IGGTM uses no intermediate discretization points, which will make the curve look like a polyline. The discretization can be changed using the menu Geometry/Modify Curve/Discretization.

degree: meaning that the angles are defined in degree (default is radian).

In all these systems, the rotation axis must be the Z direction of the coordinate system. The coordinates of one point must be given on a single line. A few examples of curve data file are shown below: Example 1: Simple_curve XYZ 21 3.345 4.1234 .51234 3.435 4.1322 .54623 3. 01 4.813 1.21234 ... ...

12-2

IGG

Input Data Files

Input and Output Files

Example 2: Simple_curve ZR polyline 21 1.6 6.234 2.05 6.478 3. 01 7.01234 ... ... Example 3: Simple_curve RTHZ degree 6 4.5 290 4.1234 4.8 295.5 4.1322 5.1 299.234 4.813 ... ...

12-2.2 Surface data files


a) Wireframe surfaces
Surface data files contain information about the coordinates of structured surfaces in cartesian coordinates and are used to export face grids from IGGTM (File/Export/Face Coor and File/Export/ Patch Coor menu items) or to import them to create block faces (File/Import/External Grid and File/Import/Face Grid menu items). In the latter case, the number of points defined in the surface data file must match the number of points of the face. An example of such a file is shown below: Simple_surface 3 0 0 21 31 3.345 4.1234 .51234 3.435 4.1322 .54623 3. 01 4.813 1.21234 ... ... where:

The first line is the surface name. The second line contains the three numbers 3 0 0 or 2 0 0 (for 2D surfaces where z is omitted).
The two zeros should be written as such and are reserved for future use.

The third line contains the number of points in the I and J directions (21 and 31 in the example). The following lines contain the grid point coordinates (x y (z)) written by using two nested
loops over J then I: for J = 1 to Jmax for I = 1 to Imax write x y (z) end I

IGG

12-3

Input and Output Files

Input Data Files

end J The z coordinate must be omitted when the second line is 2 0 0.

b) Multiple wireframe surfaces


Such files contain information about the coordinates of several structured surfaces in cartesian coordinates and are used to create block faces (File/Import/External Grid). An example of such a file is shown below: # Airfoil mesh with 2 faces 3 2 21 31 15 17 3.345 4.1234 .51234 3.435 4.1322 .54623 3. 01 4.813 1.21234 ... ... where:

The first line contains a comment, not interpreted by IGGTM. The second line contains the number 3 or 2, describing the surface dimension (for 2D surfaces,
z coordinate is omitted).

The third line contains the number of surfaces. This line must be omitted from the file if there is
only one surface.

Then for each surface a line contains the number of points in the I and J directions (21 and 31 in
the example for the first surface, 15 and 17 for the second one).

The following lines contain the grid point coordinates (x y (z)) for each surface, written by using
two nested loops over J then I: for J = 1 to Jmax for I = 1 to Imax write x y (z) end I end J The z coordinate must be omitted when the second line is 2.

c) Lofted surfaces
This type of file format allows to import lofted surfaces defined as a set of "parallel" curves. An example of such file is shown below:

Simple_lofted_surface 3 0 3660 31 1 21 3.345 4.1234 .51234 3.435 4.1322 .54623 3. 01 4.813 1.21234

12-4

IGG

Input Data Files

Input and Output Files

... 2 21 4.8 295.5 4.1322 5.1 299.234 4.813 ... 3 11 ... where:

The first line is the surface name. The second line always contains the six numbers 3 0 3 6 6 0 (cannot be changed, reserved for
future use).

The third line contains the number of curves defining the lofted surface. For each curve the following information must be given: The curve number ID and the number of points defining the curve. The x y z coordinate of each point.

12-2.3 Combined curve and surface data files


This file format allows to import several geometry curves or surfaces at once. It must have the .dst extension. It contains in fact a list of files (identified by their name) which will be imported into IGGTM. Therefore their format must be compatible and can be one of the following: curve data file, wireframe or lofted surface data file, and .geom files created by IGGTM. An example of such .dst file is shown below:

Tutorial geometry file 3 dif1.dat test.dat test.geom where:

The first line contains a comment, not interpreted by IGGTM. The second line contains the number of files that will be imported. The following lines contain the file names. The corresponding files must be located in the same
directory as the .dst file.

12-2.4 Block data files


Block data files contain information about the coordinates of structured blocks in Cartesian coordinates and are used to export blocks grid from IGGTM (File/Export/Block Coor menu) or to import external blocks generated by other grid generators (File/Import/External Grid menu). An example of such a file is shown below: Simple 3D Block Coords 3 0 0 21 31 9

IGG

12-5

Input and Output Files

Input Data Files

3.345 4.1234 .51234 3.435 4.1322 54623 3.945 3.0623 1.5423 ... ... where:

The first line contains a comment, not interpreted by IGGTM. The second line always contains the three numbers 3 0 0 (cannot be changed). The third line contains the number of points in the I, J and K directions (21, 31 and 9 in the
example).

The following lines contain the grid point coordinates (x y z) written by using three nested loops
over K then J then I: for K = 1 to Kmax for J = 1 to Jmax for I = 1 to Imax write x y z end I end J end J

12-6

IGG

Grid file format

Input and Output Files

12-3 Grid file format


The grid file structure consists of four files and is used to save and reload an IGGTM project:

a .geom file, containing the definition of geometry points, curves and surfaces. a .igg file, containing the topology and grid information, such as number of blocks, number
of grid points, clustering, smoothing, projections...

a .cgns file, containing the blocks coordinates. a .bcs file, containing the boundary conditions information required for the solver.
The .geom and .igg files are required by IGGTM. Without one of these, IGGTM will not be able to reload a mesh. The .cgns file should normally always be present since it contains the blocks coordinates. However if IGGTM cannot find it, it will still be able to read the project (geometry + topology). The face and block grid will have to be manually regenerated. The .bcs file is not read by IGGTM. It is only used by external solvers. The .geom and .igg files are internal files to IGGTM and are not intended to be read by the user. They are consequently not explained here. The two next sections describe the .cgns and .bcs files.

12-3.1 CGNS file


The .cgns file is used to store block coordinates in binary format. The faces division into patches and some related boundary conditions are also saved in this file but are not used by IGGTM except when importing directly a cgns file. The boundary condition types that can be saved are the following: UND, EXT, INL, MIR, OUT, SNG, SOL, CON connections. Other types (ROT; NMB, PER, PERNM and full non matching connections) are saved as UND type. The .cgns file is a direct implementation of the standard CGNS format for aerodynamic data. CGNS (CFD General Notation System) is becoming the de-facto standard for the exchange of CFD data among heterogeneous CFD systems. More and more CFD systems directly support the CGNS. The CGNS provides an API to read and store CFD data onto disk. Reading and writing CGNS compliant files becomes very easy since the user needs no care about the internals of reading and writing to disk or about platform compatibility. The library supporting the implementation of the API is freely accessible in source or compiled form. More information can be found on the web site www.cgns.org.

12-3.2 Boundary Conditions file format


The boundary condition file (.bcs file) is used to export the boundary condition settings of each patch of a grid, defined with the Grid/Boundary Conditions menu. There exists one .bcs file for each project. An example of a .bcs file is shown below: NUMBER_OF_BLOCKS 2 Block_1 21 31 9 TRANSLATION 0 0 1 1 unknown PER 1 1 31 9 1 6 1 0 0 1 Block_1 1 unknown CON 1 1 21 9 2 2 1 0 0 Block_2

IGG

12-7

Input and Output Files

Grid file format

2 unknown SOL 1 1 21 16 unknown SOL 1 16 21 31 1 unknown UND 1 1 21 31 1 unknown OUT 1 1 21 9 1 unknown PER 1 1 31 9 1 1 1 0 0 -1 Block_1 Block_2 21 15 9 ROTATION 0 0 1 0 0 0 9 1 1 unknown SOL 1 1 15 9 1 unknown CON 1 1 21 9 1 2 1 0 0 Block_1 1 unknown PER 1 1 21 15 2 4 1 0 0 1 Block_2 1 unknown PER 1 1 21 15 2 3 1 0 0 -1 Block_2 1 unknown INL 1 1 21 9 1 unknown SOL 1 1 15 9 NI_BEGIN FNMB_CONNECTION Name: fnmb1 Projection_type: 3 Search_type: 1 Side: 1 Periodicity: 0 Tolerance: 0.0001 Left_patches: 1 1 1 Left_patches: 1 1 2 Right_patches: 2 5 1 NI_END FNMB_CONNECTION

12-3.2.1 Format description


The first line contains the number of blocks in the file (second field). Each block is then described one after the other in the following way:

Name of the block. Number of points in the I, J and K directions. Periodicity information of the block set with the Grid/Periodicity menu item. Periodicity information is one of the following: NONE no periodicity TRANSLATION translation_x translation_y translation_z MIRROR mirror_axis_x mirror_axis_y mirror_axis_z origin_x origin_y origin_z ROTATION rot_axis_x rot_axis_y rot_axis_z origin_x origin_y origin_z num_repet num_mesh_channels

12-8

IGG

Grid file format

Input and Output Files

In our example, the first block has a translation periodicity with translation axis (0,0,1). The second block has a rotating periodicity with origin (0,0,0), rotation axis (0,0,1) and 9 repetitions (9 blades).

The next lines describe the patches information for each block face. The order in which faces
are described is the following: Imin Jmin Kmin Kmax Jmax Imax (faces 5 3 1 2 4 6). For each face:

The number of patches for the face (one line). Patches description (one line per patch). This information depends on the patch type and is
summarized below: For each patch, the line contains the patch name, its type and its limits min1, min2, max1, max2 (1 and 2 are the two principal axes of the patch: [I, J], [J, K] or [I, K]). The following figure describes a solid patch going from (1,9) to (41,49): name SOL 1 41 9 49

Patch name

BC type start index 1

start index 2 end index 1

end index2

FIGURE 12.3.2-1

SOLID patch type information

For CON, NMB, PER and PERNM patches, the line contains in addition the indices of the connected patch (three indices giving the number of the connected block, face and patch) and the relative orientation of the two patches, described by the corner and orientation indices. Moreover the end of the line contains the name of the connected block. This information is not mandatory (connected block is described by its index) and is only present to make things clear. name CON 1 41 9 49 3 4 1 0 0 Block_2

Orientation General patch information Connected patch : Block Face Patch indices

Corner Connected block name

FIGURE 12.3.2-2

CON patch type information

The index of the connected face (4 in the above example) is not directly the face number in IGGTM. Instead the indices in the right column below are used (for historical reason):

IGG

12-9

Input and Output Files

Grid file format

IGGTM Face index convention 1 2 3 4 5 6


FIGURE 12.3.2-3

index saved in bcs file 3 4 2 5 1 6

Face index convention

The corner and orientation indices determine how the connected patch connects to the patch currently described. The following table shows the eight possible configurations: PATCH ORIENTATION : 0 (SAME) CORNER POSITION FROM TO n2 n1 1 1 n2 n1 1 PATCH ORIENTATION : 1 (REVERSE) FROM n2 n1 1 n1 n2 TO

n2 n1 1 n2

n1

1
2 3 1

n2 n1 n1

n2

2 3

n2 n1 1 4 n2 n1 1 n1

n1 n2

2
1

n2 n1

n2 n1

4 n2

3
1

n2 n1 n2

n1

n1, n2 : first and second variable coordinate indices along the patch

FIGURE 12.3.2-2

Standard notation for corner and orientation.

In this table, the left patch is always the connected patch and is taken as reference. The right patch is the patch currently described.

12-10

IGG

Grid file format

Input and Output Files

For PER and PERNM patches, the line contains in addition a connection sign (+1 or -1) before the connected block name. This sign indicates the sense of the periodic transformation for the given patch (the periodicity information is given previously in the file for each block): +1 means that the patch connects to the other by rotating (or translating) it according to the periodic axis (clockwise). - 1 means that the patch connects to the other by rotating (or translating) it in the opposite direction 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 description is done for each connection between the two following lines: "NI_BEGIN FNMB_CONNECTION" and "NI_END FNMB_CONNECTION"; it contains the following information:

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 Face Kmin, 2 patches SOL Face Kmax, 1 patch UND Face Jmax, 1 patch OUT Face Imax, 1 patch PER

Block 1

Block 2

Connection name

Fnmb connection
Left patches list Right patches list

12-4 PLOT3D file format


IGGTM provides options for file input/output in PLOT3D format (File/Import/PLOT3D and File/ Export/PLOT3D menu items). The PLOT3D file will have a .g extension. The formats that can be read are the following:

ASCII, Unformatted or Binary file. Little or big endian (for binary file). Single or multi-block. 3 dim (x, y and z coordinates are stored).

12-12

IGG

PLOT3D file format

Input and Output Files

Single or double precision. No blanking information. Data layout of type "whole". This means that for all the grid points of a block, all the x
coordinates are read firstly, then the y coordinates and finally the z coordinates.

ASCII files are simple text files that can be read using either Fortran or C. Unformatted type stands for Fortran binary files and can normally be read using Fortran only whereas Binary type stands for C binary files and can normally be read using C only. Little and big endian is describing the bytes ordering for binary files. The output PLOT3D file generated by IGGTM has the same available formats, except for ASCII type which is always written in double precision. This PLOT3D format only stores the blocks coordinates and should be used with the .bcs file containing 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 C (((Y(I,J,K),I=1,IDIM),J=1,JDIM),K=1,KDIM), (((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 C C (((X(I,J,K),I=1,IDIM(IGRID)),J=1,JDIM(IGRID)),K=1,KDIM(IGRID)), (((Y(I,J,K),I=1,IDIM(IGRID)),J=1,JDIM(IGRID)),K=1,KDIM(IGRID)), (((Z(I,J,K),I=1,IDIM(IGRID)),J=1,JDIM(IGRID)),K=1,KDIM(IGRID))

10 CONTINUE

IGG

12-13

Input and Output Files

PLOT3D file format

12-14

IGG

CHAPTER 13: Tutorials

13-1 Mesh Generation in pipes


13-1.1 Introduction
This section is an advanced tutorial explaining the mesh generation in intersecting pipes. The geometry consists of two pipes of different diameters intersecting each other. This tutorial is not intended to provide a step-by-step and detailed procedure but rather to explain the main concepts necessary to create meshes around similar geometries. For details about basic geometry, topology and grid generation, please refer to the chapter 1 of the IGG manual. The tutorial covers different IGG functionalities such as:
1. 2. 3. 4. 5. 6. 7.

Creation of the geometry, Creation of an intersection, Definition of the topology, Creation of internal grid lines, Projection of a face grid onto a surface geometry, Creation of a butterfly topology, Creation of a full non matching connection.

The final generated mesh is shown below:

IGG

13-1

Tutorials

Mesh Generation in pipes

13-1.2 Geometry Definition


The geometry consists of two intersecting cylinders. The first cylinder is aligned with the Z axis, has its bottom part at Z = -100, its top part at Z = 100 and a radius = 25. The second cylinder is aligned with the X axis, has its bottom part at X = 0, its top part at X = 100 and a radius = 12.
1. 2. 3. 4.

Create a polyline from (0,25,-100) to (0,25,100) (Quick Access Pad/Geometry/Curve/Polyline item). Based on this polyline, create a surface of revolution around the Z axis (0,0,1) with center (0,0,0) and an angle of 360 degrees (Quick Access Pad/Geometry/Surface/Revolution). Unselect all curves (Geometry/Select/Curves followed by the <a> key binding and rightclick). Create another surface of revolution around the X axis (1,0,0) with center (0,0,0), rotation angle of 360 degrees and based on a polyline from (0,0,12) to (100,0,12).

The next step is to intersect the two surfaces:


5.

Select both surfaces (Geometry/Select/Surfaces) and compute the intersection (Quick Access Pad/Geometry/Curve/Surf-Surf Inters).

13-2

IGG

Mesh Generation in pipes

Tutorials

A new curve is created.


6.

Unselect both surfaces (Geometry/Select/Surfaces followed by the <a> key binding and rightclick).

Next, a new small cylinder based on the intersection curve and the base circle of the small cylinder at X = 100 will be generated:

Z Intersection curve X Base circle (X=100) Y

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). 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. Select the original small cylinder surface alone and delete it (Geometry/Delete/Surfaces). The new surface is shown on the following figure:

8. 9.

IGG

13-3

Tutorials

Mesh Generation in pipes

10.

Save the project by using the File/Save menu item. Alternatively the geometry could be saved by using the File/Export/Geometry Selection menu. In this case select the two surfaces and apply the option.

The geometry is now created.

13-1.3 Meshing the larger cylinder


A first block is used to mesh the big cylinder. This block will be created by constructing an initial cube, specified by two opposite corners, and by snapping its vertices to the boundary curves of the surface. During these operations, the edges of the blocks will be automatically mapped on the curves or surfaces.
1. 2.

Click on the Insert New Block icon. Place the two opposite corners by attracting them to the two circles, as shown in the following figure:
J I K

First vertex

Z Y X

Second vertex

A local coordinate axis system IJK will appear at the location of the first vertex. Its orientation will be modified so that the K axis points downward (along the Z axis), as an example.
3.

Press the <s> key.

The orientation of the axis system is changed and the K axis now points downward. If this is not the case, repeat the <s> press until getting the proper orientation.
4.

Left-click to complete the block creation.

The block is now created and its eight vertices appear on the screen. The vertices lie close to the circles. In the next steps they will be moved and snapped to the circles. The block edges will automatically be mapped onto the circles.
5.

Left-click on one vertex and move the mouse around its original position.

The block is instantaneously updated to reflect the new vertex position.


6. 7.

Move the vertex near the closest circle. It gets attracted to the circle. Left-click to fix the new vertex position.

13-4

IGG

Mesh Generation in pipes

Tutorials

8.

Repeat the operation for the other vertices and try to place the vertices as shown in the following figure. Notice that the edges of face 4 should be placed symmetrically around the intersection curve and should not cross it.
I K J

Segment 1 1 3 1

Segment 1 1 2 1

Segment 1 5 4 1 Face 4

FIGURE 13.1.3-1 Position

of the vertices on the circles.

At this stage the initial mesh created by IGG can be visualized.


9. 10.

Select the Block or Grid scope in the Quick Access Pad/View/Grid page. Select the Toggle Face Grid icon to visualize the grid for the whole block. The face grids are by default generated using a bilinear interpolation. These initial grids will be projected onto the surfaces at a later stage.

11.

Repeat the previous operation to remove the grid from the screen.

Now the number of points for the block will be defined.


12. 13.

Right-click on the segment 1 5 4 1 (see above figure) to pop-up a menu and go to the Segment sub-menu. Select the Set Number of Points menu item. Enter the new number of points for the segment:

>> 65 Increasing the number of points of a segment automatically affects the total number of points in the associated direction. The total number of points along the K direction is consequently 65.
14.

Repeat the same operation for the segments 1 1 2 1 and 1 1 3 1 and increase their size to 33.

The block size should now be 33x33x65. By default all the faces of the block are generated using a bilinear interpolation. The lateral faces should however lie on the cylinder. A projection must be performed for these faces so that the grid exactly points on the surface.
15. 16.

Select the surface corresponding to the large (vertical) cylinder (Geometry/Select/Surfaces item). Select one of the lateral faces (i.e. face 4) by left-clicking on one segment of the face until the face edges are highlighted in white.

IGG

13-5

Tutorials

Mesh Generation in pipes

17.

Select the Project Face icon in the Quick Access Pad/Grid/Generate page.

It opens a dialog box to select projection parameters.

Select the default parameters:

Projection on selected surfaces. Validation level 2. Boundary projection off, since the edges are already on the surface (automatic mapping feature).

Entire face projection.


Then press Apply to perform the projection of the active face.
18.

Repeat the above operations for the other lateral faces.

All the boundary faces of the block are now properly generated.

13-1.4 Meshing the small cylinder


To mesh the small cylinder a new block will be created by extruding a range of the face 4 of the first block. In order that the meshing works properly, this face should normally completely cover the intersection curve (see next figure).
1. 2.

Activate the face 4 of the first block. Select the Extrude Range icon in the Quick Access Pad/Grid/Create page.

It opens a dialog box for selecting the range to extrude as well as the direction and magnitude of the extrusion.

65 33

Click on the boundaries to change the 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. 5. 6. 7.

In this case, the limits I = [6,28] and K = [29,37] have been selected. Select the User Direction option and enter 1 0 0 (direction of the small cylinder). Change the Magnitude to 75 (size of the small cylinder). Press the Extrude button.

This will create the new block, similar to the following figure:

Vertices at intersection of internal edges

Internal edges created

Block 2, Face 4

FIGURE 13.1.4-1 Extrusion

of a range, creating internal grid lines.

The extrusion automatically creates four internal edges in the active face of the first block. At each intersection between two internal edges and between the internal edges and the boundary edges, a vertex/fixed point is created (they can be visualized by pressing repeatedly the Toggle Vertices icon of the Quick Access Pad/View/Grid page). These internal edges are used as the basis for the creation of the boundaries of the second block. During the creation of the new block, IGG automatically connects the new block to the internal edges of the first block. The vertices at intersection of the internal edges are consequently used by the new block. When extruding a new block, IGG automatically connects the new block to the existing one by connecting the vertices, the topological edges and the segments. A division into patches of the reference face and a connection is also performed, if possible.

IGG

13-7

Tutorials

Mesh Generation in pipes

The face 4 of the first block is automatically divided into 9 patches to allow a connection with the second block, as shown in the following figure. The central patch is automatically connected to the adjacent patch of the second block (Block 2 Face 3 patch).

FIGURE 13.1.4-2 Patch

decomposition for the face 4 of the block 1

The internal edges will now be deformed to capture the intersection curve of the two cylinders. This will be done by interactively moving the vertices and snap them to the intersection curve.
8. 9.

Select one of the four vertices at the intersection of the internal edges. Snap this vertex to the intersection curve, as shown in the following figure.

Block 2, Face 4

10.

Repeat the operation for the three other vertices. IGG will automatically map the central segment of each internal edge to the intersection curve. Notice also that the other segments are mapped onto the big cylinder.

11.

Other vertices (intersecting the boundary edges of the block 1, face 1) can optionally be moved to get a better face grid quality.

The opposite face (Block 2, Face 4) still needs to be adapted by snapping its vertices to the small circle at (X=100).

13-8

IGG

Mesh Generation in pipes

Tutorials

12.

Select each vertex of the face 4 and attract them to the circle at X=100.

As for the first block, the lateral faces must be projected to ensure that their grid exactly lie on the cylinder.
13.

Select the surface corresponding to the small cylinder alone and project the lateral faces of the second block as done for the first block.

13-1.5 Generating the block grids


Before generating the block grids, a check must be done to ensure that the faces still lie on the input geometry. This might not be the case any more if an operation has been performed on the block faces, like for example adjusting a vertex interactively. In that case, IGG performs a default algebraic 4 boundary interpolation to keep the face grids inline with the boundaries. This regeneration can be done in a straightforward way by replaying the generation of the face grids.
1. 2.

Select the Regenerate Faces item in the Quick Access Pad/Grid/Generate page. A dialog box is opened to select the face(s) to regenerate. Select the All Blocks Faces option and press Apply. Finally close the dialog box.

This will fully regenerate all face grids of all the blocks in the project.
3.

Select the Block 6 Bnd icon in the Quick Access Pad/Grid/Generate page. A dialog box is opened to select the block(s) to generate. Select the All option and press Apply.

The grid in the two blocks is now generated.

13-1.6 Butterfly topology creation


In order to improve the mesh quality at block corners, a butterfly topology will be created in each block.

IGG

13-9

Tutorials

Mesh Generation in pipes

1.

Activate the first block and select the Create Butterfly icon of the Quick Access Pad/Grid/ Create page. It opens the following dialog box and displays a default butterfly topology in the block 1. 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. 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.

2.

3.

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

Create the butterfly topology in the first block by pressing the Create/update button.

In a same way, a butterfly topology can be created in the second block.


6. 7.

Select the second block in the Block entry. This block will be automatically activated. Set the Preferential direction to the axis of the small cylinder, J. A confirmation dialog box will appear. Confirm the change by pressing the yes button. Control sections of the butterfly topology are automatically updated.

Now the topology of the mesh must be chosen. Indeed a buffer block can be associated to the face 3 of block 2, leading to a matching connection between patches of the two cylinders. Otherwise, if face 3 has no buffer block associated, it leads to a full non matching connection with the first block. This latter topology is chosen in order to illustrate the FNMB connection.
8. 9. 10.

Remove the buffer blocks at faces 3 and 4 by pressing the corresponding buttons 3 & 4. Set the Radial depth to 30 for the first section. Then activate the second section and copy the parameters from the first one, as done for the first block. Create the butterfly topology in the second block.

As the two blocks were connected previously by the extrusion operation and that there is no buffer block associated to the face 3 of the second block, IGG detects that it will lead to a FNMB topology and that the matching connection is no more valid. The following message will appear when a matching connection is no more valid according to the new butterfly creation: Creation of a topology with FNMB connections. The matching connection will be therefore deleted automatically.

13-1.7 Connecting the blocks


In this section, the full non matching connection between the two blocks will be defined.
1. 2.

Open the Grid/Boundary Conditions dialog box. Press the Define button in the Full Non Matching frame. It opens a dialog box controlling the FNMB connections. Note that only the parent block patches appear in the lists of the dialog boxes. Consequently connections are performed between parent block patches. Therefore these ones are visualized instead of butterfly block patches.

13-10

IGG

Mesh Generation in pipes

Tutorials

3. 4. 5.

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. Enter a name for the connection in the Connection Name entry. 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 connection. The result is shown in the following figure. Calling this item is optional in IGG.

This completes the tutorial on pipes intersection.

IGG

13-11

Tutorials

Mesh Generation in pipes

13-12

IGG

INDEX
A
Active segment 2-14 Aspect Ratio 10-21 Attach a fixed point to a vertex 3-16 Attraction attraction features 9-2 tolerance 8-16 Autosave 8-17

B
Balloon help 8-18 Block coordinates file format 13-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-46 by sweeping 10-44 by translation 10-45 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-39 viewing the grid by sweeping 11-3 Boundary conditions basic concepts 10-1 bc types 10-1, 10-10 file format 13-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 hide 9-28 select 9-24

IGG

Cells deleting 11-8 searching cells with negative volume 10-54 CGNS file format 13-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 13-1 hide 9-28 import 8-4 modifying add control point 9-20 discretization 9-22 divide 9-22

ii

IGG

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 coordinates file format 13-3 creating new 7-8 creation by mapping on a geometry surface 3-21, 10-30 by rotating an edge 10-35

IGG

iii

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 surfaces 9-28

I
IGES importation 8-6 Import block file 8-5

iv

IGG

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 14-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 select active patches for saving 11-4 visualization 10-10, 11-2 Periodicity 10-4 Perspective view 11-7

IGG

PLOT3D file format 13-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 Show connections 7-21 Smoothing

vi

IGG

multigrid 10-26, 10-38 slor 10-26, 10-39 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 13-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 View curve orientation 9-22, 9-28 view depth 11-7 view preferences 11-6 views position 11-6

IGG

vii

Viewing buttons 2-7 Viewing scope 7-30

viii

IGG

Das könnte Ihnen auch gefallen