Beruflich Dokumente
Kultur Dokumente
contains:
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
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, System requirements, How to run IGG, Terms and concepts.
1-2
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
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
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
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
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
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
Getting Started
1-5
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
1-5.1
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
geometry curve
The shape of an edge is directly controlled by the position of its vertices and of its topological edges onto the geometry entities (points, curves or surfaces).
The positioning of a vertex on a geometry entity is called "vertex snapping". The positioning of a topological edge on a geometry entity is called "edge mapping". It means
that the topological edge is deformed to lie on the geometry entity. IGG automatically detects when the two vertices of a topological edge lie on a same geometry entity and performs automatic mapping of the topological edge onto that geometry entity. IGG performs an automatic mapping when:
two vertices lie on a same curve, two vertices lie on different curves but can be considered as lying on the same curve at the
vertex tolerance,
two vertices lie on a same surface, two vertices lie on a surface and a curve belonging to that surface (i.e. trimming curve).
When one of the vertices of a topological edge does not lie on any geometry entity, IGG draws a straight line for the topological edge. Very often the input geometry is defined by a set of curves that all together define a closed region. These curves are however most of the time not connected in the sense that no topological 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
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.
internal vertices
FIGURE 1.5.1-3
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).
Greater tolerance
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
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
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
Edge 3 Edge 5
Edge 6
Edge 4
Edge 1
FIGURE 1.5.3-1 Two
1-8
IGG
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
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
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 :
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
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 ( ). ).
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:
IGG
1-11
Getting Started
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:
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
GUI description
2-2
GUI description
Current project name
Graphics area
Control area
Viewing buttons
Mouse coordinates
FIGURE 2.2.0-1 IGG
Information area
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
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.
FIGURE 2.2.2-1
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:
IGG
2-3
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
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:
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
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.
subpad
2-2.4
Control area
Message area
IGG
2-5
GUI description
Keyboard input area Mouse coordinates Information area Grid parameters area Viewing buttons
Display of warning messages notifying the user Display of request messages asking the user for inputs from Keyboard input area or
Graphics area
2-6
IGG
GUI description
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
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).
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.
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.
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
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.
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.
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 and drag the left mouse button to rotate the plane Press and drag the middle mouse button to translate the plane
IGG
2-9
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
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
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.
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
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.
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
TABLE 2.
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
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
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
2-15
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
3-2
IGG
Meshing fundamentals
3-2
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.
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.
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.
IGG
3-3
Meshing fundamentals
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
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
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
Meshing fundamentals
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.
IGG
3-5
Meshing fundamentals
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.
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
Meshing fundamentals
K J I
K I
During an extension operation, IGG automatically inserts a new internal face at the position of the reference face and increments the number of points of the block along the extension direction. This allows to keep the current shape of the block unchanged while being able to extend it. Internal edges are inserted in the new internal face at the same position and with the same shape as internal edges of the reference face. The connections of the reference face (vertices, edge, segments and patches) are deleted during the extension operation. A warning appears when a deletion of connections is 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
3-3
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.
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.
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
Meshing fundamentals
3-3.2
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
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.
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
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.
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.
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
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).
mapping disabled
edge 4
mapped on curve
single curve
IGG
3-11
Meshing fundamentals
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
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.
Greater tolerance
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.
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.
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
Meshing fundamentals
3-3.7
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
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
3-4
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
divide grid edges into segments, capture corners in a geometry. A grid point is then required to be exactly at the corner position,
3-14
IGG
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
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.
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.
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
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.
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
K = 17
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.
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.
3-16
IGG
Meshing fundamentals
2.
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.
IGG
3-17
Meshing fundamentals
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.
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.
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
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.
The face grid of the selected scope will be displayed to show the result of the generation.
IGG
3-19
Meshing fundamentals
Face generation
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
Range Selection
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.
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
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
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.
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
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.
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.
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.
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.
4.
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).
Block 1
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
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.
of an internal face
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):
>> 6
IGG
3-27
Meshing fundamentals
3-9
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.
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>.
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
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:
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-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
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
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
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.
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.
Patch 1
Patch 3
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
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.
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).
Edge 1
Edge 2
Limitation: two vertices belonging to an edge closed on itself should not be connected if a fixed point is attached to one of the two vertices, as illustrated in the following figure.
These vertices should not be connected if one of them is attached to a fixed point
closed on itself
IGG
3-35
Meshing fundamentals
Connections
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
3-36
IGG
Connections
Meshing fundamentals
Topological edge connection does not imply the entire grid edge connection.
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.
IGG
3-37
Meshing fundamentals
Connections
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.
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 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.
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:
Computes and visualizes the connection (optional) Non Matching Connections dialog box
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
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).
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.
).
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
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.
IGG
3-41
Meshing fundamentals
Blocks grouping
Group browser List of blocks in the group Check button allowing selective visualization of items.
groups browser.
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-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:
IGG
4-1
Basic Tutorials
Geometry Tutorial
4-2
4-2.1
Geometry Tutorial
Curves creation
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
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),
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>.
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.
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.
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.
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.
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.
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.
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.
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
surface
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.
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.
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.
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
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.
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
4-3
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
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
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
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
IGG
4-11
Basic Tutorials
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
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)
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
Basic Tutorials
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.
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.
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
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
second point e4 e2 e3 J I e1
first point
FIGURE 4.3.4-1
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.
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.
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
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
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
IGG
4-15
Basic Tutorials
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
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
4-16
IGG
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
J = 145
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
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
s9
J cste lines
s5
I cste lines
s1
s7 s8
s3 s4 s2
s10 s6
Select the Cluster Points icon ( ) in the Quick Access Pad/Grid/Insert/Edit menu. A dialog box for controlling the distribution is opened.
dialog box
4-18
IGG
Basic Tutorials
2.
Select the Define/Edit group button to define a new group. Another dialog box is opened.
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>).
IGG
4-19
Basic Tutorials
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.
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.
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.
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
Basic Tutorials
FIGURE 4.3.6-1
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
IGG
4-21
Basic Tutorials
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.
4-3.7
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
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
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
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.
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
5-2
IGG
Butterfly mesh
5-2
5-2.1
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
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.
IGG
5-3
Butterfly mesh
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
blocks orientation
5-2.3
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
Butterfly mesh
Secondly, the curves symbolising the edges can be modified to give the desired shape to the future edges and therefore to control the shape of the butterfly blocks. The curves can be modified by moving control points. Each curve has by default two control points at its extremities and additional control points can be inserted. Control points are constrained to move on a geometric surface 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.
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
For the right block, the internal face is not aligned in the preferential direction, leading to only two control sections.
Preferential direction
The geometric surface defining a section is generally fixed except for the first and last control 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.
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.
5-6
IGG
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.
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.
and mapped radial edges for first and last control section
IGG
5-7
Butterfly mesh
5-3
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:
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:
5-8
IGG
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
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".
IGG
5-9
Butterfly mesh
J K I
FIGURE 5.3.1-2
FIGURE 5.3.1-3
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 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
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.
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.
IGG
5-11
Butterfly mesh
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: 40
(0.4,0.4)
FIGURE 5.3.2-3
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 mesh
Active section
Control points copied from reference section to active section => same shape obtained
of section parameters
IGG
5-13
Butterfly mesh
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.
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 mesh
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.
reciprocity options
IGG
5-15
Butterfly mesh
5-3.4
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:
Periodic connections
If a parent block contains periodic connected patches, the butterfly topology cannot be created. The following message will appear:
To solve the problem, the periodic connections of the parent block must be deleted.
In the two previous cases, a message indicating that the butterfly topology cannot be created will appear:
IGG
5-17
Butterfly mesh
Butterfly management
Invalid connections can appear when creating a butterfly topology. For example, when two blocks are connected and a butterfly is created in the first block, the connection can become invalid if there is no buffer associated to the connected face. It means that this connection is nonsense within the topology chosen and that a full non matching configuration will be created. So the following message will appear:
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
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
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
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
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.
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
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.
IGG
5-21
Butterfly mesh
Butterfly management
5-4.6
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
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.
5-4.8
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.
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
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
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
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
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:
6-2
IGG
Templates
6-2.3
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.
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.
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
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.
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
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
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
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
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.
logarithmic functions log(x) for neperian logarithm, log10(x) for base 10 logarithm, exp(x),
6-6
IGG
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.
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)
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])),
IGG
6-7
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.
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-8
IGG
Scripts
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,
IGG
6-9
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
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
6-3.4
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 !!
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
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.
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
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)
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
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
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.
new_bspline()
IGG
6-15
Scripts
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
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_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.
IGG
6-17
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
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.
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.
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
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
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
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
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
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
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
Scripts
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).
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
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.
IGG
6-27
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]
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.
multi = MultiStage()
6-28
IGG
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
Scripts
# 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()
6-30
IGG
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
Scripts
importation of an IGG project, importation of IGG data files with automatic replacement, regeneration of faces, regeneration of blocks, project saving.
6-32
IGG
6-4
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
6-34
IGG
CHAPTER 7:
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:
IGG
7-1
Overview
Subpads
Pages
FIGURE 7.1.0-1
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
7-2
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.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
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.
This menu is strictly equivalent to the Geometry/Create Curve/Surf-Plane Intersection menu on page 9-12.
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-4
IGG
7-2.3.5 Offset
See the Geometry/Create Surface/Offset menu item description on page 9-18.
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
7-3
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.
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.
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
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.
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
The following message is displayed in the message area, asking to position the first vertex of the block second face:
IGG
7-7
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.
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
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.
Patch selection
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:
range limits
IGG
7-9
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
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.
IGG
7-11
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
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:
Duplicate Geometry
Duplicated blocks
Curve
Initial blocks
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.
IGG
7-13
FIGURE 7.3.1-9
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:
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
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.
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.
IGG
7-15
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.
FIGURE 7.3.2-1
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
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.
K J I
K I
During an extension operation, IGG automatically inserts a new internal face at the position of the reference face and increments the number of points of the block along the extension direction. This allows to keep the current shape of the block unchanged while being able to extend it. Internal edges are inserted in the new internal face at the same position and with the same shape as internal edges of the reference face. The connections of the reference face (vertices, edge, segments and patches) are deleted during the extension operation. A warning appears when a disconnection is performed.
IGG
7-17
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.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.
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:
7-18
IGG
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.
FIGURE 7.3.3-2
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
FIGURE 7.3.3-3
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-20
IGG
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.
IGG
7-21
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.
It allows to select the faces to generate. Simply left-click on the desired scope and press the Apply button to perform the generation of the corresponding faces. The face grid of the selected face(s) will be displayed to show the result of the generation.
7-22
IGG
Surface specification
Range selection
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
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:
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.
It allows to select the blocks to generate. Simply left-click on the desired scope. The desired blocks can be selected by entering with the keyboard their number in the dedicated box entry. The numbers must be separated by spaces. A range of blocks can also be selected by entering two numbers separated by a -. For example, enter 1 5 10-15 3 to select the blocks 1, 3, 5 and the range 10->15. The numbers do not have to be ordered and the same number can be entered more than one time. If a syntax error is made, a warning message will appear. Press the Apply button to perform the generation on the selected blocks. All the face grids of the selected block(s) will be displayed to show the result of the generation.
7-24
IGG
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.
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
7-4
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 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
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:
group creation
7-26
IGG
Simply enter the new group name and press the Create button to create the new group.
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:
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.
7-4.2
This page allows the creation, deletion and the visualization of block groups. Different groups can contain the same block(s).
IGG
7-27
Group browser
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:
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.
7-28
IGG
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:
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.
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.
page
IGG
7-29
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
Toggles edges.
Toggles shading.
7-30
IGG
CHAPTER 8:
File Menu
8-1
Overview
This Chapter describes the File menu options, which are used to manage the IGG system input and output, to import and export geometry and grid data, to control the system preferences and to end the interactive session.
8-2
8-2.1
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
8-1
File Menu
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
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
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
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
8-2.6
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
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
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
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.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
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.
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-4
IGG
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.
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.
IGG
8-5
File Menu
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-6
IGG
File Menu
FIGURE 8.2.15-1
IGG
8-7
File Menu
The following file types can be selected in the "File type" entry:
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-8
IGG
File Menu
The file created in this way can be read back by using the File/Import/IGES Data... menu item.
IGG
8-9
File Menu
The following file types can be selected in the "File type" entry:
ASCII
8-10
IGG
File Menu
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.
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.
IGG
8-11
File Menu
>> 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-12
IGG
File Menu
IGG
8-13
File Menu
>> 1 Const j index value (1...33) ? (Q) >> 25 The output file name is specified through a dialog box automatically opened by IGGTM.
8-14
IGG
File Menu
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.
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.
IGG
8-15
File Menu
Greater tolerance
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
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
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.
IGG
8-17
File Menu
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.
This page allows to control some aspects of the IGGTM graphical interface. Quick Access Pad is used to toggle the Quick Access Pad. Control Area toggles the visibility of the control area at the bottom of IGGTM main window. It allows to use a larger part of the screen for better graphics rendering, but cannot be used during the interactive generation of a mesh, since it hides the keyboard input area and the viewing buttons. Balloon Help is used to activate or deactivate the on-line balloon help available in IGGTM. When activated, help balloons are displayed when the cursor is located on some buttons or icons.
8-18
IGG
File Menu
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
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:
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.
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
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.
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
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/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
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
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
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
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
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
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
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
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
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
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
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
closest distance
: 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
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).
Circle/arc normal,
9-8
IGG
Geometry Menu
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.
IGG
9-9
Geometry Menu
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.
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.
9-10
IGG
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.
IGG
9-11
Geometry Menu
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-12
IGG
Geometry Menu
c1
c1
longitudinal curves
(boundaries of the surfaces) points selected on curve c1, defining the cutting plane
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.
IGG
9-13
Geometry Menu
The specified values must be null or positive and correspond to a percentage of the curve length. A null value means that no extension will be performed for the specified end. For example, specifying a factor of 0.1 at one end of curve whose length is 5, will extend the curve by an amount of 0.5. This option creates a new curve. The reference curve remains unchanged to avoid side effects like for example position modification of vertices lying on the curve.
9-14
IGG
Geometry Menu
Curve 1 Gap
Curve 2
FIGURE 9.2.23-1
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.
IGG
9-15
Geometry Menu
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).
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-16
IGG
Geometry Menu
Intermediate curves
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.
1
FIGURE 9.2.28-1 Curve
IGG
9-17
Geometry Menu
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.
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
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
9-2.36 Edit->Mirror
Geometry/Edit /Mirror is used to mirror all the selected geometry entities (curves and surfaces) according to a mirror plane. The following prompts are given to specify the mirror plane: Mirror Plane Normal (q) ? >> 0 0 1 Mirror Plane Origin (q) ? >> 0 0 0 A curve used in the definition of a surface (i.e. lofting curve) cannot be freely mirrored, since it would implicitly change the definition of the surface. To mirror such a curve a copy must first be made (see section 9-2.32). The copy can then be freely mirrored. To quit this option, enter q and press <Enter>. This tool can also be accessed through the Quick Access Pad/Geometry/Edit/Mirror menu item.
9-20
IGG
Geometry Menu
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
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-22
IGG
Geometry Menu
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>.
IGG
9-23
Geometry Menu
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.
moving the mouse over a non-selected point highlights it, pressing the left mouse button selects it,
9-24
IGG
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.
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,
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
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
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.
chooser
The <Ctrl> key is used in combination with the mouse to select several surfaces in the chooser.
IGG
9-27
Geometry Menu
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-28
IGG
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.
settings
IGG
9-29
Geometry Menu
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
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
9-32
IGG
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.
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-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
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
Periodicity types
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:
10-4
IGG
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:
If the 2D project is a new one, the default value is 1. Otherwise the value of the 2D project which is loaded is displayed. This value has an influence on the solver convergence and should be set according to the mesh size. In particular for the EURANUS solver, the value should not be lower than the smaller cell of the mesh, otherwise it can slow down the convergence.
Number of segments for the active edge Limits of the active segment Number of points for the active segment
FIGURE 10.2.2-1 Grid
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
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:
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.
The minimum number of grid points in one direction is 2, which corresponds to one cell.
10-6
IGG
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.
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
40
s2
30
s3
Fixed point
K J 20 I 35
s1
of segment division
IGG
10-7
Grid Menu
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:
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.
Resized segment
30
s2 40
s3
K J 30 I
Modified segments
10-8
IGG
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.
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
IGG
10-9
Grid Menu
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).
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-10
IGG
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.
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
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.
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-12
IGG
Grid Menu
b) Connections
Matching connections are obtained between two patches with same number of grid points along the two directions, and when all their points are matching at a specified tolerance. Non matching 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.
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
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.
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:
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
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.
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.
IGG
10-15
Grid Menu
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.
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.
Patch 1
10-16
IGG
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
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.
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
Computes and visualizes the connection (optional) Non Matching Connections dialog box
IGG
10-17
Grid Menu
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:
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
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).
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
selected block name and the grid points number in each direction are displayed. By default, when opening this dialog box, the active block is selected. If the selected block is not generated or has been modified since the last generation (by moving a vertex, for example), the following message will appear:
It asks for block regeneration. If the "no" button is pressed, the quality analysis is not performed. The next entry Butterfly block is a special item dedicated to butterfly topologies allowing to choose the butterfly block in which the quality will be checked. When the block selected in the first entry is a parent block, the second entry is activated, displaying the number of the butterfly block which is analyzed. The range goes from 0 to 6. The number 0 represents the inner block and is therefore always present. The other numbers between 1 and 6 represent the parent face number and thus the associated buffer blocks. If there is no associated buffer, the corresponding number does not appear. The Quality Criterion frame is used to choose the criterion type which will be used to analyze the block cells quality. The criterion is chosen through the Type pull-down menu. According to the 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
FIGURE 10.2.4-3
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).
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:
IGG
10-21
Grid Menu
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
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
Ratio definition
10-22
IGG
Grid Menu
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
deviation definition
IGG
10-23
Grid Menu
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.
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.
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.
10-24
IGG
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:
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
On the contrary, if there are cells with negative volumes after the complete search, a message like the following will appear:
IGG
10-25
Grid Menu
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-26
IGG
Grid Menu
If the internal edge belongs to an internal face, its index cannot be changed. To quit this command, enter q and press <Enter>.
It asks for block regeneration. If the block is not generated and that the "no" button is pressed, the dialog box of the next figure will appear but without being able to do 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
FIGURE 10.2.9-2
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
When an internal face is created, an internal edge is also created for each existing face crossing the new face. This edge is shared by the faces which means that modifying the edge on one face affects the other face as well. This tool can also be accessed through the Quick Access Pad/Grid/Insert/Edit page.
10-28
IGG
Grid Menu
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.
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
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.
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
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.
The orthogonality parameters are not active for the four boundaries interpolation (button 1-2-3-4 activated). When orthogonality control is applied, the mesh fits the four boundaries of the active area and is orthogonal to the two opposite active edges
The grid inside the active area can be smoothed using an elliptic solver by pressing the Smooth 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
edge 2
edge 1
Relative Normal range on edge 1: 0.1 -> 0.9 Edge 1 Normals Definition
d1 = 0.1 x L d2 = 0.9 x L d1 d2
Overlapping cells
10-32
IGG
Grid Menu
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
10-34
IGG
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>.
IGG
10-35
Grid Menu
Face 4 of block 1
Block 1
J K I
Reference face range Click on the border to change the current limit Relative orientation of reference and target face
The first thing to choose is a reference and a target face between which the copy will proceed. They are selected by entering their indices (Block and Face indices) in the From and To boxes 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
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).
IGG
10-37
Grid Menu
Active face 1 or 2 3 or 4 5 or 6
Direction K J I
Active face
10-38
IGG
Grid Menu
FIGURE 10.2.25-1 MG
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.
IGG
10-39
Grid Menu
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-40
IGG
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:
It asks for block regeneration. If the block is not generated and that the "no" button is
IGG
10-41
Grid Menu
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
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.
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
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
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:
IGG
10-43
Grid Menu
It asks for block regeneration. If the "no" button is pressed, the merging will not be performed. After the merging has proceeded, the following prompt will appear, allowing the selection of a face to perform another merging operation: Select a New Face to merge, <3> to quit This tool can also be accessed through the Quick Access Pad/Grid/Insert/Edit page.
10-44
IGG
Grid Menu
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.
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
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-46
IGG
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.
Clustering types
dialog box
IGG
10-47
Grid Menu
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
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
FIGURE 10.2.36-2
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
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
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).
IGG
10-51
Grid Menu
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
FIGURE 10.2.37-1
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
IGG
10-53
Grid Menu
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-54
IGG
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.
IGG
11-1
View Menu
Show the selected patches as wireframe Hide solid for selected patches Hide wireframe for selected patches
FIGURE 11.2.1-1 Patch
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
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.
IGG
11-3
View Menu
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
The Block box allows to choose the active block in which the surface grids will be scrolled. Next to this box, the active block name and the amount of grid points in each direction (according to the coarse grid levels selected) are displayed. The I, J and K scrollers allow to interactively sweep the surface grid along the three directions. While scrolling, surface grids are displayed for each constant index direction.
It asks for block regeneration. If the block is not generated and that the "no" button is pressed, the dialog box of the next figure will appear but without being able to do 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
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
A different coarse grid level can be specified in each grid direction. The following prompt is given to specify the coarse grid levels: Levels ( 0 / 3, 0 / 4, 0 / 2 ) (q) >> 2 2 1 To quit this command, enter q and press <Enter>.
11-2.6 Repetition
View/Repetition... opens the following dialog box to control the repetition of the blocks on the active view:
For each block, the number of repetition desired can be set in the Nb Repet entry. The repetition of all blocks can be displayed or hidden respectively by pressing the Show or Hide button. To perform a repetition, IGGTM takes the information about the periodicity of each block (angle, rotation axis,...) in the Grid/Periodicity dialog box. By default, the repetition is not displayed.
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
11-6
IGG
View Menu
The position can be specified as the original, full screen, half top, half bottom, half right or half left of the screen:
The original position is used to display four views in the graphics area. The full position displays the active view in all the graphics area. Half top, half bottom, half right or half left displays the active view in the corresponding half
part of the graphics area. The orientation can be XY, XZ, YZ or XYZ. The Apply button is used to update the active view.
11-2.10 Perspective
View/Perspective is used as a toggle to switch between orthogonal and perspective projection in the active view. By default, the orthogonal projection is used. In perspective projection, the selection of curves and edges and the rendering of hidden surfaces may not succeed.
IGG
11-7
View Menu
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
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-8
IGG
12-1 Overview
This chapter describes the file formats used in IGGTM or generated by IGGTM. There are basically two categories of files: files used to import and export a geometry or a grid (points, curves, surfaces or blocks) and files used to save and reload an IGGTM project. First the file formats used to import geometry and grid data are described. Then, the file structure of an IGGTM project will be presented.
IGG
12-1
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:
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
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 ... ...
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
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
... 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.
The first line contains a comment, not interpreted by IGGTM. The second line contains the number of files that will be imported. The following lines contain the file names. The corresponding files must be located in the same
directory as the .dst file.
IGG
12-5
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
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.
IGG
12-7
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
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
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
end index2
FIGURE 12.3.2-1
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
FIGURE 12.3.2-2
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
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
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
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
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
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
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
12-14
IGG
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.
IGG
13-1
Tutorials
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).
Select both surfaces (Geometry/Select/Surfaces) and compute the intersection (Quick Access Pad/Geometry/Curve/Surf-Surf Inters).
13-2
IGG
Tutorials
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:
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
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.
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.
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.
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.
Move the vertex near the closest circle. It gets attracted to the circle. Left-click to fix the new vertex position.
13-4
IGG
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
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.
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
17.
Select the Project Face icon in the Quick Access Pad/Grid/Generate page.
Projection on selected surfaces. Validation level 2. Boundary projection off, since the edges are already on the surface (automatic mapping feature).
All the boundary faces of the block are now properly generated.
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
13-6
IGG
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:
Block 2, Face 4
The extrusion automatically creates four internal edges in the active face of the first block. At each intersection between two internal edges and between the internal edges and the boundary edges, a vertex/fixed point is created (they can be visualized by pressing repeatedly the Toggle Vertices icon of the Quick Access Pad/View/Grid page). These internal edges are used as the basis for the creation of the boundaries of the second block. During the creation of the new block, IGG automatically connects the new block to the internal edges of the first block. The vertices at intersection of the internal edges are consequently used by the new block. When extruding a new block, IGG automatically connects the new block to the 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
The face 4 of the first block is automatically divided into 9 patches to allow a connection with the second block, as shown in the following figure. The central patch is automatically connected to the adjacent patch of the second block (Block 2 Face 3 patch).
The internal edges will now be deformed to capture the intersection curve of the two cylinders. This will be done by interactively moving the vertices and snap them to the intersection curve.
8. 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
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.
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.
IGG
13-9
Tutorials
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.
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.
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
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.
IGG
13-11
Tutorials
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
viii
IGG