Cfd-Geom v2014.0 User Manual
Cfd-Geom v2014.0 User Manual
0
User Manual
©1997-2014 by ESI-Group
This ESI Group documentation is the confidential and proprietary product of ESI-Group, Inc. Any unauthorized use, reproduction, or transfer of
this manual is strictly prohibited. This documentation is subject to limited distribution and restricted disclosure.
CFD-ACE™, CFD-ACE+™, CFD-CADalyzer™, CFD-VIEW™, CFD-GEOM™, SimManager™, CFD-TOPO™, CFD-VisCART™, CFD-Micromesh™ and CFD-
FASTRAN™ are registered trademarks of ESI-Group.
Portions of this product are owned by third-party software vendors.
Revision Information
The information in this guide applies to all current ESI CFD products until superseded by a newer version of this guide.
Published July 2014
UA/CFD_/14/08/00/A
Disclaimers
The documents and related know-how herein provided by ESI Group subject to contractual conditions are to remain confidential. The CLIENT
shall not disclose the documentation and/or related know-how in whole or in part to any third party without the prior written permission of ESI
Group.
About ESI GROUP
ESI provides a world leading software editor for the numerical simulation of prototype and manufacturing process engineering in applied
mechanics. The key to ESI's success is the use of realistic material physics, providing "as good as real" virtual solutions, in order to replace the
lengthy trial and error processes on real prototypes.
ESI has developed an extensive suite of coherent, industry-oriented applications to realistically simulate a product’s behavior during testing and
real life use; to refine manufacturing processes for desired product performance, and to evaluate the effect of the environment in which the
product is deployed.
ESI’s products represent a unique collaborative and open environment for End-to-End Virtual Prototyping, thus eliminating the need for
physical prototypes during product development. This solution allows a productivity gain, innovation acceleration and significantly reduced
costs.
For more information about ESI Group, visit www.esi-group.com.
About ESI CFD
ESI CFD is a technology leader in the field of advanced computational fluid dynamics simulation software backed by more than 20 years of
research-based knowledge throughout a wide range of industries. ESI CFD’s broad range of products and services provide all of the necessary
tools for advanced multiphysics analysis in a virtual prototype environment, significantly reducing time and expense through comprehensive
up-front modeling and simulation. Key focus areas include aerospace, automotive, biomedical, fuel cells, MEMS, microfluidics, plasma, and
semiconductor.
Contact Information for ESI CFD
ESI CFD, Inc.
6767 Old Madison Pike, Ste. 600
Huntsville, AL 35806
Phone: (256) 713-4700
Fax: (256) 713-4799
Software Support: [email protected]
Software Sales: [email protected]
Table Of Contents
Chapter 1. CFD-GEOM Overview .................................................................................................................... 1
ESI Group Around the World .....................................................................................................................................1
Customer Support .....................................................................................................................................................2
CFD-GEOM Features ..................................................................................................................................................5
File Types ...................................................................................................................................................................6
v
CFD-GEOM V2014.0 User Manual
vi
Table Of Contents
vii
Chapter 1. CFD-GEOM Overview
1
CFD-GEOM V2014.0 User Manual
Customer Support
ESI-CFD provides excellent customer support, with staff spread around the globe. Please call on us if you have any
questions about the use of your software or modeling applications.
Go ToMeeting
http://www.gotomeeting.com / http://www.joingotomeeting.com
An e-mail invitation is usually issued, but you can look for the meeting here.
Community Forum
http://www.esi-cfd.com/component/option,com_smf/Itemid,188/
2
CFD-GEOM Overview
Used for consulting types of questions (for example, How can I do this?, Have you ever
done this?, Does anybody have an example of that?, and so forth).
Only registered members are allowed to access this section, so you will need to log in or
register for an account with Community Forums.
• Platform information
• Product/Application version number
• Modules/Features you were using
• Type of problem you were working on
• Any error messages that you may have received in the output/log files or on the screen.
• Applicable files (GGD, VGD, DTF, output files, etc. - put larger files on the ftp site)
• Precise description of how you observed the problem
• Instructions on how Support can reproduce the problem
Use your favorite ftp client or web browser to upload files to our ftp site, ftp://ftp.esi-cfd.com. The login name and
password for the public account on the ftp site is listed in the Knowledge Base section of the CFD Portal.
Customers who prefer to use a web browser with drag-and-drop functionality should use the following syntax:
ftp://username:[email protected]/pub
After you have accessed ftp.esi-cfd.com, you can create a directory for your files under the pub subdirectory. In
your email to Support, inform Support where the uploaded files are located.
3
CFD-GEOM V2014.0 User Manual
• You can choose to send output files, log files or scripts instead of GGD, VGD, DTF, etc. files. Also, in case of
DTF files, you can choose to send only the output of the view data command:
This prints only the simulation data contained in the DTF file. There is no geometry or boundary condition
information printed. Support can resolve many problems just by looking at the simulation data settings.
• It is ESI Group policy to handle all customer data as confidential, even if a Non-Disclosure Agreement has
not been executed.
• ESI Group will sign a Non-Disclosure Agreement upon request. Contact your sales agent or Distributor to
discuss this option.
• Customer Support can set up password-protected ftp accounts on the ftp site so that no other users can
see your directory or files on the ftp server. No one but you and Support will know you are putting files on
the ftp server. Ask Support if you wish to have a password-protected ftp account.
• Support may be able to help you using GoToMeeting. GoToMeeting enables an on-line meeting where ESI
CFD Support Engineers can see your desktop, including your DTF file, and see the problems you are having
without the need for you to transfer any files off of your computer. GoToMeeting can allow the remote
party (Support) to take control of the mouse and drive the session, but this does not happen by default
(you would have to give permission). Please request a GoToMeeting session with Support if you feel this is
the best way to resolve your problem.
• You can often create a simplified model that represents your real model, but has different boundary
condition values and a different geometry. Sometimes in the process of creating a simplified model to
send to Support, you may discover that the simplified model works fine, and this additional information is
often enough to identify the root cause of the problem.
% python2.4_cfd
>>> import platform
>>> print platform.platform()
>>> print platform.architecture()
<Ctrl-Z> to end the session (Ctrl-D on Unix/Linux)
In addition, you should provide information about which software package you downloaded. If you are on a Unix
or Linux system, or you can run Cygwin under Windows, you can get the canonical platform name by running this
script:
% getCanonical.sh
If ESI_HOME is set correctly and $ESI_HOME/UTILS_2007/bin is first in your PATH, both these commands will be
found. Windows users without Cygwin can send the output from the Python commands; that is sufficient.
4
CFD-GEOM Overview
Windows users may first need to set PYTHONHOME so that the interpreter finds its required library files. Do this
either under Settings/Control Panel/System/Advanced/Environment Variables, or from a DOS shell:
% set PYTHONHOME="%ESI_HOME%\UTILS_2007\Python2.4_CFD"
-or-
2. On the command line, enter, for example, CFD-ACE-GUI -v and press Enter. This command is case
sensitive and includes a space before –v. A file (CFD-ACE-GUI.version in this case) is created, in the current
working directory, which contains the build date and version information.
CFD-GEOM Features
5
CFD-GEOM V2014.0 User Manual
• Several models can be open at the same time. Parts or entire models can be copied to other models while
automatically filtering duplicate entities
• Capability to mix and match geometries and grids from different models with automatic database updating
File Types
CFD-GEOM opens, imports, and saves the file types listed below. To open a particular file type, click the button in
the File Type section. Some of the file types require you to provide additional information.
When you select the DTF file type, the Read GGD file option becomes available. The Read GGD file option reads a
GGD file, opens the DTF file and all 2D unstructured grids, and attaches to their corresponding origins (surfaces,
faces, etc.). DTF files that are gzipped can be read using the Read gzipped file option. However, this option is
available for Unix platforms only.
When you select the PLOT3D File Type option for output, you must indicate whether the file is a formatted,
unformatted, or binary grid file. You can specify if the file is double precision and contains blanking information.
The PLOT3D File Type option also has the Read IBC file option. The IBC file specifies the locations of block
interfaces, boundary conditions, and volume conditions for the output grid. It includes entity locator information (a
unique key) for the CFD-GEOM database. CFD-ACE and other flow solvers may use this file for flow solution set up
purposes. A description of the other file types read by CFD-GEOM is given in the following table.
IGES An externally defined geometry that is compatible with the IGES 5.3 standard during import but
CFD-GEOM currently only exports up to the IGES 5.1 standard.
SAT Standard ACIS text. A solid modeling format defined by Spatial (www.spatial.com) and supported
by many CAD systems. SAT files typically contain solid bodies or parts. When read into CFD-
GEOM, these parts are converted to unstructured domains, which can then be immediately
meshed with triangular and tetrahedral elements. The underlying geometry may also be used as
the basis for structured grid systems. CFD-GEOM can currently read and write (with some
limitations) SAT versions 16 and earlier.
DTF Files stored in DTF (Data Transfer Facility) format. This is the standard grid format used for ESI
CFD software.
DXF DXF is the AUTOCAD geometry format; CFD-GEOM converts all recognized 2D entities to their
equivalent CFD-GEOM representation. The POLYLINE and SPLINE entities are not currently
supported. The majority of 3D DXF entities are in a proprietary format and are not supported.
However, the 3DFACE entity is recognized and converted to a discrete surface representation
within CFD-GEOM.
6
CFD-GEOM Overview
STL STL (stereo-lithography) data sets. ASCII and binary STL files are also supported.
7
Chapter 2. User Interface
Introduction to CFD-GEOM
This section describes the CFD-GEOM GUI and its two integrated modules: Geometry Module and Grid Generation
Module.
9
CFD-GEOM V2014.0 User Manual
GUI
The CFD-GEOM GUI includes the areas listed in the following table. An annotated screen capture of the GUI itself
follows to help you associate the areas in the table with the areas on the GUI..
Area Description
Title Bar displays the application name (CFD-GEOM) as well as the full file path for the
active model. It also displays the application window minimize, maximize, and
close buttons.
Menu Bar displays the most often-used menu options. Each menu lists a "family” of
selections, and each selection performs a specific action. It also displays the
viewer window minimize, maximize, and close buttons.
Toolbar contains buttons that are used as shortcuts to the same items that are
accessible from the Menu Bar. The most frequently used functions are
grouped together as meaningful, related buttons.
Rendering Toolbar contains buttons that control the display characteristics of surface, face grids,
unstructured surface grids,volume cut plane grids, point display on edges and
exposed boundaries for surfaces.
Graphics Area displays an area where you view, import, select, add, change, and delete
entities. You can click on the area of the window to navigate to that section.
Entity Bar controls blanking and picking options for objects that appear in the graphics
area. Click an area of the entity bar to navigate to that section.
Control Panel contains a type of toolbox for manipulating objects in the graphics area. It has
three main tabs: Geometry, Grid, and BC/VC editor. Each of these tabs has
related buttons that further manipulate and refine objects. Click an area of
the window to navigate to that section.
Information Bar shows the current geometric Precision value, level, and number of cells. You
can change the level by clicking the down arrow and selecting another level
type. The active level appears in the Level field. Change the active level by
clicking the arrow in the Level field and choosing another option.
Status Bar displays informative messages, prompts you through multi-step operations,
shows a progress bar when reading or saving files, and displays a brief
description of an item when you place the cursor over a button, menu, or
other control
10
User Interface
Integrated Modules
Full integration of the various modules is a very important feature; for example, it allows you to modify the
geometry and automatically update the entire model, including the grid, instantaneously. A conceptual overview
of the CFD-GEOM software structure is shown below.
11
CFD-GEOM V2014.0 User Manual
Geometry Module
The Geometry Module enables you to define the geometry or modify the geometry read through IGES or Plot3D
data formats. Several features automatically clean models whose data is read via IGES and Plot3D and
automatically recreate grids whose data is read via Plot3D.
NURBS
The geometry module is based on Non-Uniform Rational B-Splines (NURBS) geometric primitives only. All imported
IGES files that contain primitives other than NURBS are automatically converted to NURBS. This limits the number
of interpolation, intersection, and grid generation routines that need to be developed, while not restricting
geometric modeling capabilities. During geometry creation and IGES import, duplication of geometry is
automatically prevented.
• Full implementation of 3D geometries including points, lines, arcs, circles, point interpolating curves and
splines, and surfaces
• Wireframe and surface modeling supported with primitives
• In the case of wireframe modeling, transfinite interpolants of boundary curves provide the basis for the
structured grid generation process which defines surfaces.
• In the case of surface modeling, unstructured or structured grid generation is directly performed on the
NURBS surface.
12
User Interface
CFD-GEOM performs certain functions, such as duplicating and translating, duplicating and rotating, and scaling, on
any entity including structured and unstructured grid entities (not just geometry) and automatically and
instantaneously updates all data structures.
An important step between geometry modeling and grid generation is the definition of the topology. CFD-GEOM
uses a bottom-up approach in labeling geometry elements as edges, faces, and blocks.
Edge In structured grid generation, an edge forms the basic element for both surface and volume grid
generation. An edge is comprised of one or more connecting geometry elements, i.e., lines and
curves, having n grid points and n-1 line segments connecting those grid points. A user-specified
collection of connected edges forms an edge set. Be aware that grid points along an edge (edge grid
points) are different from the points created using geometry creation tools (geometric points),
though their coordinate values may be the same.
Face Four user-specified edge sets (fewer for degenerate topologies) form a face, the basic construct for
surface grid generation. A face is a surface discretisation created by either TFI from the edge sets or
by TFI from a previously created NURBS surface. A user-specified collection of one or more faces can
be combined to form a face set.
Block Six face sets (fewer for degenerate topologies) combine to form a block, the basic construct for
volume grid generation. A block is a volume discretisation created from face sets that form its
boundaries. In some cases it is possible to combine two or more grid blocks into a single grid block,
resulting in a composite block. The TFI grid lines of each member block are preserved within the
composite block.
The final result of defining a topology is a collection of one or more blocks that form a single or multi-domain grid.
Both 2D and 3D multi-block structured grids can be created and are fully supported within CFD-GEOM.
13
CFD-GEOM V2014.0 User Manual
Shell consists of a set of connected surfaces or faces. The surfaces or faces that create a shell must create
a water tight volume, i.e. there can be no gaps or cracks in order to create the shell.
Introduction to CFD-GEOM
This section describes the CFD-GEOM GUI and its two integrated modules: Geometry Module and Grid Generation
Module.
14
User Interface
15
CFD-GEOM V2014.0 User Manual
GUI
The CFD-GEOM GUI includes the areas listed in the following table. An annotated screen capture of the GUI itself
follows to help you associate the areas in the table with the areas on the GUI..
Area Description
Title Bar displays the application name (CFD-GEOM) as well as the full file path for the
active model. It also displays the application window minimize, maximize, and
close buttons.
Menu Bar displays the most often-used menu options. Each menu lists a "family” of
selections, and each selection performs a specific action. It also displays the
viewer window minimize, maximize, and close buttons.
Toolbar contains buttons that are used as shortcuts to the same items that are
accessible from the Menu Bar. The most frequently used functions are
grouped together as meaningful, related buttons.
Rendering Toolbar contains buttons that control the display characteristics of surface, face grids,
unstructured surface grids,volume cut plane grids, point display on edges and
exposed boundaries for surfaces.
Graphics Area displays an area where you view, import, select, add, change, and delete
entities. You can click on the area of the window to navigate to that section.
Entity Bar controls blanking and picking options for objects that appear in the graphics
area. Click an area of the entity bar to navigate to that section.
Control Panel contains a type of toolbox for manipulating objects in the graphics area. It has
three main tabs: Geometry, Grid, and BC/VC editor. Each of these tabs has
related buttons that further manipulate and refine objects. Click an area of
the window to navigate to that section.
Information Bar shows the current geometric Precision value, level, and number of cells. You
can change the level by clicking the down arrow and selecting another level
type. The active level appears in the Level field. Change the active level by
clicking the arrow in the Level field and choosing another option.
Status Bar displays informative messages, prompts you through multi-step operations,
shows a progress bar when reading or saving files, and displays a brief
description of an item when you place the cursor over a button, menu, or
other control
16
User Interface
17
CFD-GEOM V2014.0 User Manual
Integrated Modules
Full integration of the various modules is a very important feature; for example, it allows you to modify the
geometry and automatically update the entire model, including the grid, instantaneously. A conceptual overview
of the CFD-GEOM software structure is shown below.
Geometry Module
The Geometry Module enables you to define the geometry or modify the geometry read through IGES or Plot3D
data formats. Several features automatically clean models whose data is read via IGES and Plot3D and
automatically recreate grids whose data is read via Plot3D.
NURBS
The geometry module is based on Non-Uniform Rational B-Splines (NURBS) geometric primitives only. All imported
IGES files that contain primitives other than NURBS are automatically converted to NURBS. This limits the number
of interpolation, intersection, and grid generation routines that need to be developed, while not restricting
geometric modeling capabilities. During geometry creation and IGES import, duplication of geometry is
automatically prevented.
• Full implementation of 3D geometries including points, lines, arcs, circles, point interpolating curves and
splines, and surfaces
• Wireframe and surface modeling supported with primitives
• In the case of wireframe modeling, transfinite interpolants of boundary curves provide the basis for the
structured grid generation process which defines surfaces.
• In the case of surface modeling, unstructured or structured grid generation is directly performed on the
NURBS surface.
18
User Interface
CFD-GEOM performs certain functions, such as duplicating and translating, duplicating and rotating, and scaling, on
any entity including structured and unstructured grid entities (not just geometry) and automatically and
instantaneously updates all data structures.
An important step between geometry modeling and grid generation is the definition of the topology. CFD-GEOM
uses a bottom-up approach in labeling geometry elements as edges, faces, and blocks.
Edge In structured grid generation, an edge forms the basic element for both surface and volume grid
generation. An edge is comprised of one or more connecting geometry elements, i.e., lines and
curves, having n grid points and n-1 line segments connecting those grid points. A user-specified
collection of connected edges forms an edge set. Be aware that grid points along an edge (edge grid
points) are different from the points created using geometry creation tools (geometric points),
though their coordinate values may be the same.
Face Four user-specified edge sets (fewer for degenerate topologies) form a face, the basic construct for
surface grid generation. A face is a surface discretisation created by either TFI from the edge sets or
by TFI from a previously created NURBS surface. A user-specified collection of one or more faces can
be combined to form a face set.
Block Six face sets (fewer for degenerate topologies) combine to form a block, the basic construct for
volume grid generation. A block is a volume discretisation created from face sets that form its
boundaries. In some cases it is possible to combine two or more grid blocks into a single grid block,
resulting in a composite block. The TFI grid lines of each member block are preserved within the
composite block.
The final result of defining a topology is a collection of one or more blocks that form a single or multi-domain grid.
Both 2D and 3D multi-block structured grids can be created and are fully supported within CFD-GEOM.
19
CFD-GEOM V2014.0 User Manual
Shell consists of a set of connected surfaces or faces. The surfaces or faces that create a shell must create
a water tight volume, i.e. there can be no gaps or cracks in order to create the shell.
20
Chapter 3. Menu Bar
File Menu
Edit Menu
View Menu
Window Menu
Help Menu
File Menu
Click File on the menu bar to access the following commands:
New
Open
Import
Save
Save As
Save As DTF
Close
Close All
Image
Quit
File Menu
21
CFD-GEOM V2014.0 User Manual
NEW
Click the New command to open the New Model dialog box. Use this dialog box to enter a valid name for the new
model and, optionally, journaling and unit preferences. After setting the required data, click OK to create a new,
empty model and viewer. You can then import data into this model or begin creating objects. The New command
is also available from the Standard toolbar.
OPEN
Click the Open command to open the Open File dialog box and open geometries or grids that have been created in
one of the listed formats. You can navigate through the file directory by using the directory options or the
directory up button. You can also use the buttons to display the files as a list, icons, or with details,
respectively.
The File Filter box provides a number of filter options. The default file filter is *.GGD. If you select one of the file
types listed at the top of the dialog box, the File Filter box automatically updates. Conversely, changing the file
filter type using the File Filter options updates the buttons and check boxes at the top of the dialog box.
22
Menu Bar
Open a file
1. Select the Open option from the File Menu. The Open File dialog box appears.
2. Select a file type from the File Type section.
3. Double-click on a file name in the file list or select a file from the file list and click OK.
23
CFD-GEOM V2014.0 User Manual
IMPORT
The Import option imports models from various file formats into CFD-GEOM so that you can begin working on your
project. The Import option behaves similarly to the Open option with the difference that Import reads the file into
the current model. GGD files cannot be imported into an existing model unless the model is empty.
The precision used when importing can either be the one stored in the file, or the precision using the Model
Relative Precision option. The Model Relative Precision option will multiply the diagonal of the bounding box that
encloses the geometry by the factor specified on the import panel. The Model Relative Precision option has been
found to improve file import for CAD files.
As of version 2008.0 of CFD-GEOM, CAD files can now be imported directly into CFD-GEOM using the ACIS Interop
Libraries. Note that these import options require a new license. If you are interested in one of these import
options, please contact the your sales account manager.
With the addition of these new CAD file import options, new assembly processing options have been added:
Interface Parts Solids in the CAD file will be processed such that they will share common surfaces.
Solids will be combined into a single solid and any shared surfaces will be
Combine Parts removed.
Starting with version 2013.0 there is now an option to read all CAD files, excluding IGES, as discrete surfaces
instead of actual CAD geometry. Using this option will convert the CAD model into a discrete representation. This
option is typically much faster and can be used to, usually, obtain a closed, water-tight model but without the
modeling flexibility inherent in CAD models.
The following is a list of the readers and their support on different platforms:
Window (32- and 64-bit Parasolid, UG, SolidWorks, Pro/E, Catia V4, Catia V5 and Step
Linux (32-and 64-bit) Parasolid, UG, Pro/E, Catia V4 and Step
In addition, for 2013.0, CAD data may be saved to Parasolid or Step formats.
When you select the Import option, the Open File dialog box appears. Use the directory drop-down menu and
directory up buttons to navigate through the file directory. The default file filter is *.DTF. However, the latest
selected file format is recorded in the registry and will automatically be set upon the next invocation of the Import
File command. As you select the radio buttons, the file filter field is automatically updated. The file list can be set
to display the files as a list, icons, or with details. CFD-GEOM supports the file formats shown in the Open File
window:
24
Menu Bar
Import a file
1. Select the Import option from the File Menu. The Import File dialog box appears.
2. Select a file type from the File Type section.
3. Double-click on a file name in the file list or select a file from the file list and click OK.
25
CFD-GEOM V2014.0 User Manual
SAVE
The Save option saves a model in one of the following formats: the original GGD file, DXF, TAB, IGES, VPL, STL and
SAT. Any changes that have been made during the current CFD-GEOM session will be written to the file. The Save
option updates the original file with the new information. If you want to preserve the original file then use the
Save As option. The Save option is also available in Toolbar >-Save.
Save a file
1. Select the Save option from the File menu.
Note The first time you are saving a file, the Save File dialog box opens. If the file has been previously
saved, no dialog box opens.
4. Click OK to save the file. The file is saved to the location you have selected. When saving the file again,
just click the Save button on the Tool Bar. No dialog box will appear.
SAVE AS
The Save As option saves the models in the file format that you choose. The Save As option is also available in
Toolbar > Save As. CFD-GEOM supports various file types:
26
Menu Bar
2. In the File Name window, enter a different file name if you want to change the name of the file.
3. In the File Filter window, click the down arrow key and select one of the file formats.
27
CFD-GEOM V2014.0 User Manual
2. In the File Name window, select the file you want to overwrite.
3. Click OK to save the file. A warning box appears asking if you want to Overwrite, Append, or Cancel.
4. If you select Overwrite, the data you are saving will overwrite existing data in the file you have selected.
5. If you select Cancel, the dialog box will close and the data will not be saved. However, it will remain in the
current session of CFD-GEOM.
SAVE AS GGD
Version 2013.0 allows the saving of volume mesh data (unstructured domains only) directly to the GGD file; the
“Save Volume Meshes” button will become active when any unstructured domain has been meshed. Subsequent
saves/reads will honor this setting. Additionally, the option to save the GGD file as compressed can be selected in
order to save disk space. The file will automatically be given a .gz extension and subsequent saves will honor this
setting.
SAVE AS DTF
Beginning with V2009.2, a new option for outputting DTF files is now available. CFD-GEOM now offers 2 types of
DTF output—nonsimplified and simplified.
28
Menu Bar
NonSimplified In the non-simplified form (the default), the topology of the output mesh matches that of
(default) the CFD-GEOM mesh system. For 3-D meshes, each structured, semi-structured, and
unstructured domains, as well as filaments, are written to their own zones with one cell
group per zone. Similarly, the surfaces/faces that bound a zone are written to separate face
groups/patches. Where appropriate, face groups/patches are written as interfaces in each
zone that shares them. Similar rules apply for 2-D mesh systems. The result is that, the
output mesh often reflects the artificial decomposition needed in CFD-GEOM to produce
the meshes. For downstream applications such as CFD-ACE-GUI, this can result in a very
large number of volumes and surfaces upon which volume and boundary conditions must
be set.
Simplified Using the "simplify" option, shown in the DTF output panel below, allows for a significant
29
CFD-GEOM V2014.0 User Manual
30
Menu Bar
CLOSE
The Close option closes the active viewer window. If modifications have been made to a model during a CFD-
GEOM session, a dialog box appears prompting you to save the current model before closing.
CLOSE ALL
IMAGE
The Image option saves an area of the model or the entire window as an RGB, GIF, BMP, PNG, PS, or XPM file.
3. Press the left mouse button and drag the mouse to lasso the area you want to save.
4. Release the mouse button and the Save Snap Shot Window appears.
5. In the File Name field, enter the new file name for the image.
31
CFD-GEOM V2014.0 User Manual
6. In the File Filter field, click on the down arrow and select a file type: RGB, GIF, BMP, PNG, PS, or XPM file.
7. Click OK to save the file. The file is saved to the location you have selected. Note that unlike the file save
dialog you are responsible for setting the desired extension.
2. Select the Window option. The Save Snap Shot Window appears.
4. In the File Filter field, click on the down arrow and select a file type: RGB, GIF, BMP, PNG, PS, or XPM file.
5. Click OK to save the file. The file is saved to the location you have selected. Note that unlike the file save
dialog you are responsible for setting the desired extension.
QUIT
The Quit option closes all simulations and terminates the application. If there are any simulations with unsaved
data, the following dialog box appears to ask if you want the simulation saved before closing. If you choose No, the
application closes and all current data will not be saved. If you choose Yes, the Save dialog box appears so that you
can save your data.
Edit Menu
The Edit menu enables you to perform routine functions, select (pick), de-select, and blank entities, and set
preferences. It contains the following:
32
Menu Bar
Advanced Picking
Toggle
Entity Color
Levels
User Variables
User Notes
Preferences
Edit Menu
The Undo option reverses the last operation. The Redo command reverses the last undo operation. The
Undo/Redo operations support multiple Undo/Redo at one time. If a tool is open, i.e. point creation tool, and you
have an entity selected, then CFD-GEOM will not allow you to perform an Undo/Redo operation.
The Unpick option deselects an object. The Undo and Redo options are also available in Toolbar > Undo, Redo.
33
CFD-GEOM V2014.0 User Manual
The Cut option removes a selected object from the viewer window and places it on a virtual clipboard.
The Copy option copies a selected object from the viewer window and places it on a virtual clipboard.
The Paste option places an object from the virtual clipboard onto a viewer window.
The Delete option deletes a selected object from the viewer window. A warning might appear in the status bar if
you attempt to delete objects that are used as parts of other objects , e.g., a point is part of a line, a line is part of
an edge, and so on. Any object that is part of a block (its faces, edges, lines, curves, and points) cannot be deleted
until the block is deleted.
The Select All option selects all visible objects on the screen that are eligible for picking. Use the Entity Bar to limit
the picking to certain types of entities. The Deselect All option de-selects all objects that were previously selected.
ADVANCED BLANKING
The Advanced Blanking option displays additional options that enable you to blank/unblank construction
sequences and blank/unblank constructed elements.
34
Menu Bar
Blank/Unblank Parents Blank Parents will blank the elements used to create an entity. For example,
using this option and highlighting a line will cause CFD-GEOM to blank the
points used to create the line. To unblank the entity elements, use the Unblank
Parents option.
Blank/Unblank Children Blank Children will blank the entities that are built off the selected entities. For
example, by selecting an edge and choosing the Blank Children option, any
faces and/or block constructed from that edge will be blanked.
ADVANCED PICKING
The Advanced Picking options enable you to pick the elements that were used to create an object and its levels.
For example, selecting a line will cause CFD-GEOM to highlight the points used to create the line or selecting a
block will highlight the lines used to create the block.
PICK PARENTS
Pick Parents will pick the elements used to create an entity. For example, using this option and highlighting a line
will cause CFD-GEOM to pick the points used to create the line.
Pick parents
1. Select an object in the viewer window.
2. Select Pick Parents from the Advanced Picking option. The elements that created the object appear in red.
PICK CHILDREN
Pick Children will pick the entities that are built off the selected entities. For example, by selecting an edge and
choosing the Pick Children option, any faces and/or block constructed from that edge will be picked.
PICK UNMESHED
Pick any trimmed surfaces, unstructured domains and Cartesian domains that have not been meshed. The picking
will apply to only the currently visible entities.
TOGGLE
The toggle option globally blanks (hides) all entities that are currently displayed, and simultaneously unblanks
(reveals) all entities that are not displayed.
35
CFD-GEOM V2014.0 User Manual
ENTITY COLOR
The Entity Color dialog box allows the you to modify the color of selected entities. To modify a color, select the
desired entities, then go to Edit --> Entity Color to change the color. The Alpha slider can be used to give surfaces a
simple transparency; smaller values of Alpha are more transparent.
LEVELS
The Levels option enables you to differentiate and group geometric entities. This option allows you to quickly show
and hide geometries of interest to ease the model building process. Selection of this option displays the dialog
show below. The levels dialog allows you to manage the creation, removal, addition/deletion of levels and their
associated entities. The dialog is non-modal (allows anytime user interaction), thus it can remain visible at all
times.
The color well allows the user to color all entities in a selected level by a desired color. The entities will be drawn
with the color when the color mode is "Color Entities by Level", which can be selected from the main tool bar.
36
Menu Bar
Level Display Click on a column heading to change the order in which the rows appear (sort order). The
Dialog first click sorts the rows based on that column's contents in descending order and a second
click sorts in ascending order. A triangle in the sort column indicates which column is being
used to sort the data and the direction of the sort. To change the width of a column, click
and drag the border between the two column headings.
The level editor shows the current active level by a check mark in the far left column and
also allows multiple selections. When multiple items are selected then the name field will
be disabled however, all the other functionality will remain and the user can add/remove
entities, hide/display, or set a common color.
New To create a new level, click the New button. The new, empty level is created with the next
available number prepended by the text "level". Add entities to the level by selecting an
entity from the viewer window and then selecting the Add Entities button.
Delete Click this button to delete the selected level.
Add Entities Click this button to add entities to a level.
Remove Entities Click this button to remove entities from a level.
Hide Click this button to hide a level and its associated entities from view in the graphics area.
Show Click this button to view a level and its associate entities in the graphics area.
37
CFD-GEOM V2014.0 User Manual
USER VARIABLES
The User Variables options enable you to create and manage your own variables which can be referenced during
the model building process. All geometry input text fields allow the input of your own defined user variables in-lieu
of fixed numbers. For instance, you could create a variable 'cos45' with its value as cos(45) to be used wherever
such data is needed in place of hand-computing cos(45) and using that value.
Note CFD-GEOM does not require you to name data in any particular order, as it automatically determines variable
dependencies. For example, the following is perfectly valid:
38
Menu Bar
The most commonly used operators are available from the following set of buttons:
Delete removes the selected row and variable from the list.
USER NOTES
The User Notes option enables you to create notes for a model. These notes are saved in the GGD file. If you read a
GGD file containing such notes, you are informed that they exist and are given an opportunity to read them. You
can read, update, or remove notes at any time.
39
CFD-GEOM V2014.0 User Manual
PREFERENCES
The Preferences option enables you to specify default values for files, model displays, and modeling parameters.
Preferences contains the following options:
Files
Display
Logo
View Colors
Tools
40
Menu Bar
PREFERENCES-FILES TAB
The Files panel enables you to set the time interval for automatically saving a backup file. You can also set the
temporary files directory where files are temporarily saved.
PREFERENCES-DISPLAY TAB
Toggle Graphics Hardware Check this box if hardware acceleration is required. (Some video cards or
Acceleration outdated video card drivers may require this.) Clear the box to turn off this
option.
Dynamic Highlighting Dynamic highlighting is the automatic highlighting of the nearest pickable
entity. This option is enabled, by default. However, if this highlighting
becomes distracting or causes slow interaction for very large models, then
clear the check box to disable this feature.
Turbo View Turbo View, on by default, is often a necessity when working with large
models. However, you can deactivate this view by clearing the check box.
Zoom to Screen Center The default behavior for CFD-GEOM is to zoom to the center of the screen.
When this option is turned off, CFD-GEOM will zoom in to the mouse location
in the graphics area, rather than the screen center.
Enable/Disable Entity Hover Help By default, when the pointer is hovering over an entity in the graphics
window, a temporary tip details some of the attributes of the entity. If this
behavior becomes a distraction, clear the check box.
Automatically preview operations By default, many of the modeling operations show a preview of the final
result. For lengthy modeling operations you may want to disable this
automatic preview. Clear the check box to do so.
Graphical Shortcut Toolbar By default, CFD-GEOM displays shortcut buttons in the graphics window that
correspond to the currently active tool in the Control Panel. Clear this check
box to disable this feature.
Selection Sensitivity Selection sensitivity controls the sensitivity of the picking in the graphics
window; larger values will tend to select more items near the cursor while
smaller values will tend to select fewer items.
Restore Defaults Restores the default values on a per tab basis, so each tab is selectively
restored to default values.
41
CFD-GEOM V2014.0 User Manual
PREFERENCES-LOGO TAB
By default, CFD-GEOM has the ESI Group logo in the lower right hand corner of the graphics window. The position
and logo in the graphics area may be modified in the Logo tab. A custom logo may be used by selecting the
Custom Logo option and selecting logo located on your computer. The logo can be deactivated by unchecking the
Display Logo option.
42
Menu Bar
PREFERENCES-COLORS TAB
The Colors panel enables you to control the display colors for entities, grids, etc. The color settings are grouped
into logical units as General Colors, Entity Colors, Grid Colors, VC (Volume Condition) colors, and Color Schemes.
The Color Schemes section contains controls that allow you to create and save three user defined color schemes.
For the user defined schemes, you can modify the colors for the scheme, then click Apply to apply the scheme to
the current model. Once the scheme has been applied, it is saved to the registry so the next time CFD-GEOM is
launched, the last scheme that was applied will be used.
Note Colors may be changed by dragging and dropping a color from one color well to another.
43
CFD-GEOM V2014.0 User Manual
44
Menu Bar
3. Double click in the desired color well, then select a new color in the colors dialog.
4. Change the color as needed using the tabs. Reading from the left, the tabs are as follows:
The first tab enables you to change the hue, saturation, and value of the color visually. Click anywhere on
the color wheel to change the color, then use the vertical bar to change the shade.
The second tab enables you to use a slider bar to change the red, green, and blue values for the selected
color.
The third tab enables you to use a slider bar to change the hue, saturation, and value for the selected
color.
The fourth tab enables you to use a slider bar to change the cyan, magenta, and yellow value for the
selected color.
The fifth tab changes the color by name. It allows for greater accuracy in consistently applying colors to a
surface and was designed for those who need to rely on color by name rather than visual acuity.
5. Select a new color and click OK. The new color appears in the Preferences window.
45
CFD-GEOM V2014.0 User Manual
PREFERENCES-TOOLS TAB
The Tools tab allows you to specify the default web browser to be used to launch the CFD-GEOM WebHelp. By
default, Internet Explorer is used on Windows machines. You can use your default browser, such as Firefox, by
choosing the Default Browser option.
CFD-GEOM does not come with a text editor for editing Python scripts. Instead, you can specify the text editor to
use when running Python scripts. There are many text editors available to choose from, such as: vi, gVim, emacs,
nedit, etc. To select the editor, click the Browse button and browse to the directory where the editor is installed.
The Scripts directory is available to specify where CFD-GEOM should look for Python scripts written by the user.
46
Menu Bar
View Menu
The View Menu enables you to determine how you want to view objects in the viewer window. It contains the
following options:
Preset Views
Reset View
Projection
Center of Rotation
Along Plane Normal
Toggle
Rotation/Scaling Editor
Lighting Editor
Volume Grids
Model Summary
Model Manager
Script Output
Turbo
Smooth Animation
Dynamic Highlighting
Exposed Boundaries
Copy Viewpoint
Paste Viewpoint
View Menu
47
CFD-GEOM V2014.0 User Manual
PRESET VIEWS
The Preset Views option manages, manipulates, and saves an unlimited number of named views of a model. The
preset views can be saved and restored from the model GGD file, and each model can have its own set of views.
When you select the Preset Views option from the View Menu, the Preset Views window opens:
Update updates the selected view to the current model viewing parameters
and supplied name
Delete deletes the selected view
Apply applies the selected view to the model
Cancel resets the view
2. Select the Preset Views option from the View Menu. The Preset Views window appears.
4. Click the Add button. The view name appears in the Views field.
5. Click the Accept button to set the view for the model.
48
Menu Bar
2. In the Preset Views window , select a view from the Views field.
RESET VIEW
The Reset View option resets the viewing parameters (translation, rotation) to one of the six orthogonal views. You
can select the front, rear, left, right, top, or bottom view. The hot key for the front (default) view is Ctrl-F. Any
preset views that have been added will be appended after the Reset option, enabling quick access to a desired
view. Reset View is also available in Toolbar-> Reset View.
Front positions the viewer in front of the object based on the z-direction. The object is in xy-plane.
Behind positions the viewer behind the object based on the z-direction. The object is in xy-plane.
Left positions the viewer to the left of the object based on the x-direction. The object is in yz-plane.
Right positions the viewer to the right of the object based on the x-direction. The object is in yz-plane.
Top positions the viewer on top of the object based on the y-direction. The object is in xz-plane.
Bottom positions the viewer below the object based on the y-direction. The object is in xz-plane.
Iso positions the viewer such that the view is a thirty degree rotation about the X and Y axes.
PROJECTION
The Projection option sets the view to either a parallel or perspective view. It is also available in Toolbar >
Projection.
49
CFD-GEOM V2014.0 User Manual
Projection Option
3. Select either the parallel or perspective view. The geometry changes to the view you have chosen.
CENTER OF ROTATION
The Center of Rotation option enables you to select a new rotation center. It is also available in from the toolbar.
2. Select any visible entity in the model; the center of the bounding box for the selected entity will then
become the center of rotation and it will be moved to the center of the graphics window. The center of
rotation will not change with any subsequent graphics operations unless a new center is chosen or a Fit to
View or Reset View is performed
The Along Plane Normal option adjusts the view in the active viewer window so that it aligns with the normal of
the currently specified construction plane. This option is useful in allowing you to specify an interactive point on an
arbitrarily oriented construction plane.
TOGGLE
The Toggle options allows you to toggle between blanked and unblanked entities.
ROTATION/SCALING EDITOR
The Rotation/Scaling option enables you to rotate and scale a model about the X, Y, and Z axes. The X,Y,Z controls
in the Scaling section enable you to view the model with non-uniform scalings in each of the three primary
directions. The dials or text fields allow you to enter a range from .001 and upwards. The scaling factors effect only
the rendering characteristics and do not affect the actual geometry of the model.
50
Menu Bar
Rotation/Scaling Panel
2. Click the left mouse button on the X,Y, or Z dial and slide it left or right to adjust the rotation or scaling.
3. Enter the X, Y, and Z factors in the text fields. The model rotates in the viewer window about the specified
axis.
LIGHTING EDITOR
The Lighting Editor enables you to specify the intensity and color of different light sources to obtain a different
rendering of the model. The intensity and color of each light source can be set by its slider and color well. By
default, only the light sources labeled as Eye and Global Ambient are active. There are eight spot lights arranged
around a model in the viewer and they are controlled with intensity sliders and colors. All of the lights are aimed at
the center of the model and enable you to light an object at eye level, from the left, right, top, bottom, behind,
back left, or back right. You can select the color of the lights by double-clicking the color well at the bottom of each
of the sliders and selecting the color. The sliders control the intensity of the light and act as dimmer switches. The
default color of the spot lights is white.
51
CFD-GEOM V2014.0 User Manual
2. Double-click the color well for a spot light or ambient light. The Color Dialog box appears.
3. Select a color by clicking on the color bar at the bottom of the window. The color appears under the
eyedropper to indicate the color you have chosen.
52
Menu Bar
• The first tab enables you to change the hue, saturation, and value of the color visually. Click anywhere on the
color wheel to change the color, then use the vertical bar to change the shade.
The second tab enables you to use a slider bar to change the red, green, and blue values for the selected
color.
The third tab enables you to use a slider bar to change the hue, saturation, and value for the selected
color.
The fourth tab enables you to use a slider bar to change the cyan, magenta, and yellow value for the
selected color.
The fifth tab changes the color by name. It allows for greater accuracy in consistently applying colors to a
surface and was designed for those who need to rely on color by name rather than visual acuity.
5. Click the Accept button to apply the color to the dimmer or ambient light in the 3D viewer.
6. In the Lighting panel, click and hold the left mouse button and drag the slider bar up and down to adjust
the intensity of light on the model.
• Material Shininess- Use the slider bar to determine how shiny or flat you want the surface. Sliding the bar
down makes the surface flat, while sliding the bar up makes the surface more shiny.
• Global Lighting - Global lighting (also known as ambient light) simulates the light that reaches the model after
reflecting off of numerous other surfaces and does not appear to come from any particular direction. The
ambient light is controlled in the same manner as the spot lights. However, adjusting the intensity of ambient
light with the slider bar has the effect of raising or lowering the brightness of the entire scene. The default
color of the ambient light is white.
VOLUME GRIDS
The Grid Viewers panel checks grid quality using unstructured X, Y, and Z axes, grid quality checks, or structured I,
J, and K planes .
53
CFD-GEOM V2014.0 User Manual
Unstructured The Unstructured X, Y, and Z section of the Grid Viewers tab contains sliders that enable you to see
unstructured and structured volume grids on unblanked blocks, composite blocks, domains, and
semi-structured domains. To use the X, Y, and Z sliders to check grid quality, move the appropriate
slider or enter the coordinates in the X, Y, Z fields. For example, if you position the X slider at
position 0, all tetrahedra, pyramids, prisms, and hexahedra that intersect the X=0 plane will be
drawn. Selecting hidden line or smooth shading from the View Menu-Grid Display Options will often
make the cells easier to see.
Structured The Structured I, J, and K section of the Grid Viewer tab contains grid sliders that enable you to draw
I, J, and K cuts through unblanked blocks and composite blocks. For example, setting the I value to 5
will draw a cross section through each block or composite block at its I=5 grid plane (if it exists).
Indexing starts at 1 (i.e. I =1 corresponds to a blocks Imin side).
54
Menu Bar
MODEL SUMMARY
The Model Summary dialog gives general information on the number and type of geometric entities in the model
as well as grid information.
In the Grids option, you can get information on the number cells by type, i.e. number of structured cells,
unstructured cells, or semi-structured cells. The bounds for each block are domain are provided when selected
from the list.
MODEL MANAGER
The Model Manager can be shown or hidden from this option. For large models the model manager can be hidden
to improve performance. See Model Manager for more information on how to use the Model Manager to manage
model data.
55
CFD-GEOM V2014.0 User Manual
SCRIPT OUTPUT
The read-only Script Output window displays any messages emitted from opening or executing a script. This
window is cleared on each execution of a script. Click the OK button to close the window.
TURBO
The Turbo option reduces drawing time while you manipulate the model. As you zoom, rotate, or translate,
drawing operations (e.g., surface shading, grid display, etc.) are temporarily disabled. When the manipulation is
complete, drawing resumes its normal behavior. When Turbo is active, a check mark appears next to the option on
the View Menu. To make it inactive, click the Turbo option again.
SMOOTH ANIMATION
The Smooth Animation option causes the viewer to change the view from its current view to any of the preset
views, reset the view, or fit to view, in a continuous smooth motion, rather than the default, immediate change.
When Smooth Animation is active, a check mark appears next to the option on the View menu.
DYNAMIC HIGHLIGHTING
By default, dynamic highlighting (automatic highlighting of the nearest pickable entity) is enabled; if this should
become too distracting or cause slow interaction for very large models, then you may uncheck the "Dynamic
Highlighting" box on the View menu to disable this feature.
56
Menu Bar
EXPOSED BOUNDARIES
The Exposed Boundaries button controls the visibility of boundary curves and edges which are used for only one
surface/face/discrete surface. This allows the user to visually identify those areas of the model where gaps remain
in an otherwise "watertight" geometry. By default, Show Exposed Boundaries is not enabled.
The Copy Viewpoint and Paste Viewpoint options let you to copy the view settings from one viewer window to
another. The result of this operation is that the models have the same orientation.
Note Alternatively, you can right-click on the viewer window and select these options from the context
menu.
Window Menu
The Window Menu enables you to open and close a new viewer window, change the appearance of multiple open
viewer windows, and display which tool bars appear in the CFD-GEOM window. It includes the following options:
New Viewer,
Close Viewer
Tile Horizontally
Tile Vertically
Cascade
Overlay
Window Menu
57
CFD-GEOM V2014.0 User Manual
The New Viewer option creates a new viewer window in the workspace. When you launch CFD-GEOM, it
automatically opens one viewer window. The viewer is initially empty and you must import a file or begin creating
objects to begin working. The New option is also available in Toolbar > New.
The Window Appearance option provides you with various ways to view multiple windows in the workspace. These
options only affect the non-minimized windows.
Tile vertically displays all of the open viewer windows in a vertical manner
Tile horizontally displays all of the open viewer windows in a horizontal manner
Cascade displays all of the open viewer windows in a cascading manner
OVERLAY
The Overlay option provides a temporary drawing surface for use with two separate models. Only one model can
be active at a time, and you can only pick or add from the active model. You can switch between models, if you
choose.
Help Menu
The Help menu assists you in finding topics that provide additional information for using CFD-GEOM. When you
click the Help Menu on the menu bar, the Help Menu opens.
CFD-GEOM Help
ESI Group on the Web
Tip of the Day
Shortcuts
About CFD-GEOM
CFD-GEOM HELP
The Online Help file brings you problem-solving resources around the clock. We deliver our Help file in an easy-to-
use interface, complete with a table of contents, index, glossary, and Natural Language Search functionality. When
searching for a topic, you will get the best results if you search by keyword as opposed to asking a question.
58
Menu Bar
ESI CFD on the Web provides a direct link to the ESI CFD web site for additional information about our products
and services.
The tip of the day window provides useful usage hints and possible changes in the layout and structure of tools in
the current version of CFD-GEOM.
SHORTCUTS
The Shortcuts command displays a list of keyboard shortcuts that you can use with CFD-GEOM. Keep in mind that
shortcuts are case sensitive; for example, D and d perform different actions.
ABOUT CFD-GEOM
The About CFD-GEOM window provides version information for CFD-GEOM, CFD-DTF, and FOX libraries.
59
Chapter 4. Toolbars
Overview
CFD-GEOM includes several toolbars that provide quick access to many of the actions needed to work with your
model. These toolbars are identified as the Standard toolbar, the Coloring toolbar, the Modeling toolbar, the
Scripting toolbar,the Rendering toolbar, and the Custom toolbar. Each of these toolbars includes a move handle
that allows you to reposition the toolbar. You can either drag and drop the toolbar to its new position or click the
right button while hovering over the move handles and select from the shortcut menu.
To reposition a toolbar, click the move handle and when the pointer changes shape drag the toolbar to its
new location. In float mode, you can flip the toolbar so that it becomes vertical rather than horizontal.
Standard Toolbar
Coloring Toolbar
Modeling Toolbar
Rendering Toolbar
Scripting Toolbar
61
CFD-GEOM V2014.0 User Manual
Standard Toolbar
The standard toolbar contains buttons that are used as shortcuts to many of the same functions that are in the
Menu bar options. The standard toolbar contains the following buttons:
New
The New button creates a new viewer window. When launching CFD-GEOM, there is no viewer window open
by default. A new viewer must be created and the user is prompted for a model name and path to save the file in
the New Model dialog box. See also File menu > New.
Journaling is also available from the New Window dialog and must be activated at the beginning of model creation.
If journaling is not activated at model creation, it cannot be activated in the middle of model creation. This
behavior prevents the journaled Python script from and corresponding GGD file from becoming out of sync.
Note If you close the viewer window, an empty, new window opens by default.
Open
The Open button opens geometries or grids that have been created in one of the formats listed under the File
Type section. You can navigate through the file directory by using the directory drop-down menu and directory Up
button. The default file filter is *.GGD.
There are a number of options available from the File Filter drop-down menu. If you select one of the buttons or
check boxes at the top of the dialog, the File Filter drop-down will be automatically updated. If you change the
pattern in the File Filter field, the buttons and check boxes at the top of the dialog box will be updated. The file list
can be set to display the files as a list, icons, or with details. See also File menu > Open.
Import
The Import File button imports a file. See also File menu > Import.
62
Toolbars
Save
The Save button saves a model in one of four formats: the original GGD file, DXF, IGES, and VPL. Any changes
that have been made during the current CFD-GEOM session will be written to the file. The Save option updates the
original file with the new information. If you want to preserve the original file, then use the Save As option. See
also File menu > Save.
Save a file
1. Select the Save button from the Tool Bar. If this is the first time you are saving the file, the Save File dialog
box appears.
4. Click OK to save the file. The file is saved to the location you have selected. When saving the file again,
just click the Save button on the Tool Bar. No dialog box will appear.
Save As
The Save As button saves the model in the file format that you choose. See also File menu > Save As.
2. In the File Name window, enter a different file name if you want to change the name of the file.
3. In the File Filter window, click the down arrow button and select one of the file formats.
2. In the File Name window, select the file you want to overwrite.
3. Click OK to save the file. A warning box appears asking if you want to Overwrite, Append, or Cancel.
4. If you select Overwrite, the data you are saving will overwrite existing data in the file you have selected.
5. If you select Append, (which only works if you are appending the data to an existing DTF file), additional
simulation data will be added (appended) to the end of the existing file.
6. If you select Cancel, the dialog box will close and the data will not be saved. However, it will remain in the
current session of CFD-GEOM.
63
CFD-GEOM V2014.0 User Manual
The Cut button removes a selected object from the viewer window and places it on a virtual
clipboard. The Copy button copies a selected object from the viewer window and places it on a virtual clipboard.
The Paste button places an object from the virtual clipboard onto a viewer window.
The Delete button deletes an object from the viewer window. A warning might appear in the status bar if you
attempt to delete objects that are used as parts of other objects, e.g., a point is part of a line, a line is part of an
edge, and so on. Any object that is part of a block (its faces, edges, lines, curves, and points) cannot be deleted
until the block is deleted. See also Edit menu > Cut, Copy, Paste, Delete.
Undo, Redo
The Undo/Redo operations allow you to undo or redo operations in CFD-GEOM. Multiple
undo/redo operations are supported. The Undo and Redo options are also available in Edit menu > Undo, Redo,
Unpick.
Projection
The Projection buttons set the view to either a parallel or perspective view. To change the projection
view, select either the parallel or perspective button on the Tool Bar. The geometry changes to the view you have
chosen. See also View menu > Projection.
Reset View
Options Description
Front This positions the viewer in front of the object based on the z-direction. The object is in xy-plane.
Behind This positions the viewer behind the object based on the z-direction. The object is in xy-plane.
Left This positions the viewer to the left of the object based on the x-direction. The object is in yz-plane.
Right This positions the viewer to the right of the object based on the x-direction. The object is in yz-
plane.
Top This positions the viewer on top of the object based on the y-direction. The object is in xz-plane.
Bottom This positions the viewer below the object based on the y-direction. The object is in xz-plane.
64
Toolbars
Options Description
Isometric Positions the viewer such that the view a thirty degree rotation about the X and Y axes.
Fit to View Allows the user to reset the viewer such that the model will be centered and fit the viewport
without losing the current rotational orientation.
Help
Click this button to open the help file.
Color Toolbar
Use the color toolbar buttons to customize the colors used in your project.
Colors
The Colors button changes the viewer window’s background color. When you click the Colors button the
Change Entity Color dialog box opens.
65
CFD-GEOM V2014.0 User Manual
2. Select a color by clicking on the color bar at the bottom of the window. (The color appears under the
eyedropper to indicate the color you have chosen.)
The first tab enables you to change the hue, saturation, and value of the color visually. Click anywhere on
the color wheel to change the color, then use the vertical bar to change the shade.
The second tab enables you to use a slider bar to change the red, green, and blue values for the selected
color.
The third tab enables you to use a slider bar to change the hue, saturation, and value for the selected
color.
The fourth tab enables you to use a slider bar to change the cyan, magenta, and yellow value for the
selected color.
The fifth tab changes the color by name. It allows for greater accuracy in consistently applying colors to a
surface and was designed for those who need to rely on color by name rather than visual acuity.
4. Click the Accept button to apply the color to the object in the workspace.
Entity Colors
The Entity Colors buttons enable you to assign colors by the colors you have chosen in the Edit menu >
Preferences-Colors panel, by entity type, and by levels.
Color by Assigned colors entities by the preferences you have chosen in the Edit Menu-
Color Preferences-Viewing Colors. For example, in the Viewing Colors panel, you can
drag and drop a color onto an individual entity and have it displayed by this
color. If no color is assigned to an entity, it will assume the default entity color
found in the Edit Menu-Preferences-Viewing Colors panel.
Color by Entity Type displays the entities according to the settings specified in the Edit Menu-
Preferences-Viewing Colors.
Color by Levels displays all entities by their level color according to the settings specified in the
Edit Menu-Preferences-Viewing Colors.
Model Toolbar
Axes toggles the orientation axes and global axes display off and on in the viewer
window.
Construction Plane toggles the construction plane on and off in the viewer window.
66
Toolbars
Model Scale shows the model dimension as projected along the Caresian coordinates
Center of Rotation selects a new rotation center. See also View menu > Center of Rotation.
Rendering Toolbar
The Rendering Toolbar buttons enable you to control the display characteristics of surfaces, face grids,
unstructured surface grids, and volume cut plane grids. The Rendering Tool Bar contains two sections:
Rendering Tool Bar: Surface Display / Grid Display / Edge Grid Display
Surface Display
The Surface Display buttons control the way that geometric surfaces are rendered. You can display the surfaces as
flat shaded, smooth shaded, or hidden line with or without an associated grid. The various surface display modes
are enabled when a red check appears in the button. By default, none of the buttons is checked thus, indicating
that surfaces are displayed only as outlines. The Surface Display buttons, from left to right, are as follows:
67
CFD-GEOM V2014.0 User Manual
Grid Display
The Grid Display buttons control the way that face grids, unstructured surface grids and volume
cut lane grids are displayed. You can display the grids as flat shaded, smooth shaded, or hidden line with or
without the associated grid. The first button (Grid) controls the visibility of the grid and it appears with a red check
mark in front of it to indicate that the grid is being displayed. The Grid Display buttons, from left to right, are as
follows:
Exposed Boundaries
The Exposed Boundaries button controls the visibility of boundary curves/edges which are used for only one
surface/face/discrete surface. This allows the user to visually identify those areas of the model where gaps remain
in an otherwise "watertight" geometry.
Script Toolbar
The Run Script button runs the script. For more information about using scripts, see the CFD-ACE+ Script Based
Simulations.
68
Toolbars
To use a shortcut, simply click it with the left mouse button. Starting a tool in this way has the same effect as
starting it from a toolbox under the Geometry, Meshing, or BC/VC tabs (any picked entities are deselected). In
addition, if the tool resides in a different tab from the current tab, CFD-GEOM switches to the appropriate tab.
3. Right click on the tool button. In the resulting popup menu, select "Add to custom tool bar" (note that this
option is disabled if the tool bar already contains a shortcut to the tool). A shortcut will appear
immediately on the tool bar, and will appear there each time CFD-GEOM is started.
Remove a shortcut from the custom toolbar using the tool box
1. Click the appropriate tab (Geometry, Mesh, BC/VC) in the Control Panel
3. Right click on the tool button. On "Remove from custom tool bar" (note that this option is disabled if the
tool bar does not contain a shortcut to this tool).
69
Chapter 5. Graphics Area
71
CFD-GEOM V2014.0 User Manual
You can make any viewer window active by clicking on it. The active viewer window appears on top of any other
viewer windows, the Title Bar is highlighted, and the file name displays in the main window’s Title bar. If the file
has been modified, the file name is appended with an asterisk (*).
The Windows menu contains three selections that arrange multiple open windows: Cascade, Tile Horizontally and
Tile Vertically. These commands only affect non-minimized windows.
In addition to the named views (Front View, Back View, etc.), the viewer supports up to ten different quick access
views. To save a view, position the model to the desired view, press and hold the Ctrl key, and select any number
between 0-9. To later restore the view, press and hold the Alt key, and select the desired view by selecting the
corresponding number previously assigned to that view. Subsequent views saved after ten will overwrite the
previous views that were stored.
While performing certain tasks such as the assignment of volume conditions and boundary conditions, use the
mouse to select one or more entities in the viewer window. The active entity is defined as the entity that is under
the mouse cursor at the moment a mouse button is pressed.
To pick one or several entities, press SHIFT, and drag the mouse to draw a box. All entities within the box
will be picked.
To unpick one or several entities, you can use CTRL and drag to draw a box. All entities within the box will be
unpicked. Hold down the CTRL key and click a single selected entity to unpick that entity.
Note Use the Entity bar buttons to make selecting specific objects easier.
72
Graphics Area
Rotation
You can rotate a model by clicking and holding the left mouse button as you drag the mouse in the viewing area.
Translation
When you are translating a model, the model's movement is proportional to the movement of the cursor. Also, the
initial location of the cursor on the screen is unimportant. In addition, you can view a model from different angles
using the options in the View menu. You can also display the required viewing angle using the buttons on the
Toolbar.
If you are in parallel mode, the model movement is exactly proportional to the movement of the cursor. If you are
in perspective mode, the origin moves proportionally to the cursor; that is, the front of the model (close to the eye)
may move faster, while the back of the model (away from the eye) may move slower.
Translate a model
Click and hold the right mouse button and simultaneously drag the mouse vertically or horizontally.
Zoom
You can choose from several ways to zoom in and out on an area of a model. The cursor location on the screen
where you first press the mouse button is not important for zooming.
In perspective mode, when you control-drag with the right mouse button, it changes the field of view. Move the
cursor downward to decrease the field of view and upwards to increase the field of view.
2. To zoom out (reduce) the model, click and hold the middle mouse button (or wheel) and drag the mouse
away from you.
Lasso-Zoom
1. Hold down the shift key.
2. Press the middle mouse button and drag the mouse to lasso the area you want to enlarge.
Query Menus
The graphics area Query menus enable you to view or modify an object's properties. When click right mouse
button in the graphics area, the Query menu opens. The panel varies from object to object, but a few common
options are listed here:
73
CFD-GEOM V2014.0 User Manual
1. The Undo option reverses the last operation, while Redo reapplies a reversed (undone) operation.
2. The viewpoint orientation options, Reset View and Projection, are described in the View Menu.
Hot Keys
Most of the time, you deal with real world problems that are usually 3D. 3D geometries and grid generation can be
difficult to mesh depending on the complexity of the geometry. Working with 3D geometry and grid generation
can be made a lot faster with effective use of the Hot Keys available in CFD-GEOM.
The viewer supports many keyboard shortcuts that facilitate the use of CFD-GEOM. These shortcuts allow you to
rapidly modify the view of the model and also allows for rapid customization of entity picking modes. A list of
available hot keys in CFD-GEOM is given in the following table with their description.
Note For the lasso modes to operate properly, the modifier button, for example., the Ctrl or Shift, must be
pressed at the time the mouse button is released, or the operation will be canceled.
Shift+middle mouse
- Lasso Zoom
drag/release
74
Graphics Area
Ctrl+u - Unpick
Up Arrow - Zoom In
Ctrl+z - Undo
Ctrl+y - Redo
75
CFD-GEOM V2014.0 User Manual
F3 - Cancel
76
Graphics Area
a Pick All
77
Chapter 6. Entity Bar
Overview
The word entity is a generic name for any geometric, structured or unstructured grid element within CFD-GEOM.
Entities include points, lines, curves, surfaces, loops, edges, edge linking groups, faces, blocks, shells, surface sets,
unstructured domains, and filaments.
The entity bar is divided into two areas: Entity Blanking, Unblanking, and Picking and Point Coordinates.
Entity Bar
Picking
The bar over each entity button lets you pick (green bar) entities or make them unpickable (red bar). You turn on
picking for all entities by clicking the green bar above the All On button. You turn off picking for all entities by
clicking the red bar above the All Off button. These buttons are useful for quickly restoring the picking state.
Because using the Entity Bar to limit picking can be slow, a shortcut method is provided via the keyboard. The
following list shows the keyboard shortcuts for limiting picking. Notice the distinction between lowercase and
uppercase letters.
79
CFD-GEOM V2014.0 User Manual
a Pick all on
Hierarchy of Entities
An understanding of the hierarchy of entities is primarily useful for operations such as specialized blanking. Each
entity is assigned an integer which indicates its rank (level) within the entity hierarchy. For any given entity, lower-
level entities are those with a rank less than the rank of the given entity. Similarly, higher-level entities will have a
higher rank than the given entity. The point, with a rank of one, is the lowest level entity. The following table lists
the entities and their ranks.
80
Entity Bar
Block 6
Filament 3
Grid Buttons
Grid buttons work in conjunction with their corresponding entity buttons. These grid buttons control the display of
grid points on the structured and unstructured topology entities. Grid elements shown in the Entity Bar include
surface sets (SS) and unstructured domains (UD). The SS (shell) button can be used to view shells. This button can
be used only when trimmed surfaces have been grouped into shells. The UD (unstructured domains/solids) button
is usable only when shells have been grouped into unstructured domains/solids.
Snap Button
This toggle button allows precise placement of points on the construction plane. When this feature is
active, the intersected point is automatically snapped to the nearest coordinate value as specified via
the plane step size.
Point Coordinates
The Point Coordinates field tailors how points are specified. Select point coordinates by selecting existing points
and entering the desired coordinates. When the mouse is near an existing point the point is highlighted to indicate
that clicking the left mouse button will select the point. Interactive creation of points at the location of the pointer
in the graphics window can be enabled by activating the button Create Point button.
Another way to create points is to enter the X,Y, and Z components, separated by spaces, in the Point Coordinates
field and press Enter.
Note Please ensure that Num Lock and Caps Lock are turned off.
81
Chapter 7. Model Manager
Model Settings
When you select the main level item in the Model Manager, the Model Settings panel displays just below the
Model Manager tree. The Model Settings panel contains the following options: Target Solver, Auto Expand, Auto
Empty Folders, and Model Clipping.
Use the Target Solver to set the solver type either to CFD-ACE or CFD-FASTRAN. (You can also set the Target Solver
from the BC/VC tab and clicking the Problem Type button.)
Check the Auto Expand button (on by default) to automatically navigate to and show the last, single selected item
picked from the graphics window.
Auto Empty Folders contains a table detailing the maximum number of items that the folder can contain. When
the number of items in the containing folder exceeds the specified maximum number, the folder is automatically
emptied—as signified by the folder’s red outline. For example, in the following image the Discrete Surface folder is
outlined in red signifying that, although discrete surfaces are present, the number of surfaces exceeds the
maximum allowable number of items. An item which shows an empty outline indicates that the item is currently
blanked.
Model Clipping restricts picking and also allows you to view the inside structure of a model. Clip the model using
the required clipping plane and the slider value.
83
CFD-GEOM V2014.0 User Manual
Model Manager
Entities
When you select the Entities folder, the Model Settings area is replaced by a summary of the entities present in
the current model. When you click an item contained in a top-level folder under Entities, the area below the Model
Manager tree changes to allow you to rename that item (the name will be the same in the BC/VC editor), specify
its blank or unblank settings, boundary layer settings, boundary or volume conditions and, if the entity supports a
mesh, view its mesh characteristics.
84
Model Manager
To display a context menu for items contained in any of the top-level folders (Solids/Unstructured Domains, Shells,
Semi-Struct, and so forth), select the items of interest and right-click the folder containing the items.
To display a context menu for an individual item, right-click the item. This menu allows quick setting and viewing of
the status of the item’s visibility and boundary layer settings. The item context menu provides options for blanking
and unblanking as well as enabling and disabling the boundary layer, if applicable..
85
CFD-GEOM V2014.0 User Manual
Notes
• Selecting an item in the Model Manager tree is subject to the current entity picking type and if the entity
is being shown in the graphics window.
• When selecting and deselecting items, the customary Ctrl+click and Shift+ click combinations apply to
items within a given folder.
• For GEOM 2013.0 solids can have boundary layers enabled or disabled regardless of the shell settings
contained in that solid.
• To remove an assigned name from Entities, select all applicable items and specify “NoName" in the Name
field.
Groups
Items which have the same name are automatically grouped, as shown in the following image. When you select a
group, you can rename the group and all the items within that group. Additionally, a boundary or volume condition
can be applied to all the entities in the group by selecting the required condition from the Boundary/Volume
Condition menu.
Note Specifying the name “NoName” removes the assigned names from all of the entities within that group.
86
Model Manager
Also, when you right-click a group item a context menu opens that allows a level to be automatically created with
the group name and populated with the entities in that group. All items in the group can be shown, hidden, picked
and unpicked. For those groups which support boundary layers, additional menu items are available to enable and
disable boundary layers on the group items. In addition, the context menu for an item in the group or contained in
the top level group shows and allows setting of its visibility. Each picked item can be individually unpicked or all
items within the top level group can be unpicked.
Group Context Menu Group Context Menu with Boundary Layers Group Item Context Menu
Levels
The Levels folder allows you to create a new, named group. Simply enter the new name in the Name box (below
the Model Manager tree) and press Enter. You can also select an item in a level and rename it, show or hide the
87
CFD-GEOM V2014.0 User Manual
item, set its color, and add or remove currently selected entities into the level. The Level Entity Management
option will only be shown when entities are picked
In addition, you can right-click a level item to open a context menu that allows you to activate or deactivate the
level, show or hide the entities in the level, add or remove entities, and delete the level. Activating a level makes it
the current, active level.
Mesh Tools
Select the Mesh Tools folder for quick access to the surface meshers, boundary layer mesh specification tool, and
the tetrahedral volume mesh generator. Quick access is also provided to the Mesh Quality Options. In addition,
clicking the button labeled Pick will pick all visible, trimmed surfaces and solids which have not been meshed.
88
Model Manager
Note Access to picking unmeshed entities is also provided from the Advanced Picking option under the Edit menu
and the context menu in the graphics window.
For example, in the following Model Manager tree four of the surfaces have been selected to form a new group
called Outer Boundary. After typing the new name and pressing Enter, a group is automatically created with that
name and populated with those surfaces. Notice that the NoName group is automatically removed and only a
single NoName item remains in the main level Surfaces folder..
89
CFD-GEOM V2014.0 User Manual
Creating a New Group called Outer Boundary New Group Called Outer Boundary
You can also, for example, take one item from the Outer Boundary group and the NoName item and make a new
group called Outlet. To do this, select from the tree or graphics window and set the name as shown in the
following image. The outlet group is created and one Outer Boundary item is removed from its group.
90
Model Manager
91
CFD-GEOM V2014.0 User Manual
To further illustrate using groups: if one of the items named Outlet is changed to Symmetry then the Outlet group
is destroyed and the tree shows one item named Symmetry and one item named Outlet. To simply rename a group
and any items contained in that group select the group item and specify a new name.
92
Chapter 8. Geometry Tab
93
CFD-GEOM V2014.0 User Manual
Geometry Panel
Additional ToolTips
Several CFD-GEOM tools that require you to specify a vector (i.e. tools that translate, extrude, or project) support
the specification as Screen Normal. The vector is defined as the perpendicular line from the user to the plane
containing the screen. This vector can be changed by simply rotating the model view.
When previewing or applying a particular operation using screen normals, the newly created entities will appear
behind the entities from which they are created. You will need to rotate the model view in order to see them.
However, in doing so, you will change the vector representing the screen normal. This can present a problem when
you are attempting to preview the operation. To prevent this problem, it is recommended that you first rotate
your model view to finalize the screen normal vector that you will be using. Then, select the Vector button. This
94
Geometry Tab
will freeze the current view vector (shown in the accompanying Vector X Y Z text field). You can then rotate your
model view and preview changes to any other parameters (such as extrusion distance) particular to the operation.
Coordinates/Screen Pick
Point Editor
Points + Offset
Average Point
Curve/Curve Intersection
Curve/Surface Intersection
Surface/View Intersection
Closest Points
Parametric Point
Filter Points Locally
Equate Points
95
CFD-GEOM V2014.0 User Manual
Coordinates/Screen Pick
The Create Point tool enables you to create points in the current construction plane using current Point Creation
Mode.
Coordinates/Screen-Pick Button
96
Geometry Tab
Create a point
1. Click the Coordinates/Screen-Pick button in the Point toolbox. The Point Creation panel appears and
the Status line prompts you to create a point by entering XYZ values or using the point creation mode.
3. Enter the XYZ values in the X, Y, Z fields and click Preview to preview the point. Click Apply to create the
point.
4. Click the Point Coordinates point tool in the Entity Bar (the upward arrow). Click on the graphics area to
create the point at the location of your choice. Click Preview to preview the point. Click Apply to create
the point.
5. Enter the point coordinates in the Point Coordinates field in the Entity Bar, separating each coordinate
with a single space (e.g. 50 30 10). Press Enter after the last coordinate.
Point Editor
The Point Editor allows you to modify the X, Y, and Z coordinates of the selected point.
97
CFD-GEOM V2014.0 User Manual
5. Click Apply when the new point locations have been entered.
Point + Offset
The Point + Offset tool enables you to create a set of points by specifying X, Y, and Z coordinates of the first point,
and creating other points by entering the delta distance from the previous one.
98
Geometry Tab
4. Click Preview to preview the point. Click Apply to create the point.
Average Points
The Average Points tool uses a given set of points to generate a new point by averaging the X, Y, and Z components
of the set's input points.
2. Click the Replace Points box in the Point Average panel if you want to replace the existing points with
the averaged point.
4. Click Preview to preview the new averaged point. Click Apply to create the point.
Curve/Curve Intersection
The Curve/Curve Intersection tool enables you to pick two intersecting lines (curves) and create a point at their
intersection.
99
CFD-GEOM V2014.0 User Manual
3. Click Preview to preview the point. Click Apply to create the point.
Curve/Surface Intersection
The Curve/Surface Intersection tool enables you to create a point at the intersection of a curve and a surface. To
use this option, a curve and a surface need to be specified.
3. Click Preview to preview the point. Click Apply to create the point.
Surface/View Intersection
The Surface/View Intersection tool creates points by intersecting the current viewing vector with a previously
specified surface; for version 2013.0 discrete surfaces are supported in addition to the traditional CAD surfaces.
100
Geometry Tab
After selecting the surface you can move the mouse across the surface and the points of intersection with the
surface will be shown dynamically. The intersection point is constrained to the surface and is also dependent upon
the current view of the model.
3. As the mouse is moved over the surface, the intersection points are highlighted and its coordinates
are displayed
Closest Points
The Closest Points tool computes the closest points of approach between two curves or a curve and surface. Two
points will be created, but if the shortest distance between the two entities is less than geometric precision, only
one point will be created. In this case, the behavior is similar to the curve to curve and curve to surface
intersection tools.
101
CFD-GEOM V2014.0 User Manual
3. Click Preview to preview the point. Click Apply to create the point.
Parametric Point
The Parametric Point tool creates parametrically defined points on entities such as lines, curves and surfaces. It
requires two inputs: a line, curve, or surface, and parametric values at which to create the point
4. Click Preview to preview the point. Click Apply to create the point.
102
Geometry Tab
2. Select the desired points and the maximum distance field will update to the current maximum among
all the selected points.
3. Specify the desired precision either manually or press the up-arrow button for a precision just slightly
larger than the maximum distance.
Equate Points
The Equate Points tool allows the user to select two or more points which will be set to the same X,Y, and Z
coordinate of the first selected point.
103
CFD-GEOM V2014.0 User Manual
Equate points
1. Click the Equate Points button in the Point toolbox. The Equate Points panel appears and the Status
line prompts you to select a single point to which all subsequent point selections will be equated.
2. Select the desired point and then all of the other desired points which will be moved to the first
point.
Line Creation
The Line Creation tools enable you to create line segments. To create a line, click the Line tool in the Geometry
toolbox. The options for creating lines, from right to left, are:
Create Line(s)
Extend Line
Parallel Line
Perpendicular Line
Tangent Line
Tangent Line at Point
Line Normal to Surface
Create Line from Curve
104
Geometry Tab
Create Line
The Create Line tool enables you to create a line or lines. The begin and end points of the line segment are
specified by two points and from these two points, a line is created.
105
CFD-GEOM V2014.0 User Manual
Create a line
1. Click the Create Line(s) button in the Line toolbox. The Create Line(s) panel appears and the Status
Line prompts you to select the first point of the line.
• Enter the line's point coordinates in the Point Coordinates field in the Entity Bar and click the
middle mouse button to complete the set; for example,
• 10, 0, 0 - Represents coordinates for Point B. After entering the coordinates, press
Return.
• Click on the Point Coordinates upward arrow, then click in the graphics area to create
the two points for the line.
• Click Preview to preview the line. Click Apply or the middle mouse button to keep the line, or
Cancel to start over.
Extend Line
The Extend Line tool enables you to extend a line.
Extend a line
1. Click the Extend Line button in the Line toolbox. The Extend Line panel appears and the Status Line
prompts you to select a line and endpoint.
106
Geometry Tab
3. Enter the length you want to extend the line in the Extend Length field of the Extend Line panel. The line
is extended at that point along a vector direction specified by the line's begin point and end point.
4. Click Preview to preview the extended line. Click Apply to extend the line.
Parallel Line
The Parallel Line tool enables you to create one or more lines through one or more selected points so that the lines
are parallel to a specified direction.
107
CFD-GEOM V2014.0 User Manual
2. Select one or more points through which the lines are to pass.
3. Click the middle mouse button to complete the set. The points turn red.
4. The Status Line prompts you to select one of the following line direction modes:
X - Create line on the X-axis. This option activates an additional portion of the panel so you can
specify the +/-ve distance.
108
Geometry Tab
Y - Create line on the Y-axis. This option activates an additional portion of the panel so you can
specify the +/-ve distance.
Z - Create line on the Z-axis. This option activates an additional portion of the panel so you can specify
the +/- ve distance.
Existing line - Use the existing selected line to crate the parallel line.
Point-Point - Enables you to pick two point entities to define your line. After picking two points, the
vector is defined as the vector between the first and second picked points.
Vector - Enables you to define the line vector. If you select the Vector option, the text field showing
the current extrusion vector becomes active. Note that it is not necessary to normalize the vector
yourself.
Screen Normal - Creates a line in a direction normal to the screen. This vector can be changed by
rotating the model view. Note that the vector points INTO the screen when you use this option. Also
note that for all of these options, it is not necessary for the vector to be expressed as a normalized
vector. CFD-GEOM will automatically normalize the vector when it actually creates the parallel line.
5. Click Preview to view the parallel line or Apply to create the parallel line. A yellow parallel line is
created.
Perpendicular Line
The Perpendicular Line tool is similar to the Parallel Line option except that the created line is perpendicular to the
first-selected line and is drawn parallel to the construction plane and through the selected point. Alternately, the
newly created line can be drawn through the point and perpendicular to the construction plane by selecting the
Perpendicular to Construction Plane check box.
Note For all of the line creation options, points can be specified by any of the point creation modes, i.e., Pick
Existing, Create Point, or Enter XYZ.
Another way to create a line parallel to another line is to use the Translate option when the button Duplicate is
checked.
109
CFD-GEOM V2014.0 User Manual
2. Select one or more points through which the lines are to pass.
4. Specify the direction and distance. Available options for specifying the direction include parallel to X,
Y, or Z axes; parallel to existing Line; parallel to vector defined by 2 points; parallel to user-defined
vector; and parallel to screen normal.
110
Geometry Tab
• If you select Existing Line, you will be prompted to select an existing line.
• If you select Point-Point, you will prompted to select two points that define the direction.
5. Specify the +ve and -ve distances. These determine how far the lines are to extend in the forward and
reverse directions, respectively, along the direction vector. Default values for these are roughly based
upon the amount of the model that is currently visible on the display. These values may be positive
and/or negative.
6. Check the Perpendicular to Construction Plane box if you want the line to be perpendicular to a
construction plane.
7. Select Preview to preview the new lines and Apply or the middle mouse button to complete the
operation.
Tangent Line
The Tangent Line tool creates a line, tangent to a curve, at a parametric location on the curve.
111
CFD-GEOM V2014.0 User Manual
3. Use the U Value slider to position the line at the desired location.
4. Control the length of the line by entering the distance:
-ve distance specifies the distance of the line's start point from the point of tangency.
5. Click Apply or middle mouse button to complete the operation. The new line's orientation will be similar
to that of the curve.
3. Select a point in the graphics area. CFD-GEOM will find the point on the curve that is closest to the
selected point. It then computes the tangent vector at that point and creates a line with the
computed direction through the selected point.
112
Geometry Tab
-ve distance specifies the distance of the line's start point from the point of tangency.
5. Click Apply or middle mouse button to complete the operation. The new line's orientation will be
similar to that of the curve.
3. Next the Status Line prompts for the selection of a point at which to create the normal line; select the
desired point and a preview line will be displayed in the graphics area.
4. The -ve distance specifies the distance of the line's start point from the indicated point while +ve
distance has a similar effect of the line's end point.
113
CFD-GEOM V2014.0 User Manual
3. Click Apply or the middle mouse button to complete the operation. The new line will be created from
the curve.
Conic Creation
The Conic Creation tools enable you to create circles, ellipses, and parabolas. To create a conic, click the Conic
Creation tool in the Geometry toolbox. The options for creating conics, from bottom to top, are:
3 Point Circle
2 Point Circle
2 Point, Radius Circle
Center-Point/Radius Circle
3-Point Arc
Center-Point/Radius Arc
Ellipse
Parabola
114
Geometry Tab
3-Point Circle
The 3-Point Circle tool puts a circle through three points specified by one of the point creation modes.
2. Select three points in the graphics area and click the middle mouse button to complete the selection.
3. Click Apply and the circle will be created from the three points.
115
CFD-GEOM V2014.0 User Manual
2-Point Circle
The 2-Point Circle tool creates a circle by specifying two points. The first point specifies the center of the circle
while the second specifies the radius. The option is designed to be used within the current construction plane.
Points that do not lie on the current plane will yield arbitrary circles constrained to the current construction plane.
2. Select the first of two points in the graphics area and click the middle mouse button to complete the
selection.
3. Click Apply and the circle will be created from the two points.
116
Geometry Tab
2. Select the two points; optionally, set the desired radius and the desired circle by the "Invert" check
button.
3. Press Apply, click the middle mouse button, or press F2 to create the circle.
Center-Point/Radius Circle
The Center-Point/Radius Circle tool creates a circle from a specified center point and a specified radius. The Conic
is created in a plane parallel to the current construction plane.
Note For structured grid generation, complete circles are not practical. The Conic ends up being split into two or
four arc segments for gridding purposes, although a circle will retain parametric information about its creation,
which can be easily modified. The best method for creating arc segments is to revolve a point around an axis.
117
CFD-GEOM V2014.0 User Manual
2. Select a point in the graphics area or create a point by clicking the Point Coordinates point tool in the
Entity Bar (the upward arrow) and either clicking in the graphics area or entering the X, Y, Z
coordinates in the Point Coordinates field.
3. Specify the radius in the Radius section of the Center-Point/Radius Circle panel.
4. Click Apply or middle mouse button to complete the operation. The circle will be created from the
point based on the radius you have set.
3-Point Arc
The 3-Point Arc tool creates an arc from three specified points.
2. Select three points in the graphics area and click the middle mouse button to complete the selection.
3. Click Apply. The arc will be created through those three points.
Center-Point/Radius Arc
The Center-Point/Radius Arc tool creates an arc of a specified radius between specified start and end angles using
a selected point as the center point.
Note Arcs can be efficiently created by specifying an axis of revolution and a point, and revolving that point
around the axis.
118
Geometry Tab
2. Select a center point in the graphics area or enter the point coordinates in the Point Coordinates field
of the Entity Bar. Be sure to put a space between each of the X, Y, and Z coordinates, e.g. 30 10 20.
3. With the point selected, enter the arc's radius, start angle, and end angle in the Arc->Cpt-Radius
window.
4. Click Apply or middle mouse button to complete the operation. The arc is created in a plane parallel
to the current construction plane.
Ellipse
The Ellipse tool creates an ellipse from a specified center point and specified major and minor radii. The ellipse is
created in (or parallel to) the current construction plane.
Ellipse Button
119
CFD-GEOM V2014.0 User Manual
Ellipse Panel
Create an ellipse
1. Turn on journaling by one of the following methods:
2. Select the Journaling option from the Tools menu.
3. Select Edit Menu -> Preferences option -> Tools tab -> click on the Journaling box - >click OK.
2. Click the Ellipse button in the Conic toolbox. The Elliptical Arc panel appears and the Status Line prompts
you to select a point.
3. Select a center point from the graphics area or enter the point coordinates in the Point Coordinates field
in the Entity Bar.
4. Enter the major radius, minor radius, start, and end angles in the Elliptical Arc panel.
5. Click Preview to preview the ellipse and Apply to apply the parameters.
Parabola
The Parabola tool creates a parabola using three designated points.
Parabola Button
Parabola Panel
120
Geometry Tab
Create a parabola
1. Click the Parabola button in the Conic toolbox.
2. Select three points in the graphics area and click the middle mouse button to complete the selection.
The parabola appears based on your selections.
Curve Creation
The Curve Creation tools enable you to create curves. To create a curve, click the Curve tool in the Geometry
toolbox. The options for creating curves, from right to left, starting at the top, are:
Interpolation Curve
Blend Curve
Fillet Curve
Curve on Surface
Offset Curve
Average Curve
Average Curve Sets
Helix Curve
Bezier Curve
Reduce Curve
Minimize Curves
Reshape Curve/Line
121
CFD-GEOM V2014.0 User Manual
Interpolation Curve
The Interpolation Curve tool creates an interpolating curve through all specified points.
122
Geometry Tab
2. Select the points in the graphics area and click the middle mouse button to complete the selection.
4. Click the Preview button to preview the curve and Apply or the middle mouse button to apply the
parameters. The curves are automatically generated.
Blend Curve
The Blend Curve tool generates a new curve by connecting the endpoints of two curves.
2. Select an endpoint from each of the curves you want to blend from the graphics area, and click the
middle mouse button to complete the selection.
3. Click the Preview button to preview the curve and Apply to apply the parameters. The new curve is
generated by fitting a fourth-order polynomial between the selected endpoints.
Fillet Curve
The Fillet Curve tool enables you to create fillet curves.
123
CFD-GEOM V2014.0 User Manual
3. Specify their endpoints and points on the two curves to serve as endpoints for the fillet.
4. Adjust the location of the endpoints for the fillet to generate either a circular or conic approximation
for the fillet.
5. Click the Preview button to preview the curve and Apply to apply the parameters. The fillet curve is
created.
You can also create a fillet curve by checking the box labeled Specify Radius and selecting two intersecting line
segments. The lines are treated as infinite rays and do not have to intersect over the length of the original line
segments. The radius parameter may be adjusted to obtain the desired circular arc fillet which will be tangent to
both lines. Specifying an unreasonable radius value will generate a fillet curve that is outside the bounds of the
lines.
Curve On Surface
The Curve On Surface tool enables you to pick a surface and change the parameters of the two end points to
obtain a curve that will then be defined on that surface. The existence of a surface is a prerequisite for this
function. A curve on a surface is similar to a parametric point.
124
Geometry Tab
2. Select a surface in the graphics area and click the middle mouse button to complete the selection.
3. Enter the U1 and V1 values for the first point in the Point 1-Parameters fields.
4. Enter the U2 and V2 values for the second point in the Point 2-Parameters fields.
6. Click the Preview button to preview the curve and Apply to apply the parameters. The curve on a
surface is generated.
125
CFD-GEOM V2014.0 User Manual
Offset Curve
The Offset Curve tool enables you to create offset curves by picking a curve and specifying an offset distance in a
given direction. The curve gets duplicated at the offset distance in the given direction, thus providing a thickness
parameter for the geometry. You are cautioned against using large offset values while using this method. The
offset distances should not be over 5% of the curve length (end-to-end curve length).
3. Click the middle mouse button to complete the selection. The curve is duplicated at an offset
distance.
126
Geometry Tab
Average Curve
The Average Curve tool enables you to create a curve as an average of two curves with shared endpoints. This tool
enables you to replace two or more curves sharing common endpoints with a single curve. All loops, edges, etc.
that use these curves are automatically updated to use the new curve. This capability can be extremely useful for
closing gaps in dirty imported geometries. Please note that the curves should be similar to each other within a
reasonable tolerance. Replacing very dissimilar curves with an average curve may result in a new curve that does
not lie on either adjacent surface (if such surfaces are present). This can lead to surface mesh generation
problems.
2. Select two curves with shared endpoints from the graphics area.
3. Enter the curve discretisation figure in the Curve Discretisation section of the panel.
4. If you want to replace the existing curves with the new curve, click the Replace Curves box.
5. Click the Preview button to preview the curve and Apply to apply the parameters. The single,
averaged curve is created.
127
CFD-GEOM V2014.0 User Manual
2. Select two curves with shared endpoints from the graphics area and click the middle mouse button to
complete the set.
3. Click the Reverse box of needed. Because the two curves may be disjointed, (not connected at their
endpoints), there is no fool-proof method to determine the running direction of the two curve sets
with respect to one another. Therefore, the Reverse option may be chosen to reverse the running
direction of the second curve. After choosing this option, you can either click Preview or select the
next curve within the set to observe its effect.
4. Enter the curve discretisation number in the Curve Discretisation section of the panel. The curve
discretisation field enables you to set the number of points used for the discretisation of the input
curve sets in order to create an average curve.
5. Select a second set of curves and click the middle mouse button. During the second set selection
process the averaged curve is shown in preview mode.
6. Click the Preview button to preview the curve or Apply to apply the parameters. The averaged curve
set is created.
Helix Curve
The Helix Curve tool enables you to create helix curves by specifying a begin point that implicitly defines the radius,
the axis of the helix, and the pitch (the distance along the axis for one turn of the helix). An additional input,
number of quadrants can also be specified if this is known (default is four quadrants or 360 degrees).
128
Geometry Tab
Bezier Curve
The Bezier Curve tool enables you to specify the control points that design the curve. The Bezier Curve is a cubic
curve constructed by four points.
129
CFD-GEOM V2014.0 User Manual
3. Select two control points from the graphics area. The location of the first control point is taken as the
mouse position on the construction plane and the curve dynamically changes shape as the control
point location is modified.
4. Click the Preview button to preview the curve and Apply to apply the parameters. The Bezier curve is
generated. As shown in the figure below, two points are end points (P1, P4) and two are control
points (P2, P3). The curve does not pass through any of the control points except the first and last and
has end slopes which are tangent to the imaginary line between P1, P2 and P3, and P4.
Bezier Curve
Reduce Curve
Certain geometric tools, such as surface to surface intersection, generate a number of control points when clearly
a fewer number would suffice. The Reduce Curve tool enables you to reduce the number of control points that
define the curve geometrically, and can lead to savings in memory and computational resources. The reduction
tolerance parameter sets an absolute accuracy of the variance between the reduced and original curve at pre-
determined locations along the curve. Higher values of the reduction tolerance tend to remove more control
points at the expense of geometric fidelity.
130
Geometry Tab
Reduce a curve
1. Click the Reduce Curve button in the Curve toolbox. The Reduce Curve Control Points panel appears
and the Status Line prompts you to select a curve.
2. Select the curve you want to reduce in the graphics area and click the middle mouse button to
complete the selection.
CAUTION: It is highly recommended that you set a reduction tolerance and use the Preview feature
to gauge the final result because setting a large value for this parameter can destroy the original
geometric characteristics of the curve.
4. Click the Preview button to preview the curve and Apply to apply the parameters. The curve is reduced.
Minimize Curves
The Minimize Curves tool, located under the Curve Creation toolbox, allows you to reduce the number of lines and
curves in a model by automatically joining those that satisfy an angular transition threshold and topological
constraints. This can be particularly useful when you need to
• Eliminate small curves that unnecessarily increase local mesh density. These are often imported from CAD
models; they are usually generated by modeling functions in various CAD systems and are usually not
inserted intentionally by the CAD user. Mesh generation involving such lines/curves often results in
unnecessary mesh clustering and poor quality triangles and/or quads on any attached surfaces.
131
CFD-GEOM V2014.0 User Manual
To use this tool, select any number of lines and/or curves and press the middle-mouse or Apply button; only those
selected entities will go into the pool of lines/curves to be processed. Alternatively, you can press the middle-
mouse or Apply button without selecting any entities. In this case, all lines/curves in the model will go into the
pool. Once a pool of lines/curves has been specified, CFD-GEOM will automatically join lines/curves, where
possible, subject to the following constraints:
• Exactly the same set of child (higher-level) entities must be derived from them. For example, CFD-GEOM
will not join 2 curves that are used by 2 different Edge entities, or that do not trim the same surfaces.
• No two lines/curves will be joined where the angular transition at their shared endpoint exceeds the input
angle threshold.
After joining as many lines/curves in the pool as possible, the modifications are propagated to all entities derived
from them (i.e. the model is updated). When finished, CFD-GEOM will report the number of new curves as well as
the number of lines/curves that were replaced.
Tip Prior to using this tool, it is often helpful and/or necessary to combine surfaces (add link to Combine Surfaces
tool) in the vicinity of small curves in order to satisfy constraint #2 described above.
Reshape Curve/Line
Use the Reshape Curve tool to specify a change in the shape of existing curves and lines. You specify source points
on the curve or line and their locations such that the curve or line passes through those points. The source point
does not necessarily have to lie on the entity as it will be projected onto the entity prior to the reshaping
operation.
132
Geometry Tab
Reshape a curve
1. Click the Reshape Curve/Line button in the Curve toolbox. The Reshape Curve/Line panel appears and the
Status Line prompts you to select a curve.
2. Select the curve or line you want to reshape in the graphics area.
3. The Status Line prompts for pairs of points that specify the source and target points. Once the source and
target pairs are selected and the desired curve shape has been achieved click the Apply button to reshape
the curve.
The following images show an example of a curve reshape operation. The image to the left shows a circle with
green points that lie on the circle; the blue points are locations that the deformed curve should pass through. The
image on the right shows, in green, the curve that would be generated if the green (source) points are relocated to
the blue (target) point locations.
Tip Prior to using this tool, it may be helpful to reduce control points on curves where desired shapes are not
being achieved.
Surface Creation
The Surface Creation tools enable you to create surfaces. To create a surface, click the Surface tool in the
Geometry toolbox. The options for creating surfaces, from right to left, starting at the top, are:
Advanced Covering
133
CFD-GEOM V2014.0 User Manual
Extruded Surface
Revolved Surface+
Swept Surface
Lofted Surface
4-Sided Surface
Offset Surface
Surface on Face
134
Geometry Tab
Introduction to Surfaces
Fundamental to modeling and meshing in CFD-GEOM is an understanding of Surface entities. Though it is possible
to model and mesh solids without traditional CAD surfaces (e.g. via structured meshing and/or discrete
geometries), most models contain at least some CAD surfaces, and many models are defined exclusively by CAD
surfaces. CAD surfaces are those surfaces that one normally encounters in a CAD system and which can be
exported to geometry file formats such as IGES, SAT, Parasolid, STEP, and others. In CFD-GEOM, such surfaces can
be imported from these formats or created with CFD-GEOM’s many surface modeling tools.
In CFD-GEOM, such entities are referred to as Trimmed Surfaces or simply Surfaces. A Trimmed Surface entity
consists of an Untrimmed Surface entity and a set of bounding curves. The reason for the distinction between
trimmed and untrimmed surfaces is that untrimmed surfaces alone do not provide enough flexibility to model
arbitrary shapes and do not provide any mechanism for topologically connecting surfaces to each other. An
untrimmed surface provides the mathematical definition of a surface, giving its general shape, orientation, and
location. It may be unbounded, such as a plane or unbounded cylinder—or mathematically bounded, such as a
sculpted spline surface. In addition, mathematically bounded surfaces must generally have 4, 3, or 2 sides—thus
limiting their ability to be used to directly construct arbitrary n-sided surfaces and to model holes in surfaces. In
other words, untrimmed surfaces alone usually cannot be used to represent the region of interest (i.e. the area
you wish to mesh). Consider an infinite plane (e.g. the XY plane). Suppose that you wish to create the following
surface in that plane:
Such a configuration is not possible using the untrimmed plane alone for 2 reasons. First, the plane contains no
outer boundary. Second, the equation for a plane (nor any spline approximation thereof) does not allow for the 2
holes. Trimmed Surface entities circumvent this problem by adding an additional component—bounding curves,
also known as trimming curves. In the above example, a set of 4 boundary curves defines the outermost extents of
the region of interest. Two sets of boundary curves (the circles) define the innermost bounds of the region of
interest. Besides defining the region of interest on the surface, these bounding curves provide a topological
connection between the surfaces that share them. This is essential for constructing solids and for ensuring mesh
continuity across surfaces.
Ordinarily, you will not need to interact directly with untrimmed surfaces. There are 3 notable exceptions. First,
when reading dirty CAD models, each failed surface is inserted into a level consisting of the untrimmed surface and
the bounding curves. After some kind of cleanup step, you will need to apply those curves to the surface. Consider
the following failed surface (left). It consists of an untrimmed planar surface (orange) and 4 curves. Note that the 2
inner curves do not form a properly closed set, and thus cannot be used as an inner bound on the region of
interest. After identifying this collection of entities in the Level Editor, you can repair the gap. Many tools, such as
the “Equate Points” tool, can be used for this purpose. After fixing the gap you can build the surface. The quickest
is to invoke the Advanced Trimming Tool, select the untrimmed surface, select the 4 curves, and press Apply. The
result is the trimmed surface on the right.
135
CFD-GEOM V2014.0 User Manual
Another circumstance which may require direct interaction with untrimmed surfaces also occurs during CAD
import - particularly IGES. Many older IGES files contain only untrimmed surfaces. Depending upon what you wish
to do with the model, you may need to build curves on these surfaces and trim them with these curves. One final
circumstance involves structured meshing. In some cases, you may wish to project structured Face entities onto
surfaces. Such surfaces can be trimmed or untrimmed. When projecting to trimmed surfaces, grid nodes will be
projected only into the active portion of the surface (i.e. within the bounds of the trimming curves). When
projecting to untrimmed surfaces, grid nodes can project anywhere on the surface.
In CFD-GEOM, a manifold surface topology is one in which the underlying Point entities (the endpoints of the
trimming curves) are shared by exactly 2 trimming curves (Note: closed curves use their endpoints twice). For
example, the following surface is considered a manifold surface, because there are 2 trimming curves incident at
each endpoint.
136
Geometry Tab
Non-manifold surfaces are those in which one or more of the underlying endpoints are used by 1, 3, or more
trimming curves. The following is an example of a non-manifold surface. Notice how the point at the base of the
circle is shared by 4 curves.
137
CFD-GEOM V2014.0 User Manual
The following is also an example of a non-manifold surface. There are 2 endpoints underlying this surface. The
upper point is used twice by a circle (it is both the start and end point of the circle) and once by the line. This is
similar for the other point.
138
Geometry Tab
Ordinarily, non-manifold surfaces require no special considerations when modeling and meshing (exception:
surface splitting is not currently supported for such surfaces). However, keep in mind that, when exporting such
surfaces to IGES, STEP, and other formats, not all downstream modeling and meshing applications can reconstruct
some types of non-manifold surfaces.
A more unusual type of non-manifold surface is shown below. This surface contains a stray curve emanating from
the outer boundary into the interior of the surface. In CFD-GEOM, this type of curve is known as a spur. Its start
point is used by 3 trimming curves; its end point is used only by the spur. When meshing such surfaces, triangles
(or quads) will be generated off both sides of a spur. Such features are captured during mesh generation. If the
surface is written to a 2-D DTF file, the grid segments on the spur will receive a thin wall tag.
Most users will not need to create surfaces with spurs. In most cases, spurs enter a model during CAD import (i.e.
they were created in the original CAD system). Sometimes, spurs can be created during Boolean operations in CFD-
GEOM. Adding spurs can be useful, however, if you wish to add thinwall surfaces (i.e. baffles) to a model. Consider
the following example where we need to make a baffle surface straddling 2 surfaces. The spurs on the 2 lower
surfaces provide a mechanism to attach the baffle surface, ensuring continuity between the meshes.
139
CFD-GEOM V2014.0 User Manual
A periodic surface is a special type of surface that closes smoothly upon itself. Examples include cylinders and
spheres, which are closed in 1 direction; and tori, which are closed in 2 directions. The location at which a periodic
surface wraps around to itself is known as a seam. When modeling periodic surfaces, a curve may or may not be
located on the seam (when present, they are known as seam curves). Consider the following cylinders. In the
cylinder on the left, the set of trimming curves includes the seam curve. Notice how the seam curve is captured in
the triangular mesh. The cylinder on the right does not include a seam curve in its list of trimming curves. Notice
how the triangular mesh ignores the underlying seam in the surface.
Most surfaces are bounded by exactly 1 outer loop of trimming curves and 0 or more inner loops of trimming
curves defining holes. The cylinder on the right illustrates a special type of loop. Here, 2 loops of trimming curves
are needed to define the outer boundaries of the surface, and neither lies “inside” the other. Hence, they cannot
140
Geometry Tab
be classified as outer or inner loops. This special type of loop is known as a separation loop. Ordinarily, you will not
need to concern yourself with loop types in CFD-GEOM; whether or not you include seam curves in cases similar to
the above is a matter of preference. However, if you plan to export such surfaces to IGES, STEP, and other CAD
formats for use in downstream applications, please be aware that not all downstream systems support surfaces
trimmed by separation loops.
Advanced Covering
The Advanced Covering surface creation tool will fit a trimmed or untrimmed surface through a set of curves. This
tool can be used in those cases where the Fit Through Curves tool fails or gives poor results.
141
CFD-GEOM V2014.0 User Manual
2. If required, change the starting surface type; the Automatic option chooses between a plane, cylinder, or
a sphere by minimizing the distance from the given curves to the surface. The Automatic option may
select an undesired type and, thus, a best fit plane, cylinder, or sphere starting surface can be enforced.
3. The Existing Surface option requires the selection of an existing surface prior to the selection of the
curves.
The Advanced Covering tool lets you fill n-sided, non-planar regions with a deformed surface that matches the
input curves. The method allows the software to start either with a given surface to be deformed or it will
generate an arbitrary surface as a starting point. The method generates either an untrimmed or trimmed surface
as dependent on the topology of the input curves, that is, if the curves form a valid topology , then a trimmed
surface is generated. The number of specified curves is not limited.
The following image shows a series of non-planar profile curves which should be used to generate a surface such
that it matches the curves. If the collection is taken as a whole, then the following surface will result. The surface
matches the given curves and a valid trimmed surface is generated.
142
Geometry Tab
Next, the same curves are used but one of the curves on the outer boundary is not input such that the resulting
topology is not valid, and, in that case, an untrimmed deformed surface is generated to match the input curves.
The next examples show the behavior when a non-planar region is filled with an arbitrary or a user-specified
surface. Given just the curves on the left, the resulting surface is shown on the right. Note the discontinuous
behavior of the surface.
143
CFD-GEOM V2014.0 User Manual
The following images show the curves and a starting cylindrical surface that is to be deformed and the resulting
surface. In this case, selecting the Best Fit Cylinder option may have yielded similar results without first having to
manually create the cylindrical starting surface.
The advanced covering option also allows the specification of internal guide curves to guide the characteristics of
the final surface. In this case, the Best Fit Plane option was selected otherwise, the automatic option would have
started with a spherical surface. Those internal guide curves will be present in the mesh generated on the surface
as shown below.
Extrude Surface
The Extrude (along a vector) Surface tool extrudes surfaces from lines, curves, and other surfaces.
• When extruding from lines/curves, a surface will be extruded from each picked entity. For example, if two
curves are picked, two surfaces will be created).
144
Geometry Tab
• When extruding from surfaces, multiple surfaces will be created. For example, if extruding from a surface
that is bounded by four curves, a surface is extruded from each. In addition, a duplicated and translated
copy of the picked surface is also created.
Whether extruding from lines, curves, or surfaces, you must first pick these entities and press the middle mouse
button to complete the set. If you are extruding surfaces from a trimmed surface, CFD-GEOM creates new surfaces
as described above. CFD-GEOM automatically trims the newly created surfaces. The picked surface and the newly
created surfaces will form a closed volume, or solid, suitable for Closed Surface Set creation and subsequent
unstructured grid generation.
145
CFD-GEOM V2014.0 User Manual
Extrude a surface
1. Click the Extruded Surface button in the Surface toolbox. The Surface Extrusion panel appears and the
Status Line prompts you to select an entity for extrusion.
3. Click the middle mouse button to complete the selection. The entity color changes to red to indicate
that it has been selected. The Status Line prompts you to select an extrusion mode.
Existing Line(s) - Prompts you to pick a line for extrusion. The vector will then be defined as the vector
from the line's start point to the line's end point.
Point-to-Point - Enables you to pick two point entities to define your vector. After picking two points, the
extrusion vector is defined as the vector between the first and second picked points. If you select the
Vector option, the text field showing the current extrusion vector becomes active.
Vector - Enables you to define the extrusion vector. Note that it is not necessary to normalize the vector
yourself.
Screen Normal - Extrudes in a direction normal to the screen. This vector can be changed by rotating the
model view. Note that the extrusion vector points INTO the screen when you use this option. Also note
that for all of these options, it is not necessary for the extrusion vector to be expressed as a normalized
vector. CFD-GEOM will automatically normalize the vector when it actually performs the extrusion.
6. Click Preview to preview the results or Apply to extrude the surface. Although the surface is created,
it may disappear from view. To view the surface, click the Surface Grid button on the toolbar.
Revolved Surface
The Revolved Surface tool enables you to generate a surface by selecting a set of curves and lines and revolving
them about an arbitrary axis through a specified angle.
146
Geometry Tab
2. Select the surface and click the middle mouse button to complete the selection. The Surface
Revolution panel appears and the Status Line prompts you to select a revolution mode.
X - revolve on the X-axis. This option activates an additional portion of the panel so you can specify the
vector and revolution angle.
147
CFD-GEOM V2014.0 User Manual
Y - revolve on the Y-axis. This option activates an additional portion of the panel so you can specify the
vector and revolution angle.
Z - revolve on the Z-axis. This option activates an additional portion of the panel so you can specify the
vector and revolution angle.
3-Point -This option allows you to revolve an entity about any arbitrary point in any direction. After
selecting the entity to be revolved, you then select the point about which revolution is to occur. A start
point and end point are then specified. These two points define the angle of rotation with respect to the
center of revolution. These two points and the center of revolution also define the plane in which the
revolution occurs.
Note The main distinction between this option and the "two points" option has to do with scripting. If you
use the "2 points" option, then a journaled script will use the 2 point entities. If the point locations change
between script runs, the rotation axis will move with the points. If you use the "two coord sets" option, the
rotation axis will always remain fixed (unless
you do something in the script to change the coordinates). They will not be tied to two point entities.
Point and Direction - This option allows you to select the start point for the axis of rotation, then specify a
dx, dy, and dz to complete the axis.
Two Coordinate Sets - This option allows you to specify the start and end point for the axis of rotation.
5. Click Preview to preview the results. Click Apply to create the surface. Click Cancel to cancel the
operation.
Swept Surface
The Swept Surface tool creates complex surfaces by sweeping selected curves along a prescribed path (the
sweeping curve). You may select a set of curves to be swept after which an arbitrary number of connected curves
defining the sweep path may be selected. In addition to these selections, a Twist Vector must also be specified.
This vector controls the nature of the resulting surface, and though its selection is arbitrary, good and poor choices
exist. A general rule of thumb is to prescribe a twist vector that is more normal to the extrusion path. A poorly
chosen twist vector may result in excessive twisting of the final surface about the extrusion path making it
unsuitable for use in conjunction with structured or unstructured grids. As example, a sweep path lying strictly in
the XY plane has a normal vector as Z and for a helical path specifying the axis of the helix is a good choice.
Typically, swept surfaces are created as a combination of both rotations and translations. To create a swept
surface using only translations, the "Fixed Orientation” box must be checked. The "Reverse Sweep Direction” box
can be checked to reverse the direction of the surface along the sweep path.
Additionally, a linear scaling can be applied during the sweep by specifying the desired scaling in the "Scaling” text
field.
148
Geometry Tab
As the surface is initially defined in a discrete sense, i.e., by positioning a number of sections along the path, you
may specify the number of discrete sections to define the surface and thus control the surface characteristics.
2. Select the curves in the graphics area and click the middle mouse button to complete the selection.
Toggling on the Auto box allows the software to choose an appropriate twist vector in those
circumstances where it is difficult to manually specify this vector. The resulting surface will exhibit
some rotation about the local path tangent. It is highly recommended that the twist vector be
manually specified as described above for planar and helical sweep paths.
3. Click Preview to preview the results or Apply to create the surface. This surface is formed in a discrete
sense by repositioning the curves along the sweep path, thereby defining the topology of the surface.
149
CFD-GEOM V2014.0 User Manual
Lofted Surface
A ruled surface is one that is interpolated between two boundaries. (i.e. top and bottom) and is a type of a lofted
surface. A lofted surface is a surface that is interpolated through n number of curves. (i.e. top middle 1 middle 2
and bottom).
3. If the number of curves is two, the surface is created by a linear interpolation between curves one
and two.
If the number of curves is greater than two, the surface is interpolated by a bi-cubic approximation to the
input curves.
3. Click Apply. The surface is created by a linear interpolation between curves one and two.
4 Sided Surface
The 4-Sided Surface tool generates a NURBS surface from two, three, or four connected boundary lines or curves.
150
Geometry Tab
2. Select the four lines individually that will define the surface and click the middle mouse button after
each one is selected.
Offset Surface
The Offset Surface tool creates an offset surface. These surfaces are often required in turbo-machinery
applications to create small thicknesses for turbine blades.
2. Select the surface you want to offset in the graphics area and click the middle mouse button to
complete the selection.
3. Enter the offset distance in the Offset Distance field of the panel. The surface is duplicated at the
offset distance in the given direction, thereby providing a thickness.
1. CAUTION Do not use large offset values while using this method. The offset distances should not be
over 5% of the smaller dimension of a surface.
Surface on Face
The Surface on Face tool creates a NURBS surface that passes through the grid points on a face.
151
CFD-GEOM V2014.0 User Manual
2. Select the grid points in the graphics area. The face grid is then associated to the new NURBS surface.
This association allows the face grid to be enriched or coarsened without losing the original shape of
its surface. To include the edges associated with the selected face, choose the Use Edges option.
152
Geometry Tab
3. Press the Apply button or the middle-mouse button to complete the operation.
3. Press the Apply button or the middle-mouse button to complete the operation.
Trim
Advanced Trimming
Cut Hole
Remove Hole
Make Two Surfaces
Fill Hole
Invert
Modify Surface Boundary
Edge Substitution
Reduce Surface
Reshape Surface
153
CFD-GEOM V2014.0 User Manual
Trim
The Trim tool allows you define (or redefine) the outer boundaries of a surface with a closed, manifold loop of
lines, curves, edges, and/or composite edges (for a discussion of closed and manifold surface boundaries see ).
When applied to an untrimmed surface, a new trimmed surface is created. When applied to an existing trimmed
surface, the outer boundary of the trimmed surface is redefined (subject to some restrictions). This tool provides
basic trimming capabilities. For more advanced capabilities, such as the creation or modification of non-manifold
surfaces, please refer to the Advanced Trimming tool.
Trim Button
154
Geometry Tab
2. Select a closed, manifold loop of lines, curves, edges, and/or composite edges that lie on the surface
3. Press Apply or middle mouse in the graphics area to create the new trimmed surface. Note that if you
wish for the untrimmed surface to remain available for further trimming operations, you should
select the “Retain Original” button. Otherwise, the untrimmed surface will be permanently hidden.
2. Select a closed, manifold loop of lines, curves, edges, and/or composite edges that lie on the surface.
These may include entities that already trim the surface.
3. Click Apply or press the middle mouse button in the graphics area to complete the operation. If “Retain
Original” is not selected, the selected trimmed surface will be modified and attached entities will be
updated (see additional restrictions below). If “Retain Original” is selected, the selected surface will
remain unmodified. Instead, a copy of the surface will be created; and the boundary redefinition will be
applied to that surface.
Advanced Trimming
This tool allows you to perform advanced trimming operations to define (or redefine) the boundaries of a surface.
When applied to an untrimmed surface, a new trimmed surface is created. When applied to an existing trimmed
surface, the boundaries of the trimmed surface are redefined (subject to some restrictions). Advanced trimming
operations include, but are not limited to, the following operations:
1. (Re)definition of outer and inner boundaries simultaneously. This includes the replacement of
lines/curves with edges, and vice versa, and the addition/removal of holes.
155
CFD-GEOM V2014.0 User Manual
2. Select the lines, curves, edges, and/or composite edges needed to define the desired boundaries
(outer and inner) that lie on the surface. These entities must lie on the untrimmed surface.
3. Press Apply or middle mouse in the graphics area to create the new trimmed surface. Note that if you
wish for the untrimmed surface to remain available for further trimming operations, you should
select the “Retain Original” button. Otherwise , the untrimmed surface will be permanently hidden.
2. Deselect any lines, curves, edges, and/or composite edges that you wish to disassociate from the
surface.
3. Select any additional lines, curves, edges, and/or composite edges that you wish to apply to the
surface.
4. Press Apply or middle mouse in the graphics area to complete the operation. If “Retain Original” is
not selected, the selected trimmed surface will be modified and attached entities will be updated
(see additional restrictions below). If “Retain Original” is selected, the selected surface will remain
unmodified. Instead, a copy of the surface will be created; and the boundary redefinition will be
applied to that surface.
2. This operation is permitted on surfaces that belong to shells only if it does not “open” the shell. For
example, it is permissible to add a spur to a surface used by a shell.
Cut Hole
The Cut Hole(s) tool can be used to cut a hole or holes using any closed set of lines, curves, edges, and/or
composite edges.
156
Geometry Tab
2. Select a set of closed lines, curves, edges, and/or composite edges to be used to cut a hole or holes in
the surface.
Note The set of lines, curves, edges, and/or composite edges must be completely inside the outer
boundaries of the surface being trimmed.
3. Click Apply or the middle mouse button in the graphics area to cut a hole in the surface.
Remove Hole
The Remove Hole(s) tool removes a hole in a surface.
Remove a hole
1. Select the surface from which the hole will be removed.
157
CFD-GEOM V2014.0 User Manual
2. Select a set of closed lines, curves, edges, and/or composite edges that create the hole in the surface
3. Click Apply or the middle mouse button in the graphics area to remove the hole from the surface.
2. Select a set of closed lines, curves, edges, and/or composite edges that lie inside the outer
boundaries of the selected surface.
3. Click Apply or the middle mouse button in the graphics area to create the new surface.
Fill Hole
The Fill Hole tool will fill the interior space in a surface.
158
Geometry Tab
2. Select a set of closed lines, curves, edges, and/or composite edges that will be used to fill the hole in
the surface.
3. Click Apply or the middle mouse button in the graphics area to fill the hole in the surface.
Invert
The Invert tool can be used to modify the boundaries of a surface.
Invert Tool
Invert a surface
1. Select a set of lines, curves, edges, and/or composite edges that you want to replace. These curves
must lie on the surface.
2. Select a set of lines, curves, edges, and/or composite edges that will replace the current boundary of
the surface.
3. Click Apply or the middle mouse button in the graphics area to modify the surface boundaries.
Note The two sets of lines, curves, edges, and/or composite edges must share common end points. If
they do not share common end points, the boundary will not be modified.
159
CFD-GEOM V2014.0 User Manual
Edge Substitution
The Edge Substitution tool allows you to automatically replace lines/curves with existing edges (or vice versa) on
the boundaries of 1 or more surfaces simultaneously. This tool is a specialized version of the Modify Surface
Boundary tool and is generally more convenient for use in the construction of hybrid grids. To use this tool, select 1
or more edges or composite edges. Then press "Substitute In” or "Substitute Out” (note that pressing middle-
mouse is the same as pressing "Substitute In”). If you press "Substitute In”, CFD-GEOM performs the following
actions:
• Determine whether the (composite) edge's underlying lines/curves collectively form part of any surface
boundaries (loops).
• In the definition of each such surface, replace those lines/curves with the edge (where it can be done
without damaging the model).
• Determine whether the (composite) edge forms part of any surface boundaries (loops).
• In the definition of each such surface, replace the edge with its underlying lines/curves (where it can be
done without damaging the model).
160
Geometry Tab
2. Decide whether to substitute them into the surface or out, and select the appropriate action
(Substitute In/Substitute Out)
Reduce Surface
The Reduce Surface tool reduces the number of control points that define the surface geometrically and can lead
to savings in memory and computational resources.
Reduce a surface
1. Click the Reduce Surface button in the Surface toolbox. The Reduce Surface Control Points panel
appears and the Status Line prompts you to select a surface.
2. Select the surface for reduction in the graphics area and click the middle mouse button to complete
the selection.
3. Set the reduction tolerance in the Reduction Tolerance field. The reduction tolerance parameter sets
an absolute accuracy of the variance between the reduced and original surface at pre-determined
locations on the surface. Higher values of the reduction tolerance tend to remove more control
points at the expense of geometric fidelity.
Note It is recommended that you set a reduction tolerance and use the Preview feature to gauge the
final result because setting a large value of this parameter can destroy the original geometric
characteristics of the surface.
161
CFD-GEOM V2014.0 User Manual
Reshape Surface
The Reshape Surface tool enables you to specify change the shape of existing trimmed or untrimmed surfaces.
The tool allows the user to specify source points on the surface and their desired locations such that the surface
passes through those points. Note that the source point does not have to necessarily lie on the surface as it will be
projection onto the surface prior to the reshape operation.
Reshape a surface
1. Click the Reshape Surface button in the Surface Modification toolbox. The Reshape Surface panel appears
and the Status Line prompts you to select a surface.
3. The Status Line prompts for pairs of points that specify the source and target points. Once the source and
target pairs are selected and the desired surface shape has been achieved click the Apply button to
reshape the surface.
The image on the left shows a surface with green points that lie on the circle; the blue points are locations that the
deformed surface should pass through. The image on the right shows, in green, the surface that would be
generated if the green (source) points are relocated to the blue (target) point locations.
162
Geometry Tab
In the case of deforming a trimmed surface CFD-GEOM may warn the user if the resulting surface deformations
has caused the trimming curves to be significantly off the surface. It is advisable, in those cases, to first untrim the
surface, perform the desired reshape, project the trimming curves onto the surface and then re-trim the surface.
Tip Prior to using this tool, it may be helpful to reduce control points on surfaces where desired shapes are not
being achieved.
Use the Filter Points Globally tool to filter points for the entire model. The filter acts by equating points for which
the absolute distance between the points is less than or equal to the prescribed precision. The prescribed precision
is arbitrary and may be different than the global model precision.
163
CFD-GEOM V2014.0 User Manual
FILTER CURVES
Use the Filter Curves tool to specify a local tolerance for curve filtering. This tool tries to determine if duplicate
curves exist based on the specified tolerance and replace duplicates with their equivalent, wherever they may
occur.
Filtering curves
1. Click the Filter Curves tool from the Model Repair Options toolbox.
2. In the Filter Precision box, enter the required precision to filter curves.
SEW SURFACES
Use the Sew Surfaces tool to automatically close gaps among neighboring surfaces, given a specified gap
tolerance.
164
Geometry Tab
This tool has the topological restriction of only using gaps where the endpoints of the curves forming the gap share
the same endpoints. For example, in the following image, the left image shows two surfaces which should share
the same common boundary curve but are separated by a gap where the gap consists of two curves which share
the same endpoints; after the tool is invoked the right image shows the final result.
3. Optionally, select the surfaces on which to perform the operation; if nothing is selected then the tool will
attempt to close all gaps in the model.
SURFACE STITCH
Use the Surface Stitch tool to automatically resolve overlaps and boundary mismatches between two adjacent
surfaces.
165
CFD-GEOM V2014.0 User Manual
This tool can be invoked only on surfaces that are not used in the construction of any other entities in the model.
In the following figure the image to the left shows two surfaces that overlap, and the right shows the result after
the stitching operation. The surfaces now share common boundaries and the overlap has been resolved.
The Extrude/Revolve Solid creation tools take any number of surfaces and create multiple surfaces by either linear
extrusion or revolution of the bounding curves of the given surface(s). Notice that the original surfaces are also
duplicated at the end of the linear extrusion or revolution. In addition, tools to create Shells (voids), unstructured
166
Geometry Tab
domains (Solids) , box and cylindrical solids, model inversion, model splitting, and Boolean operations are
available.
Extrude Wireframe
Revolve Wireframe
Solid Extrusion
Solid Revolution
Create All Domains
Shell
Unstructured Domain
Thin Wall Surfaces
Box Creation
Cylinder Creation
Invert Model
Split Model
Solid Booleans
167
CFD-GEOM V2014.0 User Manual
Extrude Wireframe
The Extrude Wireframe tool is similar to the Translate option. When the Duplicate box is checked, it additionally
connects the beginning and ending points of lines and curves in the original set to the corresponding points in the
translated set.
168
Geometry Tab
Extrude a line
1. Click the Extrude Wireframe button in the Solid and Wireframe toolbox. The Wireframe Extrusion panel
appears and the Status Line prompts you to select a line.
3. Click the middle mouse button to complete the extrusion set. The Status Line prompts you to select an
extrusion mode.
Existing Line - Prompts you to pick a line for extrusion. The vector will then be defined as the vector from
the line's start point to the line's end point.
Point-Point - Enables you to pick two points to define your vector. After picking two points, the extrusion
vector is defined as the vector between the first and second picked points. If you select the Vector option,
the text field showing the current extrusion vector becomes active.
Vector - Enables you to define the extrusion vector. Note that it is not necessary to normalize the vector
yourself.
Screen Normal - Extrudes in a direction normal to the screen. This vector can be changed by rotating the
model view. Note that the extrusion vector points INTO the screen when you use this option. Also note
that for all of these options, it is not necessary for the extrusion vector to be expressed as a normalized
vector. CFD-GEOM will automatically normalize the vector when it actually performs the extrusion.
Revolve Wireframe
The Revolve Wireframe tool is similar to Rotate with the Duplicate turned on. Arcs are generated along the
rotation path. For this option, only geometric entities (points, lines, and curves) may be selected.
169
CFD-GEOM V2014.0 User Manual
Revolve an entity
1. Click the Revolve Wireframe button in the Solid and Wireframe toolbox. The Wireframe Revolution Panel
appears and the Status Line prompts you to select the entity you want to revolve. The revolve tool is
different from the rotate tool because it creates connectors between the first and last points, similar to
the extrude tool.
2. Select the entity you want to revolve in the graphics area and click the middle mouse button to complete
the set. Its color changes to red to indicate that it has been selected. The Status Line prompts you to
select a revolution mode.
170
Geometry Tab
X - revolve on the X-axis. This option activates an additional portion of the panel so you can specify the
vector and revolution angle.
Y - revolve on the Y-axis. This option activates an additional portion of the panel so you can specify the
vector and revolution angle.
Z - revolve on the Z-axis. This option activates an additional portion of the panel so you can specify the
vector and revolution angle.
3-Point -This option allows you to revolve an entity about any arbitrary point in any direction. After
selecting the entity to be revolved, you then select the point about which revolution is to occur. A start
point and end point are then specified. These two points define the angle of rotation with respect to the
center of revolution. These two points and the center of revolution also define the plane in which the
revolution occurs.
Point and Direction - This option allows you to select the start point for the axis of rotation, then specify a
dx, dy, and dz to complete the axis.
Two Coordinate Sets - This option allows you to specify the start and end point for the axis of rotation.
Note The main distinction between this option and the "two points" option has to do with scripting. If you
use the "2 points" option, then a journaled script will use the 2 point entities. If the point locations change
between script runs, the rotation axis will move with the points. If you use the "two coord sets" option,
the rotation axis will always remain fixed (unless you do something in the script to change the
coordinates). They will not be tied to two point entities.
Solid Extrusion
The Solid Extrusion tool enables you to create an extruded solid from an existing surface.
171
CFD-GEOM V2014.0 User Manual
Extrude a surface
1. Blank all entities by clicking the All Off button on the Entity Bar.
3. Select View Menu-Surface Display Options-Outline to set the view to outline mode.
4. Click the Solid Extrusion button in the Solid and Wireframe toolbox. A blank Solid Extrusion panel appears
and the Status Line prompts you to select a surface for extrusion.
5. Select the outline of a surface in the graphics area and click the middle mouse button to complete the
selection. The Solid Extrusion panel appears and the Status Line prompts you to select an extrusion mode.
172
Geometry Tab
Existing Line - Prompts you to pick a surface for extrusion. The vector will then be defined as the vector
from the surface's start point to the line's end point.
Point-Point - Enables you to pick two points to define your vector. After picking two points, the extrusion
vector is defined as the vector between the first and second picked points. If you select the Vector option,
the text field showing the current extrusion vector becomes active.
Vector - Enables you to define the extrusion vector. Note that it is not necessary to normalize the vector
yourself.
Screen Normal - Extrudes in a direction normal to the screen. This vector can be changed by rotating the
model view. Note that the extrusion vector points INTO the screen when you use this option. Also note
that for all of these options, it is not necessary for the extrusion vector to be expressed as a normalized
vector. CFD-GEOM will automatically normalize the vector when it actually performs the extrusion.
7. Select Create Solids to automatically create solids; otherwise, only surfaces will be created.
9. Click Preview to preview the results or Apply to extrude the surface. The surface becomes an extruded
solid.
10. Rotate the model so that a 3D view can be seen. As you rotate the model, only the outline of the model is
seen and the surface is temporarily blanked. When you release the left mouse button, the surfaces
reappear.
Solid Revolution
The Solid Revolution tool enables you to create a revolved solid, similar to an extruded solid, by revolving a surface
about an arbitrary axis of revolution. The extrude and revolve options operate identically to their counterparts in
surface creation.
173
CFD-GEOM V2014.0 User Manual
Revolve a surface
1. Click the Solid Revolution button in the Solid and Wireframe toolbox. A blank Solid Revolution panel
appears and the Status Line prompts you to select a surface to revolve.
2. Select a surface in the graphics area and click the middle mouse button to complete the selection. The
complete Solid Revolution panel appears and the Status Line prompts you to select a revolution mode.
3. Choose one of the following revolution modes from the Solid->Revolve Surf. panel:
174
Geometry Tab
X - revolve on the X-axis. This option activates an additional portion of the panel so you can specify the
vector and revolution angle.
Y - revolve on the Y-axis. This option activates an additional portion of the panel so you can specify the
vector and revolution angle.
Z - revolve on the Z-axis. This option activates an additional portion of the panel so you can specify the
vector and revolution angle.
3-Point -This option allows you to revolve an entity about any arbitrary point in any direction. After
selecting the entity to be revolved, you then select the point about which revolution is to occur. A start
point and end point are then specified. These two points define the angle of rotation with respect to the
center of revolution. These two points and the center of revolution also define the plane in which the
revolution occurs.
Point and Direction - This option allows you to select the start point for the axis of rotation, then specify a
dx, dy, and dz to complete the axis.
Two Coordinate Sets - This option allows you to specify the start and end point for the axis of rotation.
4. Select Create Solids to automatically create the solids; otherwise, only surfaces will be created.
6. Click Preview to preview the results. Click Apply to keep the revolved surface. Click Cancel to cancel the
operation. As with extruded surfaces, you may select a trimmed surface (instead of a line or curve) to
obtain a revolved solid.
Suppose, for example, that you have just read an IGES file containing thousands of surfaces, but that contains no
"solid" information describing how those surfaces should be grouped together to form parts/domains. Also
suppose that the surfaces logically form several (possibly adjacent) parts. Assuming that the surfaces are properly
connected to each other, the Create All Domains tool will identify subvolumes in the collection and create shells
and domains from them.
Consider another example in which you have just imported a Parasolid file which contains "part" information
which is lost because the model did not import cleanly. After cleaning up the surface connectivity, you can then
use the Create All Domains tool to recover the lost information about solids in the model.
175
CFD-GEOM V2014.0 User Manual
To use this tool, select Create All Domains in the "Solid and Wireframe Options" toolbox. You will be prompted to
select a set of trimmed surfaces, faces, and/or discrete surfaces and press middle-mouse or Apply. If you press
middle-mouse or Apply without selecting any entities, all trimmed surfaces, faces, and discrete surfaces in the
model will be passed to the analyzer. Otherwise, only those selected entities will be considered. You may choose
between 2 analysis algorithms. "Method 1", introduced in v2009.2, is relatively fast, and is suitable for most
models. "Method 2", introduced in v2009.4, is more expensive, but can handle a wider variety of models including
those with Thin Wall surfaces (surfaces embedded in a domain interior). In addition, this method is well suited for
discrete models where surfaces may require splitting to meet topological constraints.
Tip Because this tool identifies all possible shells and domains, it may create them in regions where you do not
wish to model/mesh. For example, it may create a domain inside a void within a larger domain. You should,
therefore, check each shell/domain and discard those outside the region of interest.
The recommended workflow and additional notes for each method are described here:
Method 1
1. Import model or create surface model in CFD-GEOM.
2. Select View->Show Exposed Boundaries to highlight all regions where surfaces are not connected to other
surfaces. Repair any such regions.
3. Open the Create All Domains tool, select "Method 1", and press middle-mouse or Apply. In the case
where no surfaces/faces have been selected, all surfaces and faces in the model will be passed to the
analyzer. Alternatively, if you wish to restrict analysis to certain surfaces, you may select those entities
before pressing middle-mouse or Apply.
4. Behind the scenes, the analyzer will cull out any surfaces incapable of forming part of a shell (i.e. those
with boundaries not shared by other surfaces). The analyzer will then identify all possible volumes,
construct shells/domains, and report the number of created domains.
176
Geometry Tab
5. Identify those shells/domains that lie outside the region of interest and discard. Because this tool
identifies all possible shells/domains, it may create some entities that are not relevant to your analysis.
Limitations of Method 1
1. This method is not capable of splitting surfaces. For example, a monolithic discrete surface (such
as one imported from an STL file) will often require splitting into smaller surfaces when the
triangles collectively form more than 1 volume. Such splitting must be performed before using
"Method 1". "Method 2" is more appropriate for this type of model.
2. This method is also not capable of identifying thin wall/baffle surfaces embedded in a volume.
See "Method 2" below.
Method 2
1. Import model or create surface model in CFD-GEOM.
2. Select View->Show Exposed Boundaries to highlight all regions where surfaces are not connected to other
surfaces. Repair any such regions.
3. Mesh any trimmed surfaces with the desired meshing parameters. During the analysis phase later, the
analyzer will generate a lightweight tetrahedral mesh from which it will derive logical volumes. To ensure
the success of this process, the input surface meshes should be of reasonable quality and should not
contain penetrating surfaces, overlaps, nor any other problems that might prohibit tetrahedral mesh
generation.
4. Open the Create All Domains tool, select "Method 2", and press middle-mouse or Apply. In the case
where no surfaces/faces have been selected, all surfaces and faces in the model will be passed to the
analyzer. Alternatively, if you wish to restrict analysis to certain surfaces, you may select those entities
before pressing middle-mouse or Apply.
5. Behind the scenes, the analyzer will mesh any unmeshed surfaces. If meshing parameters have already
been specified, they will be used; otherwise, default values will be used. The analyzer will then identify all
possible volumes and construct the appropriate shells and domains. Where necessary, it will split any
discrete surfaces to satisfy topological constraints. Any thinwall/baffle surfaces will be identified and
added to the domains in which they are embedded (See the Thin Wall Surfaces Tool).
6. Identify those shells/domains that lie outside the region of interest and discard. Because this tool
identifies all possible shells/domains, it may create some entities that are not relevant to your analysis.
Limitations of Method 2
1. The success of this method depends upon the ability to generate a lightweight tetrahedral mesh
on the entire model. Poor surface meshes, penetrating surfaces, overlapping surfaces, and/or
arbitrarily connected surfaces will increase the likelihood of failure.
2. This method is usually more expensive (memory and time) than "Method 1".
177
CFD-GEOM V2014.0 User Manual
3. When Thin Wall surfaces are present, they will automatically be tagged for "Local Thin Wall
Processing". This means that, during surface meshing, additional processing will be performed to
ensure that the surface mesh meets additional constraints required by the CFD-ACE solver. You
will need to remesh these surfaces after domain creation to ensure that they receive the
appropriate mesh modifications. This will be remedied in a future release. See the Thin Wall
Surfaces Tool for additional considerations.
Shell
The Shell creation tools enable you to define a shell so that you can organize a geometry into a valid region for
unstructured gridding. A shell consists of a connected set of loops that define the region to grid. A shell can be
either open or closed but all entities (loops and faces) within the shell must be connected. Two loops are
connected if they share an underlying trimming loop entity. Trimming loops can be made from lines, curves, and
edges. Two faces, or a loop and a face, are connected if they share an edge.
The Shell tool checks to see if the picked surface and/or faces form a closed, connected shell. The following criteria
indicate a closed, connected shell:
• Surface and/or faces are connected if they share an underlying CFD-GEOM entity, i.e., a line, curve, or
edge.
• The proposed shell is closed if all underlying CFD-GEOM entities (lines, curves, and edges) of the selected
surface/face set are associated to two surfaces and/or faces.
CFD-GEOM automatically orients shells to point inward. The proper orientation of shells will be calculated
automatically at Domain creation time. A shell displays exactly the same as the display of its underlying entity, the
face or surface, with an additional line drawn to indicate the orientation of the shell.
Note If multiple closed but disjoint sets of surfaces and/or faces are selected for shell creation, CFD-GEOM will
generate a shell entity from each closed set of entities.
Shell Button
Shell Panel
Unstructured Domain
The Domain Creation tools enable you to organize the shells into a solid region or unstructured domain before you
invoke the unstructured grid generation algorithm. An unstructured domain consists of one or more shells and
may include externally read triangulations. An unstructured domain defines a region for creating an unstructured
2D or 3D grid.
178
Geometry Tab
• In 2D, the unstructured domain consists of one or more connected but Open Shells.
• In 3D, the unstructured domain consists of one or more Closed Shells.
The Unstructured Domain tool enables you to create unstructured domains and pick shells.
(L) Box in a box domain creation example (R) Max tetrahedron size & unstructured boundary
ORIENTATION
The orientation of an unstructured domain governs where grid generation takes place. An unstructured domain
can be built from one or more surface sets. When only one shell is specified, grid generation will occur strictly
inside that shell (i.e. the domain orientation vectors will point inside the domain). Subject to the following rules,
domains can be built from multiple shells:
• One of the shells (the outer set) must fully enclose the remaining shells
• No two interior shells in a Domain can share common areas or volumes
• No interior shell can share a common area with the shell
In domains containing multiple shells, grid generation will occur between the outer and inner shells (as directed by
the domain orientation vectors). Shells can belong to more than one domain. For example, in the box-in-a-box
example, a domain has been built from two shells (a small box and a large box. The volume between the boxes will
be gridded. A second domain can be created from shell representing the small box. In this case, grid generation will
179
CFD-GEOM V2014.0 User Manual
occur inside the small box. From a volume condition standpoint, the two domains represent separate volumes.
However, they share a common surface triangulation on the smaller box.
Before invoking the unstructured grid generation algorithm, you must organize the shells into a solid region or
unstructured domain. An unstructured domain consists of one or more shells and may include externally read
triangulations.
2. Select the shell using the blue handle in the middle of the surface or use Ctrl-A to select all visible shells.
3. Click the middle mouse button to complete the set and create the unstructured domain. A magenta-
colored arrow is created over the shell arrow. This is the handle for the Unstructured Domain.
2. Select an unstructured domain. Any thin wall surfaces associated with the domain are drawn in cyan.
180
Geometry Tab
3. Select a surface in the domain interior and press "Add". Note that the surface may be freestanding or it
may be connected to other surfaces that form the domain. If it touches the domain boundaries in any
way, it must not do so arbitrarily, but rather must share lines/curves/edges with the bounding surfaces.
CFD-GEOM does not currently verify this condition, nor whether the surface lies in the domain interior.
Failure to observe these requirements will result in a failure in tetrahedral meshing.
4. Mesh the surfaces and volume. Note that thin wall surfaces will automatically be tagged for "Local Thin
Wall Processing" during surface meshing. This step is critical to ensure proper behavior in later steps. If
you’ve already meshed such surfaces before tagging them as thin wall surfaces, please make sure that you
remesh them before tetrahedral meshing.
6. Run the DTF utility "thin-wall-preprocess" on the file. This utility uses special tags written with the thin
wall surfaces to make them suitable for usage in CFD-ACE.
2. Select an unstructured domain. Any thin wall surfaces associated with the domain are drawn in cyan.
3. Select a thin wall surface currently associated with the domain and press "Remove". Note that this does
not actually delete the surface. It merely disassociates it from the domain.
• Thin Walls are not, from a CAD standpoint, considered part of a domain’s definition, but are rather a
special mesh generation and mesh I/O construct. They can be added or removed without destroying a
domain, and they do not participate in certain operations such as Booleans, model splitting, model
inversion etc; nor are they output to CAD formats such as SAT.
• When disassociating a surface from a domain that was previously (tetrahedral) meshed with the surface,
the surface’s mesh will still be present in the tetrahedral mesh. However, during DTF output, the face’s
that form the surface mesh will receive no special treatment.
Box Creation
Use the Box Creation tool to create a box solid (unstructured domain).
181
CFD-GEOM V2014.0 User Manual
Add a Box
1. Click the Box Creation button in the Solid and Wireframe Creation toolbox.
2. Select the required mode of operation: Two points, Existing line, or Center and Dimensions.
3. In the case of Two points or Center and Dimensions, points may be selected from the screen to specify
the data. In the Existing line case, any line can be selected.
In the Two points selection mode, CFD-GEOM keeps track of the corner point being selected. During any
of the modes an automatic preview of the box is shown with the appropriate labeling as it pertains to the
current box specification mode.
4. Optionally, you can uncheck the Create Solid check box to disable the creation of a solid; instead, only
surfaces will be created.
Note Constant X and Y boxes are not available; however, a constant Z box (a single surface) can be
created.
Cylinder Creation
The Cylinder Creation tool allows the creation of a right circular or elliptic cylindrical solid (unstructured domain).
182
Geometry Tab
Add a Cylinder
1. Click the Cylinder Creation button in the Solid and Wireframe Creation toolbox.
3. In the case of Two points, points may be selected from the screen to specify the cylinder axis. In the case
of Existing line, any line can be selected to specify the cylinder axis.
In the Two points selection mode, CFD-GEOM keeps track of the end point being selected. During any of
the modes an automatic preview of the cylinder is shown with the appropriate labeling as it pertains to
the current cylinder specification mode.
4. Optionally, you can uncheck the Create Solid check box to disable the creation of a solid; instead, only the
surfaces will be created.
Note Different major and minor radius will generate an elliptical cylinder and the minor radius must be
less than or equal to the major radius. The top radius can be smaller or larger than major or minor radii.
183
CFD-GEOM V2014.0 User Manual
Invert Model
The Invert Model tool allows for the inversion of Unstructured Domains to attain the fluid region of a geometry.
When reading CAD models, the solids are read into CFD-GEOM. If the solids, i.e. Unstructured Domains, read in
properly, the model is ready to be inverted.
• Available for inverting Unstructured Domain(s) not constructed from Edges, Faces, nor Discreet Surfaces
• Except at the caps, the domain(s) must have a finite thickness throughout, i.e. it must be a solid
(Unstructured Domain in CFD-GEOM).
• Model inversion is not part of the Undo system, so be sure to save the model before inversion.
• Ideally, inversion should be done immediately after the model has been read into CFD-GEOM.
Invert a model
1. Read the CAD model into CFD-GEOM.
3. Go the the Invert Model tool and select the inlet and outlet surfaces that cap the model.
184
Geometry Tab
Split Model
The Split Model tool allows for unstructured domains to be split at an arbitrary plane. The tool automatically builds
new surfaces along the plane to properly close off the new solids and provides the option to keep or discard the
solids on either side of the plane whether or not splitting occurs. This makes it easy to discard undesired geometry.
There are a number of caveats to using this tool:
• Inversion can only be performed on unstructured domains that are not constructed from edges, faces, or
discrete surfaces.
• The tool will not work if any semi or structured domains intersect the cutting plane.
• Some types of data such as BC's and meshing parameters may be lost.
This operation should be performed as the first step before construction of any CFD-GEOM specific solids such as
structured, semi-structured domains and before meshing and BC/VC assignment.
Split a model
1. Read the CAD model into CFD-GEOM or create an unstructured domain in CFD-GEOM.
3. Select the plane and specify the depth at which to split the model, as shown in the figure below.
185
CFD-GEOM V2014.0 User Manual
Solid Booleans
The new Solid Booleans tool, located in the Solid and Wireframe Options toolbox, allows for 4 types of Boolean
operations (unite, subtract, intersect, interface) on unstructured domains.
Note: Boolean operations can not be performed on "hybrid" domains (i.e. domains constructed from edges,
structured faces, and/or discrete surfaces). Moreover, these operations will usually split, delete, and create new
lines, curves, surfaces, and domains. Hence, it is possible that certain types of data such as boundary/volume
conditions and meshing parameters may be lost. It is, therefore, recommended that you perform all Boolean
operations prior to introducing structured/semi-structured/discrete topologies, BC/VC assignment, or mesh
generation.
Note also that, with the exception of the "Interface Domains" option, Boolean operations in CFD-GEOM involve a
set of 1 or more "tool" domains that are used to operate on a "blank" domain. This usage of the word "blank"
should not be confused with blanking/unblanking pertaining to entity visibility.
UNITING DOMAINS
Uniting domains allows you to combine 2 or more unstructured domains into a single domain. Where necessary,
lines, curves, and surfaces will be split and all entities that lie in the interior of the new volume will be deleted
except for those used by other entities not involved in the operation.
Unite domains
1. Click the Solid Booleans button and select Union.
186
Geometry Tab
SUBTRACTING DOMAINS
One can also subtract tool domains from a blank domain. In a simple example, one might use a cylindrical domain
to cut a hole in another domain. Where necessary, lines, curves, and surfaces will be split. In addition, those
portions of the tool domains that lie outside the new domain will be discarded (except where they are used by
other entities not involved in the operation).
Subtract domains
1. Click the Solid Booleans button and select Subtraction.
3. Select one or more tool domains to subtract from the blank domain.
187
CFD-GEOM V2014.0 User Manual
INTERSECTING DOMAINS
Using the Intersection option, new domains can be created where the volumes of the tool domains overlap the
blank domain. When intersecting more than one tool domain with the blank domain, a new domain is created at
the intersection of each tool with the blank. The result is as if the tool domains were first united and then
intersected with the blank domain. Where necessary, lines, curves, and surfaces will be split, created, or deleted.
All portions of the input domains that lie outside the new domains are deleted, except when used by other entities
not involved in the operation.
Intersect domains
1. Click the Solid Booleans button and select Intersection.
3. Select one or more tool domains to intersect with the blank domain.
188
Geometry Tab
INTERFACING DOMAINS
Interfacing domains contains elements of union, subtraction, and intersection and is therefore included in this tool.
Interfacing domains allows you to mate adjacent (and possibly overlapping) domains to eliminate arbitrary
interfaces between them. Ordinarily, this function is used to mate two adjacent domains with overlapping surfaces
at their adjacency. In such cases, the overlapping surfaces will be split until both domains share a common surface
at the adjacency, enabling them to be meshed without an arbitrary interface. In cases where the volumes of 2
domains overlap, the domains will be split into 3 domains consisting of the volume occupied exclusively by the first
domain, the volume occupied exclusively by the second domain, and the volume representing the intersection of
the 2 original domains. Unlike union, subtraction, and intersection, interfacing does not involve the notions of
"blank" and "tool" domains. This operation is similar to the "Interface Parts" options available during import of
SAT, Parasolid, STEP, and other CAD files.
Interface domains
1. Click the Solid Booleans button and select Interface Domains.
2. Select two or more adjacent or overlapping unstructured domains.
3. Press the middle-mouse button or click Apply to complete the operation.
Transform/Duplicate Entities
• Translate Entities
• Rotate Entity
• Scale Entity
• Scale All
• Mirror Entity
189
CFD-GEOM V2014.0 User Manual
• Axial Scaling
• Project Entities
Translate Entities
Selecting the Translate Entities enables you to translate entities using vector translation or point-to-point
translation. Selecting either of the vector translation options opens the Extrusion Axis Panel in the Control Panel
for specifying translation direction and distance.
190
Geometry Tab
Translate an object
1. Click the Translate button in the Transform or Duplicate/Transform Entities toolbox. The Status Line
prompts you to select a set of entities to translate.
2. Select the entities in the graphics area that you want to translate and click the middle mouse button to
complete the selection. The entity turns red and the Translate Entities panel appears. The Status Line
prompts you to select a translation mode.
191
CFD-GEOM V2014.0 User Manual
Existing Line - Prompts you to pick a line for translation. The vector will then be defined as the vector
from the line's start point to the line's end point.
Point-Point - Enables you to pick two point entities to define your vector. After picking two points, the
translation vector is defined as the vector between the first and second picked points. If you select the
Vector option, the text field showing the current translation vector becomes active.
Vector - Enables you to define the translation vector. Note that it is not necessary to normalize the vector
yourself.
Screen Normal - Translates in a direction normal to the screen. This vector can be changed by rotating the
model view. Note that for all of these options, it is not necessary for the translation vector to be
expressed as a normalized vector. CFD-GEOM will automatically normalize the vector when it actually
performs the translation.
5. Click the Duplicate box in the in Options section to duplicate the entities if you want to copy and translate
them rather than translate the original entities.
6. Click Preview to preview the result. Click Apply to translate the entities. Click Cancel to cancel the
operation.
Rotate Entity
The Rotate Entity tool enables you to rotate an entity on an axis. Any entity, including structured or unstructured
grid entities, can be selected for rotation in this option. Once the rotation axis is selected, you can then set the
Rotation Angle from this panel, for example; 45 degrees. Repeat performs the operation n times; that is, for n = 1,
a selected entity is revolved from 0 to 45 degrees. For n = 2, the entity is revolved from 0 to 45 degrees and from
45 to 90 degrees, etc.
The Preview button identifies the rotation direction. The panel shows the rotated positions of points associated
with the chosen entities. The Apply button applies the rotation operation. Note that all entities associated with the
selected entities, e.g., the lines and curves which constitute an edge, are also rotated. If the Duplicate box is
checked, a new duplicate entity will be created. Note that any entity may be selected and all associated entities
will be duplicated and rotated.
192
Geometry Tab
Rotate an entity
1. Click the Rotate Entity button in the Transform or Duplicate/Transform Entities toolbox. The Rotate
Entities Panel appears and the Status Line prompts you to select the entity you want to rotate.
2. Select the entity you want to rotate in the graphics area. Its color changes to red to indicate that it has
been selected. The Status Line prompts you to select a rotation mode.
193
CFD-GEOM V2014.0 User Manual
X - rotate on the X-axis. This option activates an additional portion of the panel so you can specify the
vector, rotation angle, and the number of times to repeat the rotation.
Y - rotate on the Y-axis. This option activates an additional portion of the panel so you can specify the
vector, rotation angle, and the number of times to repeat the rotation.
Z - rotate on the Z-axis. This option activates an additional portion of the panel so you can specify the
vector, rotation angle, and the number of times to repeat the rotation.
3-Point -This option allows you to rotate an entity about any arbitrary point in any direction. After
selecting the entity to be rotated, you then select the point about which rotation is to occur. A start point
and end point are then specified. These two points define the angle of rotation with respect to the center
of rotation. These two points and the center of rotation also define the plane in which the rotation occurs.
Point and Direction - This option allows you to select the start point for the axis of rotation, then specify a
dx, dy, and dz to complete the axis.
Two Coordinate Sets - This option allows you to specify the start and end point for the axis of rotation.
Note The main distinction between this option and the "two points" option has to do with scripting. If
you use the "2 points" option, then a journaled script will use the 2 point entities. If the point locations
change between script runs, the rotation axis will move with the points. If you use the "two coord sets"
option, the rotation axis will always remain fixed (unless you do something in the script to change the
coordinates). They will not be tied to two point entities.
5. Enter the number of times you want to rotate the entity in the Repeat field.
6. If you want to duplicate the entity, click the Duplicate box. If you want a pattern to appear, click the
Pattern box.
Scale Entity
The Scale Entity tool enables you to scale non-uniform entities in the X,Y, and Z directions.
194
Geometry Tab
Scale an entity
1. Click the Scale Entity button in the Transform or Duplicate/Transform Entities toolbox. The Scale Entities
panel appears and the Status Line prompts you to select entities for scaling.
2. Select the entities you want to scale in the graphics area and click the middle mouse button to complete
the selection. The Status Line prompts you to select/specify a reference point to set the parameters.
4. Enter the X, Y, and Z reference points, (the location for the origin of a local Cartesian coordinate system
about which the scaling is to be performed) in the Ref. Point field or pick the point interactively.
5. Click Preview to see the result or click Apply or middle mouse button to complete the operation. You can
toggle on the duplicate option to keep the original entities intact while creating new ones based on the
scaling factors.
195
CFD-GEOM V2014.0 User Manual
Note When scaling entities, careful attention must be paid to the value of the global geometric precision. If using
scaling factors less than 1.0, it is possible for the model (or portions thereof) to be scaled below geometric
precision. In such cases, geometry/topology changes. For example, suppose that the global precision is 1.0e-6 and
the model contains a line of length 1.0e-5. Now suppose that the model is scaled uniformly by 0.01. The new line
will have length 1.0e-7. Because this is less than geometric precision, the end points of the line will be collapsed
into a single point, and the line will be removed. Any structured or unstructured topologies built on this line may
be adversely affected. To prevent such problems, you should lower the geometric precision by an appropriate
amount before scaling.
Scale All
The Scale All tool scales all of the entities in a model in the X, Y, and/or Z directions.
4. Click Apply to scale the model according to the scaling factor values entered. A scaling factor of zero in
multiple directions is not allowed. A scaling factor of -1.0 mirrors the model in a particular direction.
196
Geometry Tab
Note When scaling entities, careful attention must be paid to the value of the global geometric precision. If using
scaling factors less than 1.0, it is possible for the model (or portions thereof) to be scaled below geometric
precision. In such cases, geometry/topology changes. For example, suppose that the global precision is 1.0e-6 and
the model contains a line of length 1.0e-5. If the model is scaled uniformly by 0.01, the new line will have a length
of 1.0e-7. Because this is less than geometric precision, the end points of the line will be collapsed into a single
point, and the line will be removed. Any structured or unstructured topologies built on this line may be adversely
affected. To prevent such problems, lower the geometric precision by an appropriate amount before scaling.
Mirror Entity
The Mirror Entity tool mirrors selected entities about a constant X, Y, Z or arbitrary plane.
Mirror an entity
1. Click the Mirror Entity button in the Transform or Duplicate/Transform Entities toolbox. The Mirror
Entities panel appears and an outline representation of the mirroring plane appears in the graphics
window. The Status Line prompts you to select an entity.
XY, YZ, XZ - When selecting an X, Y, or Z constant mirroring plane, the location of the mirroring plane can
be specified via the Depth field or interactively selected by picking a point from the graphics window.
Point - When a point is selected, the appropriate coordinate will appear in the Depth field and the
mirroring plane outline will be updated.
197
CFD-GEOM V2014.0 User Manual
Construction Plane - When a Construction Plane is selected, it enables you to set the mirroring plane to
that specified for the current construction plane thus allowing for an arbitrary mirroring plane. Selecting
this option disables point selection in the graphics window and disables the Depth field.
3. Select the entities to be mirrored and click the middle mouse button to complete the set. The Status Line
prompts you to enter the plane depth.
4. Enter the depth in the Depth field. If you check the Duplicate box, a new duplicate entity will be created.
5. Click Preview to see the result or click Apply or the middle mouse button to complete the operation. You
may toggle on the duplicate option to keep the original entities intact while creating new ones.
Axial Scaling
The Axial Scaling tool scales entities about any user-specified axis. For each selected entity, the underlying points
(point entities and control points) are collected. For each point p1, CFD-GEOM computes the following
• p0 - the coordinates of the point (on the axis) that lies closest to point p1
Note This is equivalent to constructing a cylindrical coordinate system about the axis, expressing each point in
cylindrical coordinates (r, theta, z), and multiplying the r component by the scale factor. A typical use of this tool is
in scaling a cylindrical surface about its own axis.
Any affected structured and prismatic grids are automatically updated. For edges with hyperbolic tangent
distributions based upon absolute end point spacings, CFD-GEOM will attempt to make the appropriate
adjustments to the spacings. However, for edges built on curves, a small amount of error may be introduced. In
most cases, this is unavoidable and may require correction.
198
Geometry Tab
2. Select the entities you want to scale in the graphics area and click the middle mouse button to complete
the set. The full Axial Scale Entities panel appears and the Status Line prompts you to select an axis.
3. Choose one of the following scaling modes from the Axial Scale Entities panel:
X - revolve on the X-axis. This option activates an additional portion of the panel so you can specify the
vector and revolution angle.
199
CFD-GEOM V2014.0 User Manual
Y - revolve on the Y-axis. This option activates an additional portion of the panel so you can specify the
vector and revolution angle.
Z - revolve on the Z-axis. This option activates an additional portion of the panel so you can specify the
vector and revolution angle.
-.
4. Enter the scaling factor in the Scaling Factors field. Check the Duplicate box if you want a duplicate.
5. Click Apply or the middle mouse button to scale the model according to the scaling factor values entered.
A scaling factor of zero in multiple directions is not allowed.
Project Entities
The Project Entities tool projects a set of entities to a set of surface entities; version 2013.0 supports the projection
of entities onto discrete surfaces as well as the traditional CAD surfaces. The projection algorithm projects the
entity set in one of four ways: along X axis, along Y axis, along Z axis, or closest point; you choose the method.
200
Geometry Tab
201
CFD-GEOM V2014.0 User Manual
5. Click the Preview button to preview the projection to ensure that the result is satisfactory.
6. Click the Apply button to project the entities. All higher level entities of the projected set are
automatically updated. After projecting entities to a surface set, CFD-GEOM automatically updates all
associated entities in the database. If the Duplicate box is checked, then entities picked first will be
duplicated and then projected.
Splitting/Joining Tools
Split/Join
The Split/Join tools enable you to split lines, curves, edges, and surfaces. To split or join and entity, click the
Split/Join tool in the Geometry toolbox. The options for splitting or joining, from right to left, are:
Split/Join Options
202
Geometry Tab
2. Select the line or curve and click the middle mouse button to complete the selection. The Status Line
indicates that the split will occur as shown in the graphics area and to move the U and V Value sliders to
change the parameters or click the middle mouse button to apply the split.
3. Enter the value of a parametric point at which to split the line or curve, or use the slider bar to
interactively increase or decrease the parameter value. The parametric point is displayed on the line or
curve for visual guidance. The model space coordinates of this point are displayed in the lower left corner
of the graphics area.
4. Click the Split button to split the entity or click the Put Point button to put a point on the line or curve
without splitting it. Click Cancel to cancel the operation.
If higher level entities such as loops or edges reside on top of a split line or curve, CFD-GEOM
automatically updates those data structures. This is a very important feature for controlling the
unstructured surface gridding algorithm and is also extremely important during multi-block structured
grid generation for topological modifications.
SPLIT SURFACES
Trimmed and Untrimmed Surface entities can be split along their isoparametric u,v curves.
203
CFD-GEOM V2014.0 User Manual
Split a surface
1. Select either a Surface entity or an Untrimmed Surface entity. The U and V text fields and sliders will
become active, and isoparametric curves will be displayed based upon the current values. If the surface is
a trimmed Surface entity, these curves will be trimmed to the surface boundaries, including any holes in
the surface. Initially, these curves will be placed in the approximate center of the surface, so that they are
guaranteed to be visible immediately after the surface is picked. If the selected surface is an Untrimmed
Surface entity, the entire U and V isoparametric curves will always be drawn at the default or most
recently used values.
2. Set the desired U and V values. For both surface types, new isoparametric curves will be computed and
drawn with each change. If the selected surface is a trimmed Surface entity, the U and/or V curve(s) will
not be drawn if the corresponding value would place the curve(s) outside the outermost loop of trimming
curves.
3. Press middle-mouse or the "Split” button to perform the split. Alternatively, you may press the "Put
Curves” button to create the isoparametric curves without splitting the surface. A third option is "Put
Point”, which will simply create a Point entity at the intersection of the isoparametric curves without
actually creating the curves or splitting the surface.
• If both U and V values are outside the surface boundaries, neither "Split”, "Put Curves”, nor "Put Point”
will have any effect.
• If either U or V values are inside the surface boundaries, either 2 or 4 new surfaces will usually be created
during a split. However, depending upon the shape of the surrounding trimming curves, 3, 5 or more
surfaces may be created.
• If the intersection of the isoparametric curves lies outside the outer boundaries of the surface or inside a
hole, "Put Point” has no effect.
• Surfaces used in the construction of semi-structured domains can not be split. Otherwise, all higher-level
entities derived from the surface (such as Shells) will be automatically updated, and the original surface
will be deleted.
• If both U and V values lie on the boundaries of the untrimmed surface, splitting will not be performed.
The "Put Point” and "Put Curves” options, however, are still available.
• If either U or V (but not both) values lie on the surface boundary, 2 surfaces will be created during a split.
If neither lies on the surface boundaries, 4 new surfaces will be created. In either case, the original surface
will be deleted, and any higher-level entities (such as Faces that were projected to the surface) will be
updated.
• Untrimmed Surfaces used in the construction of Trimmed Surface entities can not be split.
204
Geometry Tab
2. Select the line or curve in the graphics area and click the middle mouse button. The line turns red and the
Status Line prompts you to select a point to split the line.
3. Click the Put Point button to create a point at the position where you want the split to occur. If the point
is exactly on the line or curve entity, the entity is split exactly at that point. If the point is off of the entity,
the closest orthogonal projection of that point onto the entity is chosen as the split point.
4. Click the Split button or the middle mouse button to split the line.
205
CFD-GEOM V2014.0 User Manual
2. Select the surface in the graphics area and click the middle mouse button. The surface turns red and the
Status Line prompts you to select a point to split the surface.
3. If the point is exactly on the surface entity, the surface is split exactly at that point. If the point is off of the
entity, the closest point projection of that point onto the entity is chosen as the split point.
4. Click the Split button or the middle mouse button to split the surface (the Put Curves option will only
create new curves and the surface will not be split.
2. Where an X, Y, or Z constant splitting plane is selected, the location of the plane can be specified via the
Depth field or interactively selected by picking a point from the graphics window.
206
Geometry Tab
3. Where a point is selected, the appropriate coordinate will be loaded into the Depth field and the
mirroring plane outline will be updated.
4. Click the Split Curve by Plane button in the Split/Join toolbox to set the splitting plane to that specified for
the current construction plane; allowing for an arbitrary splitting plane. Selecting this option disables
point selection in the graphics window and disables the Depth text field.
6. Click Split to split the curves or click Put Point to place points without splitting the curves.
7. Press the 'q' key on the keyboard to quit the split mode.
Join Curves
The Join Curves option is the inverse operation to the Split Curve function. By selecting a series of connecting line
and/or curve entities, CFD-GEOM creates a new curve from the concatenation of the input entities.
Note All associations from the input set are updated with the new curve entity. This function does not allow
joining if the higher level entities of the input set are not the same.
Join curves
1. Click the Join Curves button in the Split/Join toolbox. The Join Curves panel appears and the Status Line
prompts you to select the lines or curves that you want to join.
2. Select the lines or curves in the graphics area that you want to join.
3. Click Preview to preview the joined curves. Click Apply to join the curves.
207
CFD-GEOM V2014.0 User Manual
Combine Surfaces
The Combine Surfaces tool, located in the Geometry Splitting/Joining Options toolbox, allows you to join 2 or more
trimmed Surface entities to form a single trimmed Surface. This can be useful when you need to perform one or
more of the following:
• Eliminate silver surfaces imported from CAD models. Such surfaces are often generated by modeling
functions in various CAD systems and are usually not inserted intentionally by the CAD user. Mesh
generation on such surfaces often results in unnecessary mesh clustering and poor quality triangles
and/or quads.
• Simplification of models by reducing the number of surfaces - hence, reducing the number of boundary
conditions in 3-D models and volume conditions in 2-D models.
Combining surfaces is subject to the following constraints:
• The input surfaces must be properly connected. By traversing trimming lines/curves, every surface must
be reachable from every other surface in the input set. Moreover, the collection must not contain any
branches. In other words, it should not be possible to "walk" from one surface to 2 or more adjacent
surfaces through a single trimming curve.
• Exactly the same set of child (higher-level) entities must be derived from them. For example, CFD-GEOM
will not join surfaces that don't form the boundaries of exactly the same set of shells.
• Surfaces used in the construction of semi-structured domains cannot be joined.
• CFD-GEOM must be able to cover the input surfaces with a single surface. In a planar collection of
surfaces, this is always possible. However, in non-planar collections, this is not always possible.
Improvements to this capability will be added in future releases.
Combine Surfaces
1. Click the Combine Surfaces button in the Split/Join toolbox. The Status Line prompts you to select the
trimmed Surface entities that you want to join.
2. Select 2 or more trimmed Surface entities that satisfy the above constraints.
3. Press the middle-mouse button or Apply to combine the surfaces. If successful, the original surfaces will
be deleted and higher-level entities derived from them will be updated.
Tips
• After combining thin silver surfaces with larger surfaces, you may want to use the Minimize
Curves tool or the Join Curves tool to eliminate small curves that bound the silver surfaces.
208
Geometry Tab
• You should avoid combining surfaces that do not join smoothly at their adjacencies. Though it is
often possible to do so, it can introduce severe discontinuities into the new surface that can lead
to problems in later geometric operations involving this surface, and to mesh generation
problems.
• The combine surfaces is now more robust and allows the joining of non-planar surfaces to give
results that more closely follow the original geometry it is suggested that you mesh the surfaces
to be joined.
Intersection Tools
Intersect Entities
The Intersect tools enable you to intersect geometry entities. To intersect geometries, click the Intersect tool in the
Geometry toolbox. The options for intersecting geometries, from right to left, are:
Intersect Buttons
209
CFD-GEOM V2014.0 User Manual
2. Select two lines, curves, or surfaces in the graphics area. A new green point appears at the proposed
intersection, and the Status Line indicates that one point will be created where the entities intersect.
3. Click the Intersect button or click the middle mouse button to complete the selection and create the
point. If only one intersection point is found, click Trim to trim the lines or curves at the intersection point
and trim the two lines or curves into four new segments. The Control Panel displays the minimum
distance between the points evaluated on the two curves. This distance can be used to keep or throw
away the points evaluated.
Note If the Trim option is used and higher level entities, such as loops or edges, exist on the trimmed lines or
curves, these higher level entities are automatically updated by CFD-GEOM. This is a very important feature for
controlling the unstructured surface gridding algorithm and is also extremely important during multi-block
structured grid generation for topological modifications.
210
Geometry Tab
Use the left mouse button to pick the first set. This set is drawn in red. Click the middle mouse button to
end the first set selection.
Use the left mouse button to select the second set. This set is drawn in cyan. Click the middle mouse
button to end the second set selection.
Note The intersection method is an iterative numerical scheme that attempts to converge the calculations to the
value specified for the geometric precision. In those cases where the method fails, and it is known that an
intersection should occur, decreasing the geometric precision may allow the intersection to converge to the
desired result.
Intersect Surface/Plane
The Intersect Surface/Plane tool creates curves by intersecting surface entities with a plane. The plane can be
specified at a constant X, Y, or Z value. Alternatively, the current construction plane can be specified.
211
CFD-GEOM V2014.0 User Manual
2. Choose how you want the intersection to occur by selecting one of the following from the Options
selection:
o When an XY, YZ, or XZ surface is selected, the location of the plane can be specified via the Depth
field or interactively selected by picking a point in the graphics window.
o When a point is selected, the appropriate coordinate will appear in the Depth field and the plane
outline will be updated.
o When Construction Plane is selected, it enables you to set the plane to that specified for the
current construction plane, thus allowing for an arbitrary plane. Selecting this option disables
point selection in the graphics window and disables the Depth field.
3. Select one or more surfaces and click the middle mouse button to complete the selection. The Status Line
prompts you to set the plane depth.
4. Enter the plane depth and click the Preview button to preview the intersection.
5. Click the Intersect button or middle mouse button to apply the intersection.
212
Geometry Tab
2. Select two lines in the graphics area. The Status Line indicates that the lines will be extended to the point
shown.
3. Click Apply to extend the lines to the computed intersection. Click Cancel to cancel the operation.
213
CFD-GEOM V2014.0 User Manual
• Allows users to work with meshed surfaces imported from external grid formats such as
NASTRAN/PATRAN, STL, FAST, and DTF
214
Geometry Tab
• Reverse engineering of discrete surfaces back to CAD (only planar surfaces) can contain any number of
interior holes
o Split at intersections
o Boolean operations
215
CFD-GEOM V2014.0 User Manual
2. Select two or more lines and then press the middle mouse or the Apply button to create the surface.
216
Geometry Tab
2. Select two or more surfaces and then press the middle mouse or the Apply button to create the discrete
surfaces.
2. Selection of discrete surfaces will activate the "Boundary Type" options. The "Lines" option will give a
series of lines to describe the loops of the trimmed surface while the "Curves" option will attempt to join
as many of the lines of a loop into single curves.
3. Select two or more surfaces and then press the middle mouse or the Apply button to create the trimmed
surfaces.
217
CFD-GEOM V2014.0 User Manual
Smooth Button
2. Select a single discrete surface and then press the middle mouse or the Apply button to smooth the
discrete surface.
Consistent Orientation
This tool allows you to consistently orient the facets on a discrete surface. On occasion, discrete surfaces can
contain facets which have facet orientations such that the normals are not consistently oriented. Note that non-
manifold surfaces (containing edges with more than two facets) cannot be consistently oriented.
2. Select a set of discrete surface and then press the middle mouse or the Apply button to orient the
discrete surfaces.
218
Geometry Tab
2. Select a set of discrete surfaces, optionally provide a joining tolerance and then press Apply or middle
mouse to complete the operation.
Merge Nodes
This tool allows you to merge nodes on a surface given a tolerance. On occasion, discrete surfaces may exhibit free
edges in the interior of a surface although, visually there appears to be point to point match. To remove these
spurious free edges this tool will find all points whose distance to one another is within the given tolerance and
make those points equivalent.
219
CFD-GEOM V2014.0 User Manual
2. Select a set of discrete surfaces, provide the tolerance and then press Apply or middle mouse to complete
the operation.
Outlines are the grid segments that lie on the outer boundaries of the surface. If the surface contains any
holes/gaps, the outlines will also include the grid segments that form those holes/gaps. Features are the interior
grid segments that lie between any 2 facets. Whether or not a feature is critical is determined by the feature angle
discussed below.
If extracting lines, a line will be created on each outline and/or feature grid segment. If extracting curve an attempt
will be made to where possible to spline a single curve through the grid points forming connected grid segments.
The feature angle is used only when extracting or splitting at critical features. If the angle between the normals of
any two adjacent facets equals or exceeds this value, the shared edge segment is considered critical and a line or
curve will be extracted across it.
220
Geometry Tab
2. Select a set of discrete surfaces then press the middle mouse button to complete the set.
3. Set the desired options and in the case of extracting or splitting with critical features the "Feature Angle"
textfield will become active and allow the input of the desired angle. Press the Apply button or middle
mouse to complete the operation.
Intersect
This tool allows the intersection of discrete surfaces to either extract the intersection (s) as lines or curves,
insertion of the intersection points into the surfaces or splitting of the surfaces at their intersections. Note that this
tool will not detect intersections of coincident surfaces.
Intersect Button
221
CFD-GEOM V2014.0 User Manual
Intersection Panel
2. Select the first set of surfaces and complete the set by a press of the middle mouse button. Then the
Status Line will prompt you to select the second set of surfaces.
3. Select the second set of surfaces and complete the set by a press of the middle mouse button. The various
buttons in the panel will activate.
4. Select the desired options and in the case where "Extract" has been selected then the intersections can be
generated either as line segments or curves where possible.
222
Geometry Tab
2. Select the first set of surfaces and complete the set by a press of the middle mouse button. The various
buttons in the panel will activate.
3. Select the desired plane; if the selection is one of the primary planes then the tool will allow a
specification of the depth of the plane into the provided text field or a graphical selection of any point to
set the depth. Selection of the "Construction Plane" option will intersect with the current construction
plane.
4. Select the desired options and in the case where "Extract" has been selected then the intersections can be
generated either as line segments or curves where possible.
223
CFD-GEOM V2014.0 User Manual
Boolean Operations
These tools allow you to union, subtract and intersect closed sets of discrete surfaces. The union operation will
combine two sets such that the common interior section will be removed. The subtract operation subtracts the
second set from the first. The intersect operation retains those surfaces which are common between the two sets.
The order of selection is not important for the union or intersect operation but it is critical for the subtract
operation.
2. Select the first set of surfaces and complete the set by a press of the middle mouse button - the graphics
window will highlight where the collection is not closed. Then the Status Line will prompt you to select the
second set of surfaces.
3. Select the second set of surfaces and complete the set by a press of the middle mouse button. The various
buttons in the panel will activate.
4. Select the desired options then press the Apply or middle mouse button to complete the operation.
The boolean operations usually return a set of closed surfaces and the Outline/Critical Features tool can
then be used to split the surfaces.
224
Geometry Tab
2. Set the following control parameters to govern how you want to generate the grid. Selected surfaces can
be prescribed their own max and min cell sizes. After selection of those surfaces for which you want a
different cell size, input the desired max and/or min cell sizes and then press the “Apply to Selected”
button.
Adapt to Curvature - Determines whether or not the curvature of boundary edge in the surface(s) is taken
into account when gridding the boundaries. When used with the Curvature Criterion angle, you can
control how coarse or fine to resolve high curvature regions.
225
CFD-GEOM V2014.0 User Manual
Maximum Curvature - An angle value that will create a higher quality grid. Disabling this option can be
useful for generating a coarse grid.
Maximum Cell Size - This determines how large triangles are allowed to grow. This does not mean
triangles this large will actually be generated.
Minimum Cell Size - Sometimes, the underlying boundary edges can contain cusps or other regions of
extremely high curvature of which you are not aware. This can result in unexpected clustering in the
vicinity of that feature. Raising the minimum cell size can reduce the clustering in that region, by
preventing the creation of triangles smaller than the specified value. This value is overridden if larger than
the minimum line or curve length in the geometry. By default, this value is 1/10000 of the default
maximum cell size, and should rarely be changed.
Thin wall processing - an additional meshing stage where those triangles having all nodes on the
boundary are either split or swapped with neighbors to enforce having at least one non-boundary node.
Edge Meshing Control - User can control which boundary edges of a surface will be remeshed - for those
edges which are remeshed, the original points distribution as given in the discrete surface definition will
be used. Options are All, Unshared (edges bounding only one surface), Shared (edges bounding two
surfaces) or None.
Discretely defined geometries do not have any topology associated with them, unlike normal trimmed surfaces
which have boundary curves/edges and interior loops. Therefore, CFD-GEOM transparently defines the underlying
topology system for the surfaces to be meshed; the system which derives the topology information can fail if the
surfaces contain cracks or if the surfaces do not close together to form complete boundaries among adjacent
surfaces. There are a number of caveats to using this tool:
1. If the discrete surface geometries match boundary edge to boundary edge then in order to obtain a point
to point match at boundaries the surfaces must all be meshed simultaneously. The figure below shows an
example. The figure on top shows the mesh when the surfaces are meshed independently while the
second figure shows the mesh with the surfaces meshed simultaneously. Notice that the top image does
not have a point to point match at their common boundary.
226
Geometry Tab
2. The selected surface(s) should not have any interior gaps; interior holes are allowed.
3. The selected surfaces should form a set such that the resulting set should not have any gaps.
4. Meshing may fail and the only recourse is to experiment with the minimum cell size and curvature
adaptation.
5. Each surface must not be closed and should have visible boundary segments.
Typically, this tool should be used on a collection of surfaces which are intended to form a closed set of watertight
surfaces, though open surfaces may also be shrink-wrapped. However, this will yield an overlapping surface mesh,
which can then be split using the critical feature splitting tool in the discrete modeling toolkit.
To create them, click the Shrinkwrap Discrete Surfaces tool in the Discrete Modeling toolbox.
227
CFD-GEOM V2014.0 User Manual
2. Set the desired maximum size to specify the maximum allowable cell size for any new triangle. A smaller
maximum cell size will usually result in a more faithful representation of the original surfaces. Note,
however, that the shrink wrap mesh may spill into gaps between surfaces if the maximum cell size is
smaller than those gaps, and may result in a shrink-wrapping failure.
3. Upon a successful shrink-wrapping operation where the "Delete Original Surfaces" is set, the original
surfaces will be deleted and replaced by a similar number of surfaces, which will form a "watertight"
collection.
4. If the "Single Surface" option is set, then the shrink-wrapping operation will construct a single closed
surface.
228
Geometry Tab
2. Click the "Separate Discrete Surfaces" button in the discrete surface toolbox. The status line will prompt
you to select discrete surface facets (triangles).
3. Select any number of triangles; the usual selection/unselection mechanisms will work.
4. Click Apply, press the middle-mouse button, or press the F2 key to complete the operation.
The following images show an example of the process; in this case, we are extracting the interior circle as
a separate surface.
Miscellaneous Tools
Miscellaneous Tools
The Calculate tools enable you to calculate distance, length and angles. To use the calculator, click the Calculate
tool in the Geometry toolbox. The options for calculating, from top to bottom, are:
Construction Plane
Calculate Distance
Calculate Length
Calculate Angle
Minimum Distance
Pick via Key Number
Pick via Name
Topology Queries
Projected Area
229
CFD-GEOM V2014.0 User Manual
Construction Plane
The Construction Plane tool enables you to position a construction plane in space and place many points to
generate curve entities. The construction plane, when visible, is drawn as a uniform mesh to provide visual
feedback on its location and orientation.
230
Geometry Tab
3. Select a construction plane from the Choose Construction Plane section, based on the following
descriptions:
XY, YZ, and XZ - You can specify the coordinates or depth of a construction plane perpendicular to any of
the coordinate axes without having to specify three points which uniquely determine the plane.
Existing Line - This option will set the construction plane normal to the selected line.
Three Points - You can specify three points that uniquely determine the plane.
Point and Normal - You can select a point, then specify a normal to set the construction plane.
231
CFD-GEOM V2014.0 User Manual
Normal to Curve - The Normal to Curve option enables you to place the construction plane normal to any
location along a specified curve. Choosing this option opens a slider that adjusts the location of the
construction plane along the specified curve. This can be a useful tool if you want to generate curves
which are normal to a curve at a given location.
Depth - Controls the depth of the construction plane perpendicular to any of the coordinate axes.
Step Size - Controls the gradations of the mesh and provides visual feedback on the physical values on the
plane.
5. Click Accept.
Calculate Distance
The Calculate Distance tool enables you to calculate the distance between two points.
Calculate distance
1. Click the Calculate Distance button in the Calculate toolbox. The Point Distance panel appears and the
Status Line prompts you to select two points.
2. Select two points in the graphics area. The distance between these two points, as well as the difference in
X, Y, and Z, is reported in the text field on the input panel.
232
Geometry Tab
Calculate Length
The Calculate Length tool calculates the length of a line or curve.
Calculate length
1. Select a line or a curve in the graphics area.
2. Click the Calculate Length button in the Calculate toolbox. The Curve Length panel appears and the length
of the line or curve is calculated and displayed in the Length field.
Calculate Angle
The Calculate Angle tool calculates the degrees in an angle.
233
CFD-GEOM V2014.0 User Manual
2. Select two lines in the graphics area. If the lines intersect, the smallest angle between the two lines and
their intersection point appear in the Angle (Degree) field. If the lines do not intersect, an error message
appears in the Status Line.
Minimum Distance
The Minimum Distance tool calculates the minimum distance between all existing Points in a model.
2. Select all points in the graphics area (Ctrl-A). The two points that lie closest to each other are highlighted
in the error color and the distance between these points appears in the Distance field.
234
Geometry Tab
2. Input the desired key number and press the Enter key; if a valid key number is input the entity will be
picked.
2. Input the desired name and press the Select button; if a valid name is input the entity will be picked.
Topology Queries
The Topology query tool is used to pick entities based on query value; for instance, you could as the tool to select
all lines/curves which are being used in the construction of one surface to help find areas of the model which
remain open.
235
CFD-GEOM V2014.0 User Manual
Projected Area
The Projected Area tool allows the calculation of the frontal area of a specified set of surfaces onto a plane. The
frontal area is the total sum of all the sub-areas of the surface elements as projected onto an arbitrary plane. The
elements describing the surfaces can be triangles, quadrilaterals or polyhedral. The accuracy of the computation is
dependent on a single integer value which specifies the number of increments to refine a background mesh; for
example, the default value of 500 will generate a 500x500 background mesh. Larger integer values should yield a
more accurate calculation however, CFD-GEOM sets the allowable limits between 10 and 1500.
236
Geometry Tab
3. Select the desired plane either constant X,Y, Z or an arbitrary plane by selecting the "Normal" option and
specifying the normal of the plane in the nx, ny and nz text fields.
5. Click the Apply button, press the middle-mouse button, or the press the F2 key.
6. The projected area in the current model units will be displayed in the Projected Area field.
237
Chapter 9. Mesh Tab
Mesh Tab
The tools in the Mesh Tab define grid parameters for structured or unstructured meshes. The toolbox is divided
into element types beginning with 1D elements (edge grids) and ending with 3D elements. During any task, the
Status Line displays information about the next expected input. These messages lead you step-by-step through the
current input procedure. If the phrase Picking Mode is visible in the Status Line, then no input is expected for the
selected option.
239
CFD-GEOM V2014.0 User Manual
Mesh Tab
Grids sometimes contain grid quality problems such as spacing discontinuities due to poor volume ratios, grid
skewness, and not using the stretching function. For a more accurate and robust grid, it is suggested that after
creating the grid that you modify the grid slightly to improve the quality. The most important elements to look for
are:
Mesh Definitions
To facilitate a clear understanding of the grid terminology, the following definitions are provided.
2D Block A 2D block is a set of faces that form a valid single-domain, structured grid. The 2D block is
analogous to the composite block in 3D. You can select 2D blocks with the Block (B) button in
the Entity Bar.
Block A block is a volume discretisation created, generally, from six face sets that form the Imin,
Imax, Jmin, Jmax, Kmin, Kmax boundaries. Currently, the block discretisation employs four TFI
options to determine the internal node distribution. When constructing a block, if a set of
bounding face sets is picked that encloses a volume and has less than six bounding sets, a
block with a degenerate side is automatically created. The orientation of the block is
240
Mesh Tab
automatically set, so the order of input for the face sets has no bearing on the resulting
orientation, except that the first picked set will usually become the Imin side of the block.
CFD-GEOM currently allows four variations of the TFI algorithm (directional TFI), including the
following: All Directions, I Direction, J Direction, and K Direction.
• The All Directions option takes the interpolate information from all six boundary
faces to determine the distribution for the internal nodes.
• The I Direction option uses the interpolate information from the J- and K-min and
max boundaries and interpolates the node distribution at each I station in the block
grid.
• The J and K Direction options work in a similar manner, taking the interpolant
information from the min and max boundaries of the remaining directions and
interpolating at each station in the chosen direction. These three direction options
allow you to exercise some control over the internal node distribution by ignoring
some of the interpolant information.
Composite Block A composite block is a set of blocks combined to form a single-grid block. The grid lines from
each member block’s TFI is preserved within the single composite block. The resultant single-
domain, structured grid is referred to as a composite block grid. In the Entity Bar, composite
blocks are selected with the Block (B) button.
Edge An edge is a set of lines and curves consisting of n grid points with n-1 line segments
connecting the grid points. Grid points along an edge are referred to as edge grid points and
are not the same as geometric points created using geometry creation tools. An edge is the
connecting element between faces as well as the bounding element of a face. An edge can
also be used in loops. An edge set consists of one or more connected edges.
Face A face is a surface discretisation created by TFI, generally, from four user-specified edge sets.
Existing face grids can also be projected to NURBS surfaces. The resultant grid is referred to
as the face grid (FG on the entity bar). A face set consists of one or more faces that can be
combined to form a valid structured surface grid. CFD-GEOM is capable of creating face
entities with degenerate boundaries. In selecting edge sets that are not degenerated, CFD-
GEOM accepts input for face construction until a closed loop is established or more than four
bounding sets are entered. If a degenerate topology exists, and the corresponding sides have
agreeable point numbers, a face with a degenerate boundary is created. Faces can have 0, 1,
or 2 degenerate sides.
Grid Toolbox The Grid toolbox is activated by clicking the Grid button. When you click a tool in the toolbox,
another panel opens for performing the following specific tasks:
• Creating and manipulating edges
• Generating unstructured triangular meshes
• Creating and manipulating faces
• Generating tetrahedral grids
• Generating semi-structured grids
• Creating and orienting blocks, 2D blocks, and composite blocks
• Checking grid quality
These messages lead you step-by-step through the current input procedure. If the phrase
Picking Mode is visible in the Status Line, then no input is expected for the selected option.
241
CFD-GEOM V2014.0 User Manual
The following notes will assist you in using the Structured Edge tools:
• The geometry defined as part of an edge cannot be deleted without first deleting the edge.
• An edge cannot be deleted if it belongs to a face, a face cannot be deleted if it belongs to a block, and so
on.
• The edge creation tools do not allow you to create more than one edge on a line or curve. However,
certain operations (i.e. translation, rotation, etc.) implicitly filter lines and curves. This can cause some
lines or curves to have more than one edge defined on them. You can use the Edge Filtering option to
return to one edge for a given line or curve. See the Filtering menu for more detail on the use of filtering.
242
Mesh Tab
Create/Edit Edge
The Create (Edit) Structured Edge tool creates an edge based on a set of one or more lines or curves that you have
selected. It also enables you to specify the edge grid parameters, number of grid points, and distribution type.
243
CFD-GEOM V2014.0 User Manual
2. Select one of the following distribution types from the Type section of the panel:
Power Law The power law distribution used in the Structured Edge Parameters panel is defined by
where
th
u[n] = n gridpoint on the interval
244
Mesh Tab
The power is usually close to one which corresponds to a uniform distribution. For non-unity
powers, the forward, backward, and symmetry options indicate how the power law grid
distribution is applied. For the hyperbolic tangent distribution, specify the spacing
parameters at the beginning (Delta1) and end (Delta2) of the edge. Endpoint spacings can be
specified in one of two ways: absolute spacings (the default) and relative spacings. Relative
spacings are expressed as some fraction of the total edge length. For example, given an edge
of length 100, a relative dsl of 0.1 results in a first endpoint of 10.
Hyperbolic Hyperbolic Tangent edge gridding is based on the iterative technique to minimize truncation
Tangent errors in one-sided and two-sided stretching functions as described by Vinokur (1982).
Geometric A geometric distribution behaves similarly to a power law distribution except that the
spacing is governed by a geometric sequence, which in turn is controlled by a transition
factor that you have specified (i.e. the length of a grid segment will be that of the previous
grid segment multiplied by the transition factor).
3. Select the lines and curves in the graphics area that will be used to create the new edge. Each selection is
highlighted in red and the edge grid is immediately previewed.
4. Modify the number of grid points or edge grid point distribution in the Parameters panel.
EDGE EDITING
Modifying or editing the structured grid entities is performed by changing the edge point distribution. It is easiest
to work i this mode by turning the display of all entities off except for edges and edge grids. During edge editing, if
you select a linked edge and modify the number of edge grid points or the distribution all other group members
will also be edited. Selecting Update then updates all faces, blocks, etc. There are two ways to edit an edge: using
the Edge Query menu in the graphics window and using the Create/Edit Structured Edge button.
2. Click the right mouse button. The Edge Query menu appears.
4. Modify the number of edge grid points or edge grid point distribution in the Parameters panel.
245
CFD-GEOM V2014.0 User Manual
5. Click Update to update all entities affected by any edge modifications. Click Apply or the middle mouse
button to apply the new grid parameters. Click Cancel to restore the model to settings that were made
after the last successful update.
2. Select an edge. The edge becomes highlighted in red. All highlighted edges retain the user-specified
numbers of edge grid points and edge point distributions.
3. Modify the number of edge grid points or edge grid point distribution in the Parameters panel.
4. Click Update to update all entities affected by any edge modifications. Click Apply or the middle mouse
button to apply the new grid parameters. Click Cancel to restore the model to settings that were made
after the last successful update.
UPDATING
During an Update, CFD-GEOM attempts to update all other entities affected by the modifications made during
edge editing according to the rules for mismatched faces. (Mismatched faces are those where the number of edge
grid points on opposing edge sets are no longer equal). For mismatched faces with n edges constituting the
opposite sides of the face, the following rules apply:
• If n-1 of the edges have been specified, the nth edge is determined.
• If n-1 edges have not been specified, you are prompted to manually balance the mismatched numbers of
grid points. The mismatched face is highlighted with the error color (green), as are the opposing edges
which have inconsistent numbers of edge grid points. Edit one or more of the highlighted edges to
balance the number of edge grid points on the opposing edge sets.
EFFICIENCY TIPS
• When modifying an edge, check to see if the number of points on opposite edges match. If not, modify
one (or more) of the opposite edges to balance the number of points before selecting Update.
• Use Edge Linking to automatically maintain the same number of edge grid points or edge grid point
distribution on a group of related edges.
• If you get lost during an Update, click Cancel to return all edge point numbers to their previous values for
the last successful update. File saves cannot be performed until all faces are balanced.
• Linked Edges - Selecting any linked edge during edge editing and subsequent modification of the number
of edge grid points or edge grid point distribution results in the automatic modification of all other group
members. Selecting Update then updates all faces, blocks, etc.
• Before the grid system can be handed to the flow solver, you must define boundary and volume
conditions in the View Bar-BC/VC Editor.
246
Mesh Tab
2. Click the Create All Edges button in the Structured Edge toolbox. The Edge->Create All panel appears. The
default number of points is five.
4. Select one of the distribution methods from the Distribution section of the panel (see Create a new
structured edge for a description).
5. Click Preview to preview the edges. Click Apply or the middle mouse button to create the edges. All lines
in the Graphics area turn blue to indicate that edges have been created. In addition, edge grids appear on
each line. Each edge displays the number of points you specified in the Number of Points field.
247
CFD-GEOM V2014.0 User Manual
Edge Linking
EDGE LINKING
The Edge Linking tool links edges together to set the same edge grid point number and/or edge grid point
distribution for a set of edges, such that if one edge in the group is changed, they are all changed. By using this
option you can specify the complete grid propagation pattern throughout the model to automatically refine or
coarsen a grid. For edges that have faces built from them, it is recommended that you only use the link option on
them when all edges in the group have the same number of grid points.
Edge linking groups consist of two or more edges. The first edge added to the group is the leader edge. Subsequent
edges added to the group are called secondary edges. There are three link types: number of points, distribution,
and both. These link types have no meaning for the leader edge. When a secondary edge is linked according to the
number of points, it will always have the same number of grid points as the leader edge, but its distribution type is
independent of that of the leader edge. When linked according to distribution, the secondary edge will always
have the same distribution as the leader edge, but the number of points on the secondary edge is independent of
that of the leader edge. When a secondary edge has a "both" link type, it will always have the same number of grid
points and distribution as the leader. Within an edge linking group, secondary edges can have different link types.
An edge can belong to, at most, one edge linking group.
248
Mesh Tab
2. Turn off the FG button on the Entity Bar to turn off face grid viewing.
3. Select a leader edge with the left mouse button. It will be highlighted with the picked color. When
creating a new link group, you should not select a leader edge or secondary edge from an existing group.
4. Select additional edges and click the middle mouse button to complete the set.
5. Select one of the following Link Options in the Edge > Link Edges panel: Both, Number of Points,
Distribution.
6. Select the link type and press the middle mouse button to complete the group. Please note that all edges
in the group will get the currently selected link type.
2. Select an edge in the group to which you want to add edges. If you select a leader edge, it will be
highlighted in the Picked color. All secondary edges in that group will be highlighted in the Picked Set 3
color. If you, instead, select a secondary edge, that edge and the leader edge in the group will be
highlighted in the Picked color. The remaining secondary edges in the group will be highlighted in the
Picked Set 3 color. Normally, you should select the leader edge.
3. Select any additional edges. These edges should not belong to existing groups.
4. Select the link type and press the middle mouse button to complete the group. All edges in the group will
get the currently selected link type.
2. Select the edge you want to delete. If the edge is part of an edge linking group, both it and the leader
edge will be highlighted in the picked color.
3. Click the Remove button in the edge linking toolbox. The edge is deleted.
249
CFD-GEOM V2014.0 User Manual
Multiple edges can be deleted simultaneously but they must belong to the same edge linking group. If you remove
all secondary edges from an edge linking group, that group will be destroyed. Leader edges can not be removed
from a link group.
2. Click the Remove button. The edge linking group is deleted. Those selected edges that do not belong to
the currently selected group will be ignored.
1. Select the Edge Linking button from the Structured Edge toolbox.
2. Select the edge whose link type you want to modify. That edge and the leader edge will both be
highlighted in the picked color. The link type of the edge will also be shown.
3. Choose the link type and press the middle mouse button or Apply. Multiple edges can be modified
simultaneously.
The link type will be applied to all selected edges when the change is applied. To assign different link types to the
edges, the edges should be edited and changes applied individually. Whether creating or modifying an edge linking
group, selecting "Update” will propagate the changes to all entities affected by the creation or modification of the
edge linking group.
Tips
• After editing, the edge linking group remains selected in the edge linking editor. If you want to create a
new group or edit a different group, you will need to click the Update button and then Cancel, or reopen
the edge link editor.
• When you assign a Both or Distribution link type to a secondary edge, and the distribution type is
hyperbolic tangent, the secondary and leader edges should be of similar length. Otherwise, you may
encounter a situation in which the sum of the specified endpoint spacings is larger than the length of the
secondary edge. In such situations, CFD-GEOM assigns a uniform power law distribution to the secondary
edge.
250
Mesh Tab
2. Select the edge you want to replace. The Status Line prompts you to select the entities for substitution.
5. Click Update to update the rest of the model. The Update button appears after the first successful
substitution has been completed.
251
CFD-GEOM V2014.0 User Manual
3. Select one of the two options for splitting from the Split Edge at Pint panel:
Split - Split creates a new geometric point at the specified grid point. It then splits the appropriate
constituent line/curve as necessary, splits the edge, and updates any topology/grid entities derived from
the original edge.
Put Point - The Put Point option places a new geometric point at the specified grid point.
252
Mesh Tab
Split an edge
1. Click the Split at Point Entity button in the Structured Edge tool box. The Split Edge at Point Entity panel
appears and the Status Line prompts you to select the edges that you want to split.
3. Click the Split button in the panel. CFD-GEOM splits the edge into two equal parts.
Join Edges
The join edges tool can be used to join two or more edges into a single edge.
Join edges
1. Click the Join Edges button in the Structured Edge toolbox. The Join Edges panel appears and the Status
Line prompts you to select the edges that you want to join.
3. Click the Join button in the panel. CFD-GEOM creates a new edge from your selections. The resulting
number of grid points for the new edge will be the sum of the input set grid points minus the number of
connections. After a Join Edge operation is completed, CFD-GEOM automatically updates the model with
the new entity and its associations. This option does not allow you to join edges that are not part of the
same set of face entities or loop entities.
253
CFD-GEOM V2014.0 User Manual
2. Click the Copy End Spacing button in the Structured Edge toolbox. The Copy Edge Endpoint Spacing panel
appears.
3. Select the source edge with the desired spacing at the reference point.
4. Select one or more target edges. Note that all selected targets must share the reference point, and that
the reference point is implied by the selected source and target edges.
5. Click the middle mouse button to complete the operation. CFD-GEOM does four things:
i. If the grid type of any target edge is geometric or power-law, that edge's grid type is converted
to a hyperbolic tangent type that uses absolute end point spacings. The delta values are
extracted from the current grid (before modification).
ii. The source end spacing at the reference point is applied to each target edge on the side incident
at the reference point. Note that on the opposite side of the Edge, the spacing is not altered.
iii. The target edges are re-gridded with the new end point spacing specifications.
254
Mesh Tab
2. Click the Copy Grid Parameters button in the Structured Edge toolbox. The Edge Linking panel appears
and the Status Line prompts you to select a reference edge.
4. Select one of the following copy options from the Copy Options section:
Both - The target edges (including edges created in this tool) will have the same number of grid points -
AND- the same type (power-law, hyperbolic tangent, etc.) as the reference edge. They will also have the
same power, end point spacings, etc., as the reference edge.
Number of Points - The target edges (including edges created in this tool) will have the same number of
grid points as the reference edge.
Distribution - The target edges (including edges created in this tool) will have the same type (power-law,
hyperbolic tangent, etc.) as the reference edge. They will also have the same power, end point spacings,
etc., as the reference edge.
6. Click Apply to apply the specified coarsening factors to all selected blocks. The grid parameters are copied
to the targeted entities.
• A new edge is created. Regardless of the number of points setting, the new edge will have the same
number of grid points as the source edge.
• If Distribution is selected, the new edge uses the same distribution parameters (described above) as the
source edge. If not selected, the new edge will receive a uniform power-law distribution. Note also that if
the source edge has a hyperbolic tangent distribution, and if the sum of its delta-s values exceeds the
length of the new edge, the new edge will receive a uniform power-law distribution.
255
CFD-GEOM V2014.0 User Manual
• If the selected line/curve already has an associated edge, CFD-GEOM will automatically unpick the entity
and issue a warning message.
• If Number of Points is selected, the target edge will receive the same number of grid points as the source
edge. Note that if the target edge is currently used in the construction of any faces, this tool cannot be
used to change the number of grid points on the target edge. This restriction is necessary to ensure that
Faces do not become unbalanced. Please use the Edge Editor to change the number of grid points on such
edges.
• If Distribution is selected, the target edge will use the same distribution parameters (described above) as
the source edge. If the target edge is a member of an Edge Linking Group, the members of the linked
group will also be updated when appropriate.
During Face, Block, and Semi-Structured domain "sweeps”, a single Face is swept from each Composite Edge.
Composite Edges can be built on Edges that are already used in the construction of Faces, Loops, and Filaments. In
such cases, the definitions of these entities are automatically updated; because the underlying Edge grids are
preserved, the higher level grids will remain unchanged.
2. Select two or more edges that satisfy the rules cited below.
256
Mesh Tab
Rules
1. Selected edges must form a connected set with no branches.
3. Selected edges must not lie on different sides of the same face.
4. All selected edges must be used in the construction of exactly the same set of entities.
Note If any of these rules are violated during composite edge construction, an error message explaining the
problem will be displayed.
The goal of the composite edge tool is to use as many of the selected edges as possible to create as few composite
edges as possible.
2. Select at least two edges that satisfy the rules cited in Create Composite Edge.
257
CFD-GEOM V2014.0 User Manual
EFFICIENCY TIP
When building complex 3-D meshes via linear extrusion, revolution, and non-linear sweeping, we recommend the
following approach to reduce the number of generated faces:
2. Continue building the 2-D profile by building faces and/or loops on these edges
3. Enter the Create Composite Edges tool, select all edges, and press middle mouse
258
Mesh Tab
259
CFD-GEOM V2014.0 User Manual
Because CFD-GEOM generates boundary-conforming tetrahedral meshes, the meshes can be no better than the
boundary mesh. That is, tetrahedra (or pyramids) grown from high-aspect ratio triangles and quads will have small
minimum angles. Please keep this in mind when you build your unstructured domain from structured faces.
EDGE SETS
3. In the graphics area, select the edges for the first edge set that will appear as Set 1 in the Point Count
section. Selected edges appear in red. If you make a mistake, click the right mouse button and select
unpick to de-select the last selected edge.
An edge set can consist of a single edge or multiple edges that are connected in an end-to-end fashion.
4. Click the middle mouse button to complete the first edge set.
Even if the edge set consists of a single edge, you must click the middle mouse button to indicate the
completion of the edge set. The set appears in Set 1 of the Point Count section.
5. Select the next three sets. The order in which you pick edge sets is not important. When an edge set is
complete, it changes color. The first edge set changes to magenta, the second set to yellow; the third set
to cyan; and the fourth set to dark magenta.
6. After completing the fourth edge set, a message appears on the Status Line indicating that the face was
successfully created. The white face handler appears in the middle of the face. You can create additional
faces or quit. Once this tool is selected, it remains engaged until you press the "q" key on the keyboard.
Tip When creating three-sided degenerate faces, the order in which edge sets are picked is important.
CFD-GEOM will place the degeneracy at the intersection of the first and third edge sets. For two-sided
faces, the picking order is not important. A degeneracy will be placed at each of the two intersections of
the edge sets.
260
Mesh Tab
Because CFD-GEOM generates boundary-conforming tetrahedral meshes, the meshes can be no better than the
boundary mesh. That is, tetrahedra (or pyramids) grown from high-aspect ratio triangles and quads will have small
minimum angles. Please keep this in mind when you build your unstructured domain from structured faces.
261
CFD-GEOM V2014.0 User Manual
EXTRUSION
Extrusion enables you to select a set of edges that are extruded along a second set of edges or in one of the
coordinate directions to generate face entities. If the original set of edges selected contains more than one edge, a
face is extruded from each one. If you extrude along an existing edge, the selected edge must share an endpoint
with the set being extruded.
2. Select the edge you want to extrude and click the middle mouse button to complete the selection. The
Status Line prompts you to choose the Extrusion method.
5. Click Preview to view the extrusion. Click Apply or middle mouse button to create the lines, edges, and
face.
262
Mesh Tab
Because CFD-GEOM generates boundary-conforming tetrahedral meshes, the meshes can be no better than the
boundary mesh. That is, tetrahedra (or pyramids) grown from high-aspect ratio triangles and quads will have small
minimum angles. Please keep this in mind when you build your unstructured domain from structured faces.
REVOLUTION
Revolution enables you to select a set of edges that are to be revolved around a selected axis. The axis may be any
one of the coordinate directions or an arbitrary axis defined by a selected line. If multiple edges are selected for
the original set, a face is revolved from each edge.
263
CFD-GEOM V2014.0 User Manual
3. Select the set of edges that are to be revolved around a selected axis.
4. Click the Preview button to view the extrusion. Click Apply to create the face.
Swept Face
The Create Structured Swept Face tool enables you to create complex faces by sweeping selected edge along a
prescribed path (the sweeping curve). This face is formed by forming an underlying swept surface to which the
face is then automatically projected.
264
Mesh Tab
You may first select a set of edges to be swept after which an arbitrary number of connected curves defining the
sweep path may be selected. The remainder of the operation is the same as for the Swept Surface operation with
the addition of an input field where the number of points may be specified to indicate the resolution of the
resulting face along the sweeping path.
The swept face tool generates the underlying surface and then automatically projects the face onto the surface
using the closest point algorithm. For highly convoluted swept faces this method may fail and this failure is
exhibited by the significant deviation of the face mesh from the underlying surface. In these circumstances, the
check box labeled as Closest may be unchecked to obtain the alternate normal projection method. This method is
far slower but the results are usually satisfactory.
A scaling factor can be applied along the sweep path such that the shape of the opposing end edge will be smaller
or larger by the specified factor. Be aware that the scaling is performed about the points located on the sweep
path and the result may not be what was intended.
Typically, swept faces are created as a combination of rotations and translations. To create a swept face using only
translations; the check button labeled Fixed Orientation must be unchecked.
265
CFD-GEOM V2014.0 User Manual
Smooth Face
The Smooth Structured Faces tool can be used to improve the grid point distributions on a face. This facility
invokes an iterative numerical procedure which adjusts the face grid distribution by the solution of an elliptic set of
nonlinear partial differential equations. The differential equations are of the Poisson type and may have zero or
non-zero forcing functions. The presence or absence of forcing functions control the eventual grid distributions.
Complete absence of forcing functions will solve the LaPlace equation and will yield the smoothest possible grid
distribution. However, any desirable clustering of grid points near the edges of the surface will be lost. This tool
may be used, without losing grid integrity, with faces which have been associated with underlying NURBS surface
sets using the Project tool, as discussed above.
There may be one of two types of boundary conditions, Fixed or Orthogonal, prescribed for each edge of a face.
The Fixed boundary condition indicates that the forcing function will be zero at that edge and the grid will, thus, be
of the LaPlace behaviour near that edge. An Orthogonal boundary condition will try to generate forcing functions
such that t the grid distribution is orthogonal to the edge and honor any near wall grid distribution. For 2007, a
new boundary condition type (Orthogonal + Spacing) has been provided - this option allows you to set a desired
near-edge spacing manually. By default, each edge of a face will have a Fixed boundary condition.
Using this tool enables you to select any desired face located within the model for smoothing. When you select
smoothing, the list box displays the number of edges and their current boundary conditions. Selecting edges from
the list box will cause the edges to highlight. Press the Fixed or Orthogonal buttons to modify the boundary
condition. You may enter the number of iterations and press the Apply button to perform the elliptic smoothing.
266
Mesh Tab
The selected face will remain active until another face is selected or the cancel button is pressed. Thus, you may
make boundary condition and number of iteration modifications without having to repeatedly select the face.
In V2007.2, several improvements were made to the face smoothing. A problem was noted in earlier versions in
the grading of such meshes near the boundaries, i.e., the meshes tended to expand far too rapidly away from the
boundaries and thus caused large aspect ratios.
The figure below shows the grid on a circular face. The top-left image is what is obtained from just an algebraic
method, while the top-right image shows the mesh after smoothing with orthogonality. Note that in the top-right
image the mesh is now normal to the boundaries but the spacing away from the wall is derived from the algebraic
mesh. The bottom-left image shows the mesh with orthogonality, but with a user specified spacing - note that only
the first point is near the desired spacing but the next grid lines tend to quickly deviate from the specified spacing.
The figure in the bottom-right shows the new method. The orthogonality is preserved but the near wall spacing is
preserved further into the mesh.
For a more clear depiction of the old and new behaviors, the images below show the original near boundary and
the new near boundary behavior.
267
CFD-GEOM V2014.0 User Manual
Smoothing in V2007
Smooth a face
1. Select a face to smooth.
Note You should enter the total number of smoothing iterations. You cannot smooth a face 50 total
iterations by entering 25 iterations and applying the changes twice. You should instead enter 50 total
iterations, i.e. the iterations on the face are not cumulative.
4. You may remove any smoothing by selecting the edges and clicking the Reset button. this will remove any
smoothing from the face.
Project Face
The Project Structured Faces to Surfaces tool enables you to project the grid points on faces to a prescribed set of
NURBS surfaces. The algorithm projects the algebraically generated grid points onto the NURBS surface set using
either a normal or closest point method and thus ensures that the resulting face grid points will adhere to the
underlying NURBS surface set. CFD-GEOM remembers whether or not a face has been projected. If a projected
268
Mesh Tab
face is modified during a geometry/grid update or is read from a GGD file, the face is re-TFI’d (transfinite
interpolated) and then re-projected. Any smoothing that you have specified is then applied.
Project faces
1. Click the Project Face button in the Structured Face toolbox.
5. Click the middle mouse button to complete the surface set and to associate each face in the selected face
set to each surface in the selected surface set. If a face is projected to a trimmed surface, it is projected
only to the active portion of the surface defined by the trimming loops.
269
CFD-GEOM V2014.0 User Manual
2. Select the Four Sided or Two Sided option. Wne generating 4-sided faces, CFD-GEOM finds all closed sets
of four edges. If the number of grid points on each edge will yield a balanced face, the face is created.
Two-sided faces are generated similarly.
Split Face
The Split Structured Faces tool enables you to split a face into two or four faces along its grid lines. When splitting
a face, new edges must be generated in the interior of the face. The new edges are created exactly on the current
face grid. For this reason, it is recommended that projection or smoothing be done first.
270
Mesh Tab
Split a face
1. Click the Split Face button in the Structured Face toolbox. The Split Face panel appears and the Status Line
prompts you to select a face to split.
2. Select a face in the graphics area. Curves will be drawn along the grid lines at the currently selected I and J
values.
3. Use the sliders for the I and J Values to position the curves.
4. Click Split or middle mouse button to perform the split. The bounding edges (and their underlying
geometry) are automatically split as appropriate, and new edges are generated in the interior of the face.
The original face is deleted and replaced by the new faces. Any topology and grids affected by the splitting
of the face and underlying entities is automatically updated.
Join Faces
The Join Structured Faces tool enables you to join multiple faces into a single face. Please note the following
restrictions:
• If any of the faces to be joined are used in the construction of structured domains, shells, or semi-
structured domains, all the faces must be used in the construction of those same entities. In other words,
all the faces must belong to exactly the same set of higher level entities.
• Faces used in the construction of blocks must all lie on the same side of each block derived from them.
• The collection of faces must form a valid topology.
• Edges in the interior of the collection of selected faces are not discarded.
• The resulting face grid will not necessarily be equivalent to the sum of the original face grids. The original
faces are discarded and replaced with the new face. The grid on the new face will be a TFI (transfinite
Interpolation) of the boundaries of the original face collection. Any smoothing and.or projection in the
original faces may be lost.
271
CFD-GEOM V2014.0 User Manual
3. Click the middle mouse button or Apply to complete the set and join the structured faces.
Butterfly Faces
A convenience tool has been added to automatically create a "butterfly" set of faces for circular topologies. That is
5 structured faces (4 and 1 core) inside a circle. Parameters are available to set the size of the core and mesh
density.
272
Mesh Tab
3. Click Apply.
Curve Meshing
Surface Meshing
Boundary Layer Meshing
Tet Meshing
Define Mesh Sources
Corner Point Source
Interior Source
Tet Source
273
CFD-GEOM V2014.0 User Manual
Curve Meshing
Curve meshing is now allowed, which greatly improves the ability to control mesh size. Surface meshes are
generated from the curves bounding the surface, which means that curve meshing will give a very good indication
of the final density of the surface mesh. This means that the surface mesh density can be "previewed" by meshing
the curves, and therefore circumventing the need to mesh the surface to see the density/quality (surface meshing
is much more computationally expensive than curve meshing).
274
Mesh Tab
Mesh curves
3. Set the following control parameters to govern how you want to generate the grid.
Adapt to Curvature - Determines whether or not the curvature of curves and surfaces in the domain is
taken into account when gridding the boundaries and interiors of the surfaces. When used with the
Curvature Criterion angle, you can control how coarse or fine to resolve high curvature regions.
Maximum Curvature - An angle value that will create a higher quality grid. Disabling this option can be
useful for generating a coarse grid.
Transition Factor - In the first phase of triangular surface grid generation, the lines and curves that bound
the surfaces are gridded. The transition factor governs how quickly the segment lengths grow along these
entities. For example, given a transition factor of 1.1, CFD-GEOM will attempt to make a segment 1.1
times longer than the previous segment. CFD-GEOM will attempt to guarantee that, given any two
adjacent grid segments, the ratio of the length of the larger segment to that of the smaller segment will
never exceed the transition factor. When trim loops contain structured edges, this might not be possible
275
CFD-GEOM V2014.0 User Manual
in some cases. The transition factor must be greater than or equal to one. However, values smaller than
1.01 may cause the grid segment smoother to fail to converge. This will cause the line or curve gridding
phase to run indefinitely.
Maximum Cell Size - This determines how large triangles are allowed to grow. This does not mean
triangles this large will actually be generated. Also, the handler for an unstructured domain contains a
tetrahedron at the center. Modifications to the maximum cell size (via the slider or text field) will be
reflected in the size of that tetrahedron.
Minimum Cell Size - Sometimes, the underlying curves can contain cusps or other regions of extremely
high curvature of which you are not aware. This can result in unexpected clustering in the vicinity of that
feature. Raising the minimum cell size can reduce the clustering in that region, by preventing the creation
of triangles smaller than the specified value. This value is overridden if larger than the minimum line or
curve length in the geometry. By default, this value is 1/10000 of the default maximum cell size, and
should rarely be changed.
GENERAL OPTIONS
Meshing parameters for curves may be set locally or globally. The local option (Set Local) is essential to control
mesh size in different parts of the geometry, i.e. allowing for a coarse mesh in non-important regions and a fine
mesh in critical regions.
Set Local Will set the current cell size settings for the currently selected surfaces.
This option will set the current cell size settings for the entire model, except where local settings
Set Global have been set using the Set Local option.
Unset Local This will remove local settings on the surface, and global settings will then be used.
This will force remeshing of all the lines/curves of the surface, including lines/curves that are
Force Remeshing shared with other surfaces that may already have a surface mesh. The preexisting surface mesh
for surfaces that share lines/curves will be destroyed unless both surfaces are chosen.
Override Local This will override any locally defined meshing parameters with the current mesh settings.
Settings
Surface Meshing
The Surface Meshing tool enables you to create unstructured triangular, quad-dominant, and 100% quadrilateral
surface meshes. To create them, click the Unstructured Meshing tool in the Grid toolbox.
Note In V2007, when gridding unstructured surfaces, the curvature criteria now applies to both boundary and surface
curvature. This alleviates the need to specify interior sources to resolve high surface curvature regions.
276
Mesh Tab
3. Select the desired mesh type: Triangle, Quad Morphing, Quad Paving, or Triangular meshing using
Advancing Front.
4. Set the following control parameters to govern how you want to generate the grid.
277
CFD-GEOM V2014.0 User Manual
Automatic - Models often contain geometric features in close proximity to other features, but to which
they aren’t connected. For example, a small feature (a hole) in close proximity to the outer boundary of a
surface, generating a mesh suitable for CFD analysis can be challenging when geometric features are not
"aware” of each other. One technique for making features aware of each other is to artificially connect
them with curves/surfaces. Another technique is to manually control local mesh spacing through the use
of sources.
In CFD-GEOM V2007.2 and later, geometry analysis is performed (behind the scene) at the front-end of
the surface and volume meshers. Based upon feature proximity, local curvatures, small features, etc., an
octree background mesh is generated (to provide spatial information to the curve, surface, and volume
meshers behind the scene). This background mesh provides spatial information to the surface and volume
meshers. During surface and volume meshing, these meshers query the background mesh for local
spacing information and use this information to control the resulting local element size.
Adapt to Curvature - Determines whether or not the curvature of curves and surfaces in the domain is
taken into account when gridding the boundaries and interiors of the surfaces. When used with the
Curvature Criterion angle, you can control how coarse or fine to resolve high curvature regions.
Maximum Curvature - An angle value that will create a higher quality grid. Disabling this option can be
useful for generating a coarse grid.
• Transition Factor - In the first phase of triangular surface grid generation, the lines and curves that bound the
surfaces are gridded. The transition factor governs how quickly the segment lengths grow along these entities.
For example, given a transition factor of 1.1, CFD-GEOM will attempt to make a segment 1.1 times longer than
the previous segment. CFD-GEOM will attempt to guarantee that, given any two adjacent grid segments, the
ratio of the length of the larger segment to that of the smaller segment will never exceed the transition factor.
When trim loops contain structured edges, this might not be possible in some cases. The transition factor
must be greater than or equal to one. However, values smaller than 1.01 may cause the grid segment
smoother to fail to converge. This will cause the line or curve gridding phase to run indefinitely.
Maximum Cell Size - This determines how large triangles are allowed to grow. This does not mean
triangles this large will actually be generated. Also, the handler for an unstructured domain contains a
tetrahedron at the center. Modifications to the maximum cell size (via the slider or text field) will be
reflected in the size of that tetrahedron.
Minimum Cell Size - Sometimes, the underlying curves can contain cusps or other regions of extremely
high curvature of which you are not aware. This can result in unexpected clustering in the vicinity of that
feature. Raising the minimum cell size can reduce the clustering in that region, by preventing the creation
of triangles smaller than the specified value. This value is overridden if larger than the minimum line or
curve length in the geometry. By default, this value is 1/10000 of the default maximum cell size, and
should rarely be changed.
Note Using the Advancing front triangular surface meshing has the current limitations:
278
Mesh Tab
o When the method fails then it will automatically invoke the traditional Delaunay triangle meshing
scheme.
GENERAL OPTIONS
Similar to Curve Meshing, cell sizes can now be specified surface by surface (Set Local option), or a global cell size
may be specified (Set Global).
Set Local Will set the current cell size settings for the currently selected surfaces.
This option will set the current cell size settings for the entire model, except where local settings
Set Global have been set using the Set Local option.
Unset Local This will remove local settings on the surface, and global settings will then be used.
Thin Walls in CFD-ACE+ require special mesh considerations in CFD-GEOM. You can now set a Thin Wall under the
surface meshing options. This used to be under the Right Click −> Properties of a surface, but is now located under
Special Options in the Surface Meshing tool.
The Grid Only Ungrid option is removed in V2007, but has been replaced with other options that allow more
control over meshing.
Remesh Curves To remesh a surface that already has mesh, select this option. This will remesh all the bounding
curves for the surface and generate a new surface mesh. If the surface shares a line/curve with
another surface, that curve will not be remeshed (see the next option).
Force Line/Curve This will force remeshing of all the lines/curves of the surface, including lines/curves that are
Remeshing shared with other surfaces that may already have a surface mesh. The preexisting surface mesh
for surfaces that share lines/curves will be destroyed unless both surfaces are chosen.
Force Surface This option allows you to remesh all surfaces in the model. There could be meshed surfaces and
Remeshing unmeshed surfaces in the model at any given time. If all surfaces are selected, then this option
needs to be checked, else only unmeshed surfaces will be meshed.
Override Local This will override any locally defined meshing parameters with the current mesh settings.
Settings
279
CFD-GEOM V2014.0 User Manual
"Total Thickness" label. Also, the fields can be sorted by their enabled/disabled state by clicking on the "Boundary
Layer Status" header.
280
Mesh Tab
Invocation of this tool allows you to select any desired shell within the model for boundary layer meshing. Upon
selection of a shell the list box will display the faces and surfaces present within the shell and their current
boundary layer meshing setting. The activate boundary layer check box indicates if the shell has been enabled for
boundary layer thus, a specific shell can be easily activated/deactivated for boundary layers regardless of the
setting on each of the faces or surfaces present within the shell. The text fields will become enabled and show the
current boundary layer meshing parameters. Each face/surface which has an enabled boundary layer mesh will
graphically display the exact nature of the boundary layer mesh as specified in the text fields and any modifications
to the boundary layer parameters are immediately displayed; the graphical display of the representative boundary
layer mesh is disabled when the local thickness option is enabled.
Pressing of the Globally Activate button will globally enable boundary layer meshing for all shells present in the
model. To globally deactivate boundary layer meshing first press the Globally Activate button which will set its text
to Globally Deactivate and then a subsequent press will disable the boundary layers.
The list box will display the faces and surfaces within the selected shell and their boundary layer enabled/disabled
status. Selecting graphically or from the list will highlight the entity and activate the Enable and Disable buttons
located just below the list. A press of the Enable button activates boundary layer meshing while the Disable button
deactivates boundary layer meshing for any selected face/surface entity.
After the required parameters have been set then press the Apply button or middle-mouse button in the graphics
area to apply the settings to the shell. A press of the Cancel button will restart the tool.
Select Truncate to truncate the boundary layers where intersections with either geometry or boundary layers
occur. This option is automatically enabled for model files earlier than 2013.3. Turn off this option to ensure that
the number of boundary layers will be honored and the local first layer height reduced. The truncate off is the
default option.
Select Absolute Thickness to specify the exact desired thickness for the first layer away from the wall. Local
Thickness indicates that the first boundary layer thickness is a function of the local surface element size. Selecting
the local thickness option will disable the “Initial Thickness” text field and activate the “Area Factor” field. The area
factor is multiplicative factor applied to the representative length which is a function of the local surface element
cell size to compute the layer thickness, for example, if the representative length is 4mm then an area factor of .25
will yield a layer height of 1mm. The final example, located below, shows an example of applying the local
thickness option.
The boundary layer mesher will automatically enable certain faces/surfaces for boundary layer meshing in order to
prohibit the following cases:
1. Non-Conformal meshes such that some nodes of a attached grid system are projected while other
adjacent nodes are not.
2. Selection to prohibit projection onto structured faces and/or edges. For instance, if a non-boundary layer
mesh surface uses an edge in its construction but has a surface/face adjacent with boundary layers
enabled then this surface will be automatically selected for boundary layer meshing.
3. Selection of surfaces which are used for multiple shells and adjacent semi-structured domains.
281
CFD-GEOM V2014.0 User Manual
EXAMPLES
CASE 1: BOX
For the box shown above, boundary layer meshing was enabled for all the surfaces with the following parameters
:initial thickness: .01, growth factor: 1.2, and number of layers: 5.
The tetrahedral meshing tool was then invoked on this domain. The image below shows the result; notice that only
two boundary layers were generated because the specified parameters caused self-intersection of the boundary
layers after the second layer - this can be remedied by changing the initial thickness to a smaller value.
Occasionally, you will also get differing numbers of layers within the same shell, i.e., the boundary layer mesher
will generate as many layers as possible where it can while trying to maintain reasonable mesh quality.
Now a second box case is generated where the same boundary layer meshing parameters are used as above
except that only the top and bottom surfaces are enabled for boundary layer meshing while the remainder are
disabled. The image below shows the results; note that the boundary layer mesh is automatically projected onto
the side surfaces and all five boundary layers are generated.
282
Mesh Tab
283
CFD-GEOM V2014.0 User Manual
The red surfaces were enabled for boundary layers while all other surfaces were disabled. The resulting surface
mesh is shown below.
Note that the boundary layer mesh is automatically projected onto neighboring surfaces.
284
Mesh Tab
The first image below shows the boundary layers generated when the truncate option is on; notice that the
number of boundary layers varies. The image to the right shows the boundary layers generated when the truncate
option is off; notice that the number of boundary layers remains constant but the first layer and overall boundary
layer height varies.
Tet Meshing
The Tet Meshing tools generate tetrahedra (and in some cases, pyramids) within a triangulated unstructured
domain. To use these tools, click the Unstructured Meshing Options −> Tet Meshing tool in the Mesh toolbox. CFD-
GEOM’s tetrahedral gridder is based upon a hybrid Delaunay/Advancing-Front technique. The resulting grids are
boundary conforming. That is, the boundary triangulation is not modified in any way during the grid generation
process and the boundary triangulation bounds the resulting tetrahedral grid. Within this section, boundary points
285
CFD-GEOM V2014.0 User Manual
refer to the nodes in the boundary triangulation. Field points refer to nodes generated in the interior of the mesh
to improve mesh quality.
Tip - Before starting the tetrahedral grid generator, please ensure that your Unstructured Domain has been
completely triangulated. Also, make sure that the domain handlers point into the region that you wish to grid. The
options for creating tetrahedral grids, from right to left, are:
The Generate Tetrahedral Grid button enables you to generate a tetrahedral grid.
286
Mesh Tab
Automatic - Models often contain geometric features in close proximity to other features, but to which
they aren’t connected. For example, a small feature (a hole) in close proximity to the outer boundary of a
surface, generating a mesh suitable for CFD analysis can be challenging when geometric features are not
"aware" of each other. One technique for making features aware of each other is to artificially connect
them with curves/surfaces. Another technique is to manually control local mesh spacing through the use
of sources.
287
CFD-GEOM V2014.0 User Manual
In CFD-GEOM V2007.2 and later, geometry analysis is performed (behind the scene) at the front-end of
the surface and volume meshers. Based upon feature proximity, local curvatures, small features, etc., an
octree background mesh is generated (to provide spatial information to the curve,surface, and volume
meshers behind the scene). This background mesh provides spatial information to the surface and volume
meshers. During surface and volume meshing, these meshers query the background mesh for local
spacing information and use this information to control the resulting local element size.
2. Enter an transition factor in the Transition Factor field. This parameter governs how rapidly cell sizes grow
towards the interior of a domain. In general, the first layer of tetrahedra generated off the boundary
triangulation will consist of tetrahedra whose volumes are equivalent to the areas of the triangles from
which they are grown. The volume of tetrahedra in subsequent layers will be roughly equal to those in the
previous layer multiplied by the expansion factor. Given a fairly uniform surface triangulation, non-unity
expansion factors will almost always result in smaller cells near the domain boundaries and larger cells in
the interior. Given boundary triangulations of widely varying point spacings, or given the presence of
point sources in the domain interior, CFD-GEOM will attempt to honor the specified expansion factor.
However, it will not do so at the expense of grid quality.
Note: Valid values of this parameter range from 1 to 3, with 1.1 being the default. Values less than one
are not supported. To make cells grow smaller towards the mesh interior, use sources in the domain
interior.
3. Select one of the following point placement options. During tetrahedral grid generation, CFD-GEOM adds
points to the mesh interior. These points are often referred to as field points. CFD-GEOM offers for two
strategies for field point generation. These two strategies differ in how they control mesh spacing in the
domain interior.
Default - The Default method, based upon an advancing front algorithm, tends to increase cell sizes away
from the mesh boundaries. The rate of increase is controlled by the Expansion Factor (see below). Prior to
CFD-GEOM version 2003.0.1.14, this was the only field point placement strategy in CFD-GEOM, and is still
the preferred strategy for most applications.
Linear Progression - The Linear Progression strategy controls interior mesh density by linearly
interpolating between opposing mesh boundaries. This method tends to produce smoother meshes in
domains where the outer boundary contains a coarse triangulation and the interior boundary contains a
much finer triangulation (i.e. external flow applications). With this method, interior mesh spacing is
controlled almost purely by the grid characteristics of the boundary triangulation. Hence, the Expansion
Factor is not applicable when this method is used. Sources, however, can still be used to locally control
mesh spacing.
4. Click Apply.
General Options
Remesh Curves To remesh a surface that already has mesh, select this option. This will remesh all the
bounding curves for the surface and generate a new surface mesh. If the surface shares a
line/curve with another surface, that curve will not be remeshed (see the next option).
Force Line/Curve This will force remeshing of all the lines/curves of the surface, including lines/curves that
Remeshing are shared with other surfaces that may already have a surface mesh. The preexisting
surface mesh for surfaces that share lines/curves will be destroyed unless both surfaces are
288
Mesh Tab
chosen.
Force Surface This option allows you to remesh all surfaces in the model. There could be meshed surfaces
Remeshing and unmeshed surfaces in the model at any given time. If all surfaces are selected, then this
option needs to be checked, else only unmeshed surfaces will be meshed.
Override Local Settings This will override any locally defined meshing parameters with the current mesh settings.
Note Due to the variety of quality requirements among different flow solvers, CFD-GEOM does not currently
provide controls for specifying minimum dihedral angles, minimum solid angles, centroid/face angles (used by
CFD-ACE), etc. Instead, it is driven by its own minimum quality criteria. These criteria are generally more stringent
than other criteria, and will usually result in satisfactory grids. However, determining whether a specific criterion
has been met can be accomplished with the grid quality button (see Grid Quality). To activate the volume grid
generation algorithm, select an unstructured domain that has a valid surface grid. The algorithm automatically
generates the volume mesh.
Mesh Sources
In CFD-GEOM, there are two distinct types of mesh sources for controlling triangular and tetrahedral mesh
generation: Volumetric sources (introduced in V2014.0) allow the user to specify volumes (box, sphere, cylinder)
where the mesh is to be refined based on a target cell size. These volumes can lie in a single domain or span
multiple domains. The source volumes influence the entire meshing process from curvilinear meshing, through
triangular meshing, and finally through tetrahedral meshing. If enabled, an additional step is performed at the
front-end of the meshing process. This step sets up additional data that will be used by the meshers to meet target
spacing requirements. Under some circumstances, this may double the memory requirements of meshing. You
should, therefore, use these types of sources with caution if you have a limited amount of RAM.
Note Volumetric sources do not affect the surface mesh when using the Quad Paving method.
"Corner point sources", "surface interior sources", and "tet sources, " available now for several years, allow for
refinements during certain phases of mesh generation. For example, "Tet Sources" allow for refinement during
tetrahedral meshing, but have no influence over curve and surface meshing. Though these 3 types of sources are
not as powerful as the newer volumetric sources, they can prove useful in some circumstances. Moreover, they do
not have the memory overhead of volumetric sources.
289
CFD-GEOM V2014.0 User Manual
The Define Mesh Sources tool allows you to create or redefine volumetric sources that are used to control
triangular and tetrahedral grid spacing at user-defined locations. Generally, the source definition consists of three
parts: source type, source coordinates, and grid refinement settings. When a different source type is selected, the
corresponding fields appear on the panel for you to enter the parameters. Regardless of the source type, the
method of specifying the amount of refinement is the same.
Create a source
1. Click the Define Mesh Sources tool in the Unstructured Meshing Options toolbox.
2. Choose a source type.
3. Change the properties as required. See the note later in this discussion on surface selection for box
sources.
4. Click Apply or press the middle mouse button to complete the operation.
Modify a source
1. Click the Define Mesh Sources tool in the Unstructured Meshing Options toolbox.
2. Select an existing source. Its current properties will be displayed.
3. Change the properties as desired.
4. Click Apply or press the middle mouse button to complete the operation.
290
Mesh Tab
Box Sources
A box source is used to refine the grids inside a geometric box. To define a box source, the minimum and maximum
corners of the box must be specified, along with the grid size in the box. The box determines the region where the
grid is refined based on the given grid size. Note that, rather than manually specifying the box corners, you may
instead select one or more surfaces. CFD-GEOM will construct a minimal box source around these surfaces.
291
CFD-GEOM V2014.0 User Manual
Sphere Sources
A sphere source is used to refine the portion of the mesh inside of a sphere. A radius and sphere center is used to
define the sphere size and location.
Cylinder Sources
A cylindrical source is used to refine the grids between the interior radius and exterior radius region. The cylinder is
defined by the bottom center location, axis direction, length, inner radius, and outer radius. The inner radius
should be 0 or larger, but less than the outer radius. The axis direction is not automatically normalized.
Cell Size
This specifies the target cell size inside the source.
292
Mesh Tab
2. Select the unstructured domain. For 2D geometries, the unstructured domain consists of open surface
sets in the Z = 0 plane. The Status Line prompts you to select a corner point.
4. Enter the radius in the Radius field of the Add Source panel.
5. Click Add/Edit to add the point or modify the point coordinates. Click Remove to delete the corner point.
6. Press the letter "q" on the keyboard to quit the Add Corner Point mode.
INTERIOR SOURCE
The Interior Source tool enables you to define a source interior to a surface. For interior sources, you may select
points or edges. If a point is selected, you are required to specify a radius.
If an edge is selected, the radius information is calculated for each grid point from its neighboring nodes. Once the
source entity is selected and the appropriate radius information is obtained, CFD-GEOM will associate the source
entity with the surface. Once the triangulation algorithm is invoked, the interior source information will be added
to the surface mesh at generation time. In this way, the desired clustering is obtained with a smooth transition to
the remainder of the surface grid.
Note Interior sources must not be placed directly on (or very close to) any boundary of the surface. If special
spacing is needed on these entities, it is recommended that you split the entity at the desired location and then
add a corner point source at that location.
293
CFD-GEOM V2014.0 User Manual
4. Enter the radius in the Radius field of the Add Source panel.
5. Click Add/Edit to add the point or modify the point coordinates. Click Remove to delete the corner point.
TET SOURCE
The Tet Source button enables you to add volume source to a domain. (Note: When adding point sources to
tetrahedral domains, the Linear Progression method to tetrahedral grid generation works best.)
294
Mesh Tab
295
CFD-GEOM V2014.0 User Manual
3. Click the middle mouse button. Note that an easier alternative is to pick the surface grids themselves
(which implicitly picks the loops that own them).
Honeycomb Meshing
The honeycomb meshing tool allows you to construct 3-D honeycomb meshes on unstructured domains. Beginning
with V2013.0, it is now possible to generate 2-D honeycomb meshes on trimmed surfaces that lie in the XY plane.
These meshes are so named because of the resemblance of the surface meshes to the structures constructed by
honey bees. 3-D honeycomb meshes are derived from tetrahedral meshes. Cells in a 3-D honeycomb mesh will
typically consist of polyhedra with arbitrary numbers of faces. These faces will typically be constructed from 4 or
more nodes (though triangles are possible as well). In convex regions in a model, hexahedral cells will typically
dominate. 2-D honeycomb meshes are derived from triangular meshes, and consist of polyfaces defined by an
arbitrary number of edge segments (pentagons and hexagons will typically dominate). The properties of
honeycomb meshes make them nearly ideal for use in the CFD-ACE solver. These properties include:
• Fewer cells than the corresponding 3-D tetrahedral mesh or 2-D triangular mesh
• More cells neighboring each cell
• Improved alignment with flow field
• Improved face/centroid angles between cells
Such meshes typically result in faster convergence and more accurate results in the CFD-ACE and CFD-FASTRAN
solvers than do the corresponding tetrahedral (triangular) meshes from which they are derived.
Both the 3-D and 2-D meshers are accessible from this tool. Depending upon the types of entities in the model,
pressing the Apply button or Middle Mouse will invoke the appropriate mesher.
296
Mesh Tab
To use the 3-D honeycomb mesher, you should first ensure that all unstructured domains have a tetrahedral mesh.
You may then select this tool, and press middle-mouse or Apply to begin meshing. Please note the following
restrictions in the current release of CFD-GEOM:
• The model must contain at least one unstructured domain and all unstructured domains must contain a
tetrahedral mesh. All unstructured domains will be honeycomb-meshed simultaneously. It is not possible
for some domains to have honeycomb meshes while others have tetrahedra meshes. This is crucial to
ensuring proper connectivity between adjacent domains.
• Unstructured domains must contain only tetrahedra. The honeycomb mesher can not currently make the
conversion between pyramids/prisms/hexes and polyhedra (this will be remedied in a future release).
• The model may contain structured and semi-structured domains. However, they may not share
surfaces/faces with any unstructured domains (this will be remedied in a future release).
• In terms of memory usage, honeycomb meshing is expensive. In most cases, you should have ~1GB per
million tetrahedra in the input mesh(es). On 64-bit platforms, more memory may be required.
• When output to DTF, such meshes are written to polyzones. Due to a limitation in DTF, such zones cannot
be "updated". If you change mesh parameters and remesh the model, you will need to write a fresh DTF
file and repeat the model setup in CFD-ACE-GUI or CFD-FASTRAN-GUI.
• Some cells may be "weakly non-convex". Such a cell is non-convex, but its cell center lies within the cell. In
addition, most faces will be at least slightly non-planar. In general, this should not present any problems
for the CFD-ACE and CFD-FASTRAN solvers.
To use the 2-D honeycomb mesher, you should first ensure that all trimmed surfaces have a triangular mesh. You
may then select this tool, and press middle-mouse or Apply to begin meshing. Please note the following
restrictions in the current release of CFD-GEOM:
• The model must contain at least one trimmed surface, and all trimmed surfaces must contain a triangular
mesh. All trimmed surfaces will be honeycomb-meshed simultaneously. It is not possible for some
surfaces to have honeycomb meshes while others have triangular and/or quad meshes. This is crucial to
ensuring proper connectivity between adjacent surfaces. Honeycomb meshing is not currently supported
on discrete surfaces.
• Trimmed surfaces must contain only triangles. This may be remedied in a future release.
• The model may contain structured Face entities. However, they may not share edges with any trimmed
surface.
• Please note the following additional issues:
• When output to DTF, such meshes are written to polyzones. Due to a limitation in DTF, such zones cannot
be "updated". If you change mesh parameters and remesh the model, you will need to write a fresh DTF
file and repeat the model setup in CFD-ACE-GUI or CFD-FASTRAN-GUI.
• Some cells may be "weakly non-convex". Such a cell is non-convex, but its cell center lies within the cell. In
general, this should not present any problems for the CFD-ACE and CFD-FASTRAN solvers.
Tip When you wish to use the honeycomb mesher, it is recommended that this be the last step you perform
before output to DTF.
297
CFD-GEOM V2014.0 User Manual
Linear Extrusion
Revolution
Non-linear Sweep
Radial Extrusion
In this section we will refer to these methods collectively as "sweeping” methods. In all four methods, 3-D volume
grids are generated by sweeping a profile through the volume to be gridded. A profile may consist of structured
Faces and meshed surfaces. When sweeping Faces, Blocks are generated. When sweeping meshed surfaces, Semi-
Structured Domains are generated.
Tip To simplify the process of picking a profile to be swept, it is recommended that you enable shaded grid display.
By doing this, you can simply pick the grids to be swept. CFD-GEOM will automatically select the associated
entities.
During volume grid sweeps, structured faces are generated along the sweep path. These faces form the sides of
the newly swept structured domains and semi-structured domains. This has two implications:
• When semi-structured domains are swept from surfaces, proper connectivity must be established
between the side faces and the surfaces. If a surface is built from lines/curves instead of edges, CFD-
GEOM will automatically place edges on those entities and rebuild the surface from the edges. The end
result is that the surface will consist exclusively of edges. These automatically generated edges will have a
general distribution type, and their grid points will match the surface's mesh.
298
Mesh Tab
• To reduce the number of faces generated along the extrusion path, use the Create Composite Edge or
Create Composite Edges tools to combine edges prior to sweeping.
Linear Extrusion
The Linear Extrusion tool allows you to linearly sweep structured Blocks and semi-structured prismatic/hex meshes
from structured Faces and unstructured surface grids, respectively. A variety of options exist for specifying
extrusion direction and distance, and for controlling certain aspects of the generated grids.
299
CFD-GEOM V2014.0 User Manual
Extrusion Several options exist for specifying extrusion direction. These options become available once you
Direction have completed picking the sweep profile entities.
X, Y, or Z - extrusion will occur along one of the principal axes
Existing Edges - extrusion will occur along one or more selected edges. If you select this option, you
will be asked to select a set of one or more edges. At least one of the edges must share an endpoint
with a line, curve, or edge in the sweep profile. This helps CFD-GEOM determine the direction and
orientation of the sweep. If more than one edge is selected, all selected edges must form a
connected set with no branches. The direction(s), distance(s), and number(s) of grid points in each
extrusion layer are implied by the edges themselves. Note that if any of the selected edges has any
curvature, that curvature will not be honored.
Point-to-point - extrusion will occur along a path whose direction(s) and distance(s) are described by
two or more picked points. The number of extrusion layers will be equal to the number of picked
points minus one. Note that the order in which points are picked is extremely important.
Existing Lines - extrusion will occur along one or more selected lines. If you select this option, you
will be asked to select a set of one or more lines. At least one of the lines must share an endpoint
with a line, curve, or edge in the sweep profile. This helps CFD-GEOM determine the direction and
orientation of the sweep. If more than one line is selected, all selected lines must form a connected
set with no branches. The direction(s) and distance(s) in each extrusion layer are implied by the lines
themselves
Vector - extrusion will occur along a user-specified vector (dx, dy, dz). Note that this vector will not
be normalized when the extrusion is performed.
Vector The dx, dy, and dz fields are relevant only when the "Vector” extrusion direction has been selected.
These fields specify the extrusion direction vector, and are not normalized when CFD-GEOM
performs the extrusion.
Distance This field allows you to specify the distance of extrusion. For X, Y, and Z extrusion directions, the
extrusion length will equal this value. For a Vector extrusion, the extrusion length will equal the
length of the (dx,dy,dz) vector times this value. For Existing Edges, point-to-point, or Existing Lines
extrusions, this field is irrelevant.
# Points This field specifies the number of grid points to use in the extrusion direction. When extruding along
existing edges, this field is irrelevant, because the number of grid points is implied by the edges
themselves.
# Times This field specifies the number of times to perform the extrusion.
Create This option is available when at least two Faces have been selected. When set, a block will be
Multiple extruded from each selected face. When unset, and if the selected faces collectively form a valid IJ
Blocks topology, a single block will be extruded from the collection of faces.
Link Edges If selected, all edges (running in the direction of extrusion) in each extrusion layer are linked via an
Edge Linking Group. Note that pre-existing edges that already belong to Edge Linking Groups are
ignored.
300
Mesh Tab
2. Select a mesh profile consisting of faces and/or meshed trimming loops to extrude (see General Volume
Grid Sweeping Introduction for a discussion of mesh profiles). Press middle-mouse when done specifying
the sweep profile.
3. Specify an extrusion direction. Several of these options may require additional picking (see discussion of
extrusion direction below).
4. Specify remaining options and press middle mouse to complete the extrusion(s).
Revolution
The Revolution tool allows you to revolve structured Blocks and semi-structured prismatic/hex meshes from
structured Faces and unstructured surface grids, respectively. A variety of options exist for specifying the
revolution axis, and for controlling certain aspects of the generated grids.
Revolution Button
301
CFD-GEOM V2014.0 User Manual
Revolution Axis Several options exist for specifying revolution axis. These options become available once
you have completed picking the sweep profile entities.
X, Y, or Z - revolution will occur about one of the principal axes
Existing Line - revolution will occur about an existing line. If you select this option, you
will be asked to select a line.
2 Points - revolution will occur about an axis described by 2 selected points. You will be
prompted to select these points..
Point and Vector - revolution will occur about an axis described by a picked point and an
axis direction vector (specified in the dx, dy, and dz fields). You will be prompted to select
302
Mesh Tab
a point.
2 Coordinate Sets - this option is similar to the "2 Points” option except that the 2 points
are specified as coordinate triplets in the (x1,y1,z1) and (x2,y2,z2) fields.
Revolution Axis Details These fields are used to specify values needed when using the "Point and Vector” and "2
Coordinate Sets” options described above
Angle This field specifies the angle (in degrees) through which to revolve grids. The effect of this
field will depend upon the orientation of the specified axis.
# Points This field specifies the number of grid points to use in the revolution "direction”.
# Times This field specifies the number of times to perform the revolution.
Create Multiple Blocks This option is available when at least two Faces have been selected. When set, a block
will be revolved from each selected face. When unset, and if the selected faces
collectively form a valid IJ topology, a single block will be revolved from the collection of
faces.
Link Revolution Edges If selected, all edges (running in the direction of revolution) in each revolution layer are
linked via an Edge Linking Group. Note that pre-existing edges that already belong to
Edge Linking Groups are ignored.
Link Opposing Edges This option will link the edges on the opposing ends of the revolved mesh.
elect a mesh profile consisting of faces and/or meshed trimming loops to revolve (see General Volume
Grid Sweeping Introduction for a discussion of mesh profiles). Press middle-mouse when done specifying
the sweep profile.
2. Specify a revolution axis. Several of these options may require additional picking (see discussion of
revolution axis below).
3. Specify remaining options and press middle mouse to complete the revolution(s).
Non-linear Sweep
The Non-linear sweep tool allows you to create structured domain and semi-structured domains from sweeping
faces and unstructured surface grids, respectively, along an arbitrary path prescribed by a series of curves. The
structured domain or semi-structured domain is formed by properly positioning the original swept entities at the
end of the sweep path and then generating the remaining side faces via the Swept Face method. The Non-linear
sweeping tool generates the side faces and the underlying surfaces and then automatically projects each face onto
it's associated surface using either the closest point or normal projection methods.
303
CFD-GEOM V2014.0 User Manual
You must first select a set of faces or unstructured surface grids to be swept after which an arbitrary number of
connected curves defining the sweep path may be selected. The remainder of the operation is the same as for the
Swept Surface operation with the addition of an input field where the number of points may be specified to
indicate the resolution of the resulting structured domain or semi-structured domain along the sweeping path.
The swept face tool generates the underlying surface and then automatically projects the face grids onto the
associated surface using the closest point algorithm. For highly convoluted swept faces, this method may fail and
this failure is exhibited by the significant deviation of the face mesh from the underlying surface. In these
circumstances, the check box labeled as Closest may be unchecked to obtain the alternate normal projection
method. This method is far slower but the results are usually satisfactory.
A scaling factor can be applied along the sweep path such that the shape of the opposing end face will be smaller
or larger by the specified factor. Be aware that the scaling is performed about the points located on the sweep
path and the result may not be what was intended.
As the side surfaces are initially defined in a discrete sense, i.e. by positioning a number of sections along the path,
you may specify the number of discrete sections in the Steps input and thus prescribe the resolution of the surface
and thereby control the surface characteristics.
304
Mesh Tab
Typically, swept faces are created as a combination of rotations and translations. To create a swept face using only
translations; the check button labeled Fixed Orientation must be checked.
Radial Extrusion
The Grid Radial Extrusion tool allows you to extrude structured Blocks from structured Faces and unstructured
surface grids, respectively. Extrusion is performed radially about a user-specified axis, typically the center line of
the collection of entities being extruded. A variety of options exist for specifying the reference axis, and for
controlling certain aspects of the generated grids.
305
CFD-GEOM V2014.0 User Manual
Reference Axis Several options exist for specifying the reference axis. These options become available once you
have completed picking the extrusion profile entities.
X, Y, or Z - extrusion will occur about one of the principal axes
Existing Line - extrusion will occur about an existing line. If you select this option, you will be
asked to select a line.
2 Points - extrusion will occur about an axis described by 2 selected points. You will be
prompted to select these points..
Point and Vector - extrusion will occur about an axis described by a picked point and an axis
306
Mesh Tab
direction vector (specified in the dx, dy, and dz fields). You will be prompted to select a point.
2 Coordinate Sets - this option is similar to the "2 Points” option except that the 2 points are
specified as coordinate triplets in the (x1,y1,z1) and (x2,y2,z2) fields.
Reference Axis These fields are used to specify values needed when using the "Point and Vector” and "2
Detail Coordinate Sets” options described above
Growth Type These options specify how growth is to occur. In radial extrusion, each point is moved along a
vector that passes through the point and that intersects and is perpendicular to the reference
axis. When "Use Distance” is specified, all newly created points will be located the same
distance away from the points from which they are derived. This distance is specified in the
"Distance” field. When "Use Scaling Factor” is specified, the amount of growth is determined by
a scaling factor. For example, if a point is located 10 units from the reference axis, the new
point derived from it will be 12 units from the reference axis if a scaling factor of 1.2 is
specified.
# Points This field specifies the number of grid points to use on edges radiating away from the reference
axis.
# Times This field specifies the number of times to perform the extrusion. Note that multiple extrusions
are possible only when the growth type is "Use Distance”.
Link Extrusion If selected, all edges (running in the direction of extrusion) in each extrusion layer are linked via
Edges an Edge Linking Group. Note that pre-existing edges that already belong to Edge Linking Groups
are ignored.
Link Opposing This option will link the edges on the opposing ends of the radial extruded mesh.
Edges
2. Select a mesh profile consisting of faces and/or meshed trimming loops to extrude (see General Volume
Grid Sweeping Introduction for a discussion of mesh profiles). Press middle-mouse when done specifying
the mesh profile entities.
3. Specify the reference axis. Several of these options may require additional picking (see discussion of
reference axis below).
4. Specify remaining options and press middle mouse to complete the extrusion(s).
307
CFD-GEOM V2014.0 User Manual
When you complete the sixth face set, or when the volume has been enclosed, CFD-GEOM responds with a
message on the Status Line indicating that the block was successfully created. In addition, the block handler for
this new grid block appears. CFD-GEOM automatically orders and orients the face sets such that a right-handed
block is always created. For this reason, the order in which face sets are picked is irrelevant. However, the first set
picked will usually become the Imin side of the block. To assign a specific orientation to a block, see Reorient a
Block, Composite Block or a 2D Block. As each face set is picked, CFD-GEOM checks for closure. If CFD-GEOM
determines that closure has been achieved with fewer than six face sets, it automatically generates point- or
curve-degenerate faces as needed.
308
Mesh Tab
3. Select faces for the face set comprising the Imin surface. The selected faces are highlighted in red. If you
make a mistake, click the right mouse button and select unpick to de-select the last face selected.
4. When you are finished picking faces for the first (Imin) face set, click the middle mouse button to complete
this set. The selected faces will be highlighted in the Picked Set 1 color.
5. Continue picking faces for the remaining face sets, and click the middle mouse button to complete each
set. Repeat this process for all six face sets.
309
CFD-GEOM V2014.0 User Manual
To use this tool, select 6 or more faces and press middle-mouse or Apply. CFD-GEOM will then identify all valid
combinations of 6 four-sided faces and construct structured domains from them where they do not already exist.
• This tool constructs domains only from four-sided faces. Faces that contain degeneracies are silently
ignored.
310
Mesh Tab
There may be one of two types of boundary conditions, Fixed or Orthogonal prescribed for each face of a block.
The Fixed boundary condition indicates that the forcing function will be zero at that face and the grid will, thus, be
of the LaPlace behavior near that face. An Orthogonal boundary condition will try to generate forcing functions
such that the grid distribution is orthogonal to the face and honor any near wall grid distribution. For 2007, a new
boundary condition type (Orthogonal + Spacing) has been provided- this option allows you to set a desired near-
wall spacing manually. By default, each face of a block will have a Fixed boundary condition.
Invocation of this tool allows you to select any desired block located within the model for smoothing. Upon
selection of a block for smoothing the list box will display the number of faces and their current boundary
conditions. Selecting faces from the list box will cause the faces to highlight and a press of either the Fixed or
Orthogonal buttons can be used to modify the boundary condition. You may input the number of iterations and
press the Apply button to perform the elliptic smoothing.
The selected block will remain active until another block is selected or the cancel button is pressed thus, you may
make boundary condition and number of iteration modifications without having to repeatedly select the face.
Coarsen a 2D or 3D block
1. Click the Coarsen Structured Domains button in the Structured Block toolbox. The Coarsen Blocks panel
appears.
2. Select any number of 2D or 3D blocks. The type of the first selected block determines the type allowed in
subsequent picking operations. For each selected block, a set of axes is drawn; these axes describe a
block’s orientation (and the directions in which the block can be coarsened). Once a block has been
selected, the I, J, and K factor menus becomes active.
311
CFD-GEOM V2014.0 User Manual
3. Click the arrow to the right of each factor to specify the coarsening factors. Specifying a value of one
indicates that the block will not be coarsened in that direction. For a block, the set of valid coarsening
factors in a particular direction consists of all values evenly divisible into the number of cells in that
direction. If multiple blocks are selected, the list is updated to contain only those values common to all
selected blocks.
Note If a block has been coarsened in a particular direction, and if the number of cells in that direction changes
(e.g. via the edge editor), the underlying structured grid is automatically updated. Coarsening is automatically
reapplied if the coarsening factor in that direction is still valid. If the coarsening factor is no longer valid, coarsening
is no longer applied to the block.
Tips
• It is recommended that you plan for block coarsening while constructing your geometry and structured
grids. Because coarsening applies to entire blocks, it may be necessary to break a block into smaller
blocks, some of which will be coarsened. It is easier to do this early in the design cycle.
• The amount of coarsening applied to a block is relative to the original structured grid (i.e. it is not
cumulative). For example, if you coarsen a block in its I-direction by a factor of two and then coarsen the
block again by a factor of two, the block is still coarsened only by a factor of two.
• The amount of coarsening (i.e. coarsening factor) in a particular direction must be evenly divisible into the
number of cells in that direction. The CFD-GEOM will only allow you to select from the set of valid values.
However, when writing GEOM scripts, you must ensure that the amount of coarsening you specify is valid.
Otherwise, coarsening will fail.
• Multiple blocks can be coarsened simultaneously. However, if the blocks do not have the same
orientation, unexpected results may occur. Dissimilar orientations can be handled in two ways. One way is
to use the Reorient Blocks tool to consistently orient the blocks; you may then coarsen those blocks
simultaneously. The alternative is to coarsen the blocks individually.
• To coarsen blocks without using arbitrary interfaces, CFD-GEOM must generate polyhedral grids with
arbitrary cell types. Such grids must be written to DTF as a DTF_POLY zone. If, during a previous session, a
particular zone was written as a structured (DTF_STRUCT) zone, and you later coarsen that zone, you will
not be able to update the DTF file. You will only be able to overwrite the file or write a new one, and then
set up the problem from scratch in CFD-GUI. This limitation may be removed in a future release.
Create 2D Block
The Create Structured 2D Block tool enables you to select a set of faces to form a structured 2D grid.
312
Mesh Tab
Create a 2D block
1. Click the Create Structured 2D Block button in the Structured Block toolbox. The Status Line prompts you
to select a set of faces.
2. Select a face set that you want to use to form the 2D block. If you make a mistake, click the right mouse
button and select unpick to de-select the last selected face.
3. When you are finished, click the middle mouse button to create a 2D block from the face set. The
orientation of a 2D block is automatically determined by CFD-GEOM. For face sets lying in a constant z-
plane, the resulting 2D block will always be right-handed.
Note The orientation of a 2D block can be changed using the Orient Grid tool.
313
CFD-GEOM V2014.0 User Manual
2. Select all of the grid blocks to combine. If you make a mistake, click the right mouse button and select
unpick to de-select the last selected block.
3. Click Apply or the middle mouse button to complete the operation. If the block set is valid, the old blocks
become hidden and the new composite block appears with a single block handle (magenta).
TIPS
• The grid of a composite block cannot be changed without deleting the composite block and modifying the
individual blocks’ grids. Composite blocks can be reoriented using the Block Reorientation tool. (see
Reorient a Block, Composite Block or a 2D Block).
• When a composite block is deleted, the underlying block sets become visible again.
• If a block or solid volume condition is desired for one or more blocks within the composite block, set the
volume condition(s) for the member block(s) before performing the composite operation.
• Composite blocks can be created from blocks and other composite blocks. The orientation of the
underlying blocks need not be the same.
Reorient Block
The Reorient Block tool changes the I-J-K topological orientation of a single block.
Reorient a block
1. Click the Reorient Block button in the Structured Block toolbox. The Reorient Block panel appears.
314
Mesh Tab
5. Click Apply or middle mouse button to apply the new orientation. Alternatively, you can press Apply and
Propagate to apply the orientation to the current block AND to all blocks that can be reached from that
block.
Note The three sliders represent rotations about their respective orientation axes. For example, by moving the I
slider, you are rotating the J and K orientations about I, while keeping Imin and Imax fixed. This tool does not allow
you to select a left handed orientation.
315
CFD-GEOM V2014.0 User Manual
2. Select the block and drag to the desired location to change a block's position in the list.
Semi-Structured Domain
The Semi-Structured domain tool enable you to create semi-structured domains by selecting a source surface,
target surface and any number of faces describing the domain. This tool allows the source and target surfaces to
have the same mesh topology but to be geometrically different. The source surface must have a mesh while the
target surface will automatically be generated to have the same mesh topology as the source surface.
316
Mesh Tab
2. Once the source surface has been selected then the Status Line prompts you to select a single target
surface.
3. Once the target surface has been selected then the Status Line prompts you to select a set of faces that
form a closed set. During the selection process the non-closed regions will be highlighted in green.
4. Upon a set of valid selections, the "Apply" button will activate and press of this button or a press of the
middle mouse button will create the semi-structured domain automatically mesh the target surface and
the semi-structured domain.
317
CFD-GEOM V2014.0 User Manual
Note You must have a CFD-VisCART license to access the Cartesian meshing tools in CFD-GEOM.
Advantages of Cartesian meshing in CFD-GEOM include (but are not limited to) the following:
• The geometry can consist of a mixture of traditional CAD and discrete surfaces, as well as geometries
imported from external sources and those constructed using CFD-GEOM’s powerful surface modeling
tools.
• Only surface geometries are required. It is not necessary to construct higher level entities such as
unstructured domains, semi-structured domains, or structured block entities.
• CAD cleanup (after import) is usually not necessary because, due to the nature of the mesh generation
process, the geometry does not need to be watertight. Small cracks and gaps between surfaces are
permissible. This helps overcome one of the most serious bottlenecks in mesh generation for multiphysics
applications.
• Small features not important to the simulation can be automatically removed without any time-
consuming geometry manipulation.
• These meshes tend to create a minimal number of cells, when compared to other mesh types and given
similar sets of mesh size parameters.
• Scripting and journaling are fully supported.
Meshing Algorithms
Two Cartesian meshing algorithms are available. The single-domain projected meshing algorithm uses a projection
algorithm to shrink-wrap nodes near the geometry onto the geometry. This algorithm is available only for meshing
a single domain. The multi-domain intersecting meshing algorithm uses a combination of node movement and cell
splitting to fit near-geometry cells to the geometry. This algorithm is available for both single- and multi-domain
meshing needs. In other words, it can be used to mesh inside the geometry, between the geometry and the
318
Mesh Tab
bounding box, or both. In CFD-GEOM, this is the default meshing algorithm. The following figure shows an
approximation of the two meshing algorithms.
The following figure shows a 2-D approximation of the difference between the two splitting methods. Notice how
(from a 2-D standpoint) ratios of adjacent cell sizes in the omnitree may be 1:1, 2:1, and 4:1—while in the octree it
is strictly 1:1 or 4:1. These ratios extend to 3-D.
319
CFD-GEOM V2014.0 User Manual
Domain Markers
As stated, the Cartesian meshing algorithms fill the entire bounding box with a mesh. In CFD-GEOM, the domain
marker entity is used to specify the portion(s) of the mesh that are to be preserved. A domain marker is a special
type of point placed somewhere in the volume to be preserved. For example, if a domain marker is placed
anywhere between the geometry and the bounding box, that portion of the mesh between the geometry and the
bounding box will be preserved in the final mesh. A domain marker is similar to other volumetric entities in CFD-
GEOM (for example, unstructured domains) in that it is bounded by surfaces and can be assigned volume
conditions. However, it differs in that the surfaces do not have to be grouped manually or even form a watertight
collection. Instead, the boundaries of the domain marker are determined during the meshing process.
CFD-GEOM provides two methods for specifying domain markers in CFD-GEOM. The Define Cartesian Domain
Marker tool allows you to specify domain markers manually. The Generate 3-D Cartesian Mesh tool allows you to
specify an option which instructs the mesher to automatically generate domain markers for you. This option
causes the mesher to identify all logical domains within the bounding box. After mesh generation, you can
manually delete any domains that are not of interest.
Note When you create a bounding box, a domain marker is automatically generated; this marker ordinarily will be
placed between the geometry and the bounding box.
The following figure shows an example of a mesh with two domain markers.
320
Mesh Tab
321
CFD-GEOM V2014.0 User Manual
The Generate 3-D Cartesian Mesh tool allows you to specify various global mesh size parameters to use where
local settings have not been specified. It also allows you to specify other options such as the meshing algorithm
(single-domain projected or multi-domain intersected), the splitting type (omnitree or octree), boundary layer
settings, and others. Finally, it allows you to invoke the mesher.
There are other situations in which pseudo surface entities can be generated. For example, during meshing, it is
sometimes necessary to split surfaces to create new surfaces. There are two circumstances in which this may
happen:
1. When a surface spans multiple domains. That is, if part of the surface bounds one domain and the other
part bounds a different domain.
2. When a surface extends outside the region of interest, and is only partially meshed.
When splitting becomes necessary, CFD-GEOM constructs pseudo surfaces to represent the subsurfaces resulting
from the split. Note that, unlike most situations in geometry modeling where a split surface is deleted and replaced
by new surfaces, the original surface is not deleted when split into pseudo surfaces because it must remain
available for any subsequent remeshing operations.
There is one final circumstance in which pseudo surfaces can be generated. During mesh quality improvement, if
the mesher is unable to remove skewed cells, those cells will be blocked and faces created on their boundaries.
Such a collection of faces is assigned to a pseudo surface entity and is automatically assigned a symmetry
boundary condition. If you observe such surfaces in the final mesh, and if they lie near critical areas of the
computational domain, it is recommended that you regenerate the mesh with sources or different meshing
parameters to ensure the removal of these regions.
Note The Cartesian meshing toolbox contains tools and settings applicable only to Cartesian meshing. They are
not currently used by the tetrahedral or other meshers in CFD-GEOM.
You access the Cartesian meshing tools from the Meshing toolbox:
322
Mesh Tab
The following topics discuss the five tools in the Cartesian Meshing toolbox in more detail:
323
CFD-GEOM V2014.0 User Manual
The following parameters are available for setting the bounding box:
324
Mesh Tab
Captured Curvature
If this option is unchecked, the projection step is skipped and a stair-step type mesh is generated there. Cells with
cell centers inside the cylindrical bounding box are retained; others are removed as in the following figure:
325
CFD-GEOM V2014.0 User Manual
For simplicity, the side of the cylindrical bounding box is divided into four parts and thus the cylinder-type
bounding box is composed of six bounds, just like the box-type bounding box. The naming of these six bounds is
similar to that of a corresponding box-type bounding box. The size and location of the cylinder-type bounding box
is set in a manner identical to that for a box-type bounding box. The cylinder will be inscribed in an imaginary box
with the specified parameters.
Reset
This button resets the xmin, xmax, ymin, ymax, zmin, and zmax type/value pairs to their defaults.
Fit To Model
This button defines a minimally sized bounding box around the current geometry. Note that this doesn’t change
the type for a particular side; it only recomputes the values in the text fields. For example, if the xmax side of the
bounding box has type “Ratio to Body Dimension”, the xmax text field is set to 0*dx=0.
326
Mesh Tab
outside and inside a geometry, and/or the inside of the geometry consists of multiple logical volumes, you will
want to place a domain marker in each region of interest.
Note: If you intend to use the multi-domain intersecting mesher, you may not need to manually specify domain
markers. See Generate 3-D Cartesian Mesh for a description of automatic domain marker generation.
Note if you have not yet defined a Cartesian Bounding Box, one will be generated with default
parameters.
327
CFD-GEOM V2014.0 User Manual
Note This tool requires the existence of a Cartesian Bounding Box. If it does not exist, one will be generated
automatically with default parameters when you open this tool.
Create a source
1. Click the Define Cartesian Mesh Sources tool in the Cartesian Meshing Options toolbox.
2. Choose a source type.
3. Change the properties as required. See the previous note on surface selection for box sources.
4. Click Apply or press the middle mouse button to complete the operation.
Modify a source
1. Click the Define Cartesian Mesh Sources tool in the Cartesian Meshing Options toolbox.
2. Select an existing source. Its current properties will be displayed.
3. Change the properties as desired.
328
Mesh Tab
4. Click Apply or press the middle mouse button to complete the operation.
329
CFD-GEOM V2014.0 User Manual
Box Sources
A box source is used to refine the grids inside a geometric box. To define a box source, the minimum and maximum
corners of the box must be specified, along with the grid sizes in the box. The box determines the region where the
grid is refined based on the given grid sizes. Note that, rather than manually specifying the box corners, you may
instead select one or more surfaces. CFD-GEOM will construct a minimal box source around these surfaces.
Sphere Sources
A sphere source is used to refine the portion of the mesh inside of a sphere. A radius and sphere center is used to
define the sphere size and location.
Cylinder Sources
A cylindrical source is used to refine the grids between the interior radius and exterior radius region. The cylinder is
defined by the bottom center location, axis direction, length, inner radius, and outer radius. The inner radius
should be 0 or larger, but less than the outer radius. The axis direction is not automatically normalized.
There are two types of surfaces upon which you may set local meshing parameters: geometric surfaces and
bounding box surfaces. Geometric surfaces (CAD and/or discrete) define your geometry, and have a wide variety of
controllable meshing parameters. These can be selected from the viewer, the model tree, or the surface browser
(described below). Bounding box surfaces are the six surfaces that form the Cartesian bounding box. In CFD-GEOM,
these are created (as necessary) by the mesh generator, and hence, do not exist prior to mesh generation.
330
Mesh Tab
However, using the surface browser, you can still set meshing parameters on them prior to mesh generation. Note
that there are fewer options available for bounding box surfaces. For example, you cannot suppress a bounding
box surface. For these reasons, this tool has two surface picking modes. It is recommended that you specify any
parameters for geometric surfaces first. Then, you should switch to bounding box surface selection mode and set
those parameters, if necessary.
Note When the operation is complete, this tool switches back to geometry surface picking mode. If you
wish to perform additional settings on the bounding box surfaces, you should repeat step 2.
Notes
• By default, surfaces use global settings for most parameters. In such cases, you will see the string “Use
Global Setting” in the corresponding menu or text field. If selecting multiple surfaces, you may see an
empty string in a menu or text field. This does not indicate an error. It simply means that the surfaces
have different settings for the corresponding parameter. If you click Apply in this situation, that
parameter will not be modified on the selected surfaces.
• This tool requires the existence of a Cartesian bounding box. If it does not exist, one will be generated
automatically with default parameters when you open this tool.
331
CFD-GEOM V2014.0 User Manual
332
Mesh Tab
333
CFD-GEOM V2014.0 User Manual
334
Mesh Tab
Note If you enter the Generate 3-D Cartesian Mesh tool without having defined a bounding box, a
bounding box with default parameters will automatically be generated. This will also create a default
Cartesian domain marker, which will usually lie between the bounding box and the geometry.
3. (optional) Define any additional Cartesian domain markers using the Define Cartesian Domain Markers
tool.
4. (optional) Define any sources using the Define Cartesian Mesh Sources tool in the Cartesian Meshing
toolbox.
5. (optional) Set any local meshing parameters in the Set Cartesian Patch Info tool.
6. Open the Generate 3-D Cartesian Mesh tool and select Multi Domain as the mesh type.
7. Change other mesh properties as necessary.
8. Click Generate Mesh or press the middle mouse button to apply the settings and generate the mesh.
Alternatively, you can click Apply Settings to make the changes permanent without generating the mesh.
Note If you enter the Generate 3-D Cartesian Mesh tool without having defined a bounding box, a
bounding box with default parameters will automatically be generated. This will also create a default
Cartesian domain marker, which will usually lie between the bounding box and the geometry.
3. (optional) If the current Cartesian domain marker is not in the required location, relocate it using the
Define Cartesian Domain Markers tool.
4. (optional) Define any sources using the Define Cartesian Mesh Sources tool in the Cartesian Meshing
toolbox.
5. (optional) Set any local meshing parameters in the Set Cartesian Patch Info tool.
6. Open the Generate 3-D Cartesian Mesh tool and select Projected Single Domain as the mesh type.
Note If this option is not available, it indicates that you do not have any domain markers or you have
more than one. Add or delete domain markers as necessary.
335
CFD-GEOM V2014.0 User Manual
Each of the available meshing parameters is described below. Some options are available only for multi-domain
meshing, while others are available only for single-domain projected meshing. These are noted where differences
exist. Note also that some of these parameters can be locally overridden in the Set Cartesian Patch Info tool. These
are noted where appropriate.
336
Mesh Tab
Mesh Type
This option specifies the type of meshing algorithm to use. There are two types. The single-domain projected
meshing algorithm uses a projection algorithm to shrink-wrap nodes near the geometry onto the geometry. This
algorithm is available only for meshing a single domain. The multi-domain intersecting meshing algorithm uses a
combination of node movement and cell splitting to fit near-geometry cells to the geometry. This algorithm is
available for both single- and multi-domain meshing needs. In other words, it can be used to mesh inside the
geometry, between the geometry and the bounding box, or both. In CFD-GEOM, this is the default meshing
algorithm. For more information, see Set Cartesian Patch Info.
Tree Type
This specifies the type of tree to use during meshing. There are two types—omnitree (the default) and octree.
Ordinarily, you will not need to change this setting. For more information on omnitrees and octrees, see Omnitree
and Octree Splitting.
Surface Refinement
This option specifies the global cell size method to use when refining around surfaces. Division Levels instructs the
mesher to use specified level numbers in the X, Y, and Z directions. Normal and Tangential instructs the mesher
to use the specified normal and tangential cell sizes. These settings will apply to all geometry surfaces, except
bounding box surfaces, unless locally overridden in the Set Cartesian Patch Info tool. Note also that other settings
can influence cell sizes at the surfaces.
337
CFD-GEOM V2014.0 User Manual
the mesher more freedom to place these nodes slightly away from the geometry. Though this results in a lower
fidelity mesh, it can sometimes be useful in attaining higher mesh quality. By default, surfaces use this global
bodyfit setting unless locally overridden in the Set Cartesian Patch Info tool.
When boundary layers are enabled, there are two methods for controlling boundary layer growth. Using the
Absolute Thickness option, you can specify the exact desired thickness of the first boundary layer. The first layer
thickness remains constant on all the surfaces irrespective of any variation in the surface mesh size. The Growth
Factor and Number of Layers parameters further specify how the boundary layers are generated. The Allowable
Total Thickness field shows the estimated allowable total thickness based on various settings such as the surface
refinement settings described above. The Actual Total Thickness field shows the total boundary layer thickness
based upon the specified first layer thickness, growth factor, and number of layers. Because of current limitations,
you should try to specify parameters that keep the actual thickness below the estimated allowable thickness.
Failure to do this may result in cells with negative volumes. This may be remedied in a future release. Note that, if
you change other meshing parameters that affect the amount of surface refinement, you should recheck your
boundary layer parameters to make sure that the actual thickness is still less than the allowable thickness. The
following figure shows a planar cut of a mesh with constant thickness boundary layers. Note how the boundary
layers grown from surface D have the same thickness as those grown from surface A, even though the surface
mesh sizes differ.
The second method for controlling boundary layer growth uses the Local Relative Thickness option. Here, the first
layer thickness is specified as a function of local surface mesh size. This means that the absolute thickness may
338
Mesh Tab
vary across surfaces. The Growth Factor and Number of Layers settings have the same meaning as with the
constant thickness option. With the Local Relative Thickness option, the first layer thickness is a dimensionless
quantity, and, hence, so are the allowable and actual thickness values. The allowable thickness is always near 1, so
you should try to set boundary layer parameters that keep the actual total thickness below this value. The
following figure shows a planar cut of a mesh employing variable thickness boundary layers. Note how the layers
grown from surface D vary with the local surface mesh size.
339
CFD-GEOM V2014.0 User Manual
Curvature Refinement
This option allows you to globally control refinement in regions with sharp edges or high curvature. Refinement
Factor is the ratio of the specified surface cell size to the final cell size. In other words, the higher the value the
more intense is the refinement around sharp edges and other regions of high curvature. The default value is 1.4.
The Feature Angle indicates that additional refinement will be performed where curvature on the selected surfaces
exceeds this angle. The default is 35 degrees. These options can be locally overridden in the Set Cartesian Patch
Info tool.
Feature Preservation
If this option is checked, the mesh generator will try to capture sharp features in the geometry globally. Note that
the capturing of features may not be 100% successful. Also, this operation is computationally expensive. This
option can be locally overridden in the Set Cartesian Patch Info tool.
Filament Options
Filament Options
The Filament creation and editing tools enable you to create/edit filaments interactively for use in the CFD-ACE
solver (see the Filament Model chapter of the CFD-ACE+ User Manual). Within CFD-GEOM, filaments are created
from one or more structured edges. The edge grids govern the number and length of filament cells. You can specify
340
Mesh Tab
additional parameters to control global and local cell radii, the number of sides per cell, and the number of cell
groups in each filament.
The options for filaments, from right to left, are shown here:
Create Filaments
Edit Filaments
Filament Buttons
To use filaments effectively, there are a few facts you should remember:
• Filament entities can be created from one or more edges. It is not necessary for these edges to be
connected to each other.
• The number of filament side faces must be even, and at least four.
• The number of branches at a particular node within a single Filament entity may not exceed four.
• Filaments contain general polyhedral grids and are written to DTF as polyzones. Current limitations in DTF
do not allow you to update DTF files that contain polyzones; which means that when writing DTF files, a
fresh DTF file must always be written.
• Each filament entity will be written to a separate zone in the DTF file.
• If a filament entity is built from two or more edges, the Multi Domain option controls how the filament is
written to DTF:
• If selected, multiple cell groups will be written one for each constituent edge entity. All cells wrapped
around a particular edge will belong to the same cell group. This means that, in CFD-ACE-GUI, the cell
groups within a filament can be assigned separate volume conditions. Note also that no interior interfaces
are generated between cell groups.
• If not selected, all cells within a filament will belong to the same cell group. Hence, only one volume
condition may be assigned to them in CFD-ACE-GUI.
• Within a multi-edge filament, the grids at edge adjacencies will be fully connected. However, grids
between adjacent filament entities will not necessarily be connected.
• Large radius values (relative to cell length) at nodes where branching occurs can result in folded cells and
should be avoided.
Create Filaments
The Create Filaments tool enables you to create a basic filament.
341
CFD-GEOM V2014.0 User Manual
Create a filament
1. Click the Create Filament button in the Filaments toolbox. The Filament Creation panel appears and the
Status Line prompts you to select the edges to form a filament. If you select more than one edge, you may
also select the Multi Domain option.
2. Check the Multiple Volume Conditions box if you want to create a multi domain.
4. Enter the number of sides for the filament in the Number of Sides field and click Apply or the middle
mouse button to create the filament. The radius value specified in this tool applies to the filament as a
whole. To locally control filament radius values, use the filament editing tool.
Edit Filaments
The Edit Filaments tool enables you to control the grid properties of existing filaments. Two basic types of control
are available:
• Global controls (the same as those available in the filament creation tool) enable you to modify the
number of side faces and default radius of a selected Filament entity.
• Local controls enable you to specify local radius values within a filament entity. Local filament radii can be
specified at any end points of the constituent edge entities. Local radii can be assigned only to the
endpoints of the underlying edge entities. If a local radius has not been specified at an edge end point, the
filament’s default radius is used at that point. The radii specified at an edge’s end points govern the radii
of the filament along the edge. If these radii are different, the interior filament radii are interpolated
between these end point radii.
In CFD-GEOM, certain filament-related capabilities are not yet available:
• Edges used in filament construction can not be split or joined.
• Filament editing operations cannot be undone/redone.
• Edges cannot be added to or removed from an existing filament.
342
Mesh Tab
Edit a filament
1. Click the Edit Filaments button in the Filaments toolbox. The Filament Editor panel appears and the Status
Line prompts you to select a filament for editing.
3. Check the Multi Domain box if you want to create a multi domain.
5. Enter the radius in the Radius field. If you want to assign local radius values, you must also select one or
more end points of the constituent edges. If you have not assigned a local radius at a point, a value of
minus one (-1) will appear in the Local Radius field. Otherwise, the local radius you specify for the most
recently picked point will appear. Additionally, a circle with that radius will be drawn at each selected
point. If you want to change the local radius, specify a positive value.
6. Enter the number of sides for the filament in the Number of Sides field.
7. Select the edges and click Apply or the middle mouse button to complete the selection and the filament
editing operation.
343
CFD-GEOM V2014.0 User Manual
Query Options
The Mesh Query Options tools allow you to check the mesh quality of your model. There are checks for surface
and volume meshes, depending on the dimension. In this section, picking is restricted to the entity types relevant
to the particular check.
Any cells that violate the given criteria will be persistently displayed in the graphics window. Click the zoom button
to cycle through the cells violating the given criteria. Click the clear button to remove the bad cell display.
Alternatively, the display will be cleared on the next mesh query.
2D Query Options
The 2D Mesh Query options allow you to check specific mesh quality statistics for a 2D mesh. To get a mesh
statistic, select a Structured Domain or Unstructured Domain and specify the threshold for the check, i.e. the
minimum volume.
344
Mesh Tab
Volume Check The Volume Check applies to 2D blocks and 2D surface grids, all in a constant z
plane.
Folded Cells The Folded Cells, unlike the Volume Check tool, applies to all 2D blocks, faces and
unstructured surface meshes whether they are planar or non-planar. This tool will
detect and display overlapping cells.
Centroid/Face Angle (2D) The 2D check is handled similarly. Here, the cells are either triangles or quads and
faces that consist of the two-point segments that form these cells. In both cases,
you may specify a threshold angle in the Min. Angle field. When the check is
complete, the total number of faces, the number of faces that violate the
minimum angle threshold, and the worst angle are reported on the status line.
Any faces at which the threshold is violated are also drawn in the viewer. If the
Show Histogram option is specified before the check is initiated, a histogram is
also generated. Angular values range from 0 degrees (highly skewed) to 90
degrees (ideal).
Small Internal Angle The Small Internal Angle check tool computes the interior angle between the
edges of each cell and displays those cells that violate the specified minimum
345
CFD-GEOM V2014.0 User Manual
angle. This can be useful when the tetrahedral mesher complains about poor
interior angles.
Area The Area Check is the wetted surface area of structured and unstructured surface
grids.
3D Query Options
The 3D Mesh Query options allow you to check specific mesh quality statistics for a 2D mesh. To get a mesh
statistic, select a Structured Domain or Unstructured Domain and specify the threshold for the check, i.e. the
minimum volume.
346
Mesh Tab
For faces with a cell on only one side (i.e., the face lies on the boundary of the
composite grid), the angle is calculated by first calculating the vector between the
cell centroid and the face centroid. The centroid/face angle is the minimum angle
this vector makes with the face.
For faces with cells on both sides (i.e. the face lies in the interior of the composite
grid), the angle is calculated by first calculating the vector between the two cell
centroids. The centroid/face angle is the minimum angle between this vector and
the shared face.
347
CFD-GEOM V2014.0 User Manual
Dihedral Angle
348
Chapter 10. BC/VC Tab
BC/VC Editor
Before a grid system can be handed to the flow solver, you must define boundary and volume conditions. This is
done using the BC/VC Editor. For a 2D system, the only entities that are available for boundary conditions are
edges and lines or curves that are part of a loop. For this reason it is often beneficial to restrict viewing to only
these types of entities. Use the Entity Bar to view them.
The main elements of the Boundary Condition (BC) Explorer and Volume Condition (VC) Explorer are described
below. The 2D and 3D radio buttons that are available for boundary conditions and volume conditions limit the
types of entities that can be selected during boundary or volume condition assignment. If you do not see the
condition types that you anticipate, check the default Flow Solver setting in Edit Menu-Preferences-Tools. The flow
solver you choose will determine the boundary and volume condition types that will be available for selection in
the BC/VC Editor.
BC/VC Tools
349
CFD-GEOM V2014.0 User Manual
To facilitate grouping of identical boundary condition entities within a DTF file, a mechanism to group these
entities has been added to allow easier manipulation of complex models downstream in other applications such as
CFD-ACE-GUI and CFD-VIEW. The grouping operations allow adding entities to a group (creates a group if
necessary), remove entities from a group (removes group if it become empty), renaming groups, or changing the
BC type of a group. All grouped entities must have the same BC type.
350
BC/VC Tab
351
CFD-GEOM V2014.0 User Manual
If the model is 3-D, any surfaces and structured face entities will be named based on the names of the
unstructured domains, structured domains, semi-structured domains, and Cartesian domain markers
they bound.
If the model is 2-D, any lines, curves, edges, and composite edges will be named based on the names
of the surfaces and structured face entities that use them.
1. Assign names to all volumes . Recall that, unless specifically named, volumes get the default name
"NoName".
For example, you may want to specify inlets and outlets at this time.
352
BC/VC Tab
3. When you click AutoName , it automatically names BCs based on the following rules (using example
VC names):
a. A BC lying between two VCs named "VC1" and "VC2" will be named "VC1-VC2".
b. A BC bounding only one VC will be named based on the VC name and the BC type.
For example, if the VC name is "VC1" and the BC has been tagged as an inlet, then the BC name
will be "VC1-Inlet". It will be added to a BC group with the same name.
c. A BC lying in the interior of a volume (i.e., a baffle/thin wall) with name "VC1" will be named
"VC1-Thin_wall". It will be added to a BC group with the same name.
Notes
Use the AutoName button with caution. Any previously assigned BC names may be overwritten.
When the word "Default" appears as a BC type or in a BC name (as shown in the browser), it will be converted
appropriately during DTF output. Suppose, for example, that you have a surface with a Default BC type and the
name "VC1-Default". During DTF output, the BC type will be written as "Wall" and the name will be written "VC1-
Wall". Similarly, if the surface lies at an interface, a Default BC type will be written as an "Interface".
To facilitate grouping of identical volume condition entities within a DTF file, a mechanism to group these entities
has been added to allow easier manipulation of complex models downstream in other applications such as CFD-
ACE-GUI and CFD-VIEW. The grouping operations allow adding entities to a group (creates a group if necessary),
remove entities from a group (removes group if it become empty), renaming groups, or changing the BC type of a
group. All grouped entities must have the same VC type.
353
CFD-GEOM V2014.0 User Manual
354
BC/VC Tab
BC/VC Queries
355
Chapter 11. CFD-GEOM Scripting
Overview
The CFD-GEOM scripting interface offers an alternative to interacting with the CFD-GEOM graphical user interface
(GUI). It allows you to programmatically construct models, vary parameters for parametric studies, perform mesh
generation, output geometry/mesh files, and construct custom GUIs for your specific application type. This
interface provides a set of API (application programmer interface) functions that are built upon the Python
programming language. CFD-GEOM scripts are themselves written in the Python language, and make use of the
API provided in the CFD-GEOM script language modules. Such scripts can be run from within CFD-GEOM itself,
Simulation Manager, and other applications including a standalone Python interpreter. Via its journaling capability,
you can interactively work with CFD-GEOM and let it generate your scripts for you—which can be tweaked and
tailored for parametric variations. This document introduces the basics of CFD-GEOM scripting and also discusses
several advanced scripting methods.
To take advantage of CFD-GEOM’s scripting capabilities, you do not need to be a Python expert. However, you
should have a basic understanding of the following Python topics:
• Basic Python data types including lists ( []’s ) and dictionaries ( {}’s )
The scripting toolbar contains 3 buttons for simplifying the scripting/journaling process. The first button “Reload
Script” reruns the current script. For example, suppose that the current model was read from a script, and that
you’ve subsequently modified the script. Pressing the “Reload Script” button will clear the current model and
reload it from the modified script. The “Edit Script” button displays that script in the text editor you’ve specified
under Edit->Preferences->Tools. The “Deactivate Journaling” button disables journaling for the current model.
Note that, if you press this button, you will not be able to reactivate journaling for this model in the current CFD-
th
GEOM session. Note that a 4 button “Execute Macro” is also located on the scripting toolbar. More information
on this button can be found under Script_ExecuteMacro.
This section is not intended to be a tutorial on general Python usage. General Python documentation and tutorials
can be found at www.python.org. Instead, this section will discuss the fundamentals of CFD-GEOM scripting. The
following is a table of contents for this section:
357
CFD-GEOM V2014.0 User Manual
• Via the “Reload Script” button on the scripting toolbar (if the current model was read from a script)
Error messages and output from print statements can be viewed in the Script Output Window (located under
View->Script Output). Behind the scenes, when CFD-GEOM runs a script, it redirects Python output to a file with
the name geom_script_<modelname>.out. This file is located in the “Temporary Files Directory” specified under
Edit->Preferences->Files. You can view its contents in your favorite text editor. Note, however, that if you run CFD-
GEOM with the “-script” option (which runs the script without creating the CFD-GEOM graphical user interface),
the script output file is placed in the same directory as the script itself rather than the “Temporary Files Directory.
import math
import GUtils
import GGeometry
import GMesh
import GFileIO
import GBCVC
358
CFD-GEOM Scripting
To use a function in a particular module, you must usually qualify the function name with the module from which it
came. For example, to create a point, you would typically do something like the following:
p1 = GGeometry.CreatePoint(0,0,0)
There are other mechanisms for importing files that make it unnecessary to qualify a function name with a module
name. These more advanced import mechanisms are discussed at www.python.org.
• GGeometry: defines all geometry creation/manipulation API and transforms such as translation, scaling,
etc. that can be applied to every entity type.
• GMesh: defines all meshing API for structured, semi-structured, unstructured, and poly meshing
• GBCVC: defines all API for performing simple boundary and volume condition assignment
• GUtils: defines API for miscellaneous tasks such as creating/modifying levels and user variables, deleting
entities, undo/redo, etc.
• GViz: defines API for setting entity colors. This module currently provides very limited functionality, but
new capabilities for controlling CFD-GEOM visualization will be introduced in a later release.
• CFDForm: defines all API for constructing custom graphical user interfaces.
CFD-GEOM also provides several system modules that provide core support for the user modules (you should
never need to import system modules into your scripts):
• GInternal: defines API used internally by the CFD-GEOM scripting language, and which are not intended
for general usage.
• su_modeler_py: defines API used internally by the CFD-GEOM scripting language, and which are not
intended for general usage.
• cfdpyform: defines API used internally by the CFDForm module, and which are not intended for general
usage.
• _su_modeler_py.pyd (MS-Windows DLL) or _su_modeler_py.so (shared object for all other UNIX):
libraries needed to run CFD-GEOM scripts from applications other than CFD-GEOM.
• _cfdpyform.pyd (MS-Windows DLL) or _cfdpyform.so (all other UNIX); libraries providing the core
functionality for the CFDForm module. These are needed whether you are constructing forms in CFD-
GEOM or elsewhere.
The documentation for the functions in each user module are provided in the following links:
GFileIO
359
CFD-GEOM V2014.0 User Manual
GBCVC
GUtils
GViz
CFDForm
Functions that create entities must return handles to those entities to the Python namespace so that those entities
can be used in subsequent function calls. CFD-GEOM script functions that create and return entities fall into 4
general categories.
• Functions designed to create and return exactly one entity (e.g. CreatePoint())
• Functions designed to create 1 or more entities of a particular type but that do not create other entities
as side effects (e.g. CreateLines())
• Functions designed to create 1 or more entities of a particular type and that also create other entities as
side effects (e.g. CreateExtrudedSurfaces())
• Functions designed to create 1 or more entities of multiple types and that may or may not also create
entities as side effects (e.g. TranslateEntities() with the “duplicate” option)
To accommodate those functions that must create and return multiple entities to the Python namespace, it is
necessary to use an aggregate data structure capable of storing multiple entities. The CFD-GEOM entity dictionary
serves this purpose.
A Python dictionary (often called an associative array in other programming languages) is a way of associating data
with fixed keys, which are usually strings or integers. In the case of a CFD-GEOM entity dictionary, the keys are
entity type strings, and the associated data are lists of entities of a single type. When returning entities during a
script run, CFD-GEOM script functions construct an entity dictionary containing all the entities created by the
function.
Each dictionary contains the following named lists, each of which is a Python list:
• ‘points’ (points)
• ‘lines’ (lines)
• ‘curves’ (curves)
• ‘edges’ (edges)
• ‘cedges’ (composite edges)
• ‘edge_link_groups’ (edge link groups)
• ‘loops’ (loops; note that you should not normally need to access these)
• ‘usurfs’ (untrimmed surfaces)
• ‘surfs’ (surfaces)
• ‘dsurfs’ (discrete surfaces)
360
CFD-GEOM Scripting
• ‘faces’ (faces)
• ‘2d_sdomains’ (2-D structured domains; i.e. 2-D blocks)
• ‘sdomains’ (3-D structured domains; i.e. blocks)
• ‘csdomains’ (3-D composite structured domains; i.e. composite blocks)
• ‘shells’ (shells; i.e. closed surface sets)
• ‘udomains’ (unstructured domains)
• ‘ssdomains’ (semi-structured domains)
• ‘filaments’ (filaments)
Each list contains 0 or more entity instances. An entity instance is essentially a pointer (handle) to a single entity. In
many cases, entity dictionaries and entity instances can be used interchangeably as input to CFD-GEOM script
functions. Exceptions to this are described a little later.
In order to understand the distinction between entity instances and entity dictionaries, and to use them
appropriately, it is useful to understand how the CFD-GEOM script language constructs entity dictionaries. Let’s
consider the simplest example.
p1 = GGeometry.CreatePoint(0,0,0)
print p1
In this case, we’ve called a function that never creates more than one entity. Here CFD-GEOM creates a point
entity and assigns it to a dictionary whose name is p1, whose contents are listed below (this output has been
reformatted to make it more easily readable):
{
0: <C SUPoint instance at _2874b308_p_SUPoint>,
'points': [<C SUPoint instance at _2874b308_p_SUPoint>],
'udomains': [],
'cedges': [],
'shells': [],
'csdomains': [],
'counter': 1,
'lines': [],
'curves': [],
'ssdomains': [],
'edge_link_groups': [],
'edges': [],
'sdomains': [],
'faces': [],
'loops': [],
'usurfs': [],
'2d_sdomains': [],
'surfs': [],
'filaments': []
}
During the execution of CreatePoint(), a single point entity was created and a handle to it is stored in the ‘points’
list of the dictionary p1. To access this handle, known as an entity instance, you can use p1[‘points’][0]. In addition,
because this function is designed to create exactly 1 entity of a particular type, the returned entity is known as a
primary entity. When a primary entity is created, it gets special treatment when added to an entity dictionary.
Dictionaries that contain a primary entity have a special key “0” and an associated handle to the entity. Note in the
above output that the primary entity and the point in the ‘points’ list have the same handle, and hence refer to the
same entity.
361
CFD-GEOM V2014.0 User Manual
Note The handles are special constructs created by Python that associate the point in the Python namespace with
the underlying CFD-GEOM point. Their string values are based on memory locations and vary from script run to
script run. The string values are not important and should not be used directly in your scripts.)
To use the point as an argument in another function call, you can use either its dictionary or instance name. Hence
(assuming there exists a point named p2) the following are equally valid:
The reason is that CFD-GEOM script functions that accept entities as input know how to distinguish between entity
instances and dictionaries, and will extract the primary entity from a dictionary when necessary. Let’s now
consider another simple example. Suppose that you create 3 points p1, p2, and p3—and that you create 2 lines
simultaneously from those points.
p1 = GGeometry.CreatePoint(0,0,0)
p2 = GGeometry.CreatePoint(1,0,0)
p3 = GGeometry.CreatePoint(2,0,0)
lines = GGeometry.CreateLines([p1,p2,p3])
print lines
In this case, the goal was to create a specific type of entity (line). However, because more than one of them was
created, there is no primary entity, as shown in the following output:
{
'udomains': [],
'cedges': [],
'shells': [],
'csdomains': [],
'lines': [<C SULine instance at _586aab08_p_SULine>,
<C SULine instance at _208fb608_p_SULine>],
'curves': [],
'ssdomains': [],
'edge_link_groups': [],
'edges': [],
'sdomains': [],
'faces': [],
'loops': [],
'usurfs': [],
'2d_sdomains': [],
'surfs': [],
'filaments': [],
'points': []
}
As usual, handles to the newly created lines are added to the ‘lines’ list. However, because there is no primary
entity, the lines dictionary can not be used as an argument to functions that take line entities as input. For
example, if you want to extrude a single surface from one of the lines, you must issue a command similar to the
following (note that CreateExtrudedSurfaces takes a line/curve or a list of lines/curves as its first argument):
362
CFD-GEOM Scripting
or
Now let’s consider a more complicated example. Suppose that you execute the following:
p1 = GGeometry.CreatePoint(0,0,0)
p2 = GGeometry.CreatePoint(1,0,0)
p3 = GGeometry.CreatePoint(2,0,0)
lines = GGeometry.CreateLines([p1,p2,p3])
srf = GGeometry.CreateExtrudedSurfaces(lines[‘lines’][0], 0,1,0, 1,1)
print srf
{
0: <C SUTrimmedSurface instance at _f06eb208_p_SUTrimmedSurface>,
'udomains': [],
'cedges': [],
'shells': [],
'csdomains': [],
'lines': [<C SULine instance at _f8cd380b_p_SULine>,
<C SULine instance at _68922b0b_p_SULine>,
<C SULine instance at _18ff020c_p_SULine>],
'curves': [],
'ssdomains': [],
'edge_link_groups': [],
'edges': [],
'sdomains': [],
'faces': [],
'loops': [<C SULoop instance at _f8f5b108_p_SULoop>],
'usurfs': [<C SUUntrimmedSurface instance
at_6889fc0b_p_SUUntrimmedSurface>],
'2d_sdomains': [],
'surfs': [<C SUTrimmedSurface instance at
_f06eb208_p_SUTrimmedSurface>],
'filaments': [],
'points': [<C SUPoint instance at _6886b508_p_SUPoint>,
<C SUPoint instance at _d0e4b408_p_SUPoint>]
}
Because the purpose of this function is to create a surface, and exactly one surface was created, that surface is the
primary entity and is located at key “0”. As usual, it is also stored in the ‘surfs’ list. However, to create this surface,
CFD-GEOM has to construct several additional entities (3 lines, 1 loop, 1 untrimmed surface, and 2 points). Because
these entities are created as side effects of the surface creation, and because you may later wish to use these
entities in other function calls, CFD-GEOM adds these entities to the dictionary. Hence, to use the surface in a
function call, you may specify srf or srf[‘surfs’][0]. To use one of the other entities, you must specify the instance
name srf[listname][index].
Consider one final entity referencing example. Suppose that you create a point and attempt to create another
point at the same location.
p1 = GGeometry.CreatePoint(0,0,0)
p2 = GGeometry.CreatePoint(0,0,0)
363
CFD-GEOM V2014.0 User Manual
print p1
print p2
{
0: <C SUPoint instance at _0856210b_p_SUPoint>,
'udomains': [],
'cedges': [],
'shells': [],
'csdomains': [],
'lines': [],
'curves': [],
'ssdomains': [],
'edge_link_groups': [],
'edges': [],
'sdomains': [],
'faces': [],
'loops': [],
'usurfs': [],
'2d_sdomains': [],
'surfs': [],
'filaments': [],
'points': [<C SUPoint instance at _0856210b_p_SUPoint>]
}
{
0: <C SUPoint instance at _0856210b_p_SUPoint>,
'udomains': [],
'cedges': [],
'shells': [],
'csdomains': [],
'lines': [],
'curves': [],
'ssdomains': [],
'edge_link_groups': [],
'edges': [],
'sdomains': [],
'faces': [],
'loops': [],
'usurfs': [],
'2d_sdomains': [],
'surfs': [],
'filaments': [],
'points': []
}
In the output for p1, the new point is stored in the ‘points’ list and as the primary entity. In p2, the point is stored
as the primary entity, but is not stored in the ‘points’ list. The reason is that, when creating p2, a new point was
not actually created. Rather, the existing point at location (0,0,0) was returned. Notice how the handle to the point
in the p2 dictionary is identical to the handles in the p1 dictionary. In the end, the point has the following names:
p1, p1[‘points’][0], and p2.
Name Assignment
Names can be assigned to entities at times other than creation time. Consider the following example:
364
CFD-GEOM Scripting
p1 = GGeometry.CreatePoint(0,0,0)
p2 = p1
In this example, the entity dictionary p1 is created. Prior to the assignment to p2, the point can be referenced via
p1 or p1[‘points’][0]. Upon assignment to p2, the point can be referenced by 2 additional names: p2 and
p2[‘points’][0]. The reason is that the assignment p2 = p1 gives p2 a reference to the dictionary referenced by p1
(as of Python 2.4.2, p1 and p2 would point to the same dictionary rather than 2 distinct copies).
p1 = GGeometry.CreatePoint(0,0,0)
p2 = p1[‘points’][0]
As usual, the new point can be referenced by the names p1 and p1[‘points’][0]. After the assignment to p2, the
new point can also be referenced as p2. This example is different from the previous example in that a point
instance, rather than a dictionary, is assigned to p2.
GGeometry.CreatePoint(0,0,0)
In this case, the newly created point will be inaccessible because no assignment has added it to the Python
namespace. In a similar example, suppose that you write your own function to create a set of points.
def CreateSomePoints() :
pts = [] # Creates an empty list
for i in range(0,5) :
pts.append(GGeometry.CreatePoint(i,0,0))
CreateSomePoints()
None of the newly created points will be accessible. The reason is that, though they were added to a local list in
the function, they were never returned to the global namespace. You can remedy this problem by both returning
the points from the function and assigning the returned points to a list similar to the following:
def CreateSomePoints() :
pts = [] # Creates an empty list
for i in range(0,5) :
pts.append(GGeometry.CreatePoint(i,0,0))
return pts
points = CreateSomePoints()
The result is a list containing 5 point dictionaries. For example, the last point can be accessed via
points[4][‘points’][0] or points[4]. Alternatively, the following will yield a list of 5 point instances.
def CreateSomePoints() :
pts = [] # Creates an empty list
for i in range(0,5) :
p = GGeometry.CreatePoint(i,0,0)
pts.append( p['points'][0] )
return pts
points = CreateSomePoints()
To access the last point you must specify points[4]. Suppose finally that you create 2 points and assign them to the
same variable.
p1 = GGeometry.CreatePoint(0,0,0)
p1 = GGeometry.CreatePoint(1,0,0)
365
CFD-GEOM V2014.0 User Manual
In this case, the first point will be inaccessible. The reason is that, in the Python namespace, there is only one
variable p1. It only remembers the value that was most recently assigned to it. It is, therefore, a risky practice to
reuse variable names in CFD-GEOM scripting.
Journaling
Via its journaling capability, you can use CFD-GEOM to generate your scripts for you. When journaling is activated
for a model, the application of modeling tools, meshing tools, levels, user variables, undo/redo, and entity deletion
will cause the equivalent script command to be written to a journal file. This journal file can later be run via the
File->Open dialog (CFD-GEOM journal files are Python scripts and always have a .py extension).
There are 2 ways to initiate journaling in CFD-GEOM. The first is at model creation time. After you’ve specified a
model name and working directory, selected the “Activate Journaling” button, and pressed “Apply”, CFD-GEOM
will create a new model in the usual way. In addition, it will create a journal file with the name
<directory>/<modelname>.py and write a header to that file containing a few necessary import statements.
Subsequent entity creations, manipulations, etc. are journaled to the end of this file.
The second way to initiate journaling is to read an existing CFD-GEOM script and to elect to continue journaling to
that script. Electing to continue journaling is controlled by the corresponding setting in Edit->Preferences->Tools.
Any newly issued commands will be appended to the script.
In order to prevent the generation of corrupt journal files, CFD-GEOM’s journaling system enforces the following
restrictions:
• No two models can journal to the same script file in the same session. Note that it is still possible for 2
models in separate instances of CFD-GEOM to journal to the same file. This practice is guaranteed to
produce corrupt scripts and should be avoided.
• Once deactivated for a model, journaling can not be reactivated during the current session.
• Copying and pasting from one model to another can not be journaled
• Journaling can not be initiated at the end of a failed script run
In addition, most graphical operations such as blanking, unblanking, and changing the model view are not currently
journaled as they have no corresponding script functions.
When journaling commands that involve entity creation, CFD-GEOM automatically assigns names to newly created
entities on the fly and writes those names to the journal file. Suppose, for example, that you have an empty model
and then create 2 points through the point creation tool. CFD-GEOM will assign the names geom_point1 and
geom_point2, respectively, to the newly created points as follows (where the ellipses are replaced by the actual
coordinates)
If you then create a line from the 2 points, the resulting command would be
Recall from the discussion of “primary” entities in the section “Entities and Entity Dictionaries” that these are
examples of functions that create and return a primary entity, and hence, the resulting dictionary names can be
used directly to reference the entities. Suppose that we now extrude a surface from the line. The resulting
command would look something like
366
CFD-GEOM Scripting
As expected, the resulting surface is a primary entity and can be referenced either by geom_surf1 or
geom_surf1[‘surfs’][0]. The entities created as side effects of this operation are named as expected (e.g.
geom_surf1[‘lines’][0]) and those names are used in any subsequently journaled commands that involve those
entities. Suppose, however, that instead of creating 1 surface, you choose to extrude 2 of them. The resulting
command would look something like
The “geom_op” portion of the name serves, in this case, as an indicator that multiple surfaces were created, so the
resulting dictionary name can not be used alone to refer to the created surfaces (i.e. you’ll need to use the
dictionary’s ‘surfs’ list to get at those surfaces).
From a practical standpoint, you will likely need to use a combination of journaling and manual script editing to
create useful scripts. Following are the recommended steps you should follow when creating scripts via journaling:
In addition, if you perform an operation and wish to undo it, you may perform an undo. An undo command will be
written to the journal file. However, instead of doing this, it is recommended that you remove the last command
from the journal file and then replay the script. This will make your script run more efficiently.
When running CFD-GEOM scripts from other applications (including Simulation Manager), you should ensure that
the CFD-GEOM ScriptLanguage installation directory is in your PYTHONPATH. This should be handled automatically
by the Simulation Manager installation, but must be manually specified when run from other applications.
To run a CFD-GEOM script outside the CFD-GEOM graphical user interface, you must initialize CFD-GEOM in the
script. The standard approach is as follows:
import GUtils
...import other modules
367
CFD-GEOM V2014.0 User Manual
GUtils.StartGeom()
... CFD-GEOM script commands
GUtils.StopGeom()
The StartGeom() command consumes a CFD-GEOM license and initializes the CFD-GEOM scripting module.
Without this initialization, CFD-GEOM script API will not function properly. The StopGeom() command releases the
CFD-GEOM license and frees all memory consumed by CFD-GEOM. Note that, when run from the CFD-GEOM GUI,
these commands are not needed and have no effect.
Scripting Toolbar
The Scripting Toolbar allows reloading of Python scripts, launching the script in a text editor, halting a script run,
and execution of Python macros.
Scripting Toolbar
Reload Script
If a Python script has already been executed in CFD-GEOM, then some change is made to the script, the Reload
Script button can be used to execute the same script again to update the model. CFD-GEOM will clear the current
model window, and execute the script again from the beginning.
Launch Editor
The Launch Editor button will launch the script that is currently loaded in CFD-GEOM in the user specified text
editor. By default, Notepad is used on Windows and Vi is used on Linux/Unix systems. This can be configured in
the Edit −−> Preferences −−> Tools tab.
Halt Script
The Halt Script button can be used to terminate the execution of a script. This may be necessary if the script run
hangs, and thus will no complete. If this is required, there may be a coding problem in the script which will need to
be fixed.
Execute Macro
The Python Macro capability in CFD-GEOM is intended to all users to perform operations on previously created
entities. The following is a list of some uses for macros:
• Allows the execution of Python scripts against the current model
• Allows passage of picked entities (single- or multi-set) to the script
• Allows users to add their own custom capabilities to CFD-GEOM and to use those capabilities interactively
from the CFD-GEOM GUI
368
CFD-GEOM Scripting
Example:
The following creates an interpolation curve through each set of picked points. The number of curves equals the
number of sets
for i in range( len(picked_entities) ):
GGeometry.CreateInterpolationCurve(
picked_entities[i]['points'], 0
)
GGeometry.CreatePoint(X,Y,Z)
GGeometry.EditPoint(point_handle,X,Y,Z)
GGeometry.CreateOffsetPoints(reference_point,DX,DY,DZ)
GGeometry.CreateAveragePoint([reference_points],replace=0)
GGeometry.CreateCurveCurveIntersectionPoints(curve1,curve2)
GGeometry.CreateCurveSurfaceInsectionPoints(curve,surface)
GGeometry.CreateClosestPoints(point1,point2)
GGeometry.CreateParametricPointLineOrCurve(curve,parameter)
369
CFD-GEOM V2014.0 User Manual
GGeometry.CreateParametricPointOnSurface(surface,u,v)
GGeometry.FilterPointsLocally(points,precision)
GGeometry.EquatePoints(points)
GGeometry.ProjectPointsToLinesAndCurves(points,curves)
GGeometry.CreatePointAtEdgeGridPoint(edge,index)
GGeometry.CreatePoint
Prototype
GGeometry.CreatePoint(x,y,z)
Description
Create a CFD-GEOM point entity at the specified coordinates. and return a handle to it. Note that if there
is already a point within geometric tolerance of the specified coordinates, a new point is not created --
rather, a handle to the existing point is returned.
Inputs
Point locations for X, Y, and Z
Return Value
A newly created point at the user defined X, Y, and Z value. Note that if there is already a point within
geometric tolerance of the specified coordinates, a new point is not created -- rather, a handle to the
existing point is returned.
Errors
If proper X, Y, and Z values are not provided, an error will be raised.
Examples
#Create the point "mypoint"
point = GGeometry.CreatePoint(1,1,1)
Back to Top
GGeometry.EditPoint
Prototype
GGeometry.EditPoint(point,x,y,z)
Description
Move the specified CFD-GEOM point entity to the specified coordinates and update any attached
geometry/grid systems.
Inputs
Handle to the point to be moved and the new X, Y, and Z locations.
Return Value
None
Errors
An error will be raised only if the model is in an error state at the new point location.
Examples
#Create the point
point = GGeometry.CreatePoint(1,1,1)
370
CFD-GEOM Scripting
GGeometry.CreateOffsetPoint
Prototype
GGeometry.CreateOffsetPoints(ref_point,dx,dy,dz)
Description
Create point(s) offset from the given reference point(s).
Inputs
Reference point and the amount of offset in X, Y, and Z directions.
Return Value
A new point created at a location dx, dy, and dz from the reference point.
Errors
An error will be raised if the handle to the reference point does not exist and/or dx, dy, and dz are not
specified..
Examples
#Create the reference point
point = GGeometry.CreatePoint(1,1,1)
#Edit the location of mypoint
offsetpoint = GGeometry.CreateOffsetPoint(point,1,1,1)
Back to Top
GGeometry.CreateAveragePoint
Prototype
GGeometry.CreateAveragePoint([ref_points],replace=0)
Description
Create a average point of the input reference points.
Inputs
List of points from which an average point will be created.
Return Value
A new point created at the average of the input points. If replace is equal to 1, the input points will be
replaced with the average point. If it replace is equal to zero, a new point will be created.
Errors
An error will be raised if a proper set of reference points are not provided or the option "replace" is not
specified.
Examples
#Create the reference points
point1 = GGeometry.CreatePoint(1,1,1)
point2 = GGeometry.CreatePoint(1,2,1)
point3 = GGeometry.CreatePoint(1,1,2)
#Create an average point called averageypoint
averagepoint = GGeometry.CreateAveragePoint([point1,point2,point3],replace=0)
Back to Top
371
CFD-GEOM V2014.0 User Manual
GGeometry.CreateCurveCurveIntersectionPoints
Prototype
GGeometry.CreateCurveCurveIntersectionPoints(curve1,curve2)
Description
Create point(s) at the intersection(s) of the input lines/curves.
Inputs
Two curve that intersect each other.
Return Value
A list of new points at the intersection of the input curves.
Errors
An error will be raised if the input curves do not intersect or some other error occurs.
Examples
#Intersect two curves to get new points called mypoints
points = GGeometry.CreateCurveCurveIntersectionPoints(curve1,curve2)
Back to Top
GGeometry.CreateCurveSurfaceIntersectionPoints
Prototype
GGeometry.CreateCurveSurfaceIntersectionPoints(curve,surface)
Description
Create point(s) at the intersection(s) of the input lines/curves with a surface.
Inputs
A line/curve and a surface.
Return Value
A list of new points at the intersection of the input curve and surface.
Errors
An error will be raised if the input curves do not intersect the surface or some other error occurs.
Examples
#Intersect a curve and a surface to get new points called mypoints
points = GGeometry.CreateCurveSurfaceIntersectionPoints(curve,surface)
Back to Top
GGeometry.CreateClosestPoints(entity1,entity2)
Prototype
GGeometry.CreateClosestPoints(entity1,entity2)
Description
Create the closest points of approach between two lines/curves or a line/curve and a surface.
Inputs
Two lines/curves or a line/curve and surface.
Return Value
A list of new points.
Errors
372
CFD-GEOM Scripting
GGeometry.CreateParametricPointOnLineOrCurve(curve,parameter)
Prototype
GGeometry.CreateParametricPointOnLineOrCurve(curve,parameter)
Description
Create point at a value within a line's curve's parameter space.
Inputs
A line or curve.
Return Value
A new point.
Errors
An error will be raised if the proper inputs are not provided.
Examples
point = GGeometry.CreateParametricPointOnLineOrCurve(curve,parameter)
Back to Top
GGeometry.CreateParametricPointOnSurface(surface,u,v)
Prototype
GGeometry.CreateParametricPointOnSurface(surface,u,v)
Description
Create point at a value within a surface's parameter space.
Inputs
A surface.
Return Value
A new point.
Errors
An error will be raised if the proper inputs are not provided.
Examples
point = GGeometry.CreateParametricPointOnSurface(surface,u,v)
Back to Top
GGeometry.FilterPointsLocally(points,precision)
Prototype
GGeometry.FilterPointsLocally(points,precision)
Description
Locally filter a collection of points using the specified precision.
Inputs
A list of points and precision value.
Return Value
373
CFD-GEOM V2014.0 User Manual
None
Errors
An error will be raised if the proper inputs are not provided.
Examples
GGeometry.FilterPointsLocally([points],precision)
Back to Top
GGeometry.EquatePoints(points)
Prototype
GGeometry.EquatePoints(points)
Description
Move the points [1...n] onto points[0] and update any attached geometry or mesh accordingly.
Inputs
A list of points.
Return Value
A new point.
Errors
An error will be raised if the proper inputs are not provided.
Examples
point = GGeometry.EquatePoints([points])
Back to Top
GGeometry.ProjectPointsToLinesAndCurves(points,curves)
Prototype
GGeometry.ProjectPointsToLinesAndCurves(points,curves)
Description
Create projected (closest point) copes of the input points onto the input lines/curves.
Inputs
A list of points and the destination lines/curves.
Return Value
Points with new positions on the lines/curves.
Errors
An error will be raised if the proper inputs are not provided.
Examples
points = GGeometry.ProjectPointsToLinesAndCurves([points],curves)
Back to Top
GGeometry.CreatePointAtEdgeGridPoint(edge,grid_point_index)
Prototype
GGeometry.CreatePointAtEdgeGridPoint(edge,grid_point_index)
Description
Create a point at an edge grid point.
Inputs
374
CFD-GEOM Scripting
An edge and an index for the grid point where the edge will be split. The index will run from 1 to number
of edge grid points.
Return Value
A new point
Errors
An error will be raised if the grid point index is outside the allowable range for the input edge, i.e. an edge
has 10 points and the index provided is larger than 10.
Examples
points = GGeometry.CreatePointAtEdgeGridPoint(edge,grid_point_index)
GGeometry.CreateLine(start_point,end_point)
GGeometry.CreateLines(points,closed=0)
GGeometry.ExtendLine(line,endpoint,amount)
GGeometry.CreateLinesParallelToVector(points,dx,dy,dz,ds,de)
GGeometry.CreateLinesParallelToLine(points,axis_line,ds,de)
GGeometry.CreateLinesParallelToPoints(points,axis_spt,axis_ept,ds,de)
GGeometry.CreateTangentLineAtParameter(curve,parameter,ds,de)
GGeometry.CreateTangentLineAtPoint(curve,point,ds,de)
GGeometry.CreateLineNormalToSurface(surface,point,ds,de)
GGeometry.ConvertCurvesToLines(curves)
GGeometry.CreateLine
Prototype
GGeometry.CreateLine(start_point,end_point)
Description
375
CFD-GEOM V2014.0 User Manual
Create a line entity between the specified points and return a handle to it.
Inputs
Start point and end point
Return Value
A newly created line between the input points.
Errors
If points are not specified, an error will be raised.
Examples
start_point = GPoint.CreatePoint(1,0,0)
end_point = GPoint.CreatePoint(0,1,0)
line = GGeometry.CreateLine(start_point,end_point)
Back to Top
GGeometry.CreateLines
Prototype
GGeometry.CreateLines(points,closed=0)
Description
Create lines between points.
Inputs
A list of points and a flag for closed (0 = not closed, 1 = closed)
Return Value
A set of lines between the input points.
Errors
If points are not specified or if the flag "closed" is not specified, an error will be raised.
Examples
point1 = GPoint.CreatePoint(1,0,0)
point2 = GPoint.CreatePoint(0,1,0)
point3 = GPoint.CreatePoint(1,1,0)
line = GGeometry.CreateLines([point1,point2,point3],closed=0)
Back to Top
GGeometry.ExtendLine
Prototype
GGeometry.ExtendLine(line,endpoint,amount)
Description
Extend a current lines length by a given amount.
Inputs
A line, an end point of the line, and the amount the line is to be extended.
Return Value
None
Errors
If points are not specified or if the flag "closed" is not specified, an error will be raised.
Examples
line = GGeometry.CreateLine(start_point,end_point)
extended_line = GGeometry.ExtendLine(line,end_point,1)
376
CFD-GEOM Scripting
Back to Top
GGeometry.CreateLinesParallelToVector
Prototype
GGeometry.CreateLinesParallelToVector(points,dx,dy,dz,ds,de
Description
Create lines (through the given points) that are parallel to the specified vector (i.e. that run in the
direction specified by the vector). Line length is implied by "ds" and "de", where ds is the distance from
each reference point to the corresponding line's start point, and de is the distance from each reference
point to the corresponding line's end point.
Inputs
Points, vector, and length of each respective line.
Return Value
Lines parallel to input vector.
Errors
If points, the vector, or the length of the line are not specified properly, an error will be raised.
Examples
point1 = GGeometry.CreatePoint(1,0,0)
parallel_line = GGeometry.CreateLinesParallelToVector(point1,1,0,0,1,1)
Back to Top
GGeometry.CreateLinesParallelToLine
Prototype
CreateLinesParallelToLine(points, axis_line, ds, de)
Description
Create lines (through the given points) that are parallel to the specified axis line (i.e. that run in the
direction implied by the axis line). Line length is implied by "ds" and "de", where ds is the distance from
each reference point to the corresponding new line's start point, and de is the distance from each
reference point to the corresponding new line's end point.
Inputs
Points, axis line, and length of each respective line.
Return Value
Lines parallel to axis line.
Errors
If points, the axis line, or the length of the line are not specified properly, an error will be raised.
Examples
point1 = GGeometry.CreatePoint(1,0,0)
point2 = GGeometry.CreatePoint(1,1,0)
line = GGeometry.CreateLine(point1,point2)
parallel_line = GGeometry.CreateLinesParallelToLine(point1,line,1,1)
Back to Top
GGeometry.CreateLinesParallelToPoints
Prototype
CreateLinesParallelToPoints(points, axis_spt, axis_ept, ds, de)
377
CFD-GEOM V2014.0 User Manual
Description
Create lines (through the given points) that are parallel to an axis defined by two points. Line length is
implied by "ds" and "de", where ds is the distance from each reference point to the corresponding new
line's start point, and de is the distance from each reference point to the corresponding new line's end
point.
Inputs
Points, axis start point, axis end point, and length of each respective line.
Return Value
Lines parallel to the axis start point and end point.
Errors
If points, the axis start or end point, or the length of the line are not specified properly, an error will be
raised.
Examples
point1 = GGeometry.CreatePoint(1,0,0)
point2 = GGeometry.CreatePoint(1,1,0)
parallel_line =
GGeometry.CreateLinesParallelToPoints([point1,point1,point2],1,1)
Back to Top
GGeometry.CreateLinesPerpToVector
Prototype
CreateLinesPerpToVector(points, dx, dy, dz, ds, de, parallel_to_cplane)
Description
Create lines (through the given points) that are perpendicular to the specified vector. As there can be an
infinite number of such lines for each reference point, the "parallel_to_cplane" option can help further
specify the lines. If parallel_to_cplane is 1 (TRUE), the new lines will run parallel to the current
construction plane. If 0 (FALSE), the new lines will run perpendicular to those lines and the reference axis.
The length of the lines is determined by ds and de. ds is the distance from a reference point to the start
point of the corresponding new line. de is the distance from a reference point to the endpoint of the
corresponding new line. Note that the length of the new lines is in no way affected by (dx,dy,dz) and that
vector need not be normalized prior to input.
Inputs
Points, vector specification (dx, dy, and dz) length to start and end point (ds and de), and whether or not
the line is parallel to the current construction plane (TRUE = 1).
Return Value
Lines parallel to the given vector.
Errors
If points, the vector, the start or end distance are not specified properly, an error will be raised.
Examples
point1 = GGeometry.CreatePoint(1,0,0)
point2 = GGeometry.CreatePoint(1,1,0)
perp_line = GGeometry.CreateLinesPerpToVector([point1,point2],1,0,0,1,1,0)
Back to Top
GGeometry.CreateLinesPerpToPoints
Prototype
CreateLinesPerpToPoints(points, axis_spt, axis_ept, ds, de, parallel_to_cplane)
378
CFD-GEOM Scripting
Description
Create lines (through the given points) that are perpendicular to an axis defined by 2 points. As there can
be an infinite number of such lines for each reference point, the "parallel_to_cplane" option can help
further specify the lines. If parallel_to_cplane is 1 (TRUE), the new lines will run parallel to the current
construction plane. If 0 (FALSE), the new lines will run perpendicular to those lines and to the reference
axis. The length of the lines is determined by ds and de. ds is the distance from a reference point to the
start point of the corresponding new line. de is the distance from a reference point to the endpoint of the
corresponding new line.
Inputs
Points, axis start point, axis end point, and length of each respective line.
Return Value
Lines perpendicular to the axis start point and end point.
Errors
If points, the axis start or end point, or the length of the line are not specified properly, an error will be
raised.
Examples
point1 = GGeometry.CreatePoint(1,0,0)
point2 = GGeometry.CreatePoint(1,1,0)
perp_line = GGeometry.CreateLinesPerpToPoints([point1,point2],1,0,1,1,0)
Back to Top
GGeometry.CreateTangentLineAtParameter
Prototype
GGeometry.CreateTangentLineAtParameter(curve,parameter,ds,de)
Description
Create a line tangent to the input curve at a parameter in the curve's parameter space. This value must be
in the range [0,1]. ds and de describe the distance from the point of tangency to the new line's start and
end points, respectively. Note that "crv" must be a curve entity (and not a line).
Inputs
curve - curve a line will be created tangent to
parameter - parameter space of the curve
ds - distance from each reference point to the start point
de - distance from each reference point to the end point
Return Value
A new line tangent to the input curve
Errors
If any inputs are incorrect, an error will be raised.
Examples
tangent_line = GGeometry.CreateTangentLineAtParameter(curve,0.5,10,10)
Back to Top
GGeometry.CreateTangentLineAtPoint
Prototype
GGeometry.CreateTangentLineAtPoint(curve,point,ds,de)
Description
379
CFD-GEOM V2014.0 User Manual
Create a line tangent to the input curve at a point. If the point does not lie on the curve, then the point of
tangency is taken to be the closest point projection of the point onto the curve. However, the new line
will always pass through the given point rather than the point of tangency. ds and de describe the
distance from the input point to the new line's start and end points, respectively. Note that "curve" must
be a curve entity (and not a line).
Inputs
curve - curve a line will be created tangent to
point - point on the curve through which the tangent line will be created
ds - distance from each reference point to the start point
de - distance from each reference point to the end point
Return Value
A new line tangent to the input curve at the input point
Errors
If any inputs are incorrect, an error will be raised.
Examples
mypoint = GGeometry.CreatePoint(1,1,1)
tangent_line = GGeometry.CreateTangentLineAtPoint(curve,mypoint,10,10)
Back to Top
GGeometry.CreateLineNormalToSurface
Prototype
GGeometry.CreateLineNormalToSurface(surface,point,ds,de)
Description
Create a line normal to a surface (trimmed or untrimmed) and passing through the given point. If the
point lies on the surface, the normal to the surface at that point describes the new line's direction. If not,
the normal is computed at the point on the surface that is closest to the input point. ds and de describe
the distance from the input point to the new line's start and end points, respectively.
Inputs
surface - surface that a line will be created perpendicular to
point - point on the surface through which the tangent line will be created
ds - distance from each reference point to the start point
de - distance from each reference point to the end point
Return Value
A new line tangent to the input curve at the input point
Errors
If any inputs are incorrect, an error will be raised.
Examples
mypoint = GGeometry.CreatePoint(1,1,1)
normal_line = GGeometry.CreateLineNormalToSurface(surface,mypoint,10,10)
Back to Top
GGeometry.ConvertCurvesToLines
Prototype
GGeometry.ConvertCurvesToLines(curves)
380
CFD-GEOM Scripting
Description
Convert the input curves to lines and update any attached geometry/grid systems. Note that any
curvature on any input curves will be lost. This function is mainly intended as a convenient way to convert
reasonably straight curves to lines for input into other routines that require lines, rather than curves, as
input. Note that the input curves are deleted by this routine.
Inputs
curves - a list of curves to be converted to lines
Return Value
New lines
Errors
If any inputs are incorrect, an error will be raised.
Examples
line = GGeometry.ConvertCurvesToLines(mycurve)
Back to Top
GGeometry.Create2PtCircle(cpt, spt)
GGeometry.CreateCpRadCircle(cpts, radius)
GGeometry.Create3PtCircle
Prototype
GGeometry.Create3PtCircle(p1, p2, p3)
Description
Create a circle through 3 non-colinear points.
Inputs
Three points
Return Value
381
CFD-GEOM V2014.0 User Manual
GGeometry.Create2PtCircle
Prototype
GGeometry.Create2PtCircle(cpt, spt)
Description
Create a circle with center point "cpt" and passing through point "spt". The imaginary line between these
two points must be parallel to the current construction plane. The newly created circle will be created in a
plane parallel to the current construction plane.
Inputs
Center point and point at any given radius.
Return Value
A handle to the new circle.
Errors
An error will be raised if two points are not input.
Examples
point1 = GGeometry.CreatePoint(1,0,0)
point2 = GGeometry.CreatePoint(0,1,0)
two_point_circle = GGeometry.Create2PtCircle(point1,point2)
Back to Top
GGeometry.CreateCpRadCircle
Prototype
GGeometry.CreateCpRadCircle(cpts, radius)
Description
Create circles with the given radius and centered on the input points. The new circles will be created in a
plane parallel to the current construction plane. A handle to the new circle(s) is returned.
Inputs
Point and radius value.
Return Value
A handle to the new circle.
Errors
If a point is not specified, or an invalid value is provide for the radius, an error will be raised.
Examples
point1 = GGeometry.CreatePoint(1,0,0)
circle = GGeometry.CreateCpRadCircle(point1,5)
Back to Top
382
CFD-GEOM Scripting
GGeometry.Create3PtArc
Prototype
GGeometry.Create3PtArc(p1, p2, p3)
Description
Create an arc through 3 non-colinear points.
Inputs
Three points
Return Value
A handle to the new arc.
Errors
An error will be raised if three points are not input, or the value for one of the points is invalid.
Examples
point1 = GGeometry.CreatePoint(1,0,0)
point2 = GGeometry.CreatePoint(0,1,0)
point3 = GGeometry.CreatePoint(-1,0,0)
arc = GGeometry.Create3PtArc(point1,point2,point3)
Back to Top
GGeometry.CreateCpRadArc
Prototype
GGeometry.CreateCpRadArc(cpts, radius, start_angle, end_angle)
Description
Create arcs with the given radius, start/end angles, and centered on the input points. Each new arc will be
created in a plane parallel to the current construction plane. Note that the angles are expressed in
degrees. A handle to the new arc(s) is returned.
Inputs
Center point, radius, and start and end angle.
Return Value
A handle to the new arc.
Errors
An error will be raised if the center point, radius, start or end angle are not specified. An error will also be
raised if any of these values are invalid.
Examples
point1 = GGeometry.CreatePoint(0,0,0)
arc = GGeometry.CreateCpRadArc(point1,5,0,90)
Back to Top
GGeometry.CreateEllipse
Prototype
GGeometry.CreateEllipse(cpts, radius1, radius2, start_angle, end_angle)
Description
Create elliptical arcs with the given radii, start/end angles, and centered on the input points. Each new arc
will be created in a plane parallel to the current construction plane. Note that the angles are expressed in
degrees. A handle to the new arc(s) is returned.
Inputs
383
CFD-GEOM V2014.0 User Manual
Center point, two radius values, the start and end angle.
Return Value
A handle to the ellipse.
Errors
An error will be raised if the center point, either radius, or the start and end angle is not specified. An
error will also be raised if any of these values are invalid.
Examples
point1 = GGeometry.CreatePoint(0,0,0)
ellipse = GGeometry.CreateEllipse(point1,1,2,0,90)
Back to Top
GGeometry.CreateParabola
Prototype
GGeometry.CreateParabola(p1, p2, p3)
Description
Create a parabola through 3 non-colinear points.
Inputs
Three points.
Return Value
A handle to the parabola.
Errors
An error will be raised if three points are not specified. An error will also be raised if any of these values
are invalid.
Examples
point1 = GGeometry.CreatePoint(1,0,0)
point2 = GGeometry.CreatePoint(0,1,0)
point3 = GGeometry.CreatePoint(-1,0,0)
parabola = GGeometry.CreateParabola(point1,point2,point3)
Back to Top
GGeometry.CreateInterpolationCurve(points, closed=0)
384
CFD-GEOM Scripting
GGeometry.CreateHelixCurve(point, sx, sy, sz, dx, dy, dz, freq, nturns, reverse)
GGeometry.CreateIsoParametricCurves(srf, u, v)
GGeometry.ReduceCurveControlPoints(curves, tolerance)
GGeometry.MinimizeLinesCurves(lines_and_curves, angle_threshold)
GGeometry.CreateInterpolationCurve
Prototype
GGeometry.CreateInterpolationCurve(points, closed=0)
Description
Interpolate a curve through a list of 2 or more points and return a handle to it. If "closed" is 1 (TRUE),
wrap the curve back around to the first point. By default, this is 0 (FALSE).
Back to Top
GGeometry.CreateBlendCurve
Prototype
GGeometry.CreateBlendCurve(crv1, p1, crv2, p2)
Description
Create a blend curve between two lines/curves. The two points p1 and p2 must be endpoints of crv1 and
crv2, respectively, and indicate at which side of those lines/curves the blend is to occur. A handle to the
new curve is returned.
385
CFD-GEOM V2014.0 User Manual
Back to Top
GGeometry.CreateCircularFilletCurve
Prototype
GGeometry.CreateCircularFilletCurve(line1, p1, line2, p2, radius)
Description
Create a circular fillet curve with the given radius between the two lines. The two points p1 and p2 must
be endpoints of line1 and line2, respectively, and govern the new curve's orientation. A handle to the new
curve is returned.
Back to Top
GGeometry.CreateGeneralFilletCurve
Prototype
GGeometry.CreateGeneralFilletCurve(crv1, p1, param1, crv2, p2, param2)
Description
Create a general fillet curve between two lines/curves. The two points p1 and p2 must be endpoints of
crv1 and crv2, respectively, and govern the new curve's orientation. The new curve is anchored at param1
and param2 within the parameter space of crv1 and crv2, respectively. These values must be in the range
[0,1]. A handle to the new curve is returned.
Back to Top
GGeometry.CreateCurveOnSurfaceBetweenPoints
Prototype
GGeometry.CreateCurveOnSurfaceBetweenPoints(srf, p1, p2, discretization)
Description
Create a curve on a surface between any two points on the surface. "discretization" is the number of
samples used to compute the curve. Higher values will cause the curve to more accurately follow the
surface characteristics. The minimum allowable value is 3. A handle to the new curve is returned.
Back to Top
GGeometry.CreateCurveOnSurfaceBetweenParamAndPoint
Prototype
GGeometry.CreateCurveOnSurfaceBetweenParamAndPoint(srf, u1, v1, p2, discretization)
Description
Create a curve on a surface between any two points on the surface, where the first point is specified as a
u,v parameter in the parameter space of the surface. u1 and v1 must be in the range [0,1].
"discretization" is the number of samples used to compute the curve. Higher values will cause the curve
to more accurately follow the surface characteristics. The minimum allowable value is 3. A handle to the
new curve is returned.
Back to Top
GGeometry.CreateCurveOnSurfaceBetweenPointAndParam
Prototype
386
CFD-GEOM Scripting
GGeometry.CreateCurveOnSurfaceBetweenParams
Prototype
GGeometry.CreateCurveOnSurfaceBetweenParams(srf, u1, v1, u2, v2, discretization)
Description
Create a curve on a surface between any two points on the surface, where both points are specified as u,v
parameters in the parameter space of the surface. The u and v values must be in the range [0,1]
"discretization" is the number of samples used to compute the curve. Higher values will cause the curve
to more accurately follow the surface characteristics. The minimum allowable value is 3. A handle to the
new curve is returned.
Back to Top
GGeometry.CreateOffsetCurves
Prototype
GGeometry.CreateOffsetCurves(crvs, dx, dy, dz, ds)
Description
Create curve(s) that are offset from the given curve(s), where the offset direction is computed via a
vector. "ds" is the offset distance. A handle to the new curve(s) is returned.
Back to Top
GGeometry.CreateOffsetCurvesViaLine
Prototype
GGeometry.CreateOffsetCurvesViaLine(crvs, line, ds)
Description
Create curve(s) that are offset from the given curve(s), where the offset direction is computed via a vector
defined by a line. "ds" is the offset distance. A handle to the new curve(s) is returned.
Back to Top
GGeometry.CreateOffsetCurvesViaPoints
Prototype
GGeometry.CreateOffsetCurvesViaPoints(crvs, spt, ept, ds)
Description
Create curve(s) that are offset from the given curve(s), where the offset direction is computed via a vector
defined by 2 point entities. "ds" is the offset distance. A handle to the new curve(s) is returned.
Back to Top
387
CFD-GEOM V2014.0 User Manual
GGeometry.CreateAverageCurve
Prototype
GGeometry.CreateAverageCurve(crvs, replace, discretization=31)
Description
Create (and optionally replace) 2 or more lines/curves with an approximate average curve. Note that the
input lines/curves must share both endpoints. "replace" should be either 0 (FALSE) or 1 (TRUE). The
discretization parameter (an integer) controls the accuracy of the approximation by influencing the
number of control points used to represent the new curve. The higher the number, the more accurate
(and expensive) is the approximation. Any attached geometry/mesh systems are automatically updated,
and an exception is raised if this update can not be performed without damaging the model. Upon
success, a handle to the new curve is returned.
Back to Top
GGeometry.CreateAverageCurveFromCurveSets
Prototype
GGeometry.CreateAverageCurveFromCurveSets(crvs1, crvs2, reverse, discretization)
Description
Create a curve approximating the average of 2 line/curve sets. Each set must be properly connected, but
the sets need not share endpoints. The "reverse" flag (normally 0) must sometimes be set to 1 (TRUE) to
overcome orientation problems in some cases. The discretization parameter (an integer) controls the
accuracy of the approximation by influencing the number of control points used to represent the new
curve. The higher the number, the more accurate (and expensive) is the approximation. A handle to the
new curve is returned.
Back to Top
GGeometry.CreateHelixCurve
Prototype
GGeometry.CreateHelixCurve(point, sx, sy, sz, dx, dy, dz, pitch, nturns, reverse)
Description
Create a helix curve whose start point is the specified point. The axis about which it coils is defined by a
set of start point coordinates and a direction vector. "pitch" defines the length along the axis required to
make 1 turn. "nturns" defines the number of turns to make around the axis (can be fractional). The
orientation of the helix is defined such that, if looking down the axis in the positive direction, the helix
turns clockwise. Setting "reverse" to 1 (TRUE) will make the curve turn counterclockwise. A handle to the
new curve is returned.
Back to Top
GGeometry.CreateHelixCurveAlongLine
Prototype
GGeometry.CreateHelixCurveAlongLine(point, axis_line, pitch, nturns, reverse)
Description
Create a helix curve whose start point is the specified point. The axis about which it coils is defined by a
line. "pitch" defines the length along the axis required to make 1 turn. "nturns" defines the number of
turns to make around the axis (can be fractional). The orientation of the helix is defined such that, if
388
CFD-GEOM Scripting
looking down the axis from the axis line's start point to its endpoint, the helix turns clockwise. Setting
"reverse" to 1 (TRUE) will make the curve turn counterclockwise. A handle to the new curve is returned.
Back to Top
GGeometry.CreateHelixCurveAlongPoints
Prototype
GGeometry.CreateHelixCurveAlongPoints(point, axis_spt, axis_ept, pitch, nturns, reverse)
Description
Create a helix curve whose start point is the specified point. The axis about which it coils is defined by two
points. "pitch" defines the length along the axis required to make 1 turn. "nturns" defines the number of
turns to make around the axis (can be fractional). The orientation of the helix is defined such that, if
looking down the axis from the start point to the end point, the helix turns clockwise. Setting "reverse" to
1 (TRUE) will make the curve turn counterclockwise.
Back to Top
GGeometry.CreateBezierCurve
Prototype
GGeometry.CreateBezierCurve(spt, ept, cp1, cp2)
Description
Create a Bezier curve with end points "spt" and "ept". The shape of the new curve is determined by the
control points "cp1" and "cp2". A handle to the new curve is returned.
Back to Top
GGeometry.CreateIsoParametricCurves
Prototype
GGeometry.CreateIsoParametricCurves(srf, u, v)
Description
Create isoparametric curves on a surface at the specified parameters in the surface's parameter space. u
and v must be in the range [0,1]. A handle to the new curves is returned.
Back to Top
GGeometry.ReduceCurveControlPoints
Prototype
GGeometry.ReduceCurveControlPoints(curves, tolerance)
Description
Reduce the number of control points on one or more curves based on the input tolerance. Attached
geometry/grid systems will be automatically updated. An exception is raised if the update can not be
performed without damaging the model.
Back to Top
GGeometry.MinimizeLinesCurves
Prototype
389
CFD-GEOM V2014.0 User Manual
GGeometry.MinimizeLinesCurves(lines_and_curves, angle_threshold)
Description
Run a global line/curve filter using the specified tolerance and automatically update attached
geometry/mesh systems.
Back to Top
ReshapeCurve
Prototype
ReshapeCurve(input_curve, points, retain_original=0 )
Description
Reshape a line/curve with a set of source/target points. "points" is a list consisting of pairs of
source/target points. Each source point identifies a location on the curve that is to be moved to the
corresponding target point. If the source point does not lie on the curve, the nearest projection onto the
curve will be used to identify the source location on the curve. When complete, the reshaped curve will
pass through the target point(s).
If "retain_original" is 1 (TRUE), the input curve will be preserved, and a handle to a reshaped copy of the
input curve will be returned. If "retain_original" is 0 (FALSE) or is not specified, the following behaviors
apply:
1) If "input_curve" is a line entity, it will be replaced with the new curve. A handle to the new curve will
be returned. Attached geometry and grid systems will be updated.
2) If "input_curve" is a curve entity, it will be modified in place and attached geometry/grid systems will
be updated.
In both cases, the operation may fail if attached entities can not be updated without damaging the model.
Back to Top
GGeometry.FitSurfaceThroughCurves(crvs)
AdvancedCovering(curves, *basis_surf)
390
CFD-GEOM Scripting
GGeometry.CreateLoftedSurface(*crvsets)
GGeometry.CreateCoonsSurface(*crvsets)
GGeometry.CreateOffsetSurface(srf, dist)
GGeometry.CreateSurfaceFromFace(face, use_edges)
GGeometry.CreateSurfacesFromUntrimmedSurfaces(usrfs)
GGeometry.FitSurfaceThroughCurves
Prototype
GGeometry.FitSurfaceThroughCurves(crvs)
Description
Fit a trimmed surface through the input lines, curves, edges, and/or composite edges. Note that the input
entities must form a single, properly connected, closed loop. A handle to the new surface is returned.
Back to Top
AdvancedCovering
Prototype
AdvancedCovering( curves, *basis_surf )
391
CFD-GEOM V2014.0 User Manual
Description
Cover the input curves with a surface. If the input curves form a suitable topology and can be properly
covered, a trimmed surface will be created and a handle to it will be returned. If the input curves do not
form a suitable topology, they will be covered by a new untrimmed surface, and a handle to this surface
will be returned. If basis_surf is not specified, an arbitrary planar surface will be calculated and deformed
to match the given curves. If basis_surf is an untrimmed surface, a copy of the surface will be deformed to
match the given curves. If basis_surf is a trimmed surface, a copy of its underlying untrimmed surface will
be deformed to match the given curves.
Note: This function exists only for backward compatibility. It is recommended that you use the
AdvancedCovering2 function.
Back to Top
AdvancedCovering2
Prototype
AdvancedCovering2(curves, surface_type, *basis_surf)
Description
Cover the input curves with a surface. If the input curves form a suitable topology and can be properly
covered, a trimmed surface will be created and a handle to it will be returned. If the input curves do not
form a suitable topology, they will be covered by a new untrimmed surface, and a handle to this surface
will be returned.
surface_type can have the following values:
0: The function will attempt to automatically determine the appropriate type of surface with which to
perform a best fit.
1: The function will attempt to calculate and deform a plane to match the input curves.
2: The function will attempt to calculate and deform a cylinder to match the input curves.
3: The function will attempt to calculate and deform a sphere to match the input curves.
4: The function will use the next argument, basis_surf, as the starting surface. If basis_surf is an
untrimmed surface, a copy of the surface will be deformed to match the given curves. If basis_surf is a
trimmed surface, a copy of its underlying untrimmed surface will be deformed to match the given curves.
Back to Top
GGeometry.CreateExtrudedSurfaces
Prototype
GGeometry.CreateExtrudedSurfaces(profile_ents, dx, dy, dz, distance_multiplier, numtimes)
Description
Create surface(s) by extruding profile lines/curves in a direction specified by a vector. Note that the vector
(dx, dy, dz) is not normalized by this routine. Hence, the total extrusion distances in X, Y, and Z are
dx*distance_multiplier, dy*distance_multiplier, and dz*distance_multipler.
"numtimes" is an integer specifying the number of times to perform the extrusion. This value must be at
least 1. A handle to the new surface(s) is returned.
Back to Top
392
CFD-GEOM Scripting
GGeometry.CreateExtrudedSurfacesAlongLines
Prototype
GGeometry.CreateExtrudedSurfacesAlongLines(profile_ents, lines, numtimes)
Description
Create surface(s) by extruding profile lines/curves along a set of one or more lines. The direction and
distance is implied by the lines. Note that the lines must form a non-closed, connected set. Moreover, one
of the line set endpoints must also be an endpoint of at least one profile entity.
"numtimes" is an integer specifying the number of times to perform the extrusion. This value must be at
least 1. A handle to the new surface(s) is returned.
Back to Top
GGeometry.CreateExtrudedSurfacesAlongPoints
Prototype
GGeometry.CreateExtrudedSurfacesAlongPoints(profile_ents, points, numtimes)
Description
Create surface(s) by extruding profile lines/curves along a set of two or more points. The direction and
distance is implied by the points.
"numtimes" is an integer specifying the number of times to perform the extrusion. This value must be at
least 1. A handle to the new surface(s) is returned.
Back to Top
GGeometry.CreateRevolvedSurfaces
Prototype
GGeometry.CreateRevolvedSurfaces(profile_ents, sx, sy, sz, dx, dy, dz, angle, numtimes)
Description
Create surfaces by revolving profile lines/curves about an axis defined by a set of start point coordinates
and a vector. The input angle is assumed to be in degrees. Note that the magnitude of the angle must be
less than or equal to 360 degrees.
"numtimes" is an integer specifying the number of times to perform the revolution. This value must be at
least 1. A handle to the new surface(s) is returned.
Back to Top
GGeometry.CreateRevolvedSurfacesAboutLine
Prototype
GGeometry.CreateRevolvedSurfacesAboutLine(profile_ents, axis_line, angle, numtimes)
Description
Create surfaces by revolving profile lines/curves about an axis defined by a line entity. The input angle is
assumed to be in degrees. Note that the magnitude of the angle must be less than or equal to 360
degrees.
393
CFD-GEOM V2014.0 User Manual
"numtimes" is an integer specifying the number of times to perform the revolution. This value must be at
least 1. A handle to the new surface(s) is returned.
Back to Top
GGeometry.CreateRevolvedSurfacesAboutPoints
Prototype
GGeometry.CreateRevolvedSurfacesAboutPoints(profile_ents, axis_spt, axis_ept, angle, numtimes)
Description
Create surfaces by revolving profile lines/curves about an axis defined by 2 point entities. The input angle
is assumed to be in degrees. Note that the magnitude of the angle must be less than or equal to 360
degrees.
"numtimes" is an integer specifying the number of times to perform the revolution. This value must be at
least 1. A handle to the new surface(s) is returned.
Back to Top
GGeometry.CreateRevolvedSurfacesAbout3Points
Prototype
GGeometry.CreateRevolvedSurfacesAbout3Points(profile_ents, cpt, spt, ept, numtimes)
Description
Create surfaces by revolving profile lines/curves about an axis defined by 3 point entities. cpt represents a
point on the rotation axis. The axis direction is defined by the normal to the plane containing cpt, spt, and
ept. The angle is implied by the angle between the vectors cpt->spt and cpt->ept. The 3 points must not
be colinear.
"numtimes" is an integer specifying the number of times to perform the revolution. This value must be at
least 1. A handle to the new surface(s) is returned.
Back to Top
GGeometry.CreateRevolvedSurfacesAboutPointAndVector
Prototype
GGeometry.CreateRevolvedSurfacesAboutPointAndVector(profile_ents, axis_spt, dx, dy, dz, angle,
numtimes)
Description
Create surfaces by revolving profile lines/curves about an axis defined by a point entity and a vector. The
input angle is assumed to be in degrees. Note that the magnitude of the angle must be less than or equal
to 360 degrees.
"numtimes" is an integer specifying the number of times to perform the revolution. This value must be at
least 1. A handle to the new surface(s) is returned.
Back to Top
394
CFD-GEOM Scripting
GGeometry.CreateSweptSurfaces
Prototype
GGeometry.CreateSweptSurfaces(profile_ents, path_crvs, use_fixed_orientation, reverse, scale,
numsteps)
Description
Create surfaces by sweeping profile lines/curves along a set of path curves and return a handle to those
surfaces. The meanings of the remaining parameters are as follows:
use_fixed_orientation: if 1 (TRUE), maintain the original profile orientation throughout the sweep (i.e.
each surface should be created by a simple translation of the original profile). If 0 (FALSE), the profile is re-
oriented along the sweep path to be normal to the sweep path.
reverse: if 1 (TRUE), reverse the sweep direction. Otherwise this parameter should be 0 (FALSE).
scale: the linear scaling to be applied to the geometry along the sweep path. Ordinarily, this value will be
1.
numsteps: the number of sampling points to use along the sweep path. Larger values will tend to better
approximate the geometric variations along the sweep path, but will increase the expense of the
computation. The minimum value is 5.
Back to Top
GGeometry.CreateSweptSurfacesWithTwistVector
Prototype
GGeometry.CreateSweptSurfacesWithTwistVector(profile_ents, path_crvs, use_fixed_orientation, dx, dy,
dz, reverse, scale, numsteps)
Description
Create surfaces by sweeping profile lines/curves along a set of path curves and return a handle to those
surfaces. This function is useful for controlling the nature of the sweep when the sweep path is non-
planar. The vector (dx,dy,dz) should be specified as the one most "normal" to the sweep path. For
example, the dz vector should be specified for a path which lies entirely in the XY plane. For a helical path,
this vector should be the axis of the helix. The meanings of the remaining parameters are as follows:
use_fixed_orientation: if 1 (TRUE), maintain the original profile orientation throughout the sweep (i.e.
each surface should be created by a simple translation of the original profile). If 0 (FALSE), the profile is re-
oriented along the sweep path to be normal to the sweep path.
reverse: if 1 (TRUE), reverse the sweep direction. Otherwise this parameter should be 0 (FALSE).
scale: the linear scaling to be applied to the geometry along the sweep path. Ordinarily, this value will be
1.
numsteps: the number of sampling points to use along the sweep path. Larger values will tend to better
approximate the geometric variations along the sweep path, but will increase the expense of the
computation. The minimum value is 5.
Back to Top
GGeometry.CreateLoftedSurface
Prototype
GGeometry.CreateLoftedSurface(*crvsets)
Description
395
CFD-GEOM V2014.0 User Manual
Create a lofted (i.e. ruled) surface through 2 or more line/curve sets. A handle to the new surface is
returned.
Back to Top
GGeometry.CreateCoonsSurface
Prototype
GGeometry.CreateCoonsSurface(*crvsets)
Description
Create a Coons surface through 2, 3, or 4 line/curve/edge sets. Each set must be properly connected.
Collectively, the sets must form a closed set. A handle to the new surface is returned.
Back to Top
GGeometry.CreateOffsetSurface
Prototype
GGeometry.CreateOffsetSurface(srf, dist)
Description
Create a surface offset from the input surface by the given distance. The offset "direction" is governed by
the orientation of the input surface. Hence, you can specify either a positive or negative distance to
control which side of the input surface the new surface is to be offset. A handle to the new surface is
returned.
Back to Top
GGeometry.CreateSurfaceFromFace
Prototype
GGeometry.CreateSurfaceFromFace(face, use_edges)
Description
Create a trimmed surface from a face. The new surface is interpolated through the face's grid points. If
use_edges is 1 (true), the surface boundaries (i.e. trimming loops) are constructed from the bounding
edges of the face. If 0 (false), the surface boundaries are constructed from the edges' underlying
lines/curves. A handle to the new surface is returned.
Back to Top
GGeometry.ProjectSurfacesOntoSurfaces
Prototype
GGeometry.ProjectSurfacesOntoSurfaces(surfaces, target_surfaces, dx, dy, dz, discretization,
project_edges, fill_gaps)
Description
Create new surfaces by projecting copies of a set of surfaces onto a set of target surfaces and return a
handle to the new surfaces. The direction of projection is specified by the vector (dx, dy, dz). The
meanings of the remaining parameters are as follows:
discretization: defines how well the projected surfaces will match the surfaces onto which they are
projected. Larger numbers will match the surface characteristics better but with longer computation
times; to remove small features, use smaller values. The minimum value must be greater than or equal to
5.
396
CFD-GEOM Scripting
project_edges: If 0 (FALSE), the edges of the surfaces will not be projected and will remain coincident with
the original edges bounding the surface. Set this option to 1 (TRUE) when the surface bounding edges do
not lie on the surfaces onto which the surfaces are being projected.
fill_gaps: If 1 (TRUE), fill those areas which do not project (because of gaps in the collection of target
surfaces). If 0 (FALSE), then the points will remain on the original surface.
Back to Top
GGeometry.ProjectSurfacesOntoSurfacesAlongLine
Prototype
GGeometry.ProjectSurfacesOntoSurfacesAlongLine(surfaces, target_surfaces, line, discretization,
project_edges, fill_gaps)
Description
Create new surfaces by projecting copies of a set of surfaces onto a set of target surfaces and return a
handle to the new surfaces. The direction of projection is defined by a line entity. The meanings of the
remaining parameters are as follows:
discretization: defines how well the projected surfaces will match the surfaces onto which they are
projected. Larger numbers will match the surface characteristics better but with longer computation
times; to remove small features, use smaller values. The minimum value must be greater than or equal to
5.
project_edges: If 0 (FALSE), the edges of the surfaces will not be projected and will remain coincident with
the original edges bounding the surface. Set this option to 1 (TRUE) when the surface bounding edges do
not lie on the surfaces onto which the surfaces are being projected.
fill_gaps: If 1 (TRUE), fill those areas which do not project (because of gaps in the collection of target
surfaces). If 0 (FALSE), then the points will remain on the original surface.
Back to Top
GGeometry.ProjectSurfacesOntoSurfacesAlongPoints
Prototype
GGeometry.ProjectSurfacesOntoSurfacesAlongPoints(surfaces, target_surfaces, spt, ept, discretization,
project_edges, fill_gaps)
Description
Create new surfaces by projecting copies of a set of surfaces onto a set of target surfaces and return a
handle to the new surfaces. The direction of projection is defined by 2 point entities. The meanings of the
remaining parameters are as follows:
discretization: defines how well the projected surfaces will match the surfaces onto which they are
projected. Larger numbers will match the surface characteristics better but with longer computation
times; to remove small features, use smaller values. The minimum value must be greater than or equal to
5.
project_edges: If 0 (FALSE), the edges of the surfaces will not be projected and will remain coincident with
the original edges bounding the surface. Set this option to 1 (TRUE) when the surface bounding edges do
not lie on the surfaces onto which the surfaces are being projected.
fill_gaps: If 1 (TRUE), fill those areas which do not project (because of gaps in the collection of target
surfaces). If 0 (FALSE), then the points will remain on the original surface.
Back to Top
397
CFD-GEOM V2014.0 User Manual
GGeometry.ProjectSurfacesOntoSurfacesAlongNormals
Prototype
GGeometry.ProjectSurfacesOntoSurfacesAlongNormals(surfaces, target_surfaces, discretization,
project_edges, fill_gaps)
Description
Create new surfaces by projecting copies of a set of surfaces onto a set of target surfaces and return a
handle to the new surfaces. The direction of projection is defined locally by the local normals of the
source surfaces. The meanings of the remaining parameters are as follows:
discretization: defines how well the projected surfaces will match the surfaces onto which they are
projected. Larger numbers will match the surface characteristics better but with longer computation
times; to
remove small features, use smaller values. The minimum value must be greater than or equal to 5.
project_edges: If 0 (FALSE), the edges of the surfaces will not be projected and will remain coincident with
the original edges bounding the surface. Set this option to 1 (TRUE) when the surface bounding edges do
not lie on the surfaces onto which the surfaces are being projected.
fill_gaps: If 1 (TRUE), fill those areas which do not project (because of gaps in the collection of target
surfaces). If 0 (FALSE), then the points will remain on the original surface.
Back to Top
GGeometry.ProjectSurfacesOntoSurfacesViaClosestPoint
Prototype
GGeometry.ProjectSurfacesOntoSurfacesViaClosestPoint(surfaces, target_surfaces, discretization,
project_edges)
Description
Create new surfaces by projecting copies of a set of surfaces onto a set of target surfaces and return a
handle to the new surfaces. The direction of projection is defined locally by closest point projection. The
meanings of the remaining parameters are as follows:
discretization: defines how well the projected surfaces will match the surfaces onto which they are
projected. Larger numbers will match the surface characteristics better but with longer computation
times; to remove small features, use smaller values. The minimum value must be greater than or equal to
5.
project_edges: If 0 (FALSE), the edges of the surfaces will not be projected and will remain coincident with
the original edges bounding the surface. Set this option to 1 (TRUE) when the surface bounding edges do
not lie on the surfaces onto which the surfaces are being projected.
Back to Top
GGeometry.CreateSurfacesFromUntrimmedSurfaces
Prototype
GGeometry.CreateSurfacesFromUntrimmedSurfaces(usrfs)
Description
Construct trimmed surfaces from 1 or more untrimmed surfaces. Each new surface will be bounded by
curves extracted from the mathematical boundaries of the corresponding untrimmed surface. A handle to
the new surface(s) is returned.
Back to Top
398
CFD-GEOM Scripting
GGeometry.UntrimSurfaces(srfs)
GGeometry.CutHolesInSurface(srf, *entsets)
GGeometry.RemoveHolesFromSurface(srf, ents)
GGeometry.Make2Surfaces(srf, *entsets)
GGeometry.FillHolesInSurface(srf, ents)
GGeometry.InvertSurface(srf)
GGeometry.ModifySurfaceBoundary(set1, set2)
GGeometry.ReduceSurfaceControlPoints(surfaces, tolerance)
GGeometry.UntrimSurfaces
Prototype
GGeometry.UntrimSurfaces(srfs)
Description
Untrim the specified surfaces. To untrim a surface means to remove its bounding curves, reducing it to its
raw mathematical definition (in CFD-GEOM, a spline). The original trimmed surfaces will be deleted, and
new untrimmed surface entities are returned.
Please note that a trimmed surface used in the construction of other entities (such as shells and semi-
structured domains) or to which structured faces have been projected can not be untrimmed.
Back to Top
GGeometry.TrimSurface
Prototype
GGeometry.TrimSurface(srf, ents, keep_original)
Description
399
CFD-GEOM V2014.0 User Manual
Define the outer boundary of a surface using the specified entities (lines, curves, edges, composite edges).
The entities must form a closed, properly connected set that lies on the surface. The behavior is defined
as follows:
1) If srf is a trimmed surface, its outer boundary is redefined. If keep_original is 1 (true), a copy of the
surface is created and retrimmed, leaving the original surface unaltered.
2) If srf is an untrimmed surface, it gets trimmed and a new trimmed surface is returned. If keep original is
1 (true), the new trimmed surface is built on a copy of the original untrimmed surface.
This function will always return a surface upon success. If the operation results in the creation of a new
trimmed surface, that surface will be returned. If you're simply modifying an existing trimmed surface,
that surface will be returned. However, if that surface becomes identical to an existing trimmed surface,
the latter will be returned.
Note that this operation can not be performed on surfaces from which shells, unstructured domains,
and/or semi-structured domains have been constructed. This restriction is necessary to prevent any
domains derived from the input surface from becoming non-manifold.
Back to Top
GGeometry.TrimSurfaceAdvanced
Prototype
GGeometry.TrimSurfaceAdvanced(srf, ents, keep_original)
Description
(Re)define all the boundaries of a surface using the specified entities (lines, curves, edges, composite
edges). The entities must lie on the surface and form a valid topology. The behavior is defined as follows:
1) If srf is a trimmed surface, its boundaries are redefined. If keep_original is 1 (true), a copy of the surface
is created and retrimmed, leaving the original surface unaltered.
2) If srf is an untrimmed surface, it gets trimmed and a new trimmed surface is returned. If keep original is
1 (true), the new trimmed surface is built on a copy of the original untrimmed surface.
If redefining the boundaries of an existing trimmed surface, a few additional restrictions apply:
3) This operation is never allowed on a surface that belongs to a semi-structured domain. If the surface
belongs to a shell, the operation may be permissible as long as it doesn't open the shell. See also note 4
below.
4) If the surface is part of a shell, if there any baffles hanging off any of the surface's current bounding
curves, and if any of those curves with attached baffles are not part of the input curves, the operation is
not permitted. To allow this would break the connection between the baffle and the surface, which would
eventually lead to tetrahedral meshing problems in the domain which uses the baffle.
This function will always return a surface upon success. If the operation results in the creation of a new
trimmed surface, that surface will be returned. If you're simply modifying an existing trimmed surface,
that surface will be returned. However, if that surface becomes identical to an existing trimmed surface,
the latter will be returned.
Back to Top
GGeometry.CutHolesInSurface
Prototype
GGeometry.CutHolesInSurface(srf, *entsets)
Description
400
CFD-GEOM Scripting
Cut holes in a trimmed surface with 1 or more closed, properly connected sets of lines, curves, edges,
and/or composite edges.
This function will always return a surface upon success. Ordinarily, it will return a new handle to the input
surface. However, if the operation results in a surface that is identical to an existing surface, the input
surface will be deleted and replaced (in the definitions of all descendants) with the pre-existing surface;
and a new handle to that surface will be returned.
Note that this operation can not be performed on surfaces from which shells, unstructured domains,
and/or semi-structured domains have been constructed. This restriction is necessary to prevent any
domains derived from the input surface from becoming non-manifold.
Back to Top
GGeometry.RemoveHolesFromSurface
Prototype
GGeometry.RemoveHolesFromSurface(srf, ents)
Description
Remove holes from the specified surface. "ents" must contain at least one entity (line, curve, edge, or
composite edge) in each hole to be removed.
This function will always return a surface upon success. Ordinarily, it will return a new handle to the input
surface. However, if the operation results in a surface that is identical to an existing surface, the input
surface will be deleted and replaced (in the definitions of all descendants) with the pre-existing surface;
and a new handle to that surface will be returned.
Note that this operation can not be performed on surfaces from which shells, unstructured domains,
and/or semi-structured domains have been constructed. This restriction is necessary to prevent any
domains derived from the input surface from becoming non-manifold.
Back to Top
GGeometry.Make2Surfaces
Prototype
GGeometry.Make2Surfaces(srf, *entsets)
Description
Simultaneously cut holes in a surface and fill those holes with new trimmed surfaces. Return the newly
created surface(s). Despite its name, this function can obviously be used to create more than 2 surfaces.
This function will always return at least 2 surfaces. The first will ordinarily be a new handle to the input
surface (in which holes have been cut). However, if the hole cutting causes the input surface to be
identical to an existing surface, the input surface will be deleted and replaced (in the definitions of all
descendants) with the pre-existing surface; and a new handle to that surface will be returned. The
remaining returned surface(s) will be the surface(s) created in the hole(s) that are cut in the input surface.
Ordinarily, these will be handles to newly created surface(s). However, if a surface created in a hole would
be identical to an existing surface, the new surface will not be created. Instead a new handle to the
existing surface will be returned.
Note that, unlike trimming, hole cutting, etc., this operation is permitted on surfaces from which shells
and unstructured domains have been derived. However, it is not permitted on surfaces from which semi-
structured domains have been derived.
Back to Top
401
CFD-GEOM V2014.0 User Manual
GGeometry.FillHolesInSurface
Prototype
GGeometry.FillHolesInSurface(srf, ents)
Description
Fill holes in the specified surface. "ents" must contain at least one entity (line, curve, edge, or composite
edge) bounding each hole to be filled. Each hole is filled with a new trimmed surface. This function returns
all newly created trimmed surfaces.
Note that, unlike trimming, hole cutting, etc., this operation is permitted on surfaces from which shells,
unstructured domains, and/or semi-structured domains have been derived. This is permitted because
hole filling does not modify the input surface.
Back to Top
GGeometry.InvertSurface
Prototype
GGeometry.InvertSurface(srf)
Description
Given a surface containing one or more holes, invert the surface. This simultaneously discards the surface,
fills the holes with new surfaces, and returns those new surfaces.
Note that this operation can not be performed on surfaces from which shells, unstructured domains,
and/or semi-structured domains have been constructed. This restriction is necessary to prevent any
domains derived from the input surface from becoming non-manifold.
Back to Top
GGeometry.ModifySurfaceBoundary
Prototype
GGeometry.ModifySurfaceBoundary(set1, set2)
Description
Replace a set of entities with another set of entities in the surface boundaries defined by the first set. This
function is intended for usage in the following circumstance:
Suppose that you've constructed an unstructured domain from a set of surfaces, all of which are bounded
by lines and curves. Suppose also that you've constructed an edge from 2 of the lines and curves and wish
to use that edge during mesh generation. In order to do this, you need to replace the 2 lines/curves with
the edge in the definitions of the loops (i.e. surface boundaries) derived from them. This function allows
you to do this. In this case, set1 would consist of the lines/curves and set2 would contain the edge.
Following a similar approach, you could also replace the edge with its underlying lines/curves.
Note that advanced users may find other uses for this function. In any case, the endpoints of set2 must
always be identical to the endpoints of set1.
Back to Top
GGeometry.ReduceSurfaceControlPoints
Prototype
GGeometry.ReduceSurfaceControlPoints(surfaces, tolerance)
402
CFD-GEOM Scripting
Description
Reduce (if possible) the number of control points (and knots) in 1 or more surfaces using the given
tolerance.
Back to Top
ReshapeSurface
Prototype
ReshapeSurface( surface, points)
Description
Reshape a surface with a set of source/target points.
"points" is a list consisting of pairs of source/target points. Each source point identifies a location on the
surface that is to be moved to the corresponding target point. If the source point does not lie on the
surface, the nearest projection onto the surface will be used to identify the source location on the
surface. When complete, the modified surface will pass through the target point(s). Any attached
geometry will be updated. However, if this can not be accomplished without damaging the model, the
surface will not be reshaped.
Back to Top
GGeometry.FilterCurvesGlobally(tolerance)
GGeometry.SewSurface(surfaces, gap_tolerance)
GGeometry.StitchSurfaces(srf1,srf2)
GGeometry.FilterPointsGlobally
Prototype
GGeometry.FilterPointsGlobally(precision)
Description
Run a global point filter using the specified precision.
Inputs
Precision value.
Return Value
None
Errors
An error will be raised if the proper inputs are not provided.
Examples
GGeometry.FilterPointsGlobally(precision)
Back to Top
403
CFD-GEOM V2014.0 User Manual
GGeometry.FilterCurvesGlobally
Prototype
GGeometry.FilterCurvesGlobally(tolerance)
Description
Run a global line/curve filter using the specified tolerance and automatically update attached
geometry/mesh systems.
Back to Top
GGeometry.SewSurfaces
Prototype
GGeometry.SewSurfaces(surfaces, gap_tolerance)
Description
Sew surfaces with a specified tolerance.
The sewing algorithm identifies groups of two or more curves that share endpoints and that have
attached surfaces. Those curves in a group that lie within the specified tolerance of each other are
replaced with an average curve, and the attached surfaces are recomputed. A handle to any newly
created curves is returned by this function.
"surfaces" is a list of the surfaces to be considered for sewing. If this list is empty, all trimmed surfaces in
the model are considered.
Note on undo/redo:
For each gap that is closed by this function, an "undo entry" is generated. For example, if this function
closes five gaps, and you wish to completely undo the action, you will need to perform five undo
operations.
Back to Top
GGeometry.StitchSurfaces
Prototype
GGeometry.StitchSurfaces(srf1,srf2)
Description
Stitch the two surfaces to remove overlaps and boundary mismatches.
Back to Top
404
CFD-GEOM Scripting
GGeometry.CreateDomain(shells)
AddBafflesToDomain(domain, srfs)
RemoveBafflesFromDomain(domain, srfs)
GGeometry.InvertModel(srfs, keep_original_domains)
GGeometry.SplitModelDomainsAtConstructionPlane(keep_inside_box, keep_outside_box)
GGeometry.UniteDomains(blank_domain, tool_domains)
GGeometry.SubtractDomains(blank_domain, tool_domains)
GGeometry.IntersectDomains(blank_domain, tool_domains)
405
CFD-GEOM V2014.0 User Manual
GGeometry.InterfaceDomains(domains)
CreateCylinderFromTwoPoint(major_radius, minor_radius, top_radius, x1, y1, z1, x2, y2, z2, solid)
GGeometry.CreateExtrudedWireFrame
Prototype
GGeometry.CreateExtrudedWireFrame(profile_ents, dx, dy, dz, distance_multiplier, numtimes)
Description
Create lines/curves by extruding profile points/lines/curves in a direction specified by a vector. Note that
the vector (dx, dy, dz) is not normalized by this routine. Hence, the total extrusion distances in X, Y, and Z
are dx*distance_multiplier, dy*distance_multiplier, and dz*distance_multipler.
"numtimes" is an integer specifying the number of times to perform the extrusion. This value must be at
least 1. A handle to the newly created entities is returned.
Back to Top
GGeometry.CreateExtrudedWireFrameAlongLines
Prototype
GGeometry.CreateExtrudedWireFrameAlongLines(profile_ents, lines, numtimes)
Description
Create lines/curves by extruding profile points/lines/curves along a set of one or more lines. The direction
and distance is implied by the lines. Note that the lines must form a non-closed, connected set. Moreover,
one of the line set endpoints must also be an endpoint of at least one profile line/curve or must be one of
the profile points (if any).
"numtimes" is an integer specifying the number of times to perform the extrusion. This value must be at
least 1. A handle to the newly created entities is returned.
Back to Top
GGeometry.CreateExtrudedWireFrameAlongPoints
Prototype
GGeometry.CreateExtrudedWireFrameAlongPoints(profile_ents, points, numtimes)
Description
Create lines/curves by extruding profile points/lines/curves along a set of two or more points. The
direction and distance is implied by the points.
"numtimes" is an integer specifying the number of times to perform the extrusion. This value must be at
least 1. A handle to the newly created entities is returned.
Back to Top
406
CFD-GEOM Scripting
GGeometry.CreateRevolvedWireFrame
Prototype
GGeometry.CreateRevolvedWireFrame(profile_ents, sx, sy, sz, dx, dy, dz, angle, numtimes)
Description
Create lines/curves by revolving profile points/lines/curves about an axis defined by a set of start point
coordinates and a vector. The input angle is assumed to be in degrees.
"numtimes" is an integer specifying the number of times to perform the revolution. This value must be at
least 1. A handle to the newly created entities is returned.
Back to Top
GGeometry.CreateRevolvedWireFrameAboutLine
Prototype
GGeometry.CreateRevolvedWireFrameAboutLine(profile_ents, axis_line, angle, numtimes)
Description
Create lines/curves by revolving profile points/lines/curves about an axis defined by a line entity. The
input angle is assumed to be in degrees.
"numtimes" is an integer specifying the number of times to perform the revolution. This value must be at
least 1. A handle to the newly created entities is returned.
Back to Top
GGeometry.CreateRevolvedWireFrameAboutPoints
Prototype
GGeometry.CreateRevolvedWireFrameAboutPoints(profile_ents, axis_spt, axis_ept, angle, numtimes)
Description
Create lines/curves by revolving profile points/lines/curves about an axis defined by 2 point entities. The
input angle is assumed to be in degrees.
"numtimes" is an integer specifying the number of times to perform the revolution. This value must be at
least 1. A handle to the newly created entities is returned.
Back to Top
GGeometry.CreateRevolvedWireFrameAbout3Points
Prototype
GGeometry.CreateRevolvedWireFrameAbout3Points(profile_ents, cpt, spt, ept, numtimes)
Description
Create lines/curves by revolving profile points/lines/curves about an axis defined by 3 point entities. cpt
represents a point on the rotation axis. The axis direction is defined by the normal to the plane containing
cpt, spt, and ept. The angle is implied by the angle between the vectors cpt->spt and cpt->ept. cpt, spt,
and ept must not be colinear.
407
CFD-GEOM V2014.0 User Manual
"numtimes" is an integer specifying the number of times to perform the revolution. This value must be at
least 1. A handle to the newly created entities is returned.
Back to Top
GGeometry.CreateRevolvedWireFrameAboutPointAndVector
Prototype
GGeometry.CreateRevolvedWireFrameAboutPointAndVector(profile_ents, axis_spt, dx, dy, dz, angle,
numtimes)
Description
Create lines/curves by revolving profile points/lines/curves about an axis defined by a point entity and a
vector. The input angle is assumed to be in degrees.
"numtimes" is an integer specifying the number of times to perform the revolution. This value must be at
least 1. A handle to the newly created entities is returned.
Back to Top
GGeometry.CreateExtrudedSolids
Prototype
GGeometry.CreateExtrudedSolids(profile_srfs, dx, dy, dz, distance_multiplier, numtimes)
Description
Create surfaces by extruding profile surfaces in a direction specified by a vector. Note that the vector (dx,
dy, dz) is not normalized by this routine. Hence, the total extrusion distances in X, Y, and Z are
dx*distance_multiplier, dy*distance_multiplier, and dz*distance_multipler.
"numtimes" is an integer specifying the number of times to perform the extrusion. This value must be at
least 1. A handle to the newly created entities is returned.
Back to Top
GGeometry.CreateExtrudedSolidsAlongLines
Prototype
GGeometry.CreateExtrudedSolidsAlongLines(profile_srfs, lines, numtimes)
Description
Create surfaces by extruding profile surfaces along a set of one or more lines. The direction and distance
is implied by the lines. Note that the lines must form a non-closed, connected set. Moreover, one of the
line set endpoints must also be an endpoint of at least one profile surface's bounding curves.
"numtimes" is an integer specifying the number of times to perform the extrusion. This value must be at
least 1.
Back to Top
GGeometry.CreateExtrudedSolidsAlongPoints
Prototype
GGeometry.CreateExtrudedSolidsAlongPoints(profile_srfs, points, numtimes)
408
CFD-GEOM Scripting
Description
Create surfaces by extruding profile surfaces along a set of two or more points. The direction and distance
is implied by the points.
"numtimes" is an integer specifying the number of times to perform the extrusion. This value must be at
least 1.
Back to Top
GGeometry.CreateRevolvedSolids
Prototype
GGeometry.CreateRevolvedSolids(profile_srfs, sx, sy, sz, dx, dy, dz, angle, numtimes)
Description
Create surfaces by revolving profile surfaces about an axis defined by a set of start point coordinates and
a vector. The input angle is assumed to be in degrees. Note that the magnitude of the angle must be less
than 360 deg. Creating a surface via a full 360 deg revolution is not currently supported. You should
instead perform 2 180 deg revolutions, or something similar.
"numtimes" is an integer specifying the number of times to perform the revolution. This value must be at
least 1.
Back to Top
GGeometry.CreateRevolvedSolidsAboutLine
Prototype
GGeometry.CreateRevolvedSolidsAboutLine(profile_srfs, line, angle, numtimes)
Description
Create surfaces by revolving profile surfaces about an axis defined by a line entity. The input angle is
assumed to be in degrees. Note that the magnitude of the angle must be less than 360 deg. Creating a
surface via a full 360 deg revolution is not currently supported. You should instead perform 2 180 deg
revolutions, or something similar.
"numtimes" is an integer specifying the number of times to perform the revolution. This value must be at
least 1.
Back to Top
GGeometry.CreateRevolvedSolidsAboutPoints
Prototype
GGeometry.CreateRevolvedSolidsAboutPoints(profile_srfs, spt, ept, angle, numtimes)
Description
Create surfaces by revolving profile surfaces about an axis defined by 2 point entities. The input angle is
assumed to be in degrees. Note that the magnitude of the angle must be less than 360 deg. Creating a
surface via a full 360 deg revolution is not currently supported. You should instead perform 2 180 deg
revolutions, or something similar.
409
CFD-GEOM V2014.0 User Manual
"numtimes" is an integer specifying the number of times to perform the revolution. This value must be at
least 1.
Back to Top
GGeometry.CreateRevolvedSolidsAbout3Points
Prototype
GGeometry.CreateRevolvedSolidsAbout3Points(profile_srfs, cpt, spt, ept, numtimes)
Description
CCreate surfaces by revolving profile surfaces about an axis defined by 3 point entities. cpt represents a
point on the rotation axis. The axis direction is defined by the normal to the plane containing cpt, spt, and
ept. The angle is implied by the angle between the vectors cpt->spt and cpt->ept. cpt, spt, and ept must
not be colinear.
"numtimes" is an integer specifying the number of times to perform the revolution. This value must be at
least 1.
Back to Top
GGeometry.CreateRevolvedSolidsAboutPointAndVector
Prototype
GGeometry.CreateRevolvedSolidsAboutPointAndVector(profile_srfs, spt, dx, dy, dz, angle, numtimes)
Description
Create surfaces by revolving profile surfaces about an axis defined by a point entity and a vector. The
input angle is assumed to be in degrees. Note that the magnitude of the angle must be less than 360 deg.
Creating a surface via a full 360 deg revolution is not currently supported. You should instead perform 2
180 deg revolutions, or something similar.
"numtimes" is an integer specifying the number of times to perform the revolution. This value must be at
least 1.
Back to Top
GGeometry.CreateAllDomains
Prototype
GGeometry.CreateAllDomains(surfaces and faces)
Description
Create as many unstructured domains (and underlying shells) as possible from the input collection of
trimmed surfaces, faces, and discrete surfaces. If the input collection is empty, CFD-GEOM will attempt to
use all trimmed surfaces, faces, and discrete surfaces in the current model. Note that no shell may consist
of both discrete and non-discrete entities. Hence, CFD-GEOM will not attempt to create mixed shells/
domains. Note that this function may fail if the input contains overlapping surfaces or gaps between
surfaces. Note also that this function is not capable of identifying Thin Wall surfaces, nor is it capable of
splitting discrete surfaces to satisfy topological constraints. If you suspect that your model may contain
ThinWall surfaces, or if you suspect that your model has discrete surfaces that may require splitting, you
should use CreateAllDomains2, instead. For example, if you have a single discrete surface (imported from
an STL file) that encloses multiple volumes, you should use CreateAllDomains2.
410
CFD-GEOM Scripting
GGeometry.CreateAllDomains2
Prototype
GGeometry.CreateAllDomains2(surfaces and faces)
Description
Create as many unstructured domains (and underlying shells) as possible from the input collection of
trimmed surfaces, faces, and discrete surfaces. If the input collection is empty, CFD-GEOM will attempt to
use all trimmed surfaces, faces, and discrete surfaces in the current model. Note that no shell may consist
of both discrete and non-discrete entities. Hence, CFD-GEOM will not attempt to create mixed shells/
domains. Note that this function may fail if the input contains overlapping surfaces or gaps between
surfaces. This function differs from CreateAllDomains in several key respects:
1. It is capable of identifying embedded surfaces and tagging them as Thin Wall surfaces.
2. Where necessary, it will split any discrete surfaces to satisfy topological constraints. This can be useful if
your model consists of a single discrete surface (e.g. imported from STL) that bounds more than 1 volume.
3. Though not required, it is highly recommended that you mesh all trimmed surfaces with the desired
meshing parameters before calling this function. The success of this function depends, to a certain extent,
on the quality of the surface meshes.
This option is also available through GMesh.CreateAllDomains2.
Back to Top
GGeometry.CreateShell
Prototype
GGeometry.CreateShell(surfaces and faces)
Description
Create shells (formerly known as closed surface sets) from the input collection of surfaces and/or faces.
Note that if the input entities logically form more than one shell, this routine will return more than one
shell (the same behavior as in the GEOM GUI). Note that this routine can also handle discrete surfaces.
However, if the input contains any discrete surfaces, it must contain only discrete surfaces. Mixing with
trimmed surfaces and faces is not currently supported.
GGeometry.CreateDomain
Prototype
GGeometry.CreateDomain(shells)
Description
Create an unstructured domain from the input shells.
411
CFD-GEOM V2014.0 User Manual
GGeometry.AddBafflesToDomain
Prototype
GGeometry.AddBafflesToDomain(domain, srfs)
Description
Add baffle surfaces to the specified domain. Note that this routine is currently used for testing only. Some
capabilities, such as the ability to output baffles to DTF is not currently supported. This will be remedied in
a future release.
GGeometry.RemoveBafflesFromDomain
Prototype
GGeometry.RemoveBafflesFromDomain(domain, srfs)
Description
Remove baffles that were added via AddBafflesToDomain() from the specified domain.
GGeometry.InvertModel
Prototype
GGeometry.InvertModel(srfs, keep_original_domains)
Description
Invert the current model, using the specified capping surfaces. Model inversion is the derivation of the
geometry/topology of an internal flow field in a solid part. It is often convenient to think of it as the
derivation of an "air solid" from a solid. Suppose, for example, that you have a CAD model of a pump. To
perform a CFD analysis on the pump, you will need to model and mesh the internal volume through which
fluid passes (i.e. the "air solid") rather than the volume occupied by the material from which the pump is
constructed (i.e. the solid). In some applications, such as fluid-structure interaction, you may even need to
model and mesh both the solid and the "air solid". You may optionally preserve the original solids, in
which case CFD-GEOM will build clean interfaces between those solids and the new "air solids".
In order to invert a model in CFD-GEOM, the following conditions must be satisfied:
1. The portion to be inverted must consist only of unstructured domain(s). Inversion of solid(s) consisting of
structured and/or semi-structured domains is not supported. In addition, the unstructured domains
should consist only of trimmed surface entities (i.e. They should not be built from any Face or discrete
surface entities), and the trimmed surface entities should be bounded only by lines and curves (i.e. Not
edges).
2. The collection of domains to be inverted must have clearly defined inlets and outlets which are cappable
(see discussion of capping surfaces below). Here, "inlet" and "outlet" should not be confused with the
"Inlet" and "Outlet" BC types.
3. The collection of domains must have non-zero thickness throughout. In other words, there must not be
any infinitely thin walls separating the flow field from the region outside the domains.
412
CFD-GEOM Scripting
4. If inverting a collection consisting of multiple domains, the domains must have been stitched together
such that there are no arbitrary interfaces between them. For example, if these solids are read from a SAT
file, you will need to import with the "Interface Parts" or "Combine Parts" option selected. Failure to do
this may yield unexpected or undefined results during inversion.
Critical to the model inversion process is the specification of capping surfaces. Capping surfaces are those
surfaces--at the inlets and outlets--which contain holes which must be closed off to separate the "air
solid" from the region outside the original solid (It is helpful to remember that, prior to inversion, these
form a continuous volume). Behind the scenes, CFD-GEOM will construct new surfaces to form caps that
bound the new air solid and separate it from the region outside the original solid(s). Note that internal
surfaces should not be specified. For example, if your model consists of 2 solids with a shared surface, you
should not select that shared surface.
Back to Top
GGeometry.SplitModelDomainsAtMajorPlane
Prototype
GGeometry.SplitModelDomainsAtMajorPlane(plane, depth, keep_inside_box, keep_outside_box)
Description
Split the current model's unstructured domains at one of the major planes. See additional details
following the description of the input arguments.
"plane" is an integer specifying the plane (1-XY, 2-YZ, 3-XZ). "depth" specifies the position of the plane.
For example, a plane value of 1 and a depth of 5 specifies a plane parallel to the XY plane and passing
through Z=5.
"keep_inside_box" and "keep_outside_box" can be 0 (FALSE) or 1 (TRUE) and describe which portions of
the model are to be kept (i.e. not discarded) after the split. The term "box" refers to that portion of space
to the "front" of the specified plane. In the model splitting tool in the CFD-GEOM GUI, this box is easily
visible. However, if you need to use this function without that visual aid, it is helpful to remember the
following:
1. If "plane" is the XY plane, those portions of the model with a Z coordinate greater than or equal to
"depth" are considered inside the box.
2. If "plane" is the XZ plane, those portions of the model with a Y coordinate greater than or equal to
"depth" are considered inside the box.
3. If "plane" is the YZ plane, those portions of the model with an X coordinate greater than or equal to
"depth" are considered inside the box.
RECOMMENDED USAGE:
This function makes substantial changes to the current model that may result in the loss of certain types
of data such as boundary and volume conditions and mesh generation parameters. In addition, hybrid
unstructured domains (i.e. domains containing at least 1 edge or structured face) can not be split. Semi-
structured and structured domains can not be split; model splitting, therefore, can not be performed if
the model contains such entities that intersect the specified plane. Finally, undo/redo is not currently
supported.
It is therefore recommended that you use this function very early in your modeling/meshing process (e.g.
immediately after CAD import), before adding new entities, meshing, and boundary/volume condition
assignment. If used on an imported assembly model, it is also recommended that, during the import, you
select one of the "Assembly Processing" options. Failure to do this may result in the creation of arbitrary
interfaces between domains during the CAD import, which will persist after the model split.
ALGORITHM:
413
CFD-GEOM V2014.0 User Manual
GGeometry.SplitModelDomainsAtMajorPlaneThroughPoint
Prototype
GGeometry.SplitModelDomainsAtMajorPlaneThroughPoint(plane, pt, keep_inside_box,
keep_outside_box)
Description
Split the current model's unstructured domains at one of the major planes. This function is identical to
SplitModelDomainsAtMajorPlane except that the "depth" is implied by a point through which the plane
passes. Please see SplitModelDomainsAtMajorPlane for additional details.
Back to Top
GGeometry.SplitModelDomainsAtConstructionPlane
Prototype
GGeometry.SplitModelDomainsAtConstructionPlane(keep_inside_box, keep_outside_box)
Description
Split the current model's unstructured domains at the current construction plane.
"keep_inside_box" and "keep_outside_box" can be 0 (FALSE) or 1 (TRUE) and describe which portions of
the model are to be kept (i.e. not discarded) after the split. The term "box" refers to that portion of space
to the "front" of the construction plane. In the model splitting tool in the CFD-GEOM GUI, this box is easily
visible. However, if you need to use this function without that visual aid, it is helpful to rememeber that
what is to the "front" and "rear" of the plane depends upon the orientation of the plane; and the
construction plane's orientation depends upon how it was created. For example, a plane defined by 3
points p1, p2, and p3 will have an orientation opposite that of a plane defined by p1, p3, p2. Unless you
are quite certain of the orientation of the construction plane, you will likely need to experiment with the
"keep_inside_box" and "keep_outside_box" arguments to achieve the desired results.
In all other respects, this function has the same behavior and limitations as
SplitModelDomainsAtMajorPlane. See that function for additional details.
Back to Top
GGeometry.UniteDomains
Prototype
GGeometry.UniteDomains(blank_domain, tool_domains)
Description
Given a blank domain (an unstructured domain) and a set of tool domains (also unstructured domains),
unite the tool domains with the blank domain (the term "blank" should not be confused with the terms
blanking and unblanking that control entity visibility). Ordinarily, a single domain will be returned and the
original domains will be deleted. If any tool domains don't intersect the blank domain, multiple domains
414
CFD-GEOM Scripting
may be created. During the operation, lines, curves, and surfaces will be split, deleted, or created as
necessary. Any entities located in the interior of the new volume will be discarded unless they are also
used by other entities not involved in the operation.
Note that hybrid unstructured domains (i.e. domains containing at least 1 edge, structured face, or
discrete surface) can not be united. It is, therefore, recommended that this, and all other Boolean
operations, be performed before adding structured, semi-structured, or discrete topologies to the model.
Note also that certain types of information such as meshing parameters and boundary/volume conditions
may be lost as entities are split/deleted. It is therefore recommended that all Boolean operations be
performed before meshing and BC/VC assignment.
Back to Top
GGeometry.SubtractDomains
Prototype
GGeometry.SubtractDomains(blank_domain, tool_domains)
Description
Given a blank domain (an unstructured domain) and a set of tool domains (also unstructured domains),
subtract the tool domains from the blank domain (the term "blank" should not be confused with the
terms blanking and unblanking that control entity visibility). Ordinarily, a single domain will be returned
and the original domains will be deleted. If any tool domains don't intersect the blank domain, they and
their underlying entities may disappear altogether. During the operation lines, curves, and surfaces will be
split, deleted, or created as necessary. Any portions of the tool domains located outside the new volume
will be discarded unless they are also used by other entities not involved in the operation.
Note that hybrid unstructured domains (i.e. domains containing at least 1 edge, structured face, or
discrete surface) can not be subtracted. It is, therefore, recommended that this, and all other Boolean
operations, be performed before adding structured, semi-structured, or discrete topologies to the model.
Note also that certain types of information such as meshing parameters and boundary/volume conditions
may be lost as entities are split/deleted. It is therefore recommended that all Boolean operations be
performed before meshing and BC/VC assignment.
Back to Top
GGeometry.IntersectDomains
Prototype
GGeometry.IntersectDomains(blank_domain, tool_domains)
Description
Given a blank domain (an unstructured domain) and a set of tool domains (also unstructured domains),
intersect the tool domains with the blank domain (the term "blank" should not be confused with the
terms blanking and unblanking that control entity visibility). The new domains returned are the
intersection of the blank domain with the first tool domain, the intersection of the blank domain with the
second tool domain, etc. Therefore, the number of newly created domains will usually equal the number
of tool domains. Where a tool domain does not intersect the blank domain, no new domain will be
created. When done, all portions of the blank and tool domains that lie outside the newly created
domains will be deleted unless they are used by other entities not involved in the operation. For an
alternative to this function which also preserves the original volumes, see InterfaceDomains().
Note that hybrid unstructured domains (i.e. domains containing at least 1 edge, structured face, or
discrete surface) can not be intersected. It is, therefore, recommended that this, and all other Boolean
operations, be performed before adding structured, semi-structured, or discrete topologies to the model.
Note also that certain types of information such as meshing parameters and boundary/volume conditions
415
CFD-GEOM V2014.0 User Manual
may be lost as entities are split/deleted. It is therefore recommended that all Boolean operations be
performed before meshing and BC/VC assignment.
Back to Top
GGeometry.InterfaceDomains
Prototype
GGeometry.InterfaceDomains(domains)
Description
Given a set of unstructured domains, stitch them together to create clean interfaces between them.
Ordinarily, this function is used to mate two adjacent domains with overlapping surfaces at their
adjacency. In such cases, the overlapping surfaces will be split until both domains share a common surface
at the adjacency, enabling them to be meshed without an arbitrary interface. In cases where the volumes
of 2 domains overlap, the domains will be split into 3 domains consisting of the volume occupied
exclusively by the first domain, the volume occupied exclusively by the second domain, and the volume
representing the intersection of the 2 original domains.
Note that hybrid unstructured domains (i.e. domains containing at least 1 edge, structured face, or
discrete surface) can not be interfaced. It is, therefore, recommended that this, and all other Boolean
operations, be performed before adding structured, semi-structured, or discrete topologies to the model.
Note also that certain types of information such as meshing parameters and boundary/volume conditions
may be lost as entities are split/deleted. It is therefore recommended that all Boolean operations be
performed before meshing and BC/VC assignment.
Back to Top
CreateBoxFromCorners
Prototype
CreateBoxFromCorners( x1, y1, z1, x2, y2, z2, solid)
Description
Create a solid box from 2 corners. Note that the dimensions in each direction must be >= 1e-6. Arguments
are:
x1, y1, z1: coordinates of first corner
x2, y2, z2: coordinates of second corner
solid: If 1, create a solid (i.e. unstructured domain) from the newly created surfaces. If 0, create only the
surfaces (and underlying entities).
Return a handle to the newly created entities.
Back to Top
CreateBoxFromCenterAndDimensions
Prototype
CreateBoxFromCenterAndDimensions(x1, y1, z1, length_x, length_y, length_z, solid)
Description
Create a solid box from the specified center and dimensions
x1, y1, z1: coordinates of the center
length_x, length_y, length_z: dimensions of the box in the X, Y, and Z directions, respectively. These
must be >=1e-6.
416
CFD-GEOM Scripting
solid: If 1, create a solid (i.e. unstructured domain) from the newly created surfaces. If 0, create only the
surfaces (and underlying entities).
Return a handle to the newly created entities.
Back to Top
CreateCylinderFromTwoPoints
Prototype
CreateCylinderFromTwoPoints(major_radius, minor_radius, top_radius, x1, y1, z1, x2, y2, z2, solid)
Description
Create a solid cylinder with the following parameters.
major_radius, minor_radius: specifies the radius values of the base.
top_radius: specifies the radius value of the top
x1, y1, z1: coordinates of the axis start point.
x2, y2, z2: coordinates of the axis end point.
solid: If 1, create a solid (i.e. unstructured domain) from the newly created surfaces. If 0, create only the
surfaces (and underlying entities).
Back to Top
GGeometry.RotateEntities(entities, sx, sy, sz, dx, dy, dz, angle, duplicate, numtimes)
417
CFD-GEOM V2014.0 User Manual
GGeometry.MirrorEntitiesAboutConstructionPlane(entities, duplicate)
GGeometry.TranslateEntities
Prototype
GGeometry.TranslateEntities(entities, dx, dy, dz, distance_multiplier, duplicate, numtimes=1)
Description
Translate entities in a direction specified by a vector. Note that the vector (dx, dy, dz) is not normalized by
this routine. Hence, the total translation distances in X, Y, and Z are dx*distance_multiplier,
dy*distance_multiplier, and dz*distance_multipler. If duplicate is 1 (true), "numtimes" translated copies
of the specified entities will be created. If duplicate is 0 (false), numtimes is ignored.
Back to Top
GGeometry.TranslateEntitiesAlongLine
Prototype
GGeometry.TranslateEntitiesAlongLine(entities, line, reverse, duplicate, numtimes=1)
Description
Translate entities in a direction and distance implied by a line entity. If duplicate is 1 (true), "numtimes"
translated copies of the specified entities will be created. If duplicate is 0 (false), numtimes is ignored. If
reverse is 1 (true), the translation direction will be opposite the line's orientation.
Back to Top
418
CFD-GEOM Scripting
GGeometry.TranslateEntitiesAlongPoints
Prototype
GGeometry.TranslateEntitiesAlongPoints(entities, spt, ept, duplicate, numtimes=1)
Description
Translate entities in a direction and distance implied 2 point entities. If duplicate is 1 (true), "numtimes"
translated copies of the specified entities will be created. If duplicate is 0 (false), numtimes is ignored.
Back to Top
GGeometry.RotateEntities
Prototype
GGeometry.RotateEntities(entities, sx, sy, sz, dx, dy, dz, angle, duplicate, numtimes)
Description
Rotate entities about an axis defined by a set of start point coordinates and a vector. The input angle is
assumed to be in degrees. If duplicate is 1 (true), "numtimes" rotated copies of the specified entities will
be created. If duplicate is 0 (false), numtimes is ignored.
Back to Top
GGeometry.RotateEntitiesAboutLine
Prototype
GGeometry.RotateEntitiesAboutLine(entities, axis_line, angle, duplicate, numtimes)
Description
Rotate entities about an axis defined by a line entity. The input angle is assumed to be in degrees. If
duplicate is 1 (true), "numtimes" rotated copies of the specified entities will be created. If duplicate is 0
(false), numtimes is ignored..
Back to Top
GGeometry.RotateEntitiesAboutPoints
Prototype
GGeometry.RotateEntitiesAboutPoints(entities, axis_spt, axis_ept, angle, duplicate, numtimes)
Description
Rotate entities about an axis defined by 2 point entities. The input angle is assumed to be in degrees. If
duplicate is 1 (true), "numtimes" rotated copies of the specified entities will be created. If duplicate is 0
(false), numtimes is ignored.
Back to Top
GGeometry.RotateEntitiesAbout3Points
Prototype
GGeometry.RotateEntitiesAbout3Points(entities, cpt, spt, ept, duplicate, numtimes)
Description
Rotate entities about an axis defined by 3 point entities. cpt represents a point on the rotation axis. The
axis direction is defined by the normal to the plane containing cpt, spt, and ept. The angle is implied by
the angle between the vectors cpt->spt and cpt->ept. These 3 points must not be colinear. If duplicate is 1
419
CFD-GEOM V2014.0 User Manual
(true), "numtimes" rotated copies of the specified entities will be created. If duplicate is 0 (false),
numtimes is ignored.
Back to Top
GGeometry.RotateEntitiesAboutPointAndVector
Prototype
GGeometry.RotateEntitiesAboutPointAndVector(entities, spt, dx, dy, dz, angle, duplicate, numtimes)
Description
Rotate entities about an axis defined by a point entity and a vector. The input angle is assumed to be in
degrees. If duplicate is 1 (true), "numtimes" rotated copies of the specified entities will be created. If
duplicate is 0 (false), numtimes is ignored.
Back to Top
GGeometry.ScaleEntities
Prototype
GGeometry.ScaleEntities(entities, x, y, z, sx, sy, sz, duplicate, numtimes)
Description
Scale entities about a point (x,y,z). The parameters sx, sy, and sz specify the scaling factors in the X, Y, and
Z directions, respectively. If duplicate is 1 (true), "numtimes" scaled copies of the specified entities will be
created. If duplicate is 0 (false), numtimes is ignored.
Back to Top
GGeometry.ScaleEntitiesAboutPoint
Prototype
GGeometry.ScaleEntitiesAboutPoint(entities, pt, sx, sy, sz, duplicate, numtimes)
Description
Scale entities about a point entity. The parameters sx, sy, and sz specify the scaling factors in the X, Y, and
Z directions, respectively. If duplicate is 1 (true), "numtimes" scaled copies of the specified entities will be
created. If duplicate is 0 (false), numtimes is ignored.
Back to Top
GGeometry.ScaleAllEntities
Prototype
GGeometry.ScaleAllEntities(sx, sy, sz, duplicate)
Description
Scale all entities about the origin. The parameters sx, sy, and sz specify the scaling factors in the X, Y, and Z
directions, respectively. If duplicate is 1 (true), scaled copies of all entities will be created.
Back to Top
GGeometry.MirrorEntities
Prototype
GGeometry.MirrorEntities(entities, ox, oy, oz, nx, ny, nz, duplicate)
420
CFD-GEOM Scripting
Description
Mirror entities about a plane defined by an origin (ox, oy, oz) and plane normal (nx, ny, nz). If duplicate is
1 (true), create mirrored copies of the input entities. Note that mirroring via this type of input is not
available from the CFD-GEOM GUI.
Back to Top
GGeometry.MirrorEntitiesAboutMajorPlane
Prototype
GGeometry.MirrorEntitiesAboutMajorPlane(entities, plane, depth, duplicate)
Description
Mirror entities about one of the major planes. "plane" is an integer specifying the plane (1-XY, 2-YZ, 3-XZ).
"depth" specifies the position of the plane. For example, a plane value of 1 and a depth of 5 specifies a
plane parallel to the XY plane and passing through Z=5. If duplicate is 1 (true), create mirrored copies of
the input entities.
Back to Top
GGeometry.MirrorEntitiesAboutMajorPlaneThroughPoint
Prototype
GGeometry.MirrorEntitiesAboutMajorPlaneThroughPoint(entities, plane, pt, duplicate)
Description
Mirror entities about one of the major planes. "plane" is an integer specifying the plane (1-XY, 2-YZ, 3-XZ).
"pt" is a point entity through which the plane passes. If duplicate is 1 (true), create mirrored copies of the
input entities.
Back to Top
GGeometry.MirrorEntitiesAboutConstructionPlane
Prototype
GGeometry.MirrorEntitiesAboutConstructionPlane(entities, duplicate)
Description
Mirror entities about one of the major planes. "plane" is an integer specifying the plane (1-XY, 2-YZ, 3-XZ).
"pt" is a point entity through which the plane passes. If duplicate is 1 (true), create mirrored copies of the
input entities.
Back to Top
GGeometry.AxiallyScaleEntities
Prototype
GGeometry.AxiallyScaleEntities(entities, sx, sy, sz, dx, dy, dz, scale_factor, duplicate)
Description
Axially scale entities about an axis defined by a set of start point coordinates and a vector. If duplicate is 1
(true), create scaled copies of the input entities.
Back to Top
421
CFD-GEOM V2014.0 User Manual
GGeometry.AxiallyScaleEntitiesAboutLine
Prototype
GGeometry.AxiallyScaleEntitiesAboutLine(entities, axis_line, scale_factor, duplicate)
Description
Axially scale entities about an axis defined by a line entity. If duplicate is 1 (true), create scaled copies of
the input entities.
Back to Top
GGeometry.AxiallyScaleEntitiesAboutPoints
Prototype
GGeometry.AxiallyScaleEntitiesAboutPoints(entities, axis_spt, axis_ept, scale_factor, duplicate)
Description
Axially scale entities about an axis defined by 2 point entities. If duplicate is 1 (true), create scaled copies
of the input entities.
Back to Top
GGeometry.AxiallyScaleEntitiesAbout3Points
Prototype
GGeometry.AxiallyScaleEntitiesAbout3Points(entities, cpt, spt, ept, scale_factor, duplicate)
Description
Axially scale entities about an axis defined by 3 point entities. cpt represents a point on the axis. The axis
direction is defined by the normal to the plane containing cpt, spt, and ept. If duplicate is 1 (true), create
scaled copies of the input entities.
Back to Top
GGeometry.AxiallyScaleEntitiesAboutPointAndVector
Prototype
GGeometry.AxiallyScaleEntitiesAboutPointAndVector(entities, spt, dx, dy, dz, scale_factor, duplicate)
Description
Axially scale entities about an axis defined by a point entity and a vector. If duplicate is 1 (true), create
scaled copies of the input entities.
Back to Top
GGeometry.ProjectEntitiesToSurfaces
Prototype
GGeometry.ProjectEntitiesToSurfaces(entities, surfaces, dx, dy, dz, discretization, project_ends, fill_gaps,
duplicate)
Description
Project a set of points, lines, curves, and/or edges to 1 or more trimmed and/or untrimmed surfaces. The
direction of projection is defined by a vector (dx,dy,dz).
Back to Top
422
CFD-GEOM Scripting
GGeometry.ProjectEntitiesToSurfacesAlongLine
Prototype
GGeometry.ProjectEntitiesToSurfacesAlongLine(entities, surfaces, line, discretization, project_ends,
fill_gaps, duplicate)
Description
Project a set of points, lines, curves, and/or edges to 1 or more trimmed and/or untrimmed surfaces. The
direction of projection is defined by a line entity.
Back to Top
GGeometry.ProjectEntitiesToSurfacesAlongPoints
Prototype
GGeometry.ProjectEntitiesToSurfacesAlongPoints(entities, surfaces, spt, ept, discretization, project_ends,
fill_gaps, duplicate)
Description
Project a set of points, lines, curves, and/or edges to 1 or more trimmed and/or untrimmed surfaces. The
direction of projection is defined by a line entity.
Back to Top
GGeometry.ProjectEntitiesToSurfacesAlongClosestPoints
Prototype
GGeometry.ProjectEntitiesToSurfacesAlongClosestPoints(entities, surfaces, discretization, project_ends,
fill_gaps, duplicate)
Description
Project a set of points, lines, curves, and/or edges to 1 or more trimmed and/or untrimmed surfaces. A
closest point projection algorithm is used to place the entities of the input surfaces.
Back to Top
GGeometry.SplitLineOrCurve(crv, param)
GGeometry.SplitLinesAndCurvesAtPoints(crvs, points)
GGeometry.CreateIsoCurvesAtPointOnSurface(srf, point)
GGeometry.SplitSurfaceAtPoint(srf, point)
423
CFD-GEOM V2014.0 User Manual
GGeometry.SplitCurvesAtConstructionPlane(crvs)
GGeometry.CreatePointsWhereCurvesIntersectConstructionPlane(crvs)
GGeometry.JoinCurves(crvs)
GGeometry.JoinSurfaces(srfs)
GGeometry.SplitLineOrCurve
Prototype
GGeometry.SplitLineOrCurve(crv, param)
Description
Split a line or curve entity at the specified parameter value. "param" must be in the range (0,1).
Back to Top
GGeometry.SplitSurface
Prototype
GGeometry.SplitSurface(srf, u_param, v_param)
Description
Split a surface (trimmed or untrimmed) at the specified U and V parameter values. Both parameters must
be in the range [0,1]. However, at least one of the parameters must be other than 0 or 1.
Please note the following behaviors/restrictions for trimmed Surface entities:
1. If both U and V values are outside the surface boundaries, splitting will not be performed.
2. If either U or V values are inside the surface boundaries, either 2 or 4 new surfaces will usually be created
during a split. However, depending upon the shape of the surrounding trimming curves, 3, 5 or more
surfaces may be created.
3. Surfaces used in the construction of semi-structured domains can not be split. Otherwise, all higher-level
entities derived from the surface (such as Shells) will be automatically updated, and the original surface
will be deleted.
Please note the following behaviors/restrictions for Untrimmed Surface entities:
1. If both U and V values lie on the boundaries of the untrimmed surface, splitting will not be performed.
2. If either U or V (but not both) values lie on the surface boundary, 2 surfaces will be created during a split.
If neither lies on the surface boundaries, 4 new surfaces will be created. In either case, the original surface
will be deleted, and any higher-level entities (such as Faces that were projected to the surface) will be
updated.
3. Untrimmed Surfaces used in the construction of Trimmed Surface entities can not be split.
424
CFD-GEOM Scripting
Upon success, this function returns a handle to the newly created surfaces. If splitting a trimmed surface,
this handle will also contain any lower-level entities (such as lines/curves) created as a result of the
splitting of the trimming curves on the original surface.
Back to Top
GGeometry.SplitLinesAndCurvesAtPoints
Prototype
GGeometry.SplitLinesAndCurvesAtPoints(crvs, points)
Description
Split 1 or more lines/curves at the specified point entities. Where a point does not lie on a line/curve, a
projected (closest point) copy of the point is created on the line/curve and that entity is split at that point
(except when the new point is coincident with the line/curve start or end point).
Back to Top
GGeometry.CreateIsoCurvesAtPointOnSurface
Prototype
GGeometry.CreateIsoCurvesAtPointOnSurface(srf, point)
Description
Create iso-curves passing through a point on a surface.
Back to Top
GGeometry.SplitSurfaceAtPoint
Prototype
GGeometry.SplitSurfaceAtPoint(srf, point)
Description
Split a surface at a point. Note that this routine does not currently support the splitting of trimmed
surfaces.
Back to Top
GGeometry.SplitCurvesAtPlane
Prototype
GGeometry.SplitCurvesAtPlane(crvs, ox, oy, oz, nx, ny, nz)
Description
Split lines/curves at a plane defined by an origin (ox, oy, oz) and plane normal (nx, ny, nz). Note that
splitting via this type of input is currently available only from scripting (there's no corresponding
mechanism in the GEOM GUI).
Back to Top
GGeometry.SplitCurvesAtMajorPlane
Prototype
GGeometry.SplitCurvesAtMajorPlane(crvs, plane, depth)
Description
425
CFD-GEOM V2014.0 User Manual
Split lines/curves at one of the major planes. "plane" is an integer specifying the plane (1-XY, 2-YZ, 3-XZ).
"depth" specifies the position of the plane. For example, a plane value of 1 and a depth of 5 specifies a
plane parallel to the XY plane and passing through Z=5.
Back to Top
GGeometry.SplitCurvesAtMajorPlaneThroughPoint
Prototype
GGeometry.SplitCurvesAtMajorPlaneThroughPoint(crvs, plane, pt)
Description
Split lines/curves at one of the major planes. "plane" is an integer specifying the plane (1-XY, 2-YZ, 3-XZ).
"pt" is a point entity through which the plane passes.
Back to Top
GGeometry.SplitCurvesAtConstructionPlane
Prototype
GGeometry.SplitCurvesAtConstructionPlane(crvs)
Description
Split lines/curves at the current construction plane.
Back to Top
GGeometry.CreatePointsWhereCurvesIntersectPlane
Prototype
GGeometry.CreatePointsWhereCurvesIntersectPlane(crvs, ox, oy, oz, nx, ny, nz)
Description
Create points where lines/curves intersect a plane defined by an origin (ox, oy, oz) and plane normal (nx,
ny, nz). Note that creating points via this type of input is currently available only from scripting (there's no
corresponding mechanism in the GEOM GUI).
Back to Top
GGeometry.CreatePointsWhereCurvesIntersectMajorPlane
Prototype
GGeometry.CreatePointsWhereCurvesIntersectMajorPlane(crvs, plane, depth)
Description
Create points where lines/curves intersect one of the major planes. "plane" is an integer specifying the
plane (1-XY, 2-YZ, 3-XZ). "depth" specifies the position of the plane. For example, a plane value of 1 and a
depth of 5 specifies a plane parallel to the XY plane and passing through Z=5.
Back to Top
GGeometry.CreatePointsWhereCurvesIntersectMajorPlaneThroughPoint
Prototype
GGeometry.CreatePointsWhereCurvesIntersectMajorPlaneThroughPoint(crvs, plane, pt)
Description
426
CFD-GEOM Scripting
Create points where lines/curves intersect one of the major planes. "plane" is an integer specifying the
plane (1-XY, 2-YZ, 3-XZ). "pt" is a point entity through which the plane passes.
Back to Top
GGeometry.CreatePointsWhereCurvesIntersectConstructionPlane
Prototype
GGeometry.CreatePointsWhereCurvesIntersectConstructionPlane(crvs)
Description
Create points where lines/curves intersect the current construction plane.
Back to Top
GGeometry.JoinCurves
Prototype
GGeometry.JoinCurves(crvs)
Description
Create a single curve by joining the specified lines/curves.
Back to Top
GGeometry.JoinSurfaces
Prototype
GGeometry.JoinSurfaces(srfs)
Description
Create a single trimmed surface by joining the specified trimmed surfaces. Note the following constraints:
1. The input surfaces must be properly connected. By traversing trimming lines/curves, every surface must
be reachable from every other surface in the input set. Moreover, the collection must not contain any
branches. In other words, it should not be possible to "walk" from one surface to 2 or more adjacent
surfaces through a single trimming curve.
2. Exactly the same set of child (higher-level) entities must be derived from them. For example, CFD-GEOM
will not join surfaces that don't form the boundaries of exactly the same set of shells.
3. Surfaces used in the construction of semi-structured domains can not be joined.
CFD-GEOM must be able to cover the input surfaces with a single surface. In a planar collection of
surfaces, this is always possible. However, in non-planar collections, this is not always possible.
Improvements to this capability will be added in future releases.
Upon success, this function returns a handle to the newly created surface. The original surfaces are
deleted and any attached topology/mesh systems are updated.
Back to Top
427
CFD-GEOM V2014.0 User Manual
GGeometry.IntersectEntitySets(ents1, ents2)
GGeometry.CreateCurvesWhereSurfacesIntersectConstructionPlane(surfaces)
GGeometry.ExtendLinesToIntersection(line1, line2)
GGeometry.IntersectEntities
Prototype
GGeometry.IntersectEntities(ent1, ent2, trim_curves)
Description
Create entities at the intersections of 2 entities ent1 and ent2. These entities (ent1 and ent2) can be
lines/curves/surfaces. If either entity is a line/curve, and if "trim_curves" is 1 (TRUE), these entities are
split at the points of intersection.
Back to Top
GGeometry.IntersectEntitySets
Prototype
GGeometry.IntersectEntitySets(ents1, ents2)
Description
Create entities at the intersections of 2 entity sets ents1 and ents2. These entity sets (ents1 and ents2)
can contain lines/curves/surfaces.
Back to Top
GGeometry.CreateCurvesWhereSurfacesIntersectPlane
Prototype
GGeometry.CreateCurvesWhereSurfacesIntersectPlane(surfaces, ox, oy, oz, nx, ny, nz)
Description
Create curves where surfaces intersect a plane defined by an origin (ox, oy, oz) and plane normal (nx, ny,
nz). Note that creating curves via this type of input is currently available only from scripting (there's no
corresponding mechanism in the GEOM GUI).
Back to Top
428
CFD-GEOM Scripting
GGeometry.CreateCurvesWhereSurfacesIntersectMajorPlane
Prototype
GGeometry.CreateCurvesWhereSurfacesIntersectMajorPlane(surfaces, plane, depth)
Description
Create curves where surfaces intersect one of the major planes. "plane" is an integer specifying the plane
(1-XY, 2-YZ, 3-XZ). "depth" specifies the position of the plane. For example, a plane value of 1 and a depth
of 5 specifies a plane parallel to the XY plane and passing through Z=5.
Back to Top
GGeometry.CreateCurvesWhereSurfacesIntersectMajorPlaneThroughPoint
Prototype
GGeometry.CreateCurvesWhereSurfacesIntersectMajorPlaneThroughPoint(surfaces, plane, pt)
Description
Create curves where surfaces intersect one of the major planes. "plane" is an integer specifying the plane
(1-XY, 2-YZ, 3-XZ). "pt" is a point entity through which the plane passes.
Back to Top
GGeometry.CreateCurvesWhereSurfacesIntersectConstructionPlane
Prototype
GGeometry.CreateCurvesWhereSurfacesIntersectConstructionPlane(surfaces)
Description
Create curves where surfaces intersect the current construction plane.
Back to Top
GGeometry.ExtendLinesToIntersection
Prototype
GGeometry.ExtendLinesToIntersection(line1, line2)
Description
Extend 2 coplanar, non-parallel lines to their intersection.
Back to Top
429
CFD-GEOM V2014.0 User Manual
GGeometry.SetCurrentCPlaneDrawingParameters
Prototype
GGeometry.SetCurrentCPlaneDrawingParameters(step_size=1, num_increments=20, snap=0)
Description
Set only the drawing and snap properties on the current construction plane.
"step_size" controls the width and height of each grid cell. "num_increments" controls the number of grid
cells to draw to the left, right, top, and bottom of the construction plane origin. "snap", if set to 1 (TRUE),
indicates that when creating a point via screen click, the point will be snapped to the nearest construction
plane grid point. Note that these parameters affect only graphical attributes of the construction plane and
do not affect geometrical operations (during the script run) that are based on the construction plane.
Back to Top
GGeometry.SetCurrentCPlane
Prototype
GGeometry.SetCurrentCPlane(x, y, z, dx, dy, dz, step_size=1, num_increments=20, snap=0)
Description
Set the current construction plane to pass through the given point (x, y, z) and with a plane normal (dx,
dy, dz). Note that this capability is available only through scripting (it's not in the CFD-GEOM GUI).
"step_size" controls the width and height of each grid cell. "num_increments" controls the number of grid
cells to draw to the left, right, top, and bottom of the construction plane origin. "snap", if set to 1 (TRUE),
indicates that when creating a point via screen click, the point will be snapped to the nearest construction
plane grid point. Note that these parameters affect only graphical attributes of the construction plane and
do not affect geometrical operations (during the script run) that are based on the construction plane.
Back to Top
GGeometry.SetCurrentCPlaneFromMajorPlane
Prototype
GGeometry.SetCurrentCPlaneFromMajorPlane(plane, depth, step_size=1, num_increments=20, snap=0)
Description
Set the current construction plane to be parallel to one of the major planes. "plane" is an integer
specifying the plane (1-XY, 2-YZ, 3-XZ). "depth" specifies the position of the plane. For example, a plane
value of 1 and a depth of 5 specifies a plane parallel to the XY plane and passing through Z=5.
"step_size" controls the width and height of each grid cell. "num_increments" controls the number of grid
cells to draw to the left, right, top, and bottom of the construction plane origin. "snap", if set to 1 (TRUE),
430
CFD-GEOM Scripting
indicates that when creating a point via screen click, the point will be snapped to the nearest construction
plane grid point. Note that these parameters affect only graphical attributes of the construction plane and
do not affect geometrical operations (during the script run) that are based on the construction plane.
Back to Top
GGeometry.SetCurrentCPlaneFromMajorPlaneThroughPoint
Prototype
GGeometry.SetCurrentCPlaneFromMajorPlaneThroughPoint(plane, pt, step_size=1, num_increments=20,
snap=0)
Description
Set the current construction plane to be parallel to one of the major planes. "plane" is an integer
specifying the plane (1-XY, 2-YZ, 3-XZ). "pt" is a point entity through which the plane passes.
"step_size" controls the width and height of each grid cell. "num_increments" controls the number of grid
cells to draw to the left, right, top, and bottom of the construction plane origin. "snap", if set to 1 (TRUE),
indicates that when creating a point via screen click, the point will be snapped to the nearest construction
plane grid point. Note that these parameters affect only graphical attributes of the construction plane and
do not affect geometrical operations (during the script run) that are based on the construction plane.
Back to Top
GGeometry.SetCurrentCPlaneFromLineOrCurve
Prototype
GGeometry.SetCurrentCPlaneFromLineOrCurve(crv, param, step_size=1, num_increments=20, snap=0)
Description
Set the current construction plane to pass through a point on a line or curve. The point is specified as a
parameter (in the range [0,1]) in the line/curve parameter space. The plane will be normal to the
line/curve tangent at that point.
"step_size" controls the width and height of each grid cell. "num_increments" controls the number of grid
cells to draw to the left, right, top, and bottom of the construction plane origin. "snap", if set to 1 (TRUE),
indicates that when creating a point via screen click, the point will be snapped to the nearest construction
plane grid point. Note that these parameters affect only graphical attributes of the construction plane and
do not affect geometrical operations (during the script run) that are based on the construction plane.
Back to Top
GGeometry.SetCurrentCPlaneFrom3Points
Prototype
GGeometry.SetCurrentCPlaneFrom3Points(p1, p2, p3, step_size=1, num_increments=20, snap=0)
Description
Set the current construction plane from 3 non-colinear point entities.
"step_size" controls the width and height of each grid cell. "num_increments" controls the number of grid
cells to draw to the left, right, top, and bottom of the construction plane origin. "snap", if set to 1 (TRUE),
indicates that when creating a point via screen click, the point will be snapped to the nearest construction
plane grid point. Note that these parameters affect only graphical attributes of the construction plane and
do not affect geometrical operations (during the script run) that are based on the construction plane.
Back to Top
431
CFD-GEOM V2014.0 User Manual
GGeometry.SetCurrentCPlaneFromPointAndNormal
Prototype
GGeometry.SetCurrentCPlaneFromPointAndNormal(pt, dx, dy, dz, step_size=1, num_increments=20,
snap=0)
Description
Set the current construction plane to pass through the given point and with a plane normal (dx, dy, dz).
"step_size" controls the width and height of each grid cell. "num_increments" controls the number of grid
cells to draw to the left, right, top, and bottom of the construction plane origin. "snap", if set to 1 (TRUE),
indicates that when creating a point via screen click, the point will be snapped to the nearest construction
plane grid point. Note that these parameters affect only graphical attributes of the construction plane and
do not affect geometrical operations (during the script run) that are based on the construction plane.
Back to Top
GMesh.CreateEdgeFromParameterList(crvs, params)
GMesh.SetGeneralEdge(edge, value)
432
CFD-GEOM Scripting
GMesh.RemoveEdgesFromEdgeLinkingGroups(edges)
GMesh.ReplaceEdgeGeometry(edge, crvs)
GMesh.SplitEdgeAtGridPoint(edge, index)
GMesh.SplitEdgeAtPointEntities(edge, points)
GMesh.JoinEdges(edges)
GMesh.CreateCompositeEdge(edges)
GMesh.CreateCompositeEdges(edges)
GMesh.CreatePowerLawEdge
Prototype
GMesh.CreatePowerLawEdge(crvs, num_grid_points, power, direction)
Description
Create a power law edge across the input lines/curves. "direction" must be 1-forward, 2-backward, or 3-
symmetric.
Back to Top
GMesh.CreatePowerLawEdgeFromPoints
Prototype
GMesh.CreatePowerLawEdgeFromPoints(points, create_one_curve, closed, num_grid_points, power,
direction)
Description
Create power law edge(s) across the input points. Input is as follows:
create_one_curve, closed (both options are ignored if <3 point entities are specified):
0, 0 - create a line (and edge) between the first and second point, another between the second
and third point, etc.
0, 1 - same as 0,0 except that an additional line and edge is created between the last and first
point.
1, 0 - interpolate a single curve/edge through the input points
1, 1 - same as 1,0 except that the curve/edge is wrapped back around to the first point (i.e. a
closed curve/edge is created).
num_grid_points: the number of grid points to use on each new edge
433
CFD-GEOM V2014.0 User Manual
GMesh.CreateHyptanEdge
Prototype
GMesh.CreateHyptanEdge(crvs, num_grid_points, use_normalized_spacing, ds1, ds2)
Description
Create an edge with a hyperbolic tangent distribution across the input lines/curves. If
use_normalized_spacing is 0 (FALSE), ds1 and ds2 are interpreted as absolute endpoint spacings. If 1
(TRUE), ds1 and ds2 are interpreted as normalized end point spacings and must be in the range [0,1].
Back to Top
GMesh.CreateHyptanEdgeFromPoints
Prototype
GMesh.CreateHyptanEdgeFromPoints(points, create_one_curve, closed, num_grid_points,
use_normalized_spacing, ds1, ds2)
Description
Create edge(s) with hyperbolic tangent distributions across the input points. Input is as follows:
create_one_curve, closed (both options are ignored if <3 point entities are specified):
0, 0 - create a line (and edge) between the first and second point, another between the second
and third point, etc.
0, 1 - same as 0,0 except that an additional line and edge is created between the last and first
point.
1, 0 - interpolate a single curve/edge through the input points
1, 1 - same as 1,0 except that the curve/edge is wrapped back around to the first point (i.e. a
closed curve/edge is created).
num_grid_points: the number of grid points to use on each new edge
use_normalized_spacing: if 0 (FALSE), ds1 and ds2 are interpreted as absolute endpoint spacings. If 1
(TRUE), ds1 and ds2 are interpreted as ormalized end point spacings and must be in the range [0,1].
ds1, ds2: the endpoint spacings at the edge start and end points, respectively.
Back to Top
GMesh.CreateGeometricEdge
Prototype
GMesh.CreateGeometricEdge(crvs, num_grid_points, tfactor, direction)
Description
Create an edge with a geometric distribution across the input lines/curves. "direction" must be 1-forward,
2-backward, or 3-symmetric.
Back to Top
434
CFD-GEOM Scripting
GMesh.CreateGeometricEdgeFromPoints
Prototype
GMesh.CreateGeometricEdgeFromPoints(points, create_one_curve, closed, num_grid_points, tfactor,
direction)
Description
Create edge(s) with a geometric distribution across the input points.
Input is as follows:
create_one_curve, closed (both options are ignored if <3 point entities are specified):
0, 0 - create a line (and edge) between the first and second point, another between the second
and third point, etc.
0, 1 - same as 0,0 except that an additional line and edge is created between the last and first
point.
1, 0 - interpolate a single curve/edge through the input points
1, 1 - same as 1,0 except that the curve/edge is wrapped back around to the first point (i.e. a
closed curve/edge is created).
num_grid_points: the number of grid points to use on each new edge
tfactor: transition factor; must be >= 1.0
direction: must be 1-forward, 2-backward, or 3-symmetric
Back to Top
GMesh.CreateEdgeFromParameterList
Prototype
GMesh.CreateEdgeFromParameterList(crvs, params)
Description
Create an edge with a general distribution across the input lines/curves. The input entities must form a
properly connected set. "params" must contain a strictly increasing set of parameters starting with 0and
ending with 1. These values essentially represent a percentage of total arc length at which the grid points
are to be positioned. Note that this capability is not currently available in any tool in the CFD-GEOM GUI.
The number of grid points to use is implied by the number of specified parameters.
Back to Top
GMesh.SetPowerLawEdge
Prototype
GMesh.SetPowerLawEdge(edge, num_grid_points, power, direction)
Description
Assign a power-law distribution to the specified edge. "direction" must be 1-forward, 2-backward, or 3-
symmetric
Back to Top
GMesh.SetHyptanEdge
Prototype
GMesh.SetHyptanEdge(edge, num_grid_points, use_normalized_spacing, ds1, ds2)
435
CFD-GEOM V2014.0 User Manual
Description
Assign a hyperbolic tangent distribution to the input edge. If use_normalized_spacing is 0 (FALSE), ds1 and
ds2 are interpreted as absolute endpoint spacings. If 1 (TRUE), ds1 and ds2 are interpreted as normalized
end point spacings and must be in the range [0,1].
Back to Top
GMesh.SetGeometricEdge
Prototype
GMesh.SetGeometricEdge(edge, num_grid_points, tfactor, direction)
Description
Assign a geometric distribution to the specified edge. "direction" must be 1-forward, 2-backward, or 3-
symmetric
Back to Top
GMesh.SetGeneralEdge
Prototype
GMesh.SetGeneralEdge(edge, value)
Description
Assign a general distribution to the specified edge and update (where possible) any attached grid
systems. Input is as follows:
edge: a regular edge (i.e. not a composite edge)
value: this can have one of 2 meanings. If a single integer is specified, it is interpreted as
the number of grid points to use on the edge. New parameters will be interpolated from
the edge's current list of parameter values (or current grid points if the edge has a basic
distribution type). If a list of REAL's is specified, they are interpreted as parameter values
in the edges parameter space at which grid points are to be positioned (see
CreateEdgeFromParameterList).
Note that, in the CFD-GEOM edge editor, one can not explicitly change an edge's distribution
type from one of the basic types (power law, hyperbolic tangent, geometric) to a general
distribution type. There, one can only change the number of grid points on an edge that already
has a general distribution type. When we journal this action, "value" will be set to the new
number of grid points. If you're writing a script from scratch, this function gives you the ability to
convert from a basic distribution type as well as to define the new parameters.
Back to Top
GMesh.CreateAllPowerLawEdges
Prototype
GMesh.CreateAllPowerLawEdges(crvs, num_grid_points, power, direction)
Description
Create a power law edge on each of the input lines/curves that does not already have an associated edge.
If "crvs" is empty, GEOM performs this action on all such lines/curves in the model. "direction" must be 1-
forward, 2-backward, or 3-symmetric
Back to Top
436
CFD-GEOM Scripting
GMesh.CreateAllHyptanEdges
Prototype
GMesh.CreateAllHyptanEdges(crvs, num_grid_points, use_normalized_spacing, ds1, ds2)
Description
Create a hyptan edge on each of the input lines/curves that does not already have an associated edge. If
"crvs" is empty, GEOM performs this action on all such lines/curves in the model. If
use_normalized_spacing is 0 (FALSE), ds1 and ds2 are interpreted as absolute endpoint spacings. If 1
(TRUE), ds1 and ds2 are interpreted as normalized end point spacings and must be in the range [0,1].
Back to Top
GMesh.CreateAllGeometricEdges
Prototype
GMesh.CreateAllGeometricEdges(crvs, num_grid_points, tfactor, direction)
Description
Create an edge with a geometric distribution on each of the input lines/curves that does not already have
an associated edge. If "crvs" is empty, GEOM performs this action on all such lines/curves in the model.
"direction" must be 1-forward, 2-backward, or 3-symmetric.
Back to Top
GMesh.CreateEdgeLinkingGroup
Prototype
GMesh.CreateEdgeLinkingGroup(edges, link_types, reversals)
Description
Create an edge linking group from the given set of edges, link types, and reversals. Note that the number
of link types and reversals must equal the number of edges, and "edges" must contain at least 2 non-
composite edges, the first of which is the master edge.
link_types must be a python list and can contain the following values:
0 - this is a special link type that can only be applied to the master edge, and the master edge must
have this link type
1 - the corresponding edge will always have the same number of grid points and distribution
parameters as the master
2 - the corresponding edge will always have the same number of grid points as the master, but will
maintain independent distribution parameters.
3 - the corresponding edge edge will always have the same distribution parameters as the master,
but it's number of grid points will be independent of the master.
reversals must be a python list and can contain the following values:
1 - the corresponding edge's distribution is always reversed from that of the master.
0 - otherwise
Back to Top
GMesh.ModifyEdgeLinkingGroup
Prototype
437
CFD-GEOM V2014.0 User Manual
GMesh.RemoveEdgesFromEdgeLinkingGroups
Prototype
GMesh.RemoveEdgesFromEdgeLinkingGroups(edges)
Description
Remove the specified edges from the link groups to which they belong. Any edge that doesn't belong to a
link group is ignored.
Back to Top
GMesh.ReplaceEdgeGeometry
Prototype
GMesh.ReplaceEdgeGeometry(edge, crvs)
Description
Replace an edge's lines/curves with another set of lines/curves. The new set must have the same
endpoints as the original.
Back to Top
GMesh.SplitEdgeAtGridPoint
Prototype
GMesh.SplitEdgeAtGridPoint(edge, index)
Description
Split an edge at one of its grid points. Note that indexing starts at 1 (i.e. the start point is at index 1).
Splitting at the start and end points doesn't make sense and is not permissible.
Back to Top
GMesh.SplitEdgeAtPointEntities
Prototype
GMesh.SplitEdgeAtPointEntities(edge, points)
Description
Split an edge at one or more endpoints of its constituent lines/curves.
Back to Top
GMesh.JoinEdges
Prototype
GMesh.JoinEdges(edges)
438
CFD-GEOM Scripting
Description
Create a single edge by joining the specified edges.
Back to Top
GMesh.CopyEdgeEndSpacingToAdjacentEdges
Prototype
GMesh.CopyEdgeEndSpacingToAdjacentEdges(edge, target_edges, refpt=0)
Description
Copy an edge's spacing at one of its endpoints to edges incident at that endpoint. Note that "refpt" should
not normally be specified because the endpoint is usually implied by the connectivity between the source
and target edges. However, if "edge" and any of the target edges share 2 distinct end points, "refpt" must
specify which of "edge"'s endpoints to use. Note that this operation does not support closed edges. Note
also that the distribution type of the target edges will normally be converted to hyperbolic tangent.
Back to Top
GMesh.CopyEdgeGridParametersToEntities
Prototype
GMesh.CopyEdgeGridParametersToEntities(edge, target_entities, copy_numpts, copy_dist)
Description
Copy an edge's grid parameters onto other edges and/or lines/curves (which creates edges on those
lines/curves).
Back to Top
GMesh.CreateCompositeEdge
Prototype
GMesh.CreateCompositeEdge(edges)
Description
Create a composite edge from the input edges.
Back to Top
GMesh.CreateCompositeEdges
Prototype
GMesh.CreateCompositeEdges(edges)
Description
Create multiple composite edges from the set of input simple edges. The strategy followed here is to use
as many of the edges as possible while creating the smallest number of composite edges.
Back to Top
439
CFD-GEOM V2014.0 User Manual
GMesh.CreateRevolvedFaces(profile_edges, sx, sy, sz, dx, dy, dz, angle, numpts, numtimes, link_revolution_edges,
link_rotated_edges)
GMesh.UnProjectFaces(faces, surfaces)
GMesh.SplitFace(face, i, j)
GMesh.JoinFaces(faces)
CreateAllDomains(surfaces_and_faces)
440
CFD-GEOM Scripting
CreateAllDomains2(surfaces_and_faces)
CreateShell(surfaces_and_faces)
CreateDomain(shells)
AddBafflesToDomain(domain, srfs)
RemoveBafflesFromDomain(domain, srfs)
GMesh.CreateFace
Prototype
GMesh.CreateFace(*edgesets)
Description
Create a face from 2, 3, or 4 sets of edges and/or composite edges.
Back to Top
GMesh.CreateExtrudedFaces
Prototype
GMesh.CreateExtrudedFaces(profile_edges, dx, dy, dz, distance_multiplier, numpts, numtimes,
link_extrusion_edges, link_translated_edges)
Description
Create faces by extruding profile edges in a direction specified by a vector. Note that the vector (dx, dy,
dz) is not normalized by this routine. Hence, the total extrusion distances in X, Y, and Z are
dx*distance_multiplier, dy*distance_multiplier, and dz*distance_multipler.
Back to Top
GMesh.CreateExtrudedFacesAlongEdges
Prototype
GMesh.CreateExtrudedFacesAlongEdges(profile_edges, path_edges, numtimes, link_extrusion_edges,
link_translated_edges)
Description
Create faces by extruding profile edges along a set of one or more path edges. The direction, distance,
and number of grid points is implied by the path edges. Note that the path edges must form a non-
closed, connected set. Moreover, one of the path edge set endpoints must also be an endpoint of at least
one profile edge.
Back to Top
GMesh.CreateExtrudedFacesAlongLines
Prototype
GMesh.CreateExtrudedFacesAlongLines(profile_edges, path_lines, numpts, numtimes,
link_extrusion_edges, link_translated_edges)
Description
441
CFD-GEOM V2014.0 User Manual
Create faces by extruding profile edges along a set of one or more path lines. The direction and distance is
implied by the path lines. Note that the lines must form a non-closed, connected set. Moreover, one of
the line set endpoints must also be an endpoint of at least one profile edge.
Back to Top
GMesh.CreateExtrudedFacesAlongPoints
Prototype
GMesh.CreateExtrudedFacesAlongPoints(profile_edges, path_points, num_grid_points, numtimes,
link_extrusion_edges, link_translated_edges)
Description
Create faces by extruding profile edges along a path defined by two or more points. The direction and
distance is implied by the points.
Back to Top
GMesh.CreateRevolvedFaces
Prototype
GMesh.CreateRevolvedFaces(profile_edges, sx, sy, sz, dx, dy, dz, angle, numpts, numtimes,
link_revolution_edges, link_rotated_edges)
Description
Create faces by revolving profile edges about an axis defined by a set of start point coordinates and a
vector. The input angle is assumed to be in degrees.
Back to Top
GMesh.CreateRevolvedFacesAboutLine
Prototype
GMesh.CreateRevolvedFacesAboutLine(profile_edges, line, angle, numpts, numtimes,
link_revolution_edges, link_rotated_edges)
Description
Create faces by revolving profile edges about an axis defined by a line entity. The input angle is assumed
to be in degrees.
Back to Top
GMesh.CreateRevolvedFacesAboutPoints
Prototype
GMesh.CreateRevolvedFacesAboutPoints(profile_edges, spt, ept, angle, numpts, numtimes,
link_revolution_edges, link_rotated_edges)
Description
Create faces by revolving profile edges about an axis defined by 2 point entities. The input angle is
assumed to be in degrees.
Back to Top
GMesh.CreateRevolvedFacesAbout3Points
Prototype
442
CFD-GEOM Scripting
GMesh.CreateRevolvedFacesAboutPointAndVector
Prototype
GMesh.CreateRevolvedFacesAboutPointAndVector(profile_edges, spt, dx, dy, dz, angle, numpts,
numtimes, link_revolution_edges, link_rotated_edges)
Description
Create faces by revolving profile edges about an axis defined by a point entity and a vector. The input
angle is assumed to be in degrees.
Back to Top
GMesh.CreateSweptFaces
Prototype
GMesh.CreateSweptFaces(profile_edges, path_crvs, numpts, nsections, use_fixed_orientation, reverse,
projection_type, scaling, link_swept_edges, link_opposite_edges)
Description
Create faces by sweeping profile edges along a set of path curves.
Back to Top
GMesh.CreateSweptFacesWithTwistVector
Prototype
GMesh.CreateSweptFacesWithTwistVector(profile_edges, path_crvs, use_fixed_orientation, dx, dy, dz,
reverse, scaling, numpts, nsections, projection_type, link_swept_edges, link_opposite_edges)
Description
Create faces by sweeping profile edges along a set of path curves.
Back to Top
GMesh.SmoothFace
Prototype
GMesh.SmoothFace(face, numiter, edges=0, bcs=0, spacings=0)
Description
Elliptically smooth a face with the specified number of iterations (a value of 0 unsmooths the face). If
edges and bcs are non-NULL, apply the elliptic boundary conditions in bcs to the corresponding edges. If
any of the bcs is an ortho + spacing bc, apply the specified spacings to the corresponding edges. Here are
the rules:
* If edges is non-NULL, then so must bcs be non-NULL, and both must be of the same length.
443
CFD-GEOM V2014.0 User Manual
* If bcs contains an ortho+spacing bc, then spacings must be present and have a length equal to bcs. A
spacing of 0 means that spacings are allowed to float.
* Any input edges that aren't used by the face are silently ignored.
Valid elliptic bc values are
0 - fixed
1 - ortho
2 - ortho + spacing
Back to Top
GMesh.ProjectFacesToSurfaces
Prototype
GMesh.ProjectFacesToSurfaces(faces, surfaces, projection_type)
Description
Project the specified faces to the specified trimmmed and/or untrimmed surfaces. projection type can be
1 (use closest point projection) or 0 (project along face normals).
Back to Top
GMesh.UnProjectFaces
Prototype
GMesh.UnProjectFaces(faces, surfaces)
Description
Unproject the specified faces from the specified surfaces.
Back to Top
GMesh.CreateAllFaces
Prototype
GMesh.CreateAllFaces(edges, allow_4_sided, allow_2_sided)
Description
Create 1 or more faces from the input edges. If allow_4_sided is 1 (TRUE), CFD-GEOM will construct a 4-
sided face from each topologically valid 4-edge combination in "edges". If allow_2_sided, CFD-GEOM will
construct a 2-sided face from each topologically valid 2-edge combination in "edges". Note that you may
specify an empty list for "edges". In this case, all edges in the model will be used (except for edges upon
which composite edges have been constructed).
Note that automatic construction of 3-sided faces is not supported by this routine. The reason is that such
support would require additional input specifying where the degeneracy should be placed.
Back to Top
GMesh.SplitFace
Prototype
GMesh.SplitFace(face, i, j)
Description
444
CFD-GEOM Scripting
Split face into 2 or 4 faces at the specified I and J indices. Note that the imin and jmin sides of the face
have index values of 1. Specifying an I or J index on the face boundaries is OK, as long as at least one of
them is positioned in the face interior.
Back to Top
GMesh.JoinFaces
Prototype
GMesh.JoinFaces(faces)
Description
Join 2 or more faces into a single face. The input faces must form a logical and supported IJ topology. Note
that the resulting interior mesh spacings will not necessarily be identical to those of the input faces.
Back to Top
GMesh.CreateButterflyFaces
Prototype
GMesh.CreateButterflyFaces(e1, e2, e3, e4, r1, r2, num_radial_grid_pts)
Description
Create a butterfly (i.e. 4-and-core) collection of faces from the 4 input edge sets e1, e2, e3, e4. The 4 sets
must collectively form a logical single-face topology. r1 and r2 describe the radii of the diagonals of the
core face. num_radial_grid_pts defines the number of grid points to use on the edges radiating from the
core face. This value must be at least 2..
Back to Top
GMesh.CreateAllDomains
Prototype
GMesh.CreateAllDomains(surfaces_and_faces)
Description
Create as many unstructured domains (and underlying shells) as possible from the input collection of
trimmed surfaces, faces, and discrete surfaces. If the input collection is empty, CFD-GEOM will attempt to
use all trimmed surfaces, faces, and discrete surfaces in the current model. Note that no shell may consist
of both discrete and non-discrete entities. Hence, CFD-GEOM will not attempt to create mixed
shells/domains. Note that this function may fail if the input contains overlapping surfaces or gaps
between surfaces. Note also that this function is not capable of identifying Thin Wall surfaces, nor is it
capable of splitting discrete surfaces to satisfy topological constraints. If you suspect that your model may
contain ThinWall surfaces, or if you suspect that your model has discrete surfaces that may require
splitting, you should use CreateAllDomains2, instead. For example, if you have a single discrete surface
(imported from an STL file) that encloses multiple volumes, you should use CreateAllDomains2.
This option is also available through GGeometry.CreateAllDomains.
Back to Top
GMesh.CreateAllDomains2
Prototype
GMesh.CreateAllDomains2(surfaces_and_faces)
Description
445
CFD-GEOM V2014.0 User Manual
Create as many unstructured domains (and underlying shells) as possible from the input collection of
trimmed surfaces, faces, and discrete surfaces. If the input collection is empty, CFD-GEOM will attempt to
use all trimmed surfaces, faces, and discrete surfaces in the current model. Note that no shell may consist
of both discrete and non-discrete entities. Hence, CFD-GEOM will not attempt to create mixed
shells/domains. Note that this function may fail if the input contains overlapping surfaces or gaps
between surfaces. This function differs from CreateAllDomains in several key respects:
1) It is capable of identifying embedded surfaces and tagging them as Thin Wall surfaces.
2) Where necessary, it will split any discrete surfaces to satisfy topological constraints. This can be useful
if your model consists of a single discrete surface (e.g. imported from STL) that bounds more than 1
volume.
3) Though not required, it is highly recommended that you mesh all trimmed surfaces with the desired
meshing parameters before calling this function. The success of this function depends, to a certain extent,
on the quality of the surface meshes.
This option is also available through GGeometry.CreateAllDomains2.
Back to Top
GMesh.CreateShell
Prototype
GMesh.CreateShell(surfaces_and_faces)
Description
Create shells (formerly known as closed surface sets) from the input collection of surfaces and/or faces.
Note that if the input entities logically form more than one shell, this routine will return more than one
shell (the same behavior as in the GEOM GUI). Note that this routine can also handle discrete surfaces.
However, if the input contains any discrete surfaces, it must contain only discrete surfaces. Mixing
trimmed surfaces and faces is not currently supported.
This option is also available through GGeometry.CreateShell.
Back to Top
GMesh.CreateDomain
Prototype
GMesh.CreateDomain(shells)
Description
Create an unstructured domain from the input shells.
This option is also available through GGeometry.CreateDomain.
Back to Top
GMesh.AddBafflesToDomain
Prototype
GMesh.AddBafflesToDomain(domain, srfs)
Description
Add baffle surfaces to the specified domain. Note that this routine is currently used for testing only. Some
capabilities, such as the ability to output baffles to DTF is not currently supported. This will be remedied in
a future release.
446
CFD-GEOM Scripting
GMesh.RemoveBafflesFromDomain
Prototype
GMesh.RemoveBafflesFromDomain(domain, srfs)
Description
Remove baffles that were added via AddBafflesToDomain() from the specified domain.
GMesh.SetLocalSurfaceMeshType(surfaces, meshtypes)
GMesh.SetLocalTriangulateFaces(faces, value)
GMesh.SetGlobalUnstMeshSize(max_cell_size, min_cell_size)
GMesh.SetGlobalUnstTransitionFactor(tfactor)
GMesh.SetLocalUnstTransitionFactor(entities, tfactor)
GMesh.SetGlobalUnstMeshCurvatureOptions(adapt_to_curvature, max_angle=30)
GMesh.SetSurfaceThinwallOption(surfaces, value)
GMesh.SetGlobalTetPointPlacementOptions(placement_type, expansion_factor=1.1)
GMesh.SetGlobalTargetTetQuality(value)
GMesh.SetLocalTargetTetQuality(domains, value)
GMesh.SetLocalTetNodePerturbation(domains, onoff)
447
CFD-GEOM V2014.0 User Manual
GMesh.SetCornerPointSources(points, radii)
GMesh.RemoveSurfaceInteriorSources(srf, sources)
GMesh.RemoveDomainInteriorSources(domain, sources)
GMesh.DestroyUnstMeshes(ents)
GMesh.Generate3DHoneycombMeshes( )
GMesh.Generate2DHoneycombMeshes()
GMesh.DisableBoundaryLayerMeshing(shell)
GMesh.GloballyDisableBoundaryLayerMeshing( )
GMesh.SetSurfaceFaceBoundaryLayerStatus(surfaces_and_faces, enable)
EnableBoundaryLayerMeshingDomain
DisableBoundaryLayerMeshingDomain
448
CFD-GEOM Scripting
GMesh.SetGlobalSurfaceMeshType
Prototype
GMesh.SetGlobalSurfaceMeshType(meshtype)
Description
Make the specified surface mesh type the default for the current model. Valid mesh types are:
1 - triangular
2 - quad morphing (quad-dominant, will contain ~8% triangles)
3 - quad paving (all quad)
When meshing surfaces, this is the mesh type applied to all surfaces except those whose mesh type has
been specified locally by SetLocalSurfaceMeshType(). By default, all models have a surface mesh type of 1.
Back to Top
GMesh.SetLocalSurfaceMeshType
Prototype
GMesh.SetLocalSurfaceMeshType(surfaces, meshtypes)
Description
Set the surface mesh type on the specified trimmed surfaces. Note that meshtypes' length must equal
that of "surfaces" (exception: for scripting convenience, we allow this to contain exactly one value
regardless of the number of surfaces). Valid mesh types include:
0 - unspecified; when meshing the corresponding surface, the global mesh type will be used. Note that, by
default, every surface has an unspecified mesh type until set by SetLocalSurfaceMeshType()
1 - triangular
2 - quad morphing (quad-dominant, will contain ~8% triangles)
3 - quad paving (all quad)
Back to Top
GMesh.SetLocalTriangulateFaces
Prototype
GMesh.SetLocalTriangulateFaces(faces, value)
Description
Specify whether the selected structured faces should be triangulated during unstructured surface
meshing. By default, any structured faces that belong to a shell and unstructured domain will be
triangulated if passed through the unstructured surface mesher. You can turn this off for the selected
faces by specifying 0 (FALSE). You can also turn it back on by specifying a value of 1 (TRUE).
Note that when generating tetrahedral meshes in unstructured domains bounded by faces, tets will be
built off any triangulated faces and pyramids off any non-triangulated faces.
Back to Top
GMesh.SetGlobalUnstMeshSize
Prototype
GMesh.SetGlobalUnstMeshSize(max_cell_size, min_cell_size)
Description
449
CFD-GEOM V2014.0 User Manual
Specify the global maximum and minimum allowable cell sizes for line/curve, surface, and tetrahedral
meshing. Note that the specified minimum cell size may be overridden if the model contains geometric
features smaller than this value.
Back to Top
GMesh.SetLocalUnstMeshSize
Prototype
GMesh.SetLocalUnstMeshSize(entities, max_cell_size, min_cell_size)
Description
Specify the local maximum and minimum allowable cell sizes for the specified lines, curves, and/or
surfaces. Note that the specified minimum cell size may be overridden if the input entities contain
geometric features smaller than this value, or if it is smaller than the global minimum cell size.
Back to Top
GMesh.SetGlobalUnstTransitionFactor
Prototype
GMesh.SetGlobalUnstTransitionFactor(tfactor)
Description
Set the global transition factor for unstructured line/curve/surface meshing for the current model. This
controls the global mesh growth rate and the maximum allowable ratio between adjacent grid segments
and cells during curve and surface meshing. CFD-GEOM will attempt to honor this setting except where
overridden locally via SetLocalUnstTransitionFactor(). "tfactor" should generally be about 1.1 but any
value in the range [1.001, 2] is legal.
Note that this option has no effect if the global automatic mesh size option is set to 1 (TRUE).
Back to Top
GMesh.SetLocalUnstTransitionFactor
Prototype
GMesh.SetLocalUnstTransitionFactor(entities, tfactor)
Description
Set the local transition factor (for unstructured meshing) for the specified lines/curves/surfaces. This
influences the mesh growth rate on the lines and curves bounding any input surfaces, as well as the
maximum allowable ratio between adjacent segment lengths on those lines/curves and any other input
lines/curves. Where possible, CFD-GEOM will override the global setting with this setting when meshing
the specified entities.
Note that this option has no effect if the global automatic mesh size option is set to 1 (TRUE).
Back to Top
GMesh.SetGlobalUnstMeshCurvatureOptions
Prototype
GMesh.SetGlobalUnstMeshCurvatureOptions(adapt_to_curvature, max_angle=30)
Description
Specify the options controlling curvature resolution during unstructured line/curve/surface meshing.
"adapt_to_curvature", if 1 (TRUE), indicates that curve/surface curvature should be taken into account
450
CFD-GEOM Scripting
when meshing; and "max_angle" specifies the maximum allowable angular deviation between adjacent
grid segments/cells. If "adapt_to_curvature" is 0 (FALSE), "max_angle" is ignored.
Back to Top
GMesh.SetSurfaceThinwallOption
Prototype
GMesh.SetSurfaceThinwallOption(surfaces, value)
Description
Enable/Disable thinwall post-processing on specific surfaces. If set to 1 (TRUE) for any surfaces, then when
you mesh those surfaces, their meshes will be made suitable for thinwall boundary assignment in the
CFD-ACE solver. Thinwall post-processing can adversely affect mesh quality, so you should use this option
only if necessary.
Back to Top
GMesh.SetGlobalTetPointPlacementOptions
Prototype
GMesh.SetGlobalTetPointPlacementOptions(placement_type, expansion_factor=1.1)
Description
Specify the point placement strategy used when generating tetrahedral meshes in unstructured domains
in the current model. Valid placement types are:
1 - the default strategy. CFD-GEOM will attempt to increase cell sizes away from the boundary
triangulations and towards the interior of the domain(s). The rate of expansion is governed by the
expansion factor (which must be in the range [1,3]).
2 - linear progression. CFD-GEOM will try to linearly interpolate cell sizes between domain boundaries.
This option is often more suitable when growing tets between surface triangulations of significantly
varying mesh densities. This option normally produces more cells than does the default strategy. Note
that the expansion factor is ignored when using the linear progression option.
Note that this setting can be overridden for selected domains via SetLocalTetPointPlacementOptions().
Back to Top
GMesh.SetLocalTetPointPlacementOptions
Prototype
GMesh.SetLocalTetPointPlacementOptions(domains, placement_type, expansion_factor)
Back to Top
GMesh.SetGlobalTargetTetQuality
Prototype
GMesh.SetGlobalTargetTetQuality(value)
Back to Top
451
CFD-GEOM V2014.0 User Manual
GMesh.SetLocalTargetTetQuality
Prototype
GMesh.SetLocalTargetTetQuality(domains, value)
Back to Top
GMesh.SetLocalTetNodePerturbation
Prototype
GMesh.SetLocalTetNodePerturbation(domains, onoff)
Back to Top
GMesh.MeshLinesAndCurves
Prototype
GMesh.MeshLinesAndCurves(ents, adapt_to_curvature, max_angle, transition_factor, max_cell_size,
min_cell_size, override_local_settings, force_remesh)
Description
Generate curvilinear meshes on the input lines/curves.
Back to Top
GMesh.MeshSurfaces
Prototype
GMesh.MeshSurfaces(ents, mesh_type, adapt_to_curvature, max_angle, transition_factor,
max_cell_size, min_cell_size, override_local_settings, remesh_curves, force_remesh_curves,
force_remesh_surfaces)
Description
Generate triangular or quad meshes on the input surfaces.
Back to Top
GMesh.GenerateTetMeshes
Prototype
GMesh.GenerateTetMeshes(domains, use_background_mesh, max_cell_size, min_cell_size,
transition_factor, point_placement, expansion_factor, grid_quality, remesh_curves,
force_remesh_curves, remesh_surfaces, force_remesh_surfaces)
Description
Generate tet meshes in the specified domains.
Back to Top
GMesh.CreateBoxSource
Prototype
CreateBoxSource(start_x, start_y, start_z, end_x, end_y, end_z, cell_size)
Description
Create a box source for triangular and/or tetrahedral meshing. A box source is used to refine the
mesh within an imaginary 3-D box aligned with the X, Y, and Z axes. The box is defined by
452
CFD-GEOM Scripting
GMesh.EditBoxSource
Prototype
EditBoxSource(source, start_x, start_y, start_z, end_x, end_y, end_z, cell_size)
Description
Modify the settings on an existing tetrahedral box source. The box is defined by
start_x, start_y, start_z: the coordinates of one corner of the box.
end_x, end_y, end_z: the coordinates of the opposite corner.
cell_size: This real value specifies the requested cell size inside the box.
Back to Top
GMesh.CreateSphereSource
Prototype
CreateSphereSource(center_x, center_y, center_z, radius, cell_size)
Description
Create a sphere source for triangular and/or tetrahedral meshing. A sphere source is used to
refine the mesh within a given distance from a central point. The sphere is defined by
center_x, center_y, center_z: the coordinates of the center of the sphere.
radius: The radius of the sphere. This value must be greater than 0.
cell_size: This real value specifies the requested cell size inside the sphere.
This function returns a handle to the new source.
Back to Top
GMesh.EditSphereSource
Prototype
EditSphereSource(source, center_x, center_y, center_z, radius, cell_size)
Description
Modify the settings on an existing triangular/tetrahedral sphere source. The sphere is defined by
center_x, center_y, center_z: the coordinates of the center of the sphere.
radius: The radius of the sphere. This value must be greater than 0.
cell_size: This real value specifies the requested cell size inside the sphere.
Back to Top
GMesh.CreateCylinderSource
Prototype
453
CFD-GEOM V2014.0 User Manual
GMesh.EditCylinderSource
Prototype
EditCylinderSource(source,bottom_center_x, bottom_center_y, bottom_center_z,axis_dx,
axis_dy, axis_dz, axis_length, inner_radius, outer_radius,cell_size)
Description
Modify the settings on an existing Cartesian triangular/tetrahedral source. The cylinder is defined
by
bottom_center_x, bottom_center_y, bottom_center_z: the coordinates of the bottom center of
the cylinder.
axis_dx, axis_dy, axis_dz: vector specifying the direction of the cylinder axis.
axis_length: the length of the cylinder. Note that, if the vector specifying the cylinder axis
direction is normalized, axis_length will be the actual length of the cylinder. If not, the actual
cylinder length will be the axis_length multiplied by the length of the direction vector.
inner_radius: the inner radius of the cylindrical region. This may be 0, and must be less than the
outer_radius.
outer_radius: the outer radius of the cylindrial region. This must be greater than the inner radius.
cell_size: This real value specifies the requested cell size inside the cylinder.
Back to Top
GMesh.SetCornerPointSources
Prototype
GMesh.SetCornerPointSources(points, radii)
Description
Set corner point sources for unstructured meshing. A corner point is a point shared by 2 or more
lines/curves, which are themselves assumed to have been used in the construction of surfaces. The radius
values assigned to corner points influence mesh size in the vicinity of the point during
454
CFD-GEOM Scripting
line/curve/surface/tet meshing. "radii" can be specified in 2 ways. If a single floating point number is
specified, that value will be applied to all input points. If a list of floating point numbers is specified, each
value will be applied to the corresponding point. This allows you to simultaneously specify different radii
for 2 or more points. This requires that the number of radii equal the number of points. Note that a value
of 0 essentially "unsets" the source. In other words, a point with a 0 radius will not be treated as a source
during subsequent meshing.
Back to Top
GMesh.AddModifySurfaceInteriorSources
Prototype
GMesh.AddModifySurfaceInteriorSources(srf, sources, radii)
Description
Assign interior sources to a surface for unstructured surface meshing. These sources can be used to
influence mesh spacings in the surface interior in the vicinity of the sources. Sources can be points, edges,
composite edges, and/or faces. A point's radius value can be 0 or greater (a value of 0 "unsets" the
source). The radius value for edges and faces is ignored. Instead, the grid points on these entities are
treated as source points whose radius values are derived based on their distance from adjacent grid
points.
"radii" can be specified in 2 ways. If a single floating point number is specified, that value will be applied
to all input points. If a list of floating point numbers is specified, each value will be applied to the
corresponding entity (if a point). This allows you to simultaneously specify different radii for 2 or more
points. The number of radii must equal the number of entities. For edge and face sources, you should
specify a radius of 0.
Back to Top
GMesh.RemoveSurfaceInteriorSources
Prototype
GMesh.RemoveSurfaceInteriorSources(srf, sources)
Description
Remove (i.e. unset) sources added to a surface via AddModifySurfaceInteriorSources(). Any entities in
"sources" that are not sources for the surface are ignored.
Back to Top
GMesh.AddModifyDomainInteriorSources
Prototype
GMesh.AddModifyDomainInteriorSources(domain, sources, radii)
Description
Assign interior sources to a domain for tet meshing. These sources can be used to influence mesh
spacings in the domain interior in the vicinity of the sources. Sources can be points, edges, composite
edges, faces, and/or blocks. A point's radius value can be 0 or greater (a value of 0 "unsets" the source).
The radius value for edges, faces, and blocks is ignored. Instead, the grid points on these entities are
treated as source points whose radius values are derived based on their distance from adjacent grid
points.
"radii" can be specified in 2 ways. If a single floating point number is specified, that value will be applied
to all input points. If a list of floating point numbers is specified, each value will be applied to the
corresponding entity (if a point). This allows you to simultaneously specify different radii for 2 or more
455
CFD-GEOM V2014.0 User Manual
points. The number of radii must equal the number of entities. For edge, face, and block sources, you
should specify a radius of 0.
Back to Top
GMesh.RemoveDomainInteriorSources
Prototype
GMesh.RemoveDomainInteriorSources(domain, sources)
Description
Remove (i.e. unset) sources added to a domain via AddModifyDomainInteriorSources(). Any entities in
"sources" that are not sources for the domain are ignored.
Back to Top
GMesh.DestroyUnstMeshes
Prototype
GMesh.DestroyUnstMeshes(ents)
Description
Delete the unstructured meshes on the specified surfaces and faces.
Back to Top
GMesh.Generate3DHoneycombMeshes
Prototype
GMesh.Generate3DHoneycombMeshes()
Description
Generate 3-D honeycomb meshes on the current model. Note the following restrictions:
1) The model must contain at least one unstructured domain, and all unstructured domains must contain
tetrahedral meshes.
2) No unstructured domain may share a surface or face with a semi-structured or structured domain.
These limitations will be removed in a future release.
Back to Top
GMesh.Generate2DHoneycombMeshes
Prototype
GMesh.Generate2DHoneycombMeshes()
Description
Generate 2-D honeycomb meshes on all trimmed surfaces in the current model. Note the following
restrictions:
1) The model must contain at least one trimmed surface, and all trimmed surfaces must have triangular
meshes.
2) All surfaces must lie in a constant Z plane.
3) No surface may share an Edge entity with a Face entity
These limitations will be removed in a future release.
456
CFD-GEOM Scripting
Back to Top
GMesh.EnableBoundaryLayerMeshing
Prototype
GMesh.EnableBoundaryLayerMeshing(shell, num_layers, initial_thickness, growth_rate, local_growth = 0,
local_area_factor = .1)
Description
Enable boundary layer meshing for the specified shell. This function provides the second of 3 settings that
collectively determine whether or not boundary layers will be generated off a particular side of a surface.
To generate boundary layers from a particular side of a surface, three conditions/settings must be
satisfied:
1) Boundary layer meshing must have been enabled for the surface. See
SetSurfaceFaceBoundaryLayerStatus(), which can be used to enable or disable boundary layer meshing for
a surface. By default, boundary layer meshing is enabled for all surfaces. Unless you specifically want to
disable boundary layer meshing for a surface, no action should be required here. If boundary layers have
been disabled for a surface, boundary layers will not be generated from that surface regardless of the
next 2 settings. The following 2 settings control which side(s) of a surface should have boundary layers.
2) Boundary layer meshing must have been enabled for the shell(s) that use the surface. See
EnableBoundaryLayerMeshing(). For example, if a surface is shared by 2 adjacent shells "shell1" and
"shell2", and you want to grow a boundary layer from the surface into shell1, but not shell2, you would
enable boundary layer meshing for shell1 and disable it for shell2. Note that, by default, boundary layer
meshing is disabled for shells. See also DisableBoundaryLayerMeshing() for manually disabling boundary
layer meshing on a shell.
3) Boundary layers must be enabled for the domain(s) that own a shell that has been enabled for
boundary layers. For example, suppose that you have a shell that is shared by 2 domains, where the shell
forms a void in domain1 and is the outer boundary of domain2. Now suppose that you want to grow
boundary layers into domain1 but not domain2. Here, you would enable boundary layer meshing for
domain1 (see EnableBoundaryLayerMeshingDomain() and disable it for domain2 (see
DisableBoundaryLayerMeshingDomain()). By default, boundary layers are enabled for domains.
Note that this function does not actually generate the boundary layer meshes. You will need to run
GenerateTetMeshes(), which will generate the boundary layers during tetrahedral meshing based on the
current boundary layer settings. Additional arguments include: num_layers: an integer indicating the
number of boundary layers to generate from each surface. This must be at least 1.
initial_thickness: a real number indicating the absolute initial layer thickness. This must be >0. However,
see local_growth and local_area_factor below.
growth_rate: a real number indicating the ratio between the thickness of each layer and that of the
previous layer. This must be >0. If less than 1, boundary layers will become thinner with each successive
layer.
local_growth: if 1, then instead of using the absolute initial thickness specified above, the first layer
thickness will be based on local surface mesh size (see local_area_factor below).
local_area_factor: if local_growth is 1, then this multiplicative factor is applied to the local surface cell size
to obtain the local first layer thickness.
Back to Top
GMesh.DisableBoundaryLayerMeshing
Prototype
457
CFD-GEOM V2014.0 User Manual
GMesh.DisableBoundaryLayerMeshing(shell)
Description
Disable boundary layer meshing for the specified shell. This implies that no boundary layers will be
generated off any surfaces/faces in the shell and overrides any local setting made via
SetSurfaceFaceBoundaryLayerStatus(). This setting will take effect when you next run
GenerateTetMeshes(). For more information on controlling where boundary layers are to be generated,
see EnableBoundaryLayerMeshing().
Back to Top
GMesh.GloballyEnableBoundaryLayerMeshing
Prototype
GMesh.GloballyEnableBoundaryLayerMeshing( num_layers, initial_thickness, growth_rate, local_growth
0, local_area_factor = .1)
Description
Enable boundary layer meshing for all shells in the current model. This implies that boundary layers will
be grown off all surfaces/faces in the shells (where possible) except where disabled via
SetSurfaceFaceBoundaryLayerStatus() or DisableBoundaryLayerMeshingDomain(). This function is
equivalent to calling EnableBoundaryLayerMeshing() on all shells individually. For more information on
controlling where boundary layers are to be generated, see that function.
Arguments include:
num_layers: an integer indicating the number of boundary layers to generate from each surface. This
must be at least 1.
initial_thickness: a real number indicating the absolute initial layer thickness. This must be >0. However,
see local_growth and local_area_factor below.
growth_rate: a real number indicating the ratio between the thickness of each layer and that of the
previous layer. This must be >0. If less than 1, boundary layers will become thinner with each successive
layer.
local_growth: if 1, then instead of using the absolute initial thickness specified above, the first layer
thickness will be based on local surface mesh size (see local_area_factor below).
local_area_factor: if local_growth is 1, then this multiplicative factor is applied to the local surface cell size
to obtain the local first layer thickness.
This setting will take effect when you next run GenerateTetMeshes().
Back to Top
GMesh.GloballyDisableBoundaryLayerMeshing
Prototype
GMesh.GloballyDisableBoundaryLayerMeshing( )
Description
Disable boundary layer meshing for all shells in the current model. This implies that no boundary layers
will be generated off any surfaces/faces in all shells and overrides any local setting made via
SetSurfaceFaceBoundaryLayerStatus(). It is equivalent to calling DisableBoundaryLayerMeshing() on the
shells individually. For more information on controlling where boundary layers are to be generated, see
EnableBoundaryLayerMeshing().
This setting will take effect when you next run GenerateTetMeshes().
Back to Top
458
CFD-GEOM Scripting
GMesh.SetSurfaceFaceBoundaryLayerStatus
Prototype
GMesh.SetSurfaceFaceBoundaryLayerStatus(surfaces_and_faces, enable)
Description
Enable/Disable boundary layer meshing off the specified surfaces and/ or faces. Note that enabling
boundary meshing for a surface/face has no effect if it hasn't also been enabled for the shell(s) and
domain(s) constructed from it. For more information on controlling where boundary layers are to be
generated, see EnableBoundaryLayerMeshing().
"enable" is an integer, which if 0 (FALSE), disables boundary layer meshing. A value of 1 (TRUE) enables it.
This setting will take effect when you next run GenerateTetMeshes().
I
Back to Top
Prototype
Description
I
Back to Top
EnableBoundaryLayerMeshingDomain
Prototype
EnableBoundaryLayerMeshingDomain( domain )
Description
Enable boundary layer meshing for the specified domain. Boundary layers are enabled for the domain but
the final setting also includes the settings on the underlying shells and surfaces. For more information on
controlling where boundary layers are to be generated, see EnableBoundaryLayerMeshing().
This setting will take effect when you next run GenerateTetMeshes().
I
Back to Top
DisableBoundaryLayerMeshingDomain
Prototype
DisableBoundaryLayerMeshingDomain( domain )
Description
Disable boundary layer meshing for the specified domain. This implies that, regardless of the settings on
the shells and surfaces of this domain, no boundary layer meshing will take place inside the domain. For
more information on controlling where boundary layers are to be generated, see
EnableBoundaryLayerMeshing().
This setting will take effect when you next run GenerateTetMeshes().
I
459
CFD-GEOM V2014.0 User Manual
Back to Top
GMesh.CreateRevolvedVolumeGrids(profile_entities, sx, sy, sz, dx, dy, dz, angle, num_grid_points, numtimes,
create_multiple_blocks, link_revolved_edges, link_rotated_edges)
460
CFD-GEOM Scripting
GMesh.CreateExtrudedVolumeGrids
Prototype
GMesh.CreateExtrudedVolumeGrids(profile_entities, dx, dy, dz, distance_multiplier, num_grid_points,
numtimes, create_multiple_blocks, link_extrusion_edges, link_translated_edges)
Description
Create blocks and/or semi-structured domains by extruding profile faces and/or meshed surfaces in a
direction specified by a vector. Note that the vector (dx, dy, dz) is not normalized by this routine. Hence,
the total extrusion distances in X, Y, and Z are dx*distance_multiplier, dy*distance_multiplier, and
dz*distance_multipler. "numtimes", which must be at least 1, specifies the number of layers of entities to
generate. "num_grid_points", which must be at least 2, specifies the number of grid points (running in the
extrusion direction) to use in each layer.
Ordinarily, "create_multiple_blocks" should be 1 (TRUE), and it is ignored if less than 2 profile faces are
specified. However, if 0 (FALSE), and if 2 or more profile faces are specified, CFD-GEOM will construct a
single block in each layer. This will fail if the input faces do not form a logical IJ topology.
"link_extrusion_edges", if 1 (TRUE), will cause the creation of an edge linking group in each layer. This
group will consist of all edges running in the extrusion direction (except for any pre-existing edges). The
master edge of each group is chosen arbitrarily.
"link_translated_edges", if 1 (TRUE), causes the creation of edge linking groups from the translated edges.
Let's define the profile edges as those that bound the input profile surfaces and faces. During the
extrusion, CFD-GEOM creates translated copies of each profile edge. If you elect to link translated edges,
an edge linking group will be created from each profile edge and the edges derived from it. Any pre-
existing edges will not be added. Each profile edge will become the master of its edge linking group.
Note If any input surfaces are bound by lines/curves rather than edges, then edges will be constructed on
those lines/curves and substituted into the surface definitions. This is necessary to establish proper
connectivity between the surfaces and the faces generated in the extrusion direction. This is a necessary
condition for the construction of semi-structured domains.
Back to Top
GMesh.CreateExtrudedVolumeGridsAlongEdges
Prototype
GMesh.CreateExtrudedVolumeGridsAlongEdges(profile_entities, path_edges, numtimes,
create_multiple_blocks, link_extrusion_edges, link_translated_edges)
Description
Create blocks and/or semi-structured domains by extruding profile faces and/or meshed surfaces along a
set of one or more path edges. The direction, distance, and number of grid points is implied by the path
edges. Note that the path edges must form a non-closed, connected set. Moreover, one of the path edge
set endpoints must also be a corner point of at least one profile face/surface. "numtimes", which must be
at least 1, specifies the number of layers of entities to generate. The total number of layers will be
numtimes multiplied by the number of path edges.
Ordinarily, "create_multiple_blocks" should be 1 (TRUE), and it is ignored if less than 2 profile faces are
specified. However, if 0 (FALSE), and if 2 or more profile faces are specified, CFD-GEOM will construct a
single block in each layer. This will fail if the input faces do not form a logical IJ topology.
461
CFD-GEOM V2014.0 User Manual
"link_extrusion_edges", if 1 (TRUE), will cause the creation of an edge linking group in each layer. This
group will consist of all edges running in the extrusion direction (except for any pre-existing edges). The
master edge of each group will usually be the path edge in that layer. However, if a path edge is a
composite edge, no edge linking group will be created in that layer.
"link_translated_edges", if 1 (TRUE), causes the creation of edge linking groups from the translated edges.
Let's define the profile edges as those that bound the input profile surfaces and faces. During the
extrusion, CFD-GEOM creates translated copies of each profile edge. If you elect to link translated edges,
an edge linking group will be created from each profile edge and the edges derived from it. Any pre-
existing edges will not be added. Each profile edge will become the master of its edge linking group.
Note If any input surfaces are bound by lines/curves rather than edges, then edges will be constructed on
those lines/curves and substituted into the surface definitions. This is necessary to establish proper
connectivity between the surfaces and the faces generated in the extrusion direction. This is a necessary
condition for the construction of semi-structured domains.
Back to Top
GMesh.CreateExtrudedVolumeGridsAlongLines
Prototype
GMesh.CreateExtrudedVolumeGridsAlongLines(profile_entities, path_lines, num_grid_points, numtimes,
create_multiple_blocks, link_extrusion_edges, link_translated_edges)
Description
Create blocks and/or semi-structured domains by extruding profile faces and/or meshed surfaces along a
set of one or more path lines. The direction and distance is implied by the path lines. Note that the lines
must form a non-closed, connected set. Moreover, one of the line set endpoints must also be a corner
point of at least one profile face/ surface. "numtimes", which must be at least 1, specifies the number of
layers of entities to generate. The total number of layers will be numtimes multiplied by the number of
path lines. "num_grid_points", which must be at least 2, specifies the number of grid points (running in
the extrusion direction) to use in each layer.
Ordinarily, "create_multiple_blocks" should be 1 (TRUE), and it is ignored if less than 2 profile faces are
specified. However, if 0 (FALSE), and if 2 or more profile faces are specified, CFD-GEOM will construct a
single block in each layer. This will fail if the input faces do not form a logical IJ topology.
"link_extrusion_edges", if 1 (TRUE), will cause the creation of an edge linking group in each layer. This
group will consist of all edges running in the extrusion direction (except for any pre-existing edges). The
master edge of each group is chosen arbitrarily.
"link_translated_edges", if 1 (TRUE), causes the creation of edge linking groups from the translated edges.
Let's define the profile edges as those that bound the input profile surfaces and faces. During the
extrusion, CFD-GEOM creates translated copies of each profile edge. If you elect to link translated edges,
an edge linking group will be created from each profile edge and the edges derived from it. Any pre-
existing edges will not be added. Each profile edge will become the master of its edge linking group.
Note If any input surfaces are bound by lines/curves rather than edges, then edges will be constructed on
those lines/curves and substituted into the surface definitions. This is necessary to establish proper
connectivity between the surfaces and the faces generated in the extrusion direction. This is a necessary
condition for the construction of semi-structured domains.
Back to Top
GMesh.CreateExtrudedVolumeGridsAlongPoints
Prototype
462
CFD-GEOM Scripting
GMesh.CreateRevolvedVolumeGrids
Prototype
GMesh.CreateRevolvedVolumeGrids(profile_entities, sx, sy, sz, dx, dy, dz, angle, num_grid_points,
numtimes, create_multiple_blocks, link_revolved_edges, link_rotated_edges)
Description
Create blocks and/or semi-structured domains by revolving profile faces and/or meshed surfaces about an
axis defined by a set of start point coordinates and a vector. The input angle is assumed to be in degrees.
"numtimes", which must be at least 1, specifies the number of layers of entities to generate.
"num_grid_points", which must be at least 2, specifies the number of grid points (running in the
revolution direction) to use in each layer.
Ordinarily, "create_multiple_blocks" should be 1 (TRUE), and it is ignored if less than 2 profile faces are
specified. However, if 0 (FALSE), and if 2 or more profile faces are specified, CFD-GEOM will construct a
single block in each layer. This will fail if the input faces do not form a logical IJ topology.
"link_revolved_edges", if 1 (TRUE), will cause the creation of an edge linking group in each layer. This
group will consist of all edges running in the revolution direction (except for any pre-existing edges). The
master edge of each group is chosen arbitrarily.
"link_rotated_edges", if 1 (TRUE), causes the creation of edge linking groups from the rotated edges. Let's
define the profile edges as those that bound the input profile surfaces and faces. During the revolution,
CFD-GEOM creates rotated copies of each profile edge. If you elect to link rotated edges, an edge linking
group will be created from each profile edge and the edges derived from it. Any pre-existing edges will
not be added. Each profile edge will become the master of its edge linking group.
463
CFD-GEOM V2014.0 User Manual
Note If any input surfaces are bound by lines/curves rather than edges, then edges will be constructed on
those lines/curves and substituted into the surface definitions. This is necessary to establish proper
connectivity between the surfaces and the faces generated in the revolution direction. This is a necessary
condition for the construction of semi-structured domains.
Back to Top
GMesh.CreateRevolvedVolumeGridsAboutLine
Prototype
GMesh.CreateRevolvedVolumeGridsAboutLine(profile_entities, line, angle, num_grid_points, numtimes,
create_multiple_blocks, link_revolved_edges, link_rotated_edges)
Description
Create blocks and/or semi-structured domains by revolving profile faces and/or meshed surfaces about an
axis defined by a line entity. The input angle is assumed to be in degrees.
"numtimes", which must be at least 1, specifies the number of layers of entities to generate.
"num_grid_points", which must be at least 2, specifies the number of grid points (running in the
revolution direction) to use in each layer.
Ordinarily, "create_multiple_blocks" should be 1 (TRUE), and it is ignored if less than 2 profile faces are
specified. However, if 0 (FALSE), and if 2 or more profile faces are specified, CFD-GEOM will construct a
single block in each layer. This will fail if the input faces do not form a logical IJ topology.
"link_revolved_edges", if 1 (TRUE), will cause the creation of an edge linking group in each layer. This
group will consist of all edges running in the revolution direction (except for any pre-existing edges). The
master edge of each group is chosen arbitrarily.
"link_rotated_edges", if 1 (TRUE), causes the creation of edge linking groups from the rotated edges. Let's
define the profile edges as those that bound the input profile surfaces and faces. During the revolution,
CFD-GEOM creates rotated copies of each profile edge. If you elect to link rotated edges, an edge linking
group will be created from each profile edge and the edges derived from it. Any pre-existing edges will
not be added. Each profile edge will become the master of its edge linking group.
Note If any input surfaces are bound by lines/curves rather than edges, then edges will be constructed on
those lines/curves and substituted into the surface definitions. This is necessary to establish proper
connectivity between the surfaces and the faces generated in the revolution direction. This is a necessary
condition for the construction of semi-structured domains.
Back to Top
GMesh.CreateRevolvedVolumeGridsAboutPoints
Prototype
GMesh.CreateRevolvedVolumeGridsAboutPoints(profile_entities, spt, ept, angle, num_grid_points,
numtimes, create_multiple_blocks, link_revolved_edges, link_rotated_edges)
Description
Create blocks and/or semi-structured domains by revolving profile faces and/or meshed surfaces about an
axis defined by 2 point entities. The input angle is assumed to be in degrees.
"numtimes", which must be at least 1, specifies the number of layers of entities to generate.
"num_grid_points", which must be at least 2, specifies the number of grid points (running in the
revolution direction) to use in each layer.
Ordinarily, "create_multiple_blocks" should be 1 (TRUE), and it is ignored if less than 2 profile faces are
specified. However, if 0 (FALSE), and if 2 or more profile faces are specified, CFD-GEOM will construct a
single block in each layer. This will fail if the input faces do not form a logical IJ topology.
464
CFD-GEOM Scripting
"link_revolved_edges", if 1 (TRUE), will cause the creation of an edge linking group in each layer. This
group will consist of all edges running in the revolution direction (except for any pre-existing edges). The
master edge of each group is chosen arbitrarily.
"link_rotated_edges", if 1 (TRUE), causes the creation of edge linking groups from the rotated edges. Let's
define the profile edges as those that bound the input profile surfaces and faces. During the revolution,
CFD-GEOM creates rotated copies of each profile edge. If you elect to link rotated edges, an edge linking
group will be created from each profile edge and the edges derived from it. Any pre-existing edges will
not be added. Each profile edge will become the master of its edge linking group.
Note If any input surfaces are bound by lines/curves rather than edges, then edges will be constructed on
those lines/curves and substituted into the surface definitions. This is necessary to establish proper
connectivity between the surfaces and the faces generated in the revolution direction. This is a necessary
condition for the construction of semi-structured domains.
Back to Top
GMesh.CreateRevolvedVolumeGridsAbout3Points
Prototype
GMesh.CreateRevolvedVolumeGridsAbout3Points(profile_entities, cpt, spt, ept, num_grid_points,
numtimes, create_multiple_blocks, link_revolved_edges, link_rotated_edges)
Description
Create blocks and/or semi-structured domains by revolving profile faces and/or meshed surfaces about an
axis defined by 3 point entities. cpt represents a point on the rotation axis. The axis direction is defined by
the normal to the plane containing cpt, spt, and ept. The angle is implied by the angle between the
vectors cpt->spt and cpt->ept.
"numtimes", which must be at least 1, specifies the number of layers of entities to generate.
"num_grid_points", which must be at least 2, specifies the number of grid points (running in the
revolution direction) to use in each layer.
Ordinarily, "create_multiple_blocks" should be 1 (TRUE), and it is ignored if less than 2 profile faces are
specified. However, if 0 (FALSE), and if 2 or more profile faces are specified, CFD-GEOM will construct a
single block in each layer. This will fail if the input faces do not form a logical IJ topology.
"link_revolved_edges", if 1 (TRUE), will cause the creation of an edge linking group in each layer. This
group will consist of all edges running in the revolution direction (except for any pre-existing edges). The
master edge of each group is chosen arbitrarily.
"link_rotated_edges", if 1 (TRUE), causes the creation of edge linking groups from the rotated edges. Let's
define the profile edges as those that bound the input profile surfaces and faces. During the revolution,
CFD-GEOM creates rotated copies of each profile edge. If you elect to link rotated edges, an edge linking
group will be created from each profile edge and the edges derived from it. Any pre-existing edges will
not be added. Each profile edge will become the master of its edge linking group.
Note If any input surfaces are bound by lines/curves rather than edges, then edges will be constructed on
those lines/curves and substituted into the surface definitions. This is necessary to establish proper
connectivity between the surfaces and the faces generated in the revolution direction. This is a necessary
condition for the construction of semi-structured domains.
Back to Top
GMesh.CreateRevolvedVolumeGridsAboutPointAndVector
Prototype
465
CFD-GEOM V2014.0 User Manual
GMesh.CreateSweptVolumeGrids
Prototype
GMesh.CreateSweptVolumeGrids(profile_ents, path_crvs, use_fixed_orientation, reverse, scaling,
numpts, nsections, projection_type, create_multiple_blocks, link_swept_edges, link_opposite_edges)
Description
Create structured domains (i.e. blocks) and/or semi-structured domains by sweeping profile faces and/or
meshed surfaces along a set of path curves.
Back to Top
GMesh.CreateSweptVolumeGridsWithTwistVector
Prototype
GMesh.CreateSweptVolumeGridsWithTwistVector(profile_ents, path_crvs, use_fixed_orientation, dx, dy,
dz, reverse, scaling, numpts, nsections, projection_type, create_multiple_blocks, link_swept_edges,
link_opposite_edges)
Description
Create structured domains (i.e. blocks) and/or semi-structured domains by sweeping profile faces and/or
meshed surfaces along a set of path curves.
Back to Top
466
CFD-GEOM Scripting
GMesh.CreateAxiallyExtrudedVolumeGrids
Prototype
GMesh.CreateAxiallyExtrudedVolumeGrids(profile_entities, sx, sy, sz, dx, dy, dz, scale, num_grid_points,
numtimes, create_multiple_blocks, link_extruded_edges, link_scaled_edges)
Description
Create structured domains (i.e. blocks) and/or semi-structured domains by axially extruding profile faces
and/or meshed surfaces about an axis defined by a set of start point coordinates and a vector. Additional
arguments include:
scale: the scale factor. This factor must be greater than 0. You should avoid specifying values close to 0
and 1 (how close depends upon the scale of your model).
num_grid_points: the number of grid points to use on each edge radiating away from the axis. Must be at
least 2.
numtimes: the number of layers of entities to generate. This must be at least 1.
create_multiple_blocks: ordinarily this should be 1 (TRUE), and it is ignored if less than 2 profile faces are
specified. However, if 0 (FALSE), and if 2 or more profile faces are specified, CFD-GEOM will construct a
single block in each layer of entities. This will fail if the input faces do not form a logical (or supported) IJ
topology.
link_extruded_edges: if 1 (TRUE), will cause the creation of an edge linking group in each layer. This group
will consist of all edges radiating away from the extrusion axis (except for any pre-existing edges). The
master edge of each group is chosen arbitrarily.
link_scaled_edges: if 1 (TRUE), causes the creation of edge linking groups from the scaled edges. Let's
define the profile edges as those that bound the input profile surfaces and faces. During the extrusion,
CFD-GEOM creates scaled copies of each profile edge. If you elect to link scaled edges, an edge linking
group will be created from each profile edge and the edges derived from it. Any pre-existing edges will
not be added. Each profile edge will become the master of its edge linking group.
Note If any input surfaces are bound by lines/curves rather than edges, then edges will be constructed on
those lines/curves and substituted into the surface definitions. This is necessary to establish proper
connectivity between the surfaces and the faces radiating away from the extrusion axis. This is a necessary
condition for the construction of semi-structured domains.
Back to Top
GMesh.CreateAxiallyExtrudedVolumeGridsAboutLine
Prototype
GMesh.CreateAxiallyExtrudedVolumeGridsAboutLine(profile_entities, line, scale, num_grid_points,
numtimes, create_multiple_blocks, link_extruded_edges, link_scaled_edges)
Description
Create structured domains (i.e. blocks) and/or semi-structured domains by axially extruding profile faces
and/or meshed surfaces about an axis defined by a line entity.
scale: the scale factor. This factor must be greater than 0. You should avoid specifying values close to 0
and 1 (how close depends upon the scale of your model).
num_grid_points: the number of grid points to use on each edge radiating away from the axis. Must be at
least 2.
numtimes: the number of layers of entities to generate. This must be at least 1.
create_multiple_blocks: ordinarily this should be 1 (TRUE), and it is ignored if less than 2 profile faces are
specified. However, if 0 (FALSE), and if 2 or more profile faces are specified, CFD-GEOM will construct a
467
CFD-GEOM V2014.0 User Manual
single block in each layer of entities. This will fail if the input faces do not form a logical (or supported) IJ
topology.
link_extruded_edges: if 1 (TRUE), will cause the creation of an edge linking group in each layer. This group
will consist of all edges radiating away from the extrusion axis (except for any pre-existing edges). The
master edge of each group is chosen arbitrarily.
link_scaled_edges: if 1 (TRUE), causes the creation of edge linking groups from the scaled edges. Let's
define the profile edges as those that bound the input profile surfaces and faces. During the extrusion,
CFD-GEOM creates scaled copies of each profile edge. If you elect to link scaled edges, an edge linking
group will be created from each profile edge and the edges derived from it. Any pre-existing edges will
not be added. Each profile edge will become the master of its edge linking group.
Note If any input surfaces are bound by lines/curves rather than edges, then edges will be constructed on
those lines/curves and substituted into the surface definitions. This is necessary to establish proper
connectivity between the surfaces and the faces radiating away from the extrusion axis. This is a necessary
condition for the construction of semi-structured domains.
Back to Top
GMesh.CreateAxiallyExtrudedVolumeGridsAboutPoints
Prototype
GMesh.CreateAxiallyExtrudedVolumeGridsAboutPoints(profile_entities, spt, ept, scale, num_grid_points,
numtimes, create_multiple_blocks, link_extruded_edges, link_scaled_edges)
Description
Create structured domains (i.e. blocks) and/or semi-structured domains by axially extruding profile faces
and/or meshed surfaces about an axis defined by 2 point entities.
scale: the scale factor. This factor must be greater than 0. You should avoid specifying values close to 0
and 1 (how close depends upon the scale of your model).
num_grid_points: the number of grid points to use on each edge radiating away from the axis. Must be at
least 2.
numtimes: the number of layers of entities to generate. This must be at least 1.
create_multiple_blocks: ordinarily this should be 1 (TRUE), and it is ignored if less than 2 profile faces are
specified. However, if 0 (FALSE), and if 2 or more profile faces are specified, CFD-GEOM will construct a
single block in each layer of entities. This will fail if the input faces do not form a logical (or supported) IJ
topology.
link_extruded_edges: if 1 (TRUE), will cause the creation of an edge linking group in each layer. This group
will consist of all edges radiating away from the extrusion axis (except for any pre-existing edges). The
master edge of each group is chosen arbitrarily.
link_scaled_edges: if 1 (TRUE), causes the creation of edge linking groups from the scaled edges. Let's
define the profile edges as those that bound the input profile surfaces and faces. During the extrusion,
CFD-GEOM creates scaled copies of each profile edge. If you elect to link scaled edges, an edge linking
group will be created from each profile edge and the edges derived from it. Any pre-existing edges will
not be added. Each profile edge will become the master of its edge linking group.
Note If any input surfaces are bound by lines/curves rather than edges, then edges will be constructed on
those lines/curves and substituted into the surface definitions. This is necessary to establish proper
connectivity between the surfaces and the faces radiating away from the extrusion axis. This is a necessary
condition for the construction of semi-structured domains.
Back to Top
468
CFD-GEOM Scripting
GMesh.CreateAxiallyExtrudedVolumeGridsAbout3Points
Prototype
GMesh.CreateAxiallyExtrudedVolumeGridsAbout3Points(profile_entities, cpt, spt, ept, scale,
num_grid_points, numtimes, create_multiple_blocks, link_extruded_edges, link_scaled_edges)
Description
Create structured domains (i.e. blocks) and/or semi-structured domains by axially extruding profile faces
and/or meshed surfaces about an axis defined by 3 point entities. cpt represents a point on the axis. The
axis direction is defined by the normal to the plane containing cpt, spt, and ept.
scale: the scale factor. This factor must be greater than 0. You should avoid specifying values close to 0
and 1 (how close depends upon the scale of your model).
num_grid_points: the number of grid points to use on each edge radiating away from the axis. Must be at
least 2.
numtimes: the number of layers of entities to generate. This must be at least 1.
create_multiple_blocks: ordinarily this should be 1 (TRUE), and it is ignored if less than 2 profile faces are
specified. However, if 0 (FALSE), and if 2 or more profile faces are specified, CFD-GEOM will construct a
single block in each layer of entities. This will fail if the input faces do not form a logical (or supported) IJ
topology.
link_extruded_edges: if 1 (TRUE), will cause the creation of an edge linking group in each layer. This group
will consist of all edges radiating away from the extrusion axis (except for any pre-existing edges). The
master edge of each group is chosen arbitrarily.
link_scaled_edges: if 1 (TRUE), causes the creation of edge linking groups from the scaled edges. Let's
define the profile edges as those that bound the input profile surfaces and faces. During the extrusion,
CFD-GEOM creates scaled copies of each profile edge. If you elect to link scaled edges, an edge linking
group will be created from each profile edge and the edges derived from it. Any pre-existing edges will
not be added. Each profile edge will become the master of its edge linking group.
Note If any input surfaces are bound by lines/curves rather than edges, then edges will be constructed on
those lines/curves and substituted into the surface definitions. This is necessary to establish proper
connectivity between the surfaces and the faces radiating away from the extrusion axis. This is a necessary
condition for the construction of semi-structured domains.
Back to Top
GMesh.CreateAxiallyExtrudedVolumeGridsAboutPointAndVector
Prototype
GMesh.CreateAxiallyExtrudedVolumeGridsAboutPointAndVector(profile_entities, spt, dx, dy, dz, scale,
num_grid_points, numtimes, create_multiple_blocks, link_extruded_edges, link_scaled_edges)
Description
Create structured domains (i.e. blocks) and/or semi-structured domains by axially extruding profile faces
and/or meshed surfaces about an axis defined by a point entity and a vector.
scale: the scale factor. This factor must be greater than 0. You should avoid specifying values close to 0
and 1 (how close depends upon the scale of your model).
num_grid_points: the number of grid points to use on each edge radiating away from the axis. Must be at
least 2.
numtimes: the number of layers of entities to generate. This must be at least 1.
create_multiple_blocks: ordinarily this should be 1 (TRUE), and it is ignored if less than 2 profile faces are
specified. However, if 0 (FALSE), and if 2 or more profile faces are specified, CFD-GEOM will construct a
469
CFD-GEOM V2014.0 User Manual
single block in each layer of entities. This will fail if the input faces do not form a logical (or supported) IJ
topology.
link_extruded_edges: if 1 (TRUE), will cause the creation of an edge linking group in each layer. This group
will consist of all edges radiating away from the extrusion axis (except for any pre-existing edges). The
master edge of each group is chosen arbitrarily.
link_scaled_edges: if 1 (TRUE), causes the creation of edge linking groups from the scaled edges. Let's
define the profile edges as those that bound the input profile surfaces and faces. During the extrusion,
CFD-GEOM creates scaled copies of each profile edge. If you elect to link scaled edges, an edge linking
group will be created from each profile edge and the edges derived from it. Any pre-existing edges will
not be added. Each profile edge will become the master of its edge linking group.
Note If any input surfaces are bound by lines/curves rather than edges, then edges will be constructed on
those lines/curves and substituted into the surface definitions. This is necessary to establish proper
connectivity between the surfaces and the faces radiating away from the extrusion axis. This is a necessary
condition for the construction of semi-structured domains.
Back to Top
GMesh.CreateAllStructuredDomains(faces)
GMesh.Create2DBlock(faces)
GMesh.CreateCompositeStructuredDomain(blocks)
GMesh.CreateSemiStructuredDomain(bottom_srf,top_srf,faces)
GMesh.CreateStructuredDomain
Prototype
GMesh.CreateStructuredDomain(*facesets)
Description
Create a structured domain (i.e. block) from 2, 3, 4, 5, or 6 face sets.
Back to Top
470
CFD-GEOM Scripting
GMesh.CreateAllStructuredDomains
Prototype
GMesh.CreateAllStructuredDomains(faces)
Description
Create structured domain(s) from the input faces. At least 6 4-sided (i.e. non-degenerate) faces must be
input. Given these faces, CFD-GEOM will create 6-sided structured domains from every valid combination
of 6 faces. Any degenerate input faces are silently ignored.
Back to Top
GMesh.SmoothStructuredDomain
Prototype
GMesh.SmoothStructuredDomain(block, numiter, faces=0, bcs=0, spacings=0)
Description
Elliptically smooth a structured domain (i.e. block) for the specified number of iterations (a value of 0
unsmooths the block). If faces and bcs are non-NULL, apply the elliptic boundary conditions in bcs to the
corresponding faces. If any of the bcs is an ortho + spacing bc, apply the specified spacings to the
corresponding faces. Here are the rules:
* If faces is non-NULL, then so must bcs be non-NULL, and both must be of the same
length.
* If bcs contains an ortho+spacing bc, then spacings must be present and have a length
equal to bcs. A spacing of 0 means that spacing along the corresponding face is allowed to
float.
* Any input faces that aren't used by the block are silently ignored.
Valid elliptic bc values are
0 - fixed
1 - ortho
2 - ortho + spacing
Back to Top
GMesh.CoarsenStructuredDomains
Prototype
GMesh.CoarsenStructuredDomains(blocks, ifactor, jfactor, kfactor)
Description
Coarsen the specified structured domains (i.e. blocks) by the specified coarsening factors in I, J, K. A
coarsening factor of 1 in a direction means that no coarsening is applied in that direction (or, if any
coarsening was previously applied in that direction, that coarsening will be undone). A coarsening factor
greater than 1 indicates that coarsening by that amount will be applied in the corresponding direction. For
example, if a block has 8 cells in its I direction, a coarsening factor of 2 would reduce that number to 4 by
combining cells into polycells. A coarsening factor must be evenly divisible into the NUMBER OF CELLS
(not points) running in the corresponding direction.
Back to Top
471
CFD-GEOM V2014.0 User Manual
GMesh.Coarsen2DBlocks
Prototype
GMesh.Coarsen2DBlocks(blocks, ifactor, jfactor)
Description
Coarsen the specified 2-D blocks by the specified coarsening factors in I and J. A coarsening factor of 1 in a
direction means that no coarsening is applied in that direction (or, if any coarsening was previously
applied in that direction, that coarsening will be undone). A coarsening factor greater than 1 indicates
that coarsening by that amount will be applied in the corresponding direction. For example, if a block has
8 cells in its I direction, a coarsening factor of 2 would reduce that number to 4 by combining cells into
polycells. A coarsening factor must be evenly divisible into the NUMBER OF CELLS (not points) running in
the corresponding direction.
Back to Top
GMesh.Create2DBlock
Prototype
GMesh.Create2DBlock(faces)
Description
Create a 2-D block from the specified faces. Note that the faces must collectively form a logical IJ
topology. Note also that the faces should lie in a constant Z plane.
Back to Top
GMesh.Reorient2DBlock
Prototype
GMesh.Reorient2DBlock(block, rot_k, propagate=0)
Description
Reorient a 2D block. As in the block reorientation tool, reorientation is expressed as a rotation "rot_k"
about the K axis and is best described by an example. Suppose that you have a 2-D block whose I and J
axes are shown below.
J
.
.
.
.
........I
Where an imaginary K axis runs out of the screen. Suppose the you wish to reorient the block to give it the
following orientation:
........J
.
.
.
.
I
472
CFD-GEOM Scripting
This can be achieved by performing a clockwise, quarter rotation about the K axis (rot_k=1). This same
orientation could also be achieved by 3 counter-clockwise, quarter rotations about the K axis (rot_k=-3).
In general, each increment or decrement of rot_k (an integer) indicates a quarter rotation. Positive values
indicate clockwise rotations and negative values indicate counter-clockwise rotations. A value of 0
indicates that no reorientation will be applied to the input block. You may specify any integer for rot_k,
but you should generally specify -3, -2, -1, 0, 1, 2, or 3.
If "propagate" is 0 (FALSE), only the input block will be reoriented. If 1 (TRUE), the input block's new
orientation will be propagated recursively to all blocks reachable from the input block.
Back to Top
GMesh.ReorientStructuredDomain
Prototype
GMesh.ReorientStructuredDomain(block, rot_i, rot_j, rot_k, propagate=0)
Description
Reorient a structured domain (3D block) or a composite structured domain (composite block). As in the
block reorientation tool, reorientation is expressed as rotations "rot_i", "rot_j", and "rot_k" about the I, J,
and K axes respectively. This is best described by an example. Suppose that you have a structured domain
whose I and K axes are shown below (assume the J axis runs out of the screen).
I
.
.
.
.
........K
.
.
J
Suppose that you wish to reorient the block to give it the following orientation, where the K axis runs out
of the screen:
J
.
.
.
.
........I
.
.
K
This can be achieved by performing a clockwise, quarter rotation about the I axis (rot_i=1) to position the
K axis in the desired location-- followed by a clockwise, quarter rotation about the K axis (rot_k=1) to
position the I and J axes. rot_i, rot_j, and rot_k are integers where each increment represents a quarter
rotation about the respective axis. Positive values indicate clockwise rotations and negative values
indicate counter-clockwise rotations. A value of 0 indicates that no reorientation will be applied about the
473
CFD-GEOM V2014.0 User Manual
corresponding axis. You may specify any integers for the rotations, but you should generally specify -3, -2,
-1, 0, 1, 2, or 3. Any I rotations are applied before any J rotations, which are applied before any K
rotations.
If "propagate" is 0 (FALSE), only the input block will be reoriented. If 1 (TRUE), the input block's new
orientation will be propagated recursively to all blocks reachable from the input block.
Back to Top
GMesh.CreateCompositeStructuredDomain
Prototype
GMesh.CreateCompositeStructuredDomain(blocks)
Description
Create a Composite Block from the specified structured domains (i.e. blocks). Note that the blocks must
collectively form a logical IJK topology, and that at least 2 input blocks are required.
Back to Top
GMesh.CreateSemiStructuredDomain
Prototype
GMesh.CreateSemiStructuredDomain(bottom_srf, top_srf, faces)
Description
Create a semi-structured domain from the input surfaces and faces.
Back to Top
474
CFD-GEOM Scripting
SetCartRectangularBoundingBox
Prototype
SetCartRectangularBoundingBox( xmin_type, xmin_val, xmax_type, xmax_val, ymin_type, ymin_val,
ymax_type, ymax_val, zmin_type, zmin_val, zmax_type, zmax_val)
Description
Set the parameters for the rectangular bounding box used for Cartesian mesh generation. If the bounding
box does not yet exist, it will be created. If the bounding box already exists, it will be redefined.
The bounding box parameters are defined by 6 type/value pairs. The "types" can have the following
integer values, which determine how the "val" values are to be interpreted, and which are best described
by example:
0: The corresponding "val" specifies the number of body lengths to offset to the left, right, above, below,
front, or back of the geometry.
Suppose that the geometry extends from 1 to 3 in the X direction; its length, dx, in the X direction is 2. If
xmin_type=0, and xmin_val=5, xmin_val will be interpreted as 5 body lengths from the minimum-X of the
geometry, and the actual xmin of the bounding box will be calculated as
geometry_xmin - xmin_val*dx (1 - 5*2 = -9)
1: The corresponding "val" will be interpreted as the distance from the corresponding geometry extreme.
Continuing the above example, if xmax_type=1 and xmax_val=50, the actual xmax of the bounding box
will be calculated as
geometry_xmax + xmax_val (3 + 50 = 53)
2: The corresponding "val" will be interpreted as the distance from the geometry center. Continuing the
above example, the center of the geometry is 2. If xmin_type=2 and xmin_val = 50, the actual xmin of the
bounding box is geometry_center - xmin_val (2 - 50 = -48)
3: The corresponding "val" will be interpreted as an absolute coordinate value.
If creating the bounding box, a handle to that bounding box is returned.
SetCartCylindricalBoundingBox
Prototype
SetCartCylindricalBoundingBox(xmin_type, xmin_val, xmax_type, xmax_val, ymin_type, ymin_val,
ymax_type, ymax_val, zmin_type, zmin_val, zmax_type, zmax_val, axis_dir, bodyfit)
Description
Set the parameters for a cylindrical bounding box used for Cartesian mesh generation. If the bounding box
does not yet exist, it will be created. If the bounding box already exists, it will be redefined.
The size and location are defined by 6 type/value pairs. These describe a rectangular box in which the
cylindrical bounding box is inscribed. For simplicity, the side of the cylindrical bounding box is divided into
4 parts, and thus the Cylinder-type bounding box is composed of 6 bounds, just like a rectangular
bounding box. The "types" can have the following integer values, which determine how the "val" values
are to be interpreted, and which are best described by example:
0: The corresponding "val" specifies the number of body lengths to offset to the left, right, above, below,
front, or back of the geometry. Suppose that the geometry extends from 1 to 3 in the X direction; its
length, dx, in the X direction is 2. If xmin_type=0, and xmin_val=5, xmin_val will be interpreted as 5 body
lengths from the minimum-X of the geometry, and the actual xmin of the bounding box will be calculated
as
geometry_xmin - xmin_val*dx (1 - 5*2 = -9)
475
CFD-GEOM V2014.0 User Manual
1: The corresponding "val" will be interpreted as the distance from the corresponding geometry extreme.
Continuing the above example, if xmax_type=1 and xmax_val=50, the actual xmax of the bounding box
will be calculated as
geometry_xmax + xmax_val (3 + 50 = 53)
2: The corresponding "val" will be interpreted as the distance from the geometry center. Continuing the
above example, the center of the geometry is 2. If xmin_type=2 and xmin_val = 50, the actual xmin of the
bounding box is
geometry_center - xmin_val (2 - 50 = -48)
3: The corresponding "val" will be interpreted as an absolute coordinate value.
Two additional parameters are required to describe a cylindrical bounding box.
axis_dir: an integer defining the alignment of the cylinder. 0 indicates that the cylinder will be aligned
with the X axis. 1 and 2 indicate the Y and Z axes, respectively.
bodyfit: If 1, the volume mesh will be projected onto the sides of the cylinder. If 0, this will not occur; this
results in a stairstep type mesh along the cylinder walls.
If creating the bounding box, a handle to that bounding box is returned.
CreateCartDomainMarker
Prototype
CreateCartDomainMarker( x, y, z, x_div, y_div, z_div)
Description
Create a domain marker for Cartesian meshing. During Cartesian meshing, the nature of the meshing
algorithm requires that it fill the entire Cartesian bounding box with cells. Domain marker entities are
used to specify the portion(s) of the mesh that are to be preserved at the end of meshing. A domain
marker is a special type of point placed somewhere in the volume to be preserved. For example, if a
domain marker is placed anywhere between the geometry and the bounding box, that portion of the
mesh between the geometry and the bounding box will be preserved in the final mesh. A domain marker
is similar to other volumetric entities in CFD-GEOM (e.g. unstructured domains) in that it is bounded by
surfaces and can be assigned volume conditions. However, it differs in that the surfaces don't have to be
grouped manually or even to form a watertight collection. Instead, the boundaries of the domain marker
are determined during the meshing process. A domain marker is defined by
x, y, z: the coordinates of a point within the region of interest.
x_div, y_div, z_div: These parameters control the amount of refinement to perform in the region. They
specify the minimum number of divisions to perform in the X, Y, and Z directions within the region. That
is, at the end of meshing, all cells in the volume will, at a minimum, have been refined to these levels
(other meshing parameters may have caused even further refinement).
This function returns a handle to the new domain marker.
EditCartDomainMarker
Prototype
EditCartDomainMarker(marker, x, y, z, x_div, y_div, z_div)
Description
Edit an existing Cartesian domain marker created by the function CreateCartDomainMarker(). See that
function for details on the input parameters.
476
CFD-GEOM Scripting
CreateCartBoxSource
Prototype
CreateCartBoxSource(start_x, start_y, start_z, end_x, end_y, end_z, x_div, y_div, z_div)
Description
Create a box source for Cartesian meshing. A box source is used to refine the mesh within a 3-D box
aligned with the X, Y, and Z axes. The box is defined by
start_x, start_y, start_z: the coordinates of one corner of the box.
end_x, end_y, end_z: the coordinates of the opposite corner.
x_div, y_div, z_div: These parameters control the amount of refinement to perform in the source. They
specify the minimum number of divisions to perform in the X, Y, and Z directions within the source. At the
beginning of meshing, the mesher will recursively split the bounding box into a minimum number of cells.
Afterwards, it will perform additional splits in the sources. Suppose, for example, that the global minimum
number of divisions is 4 in each direction. Now suppose that you've added a cylinder source with
minimum division levels of 7 in each direction. The mesher, after performing 4 levels of global splits, will
perform 3 additional levels of splits inside the source.
This function returns a handle to the new source.
EditCartBoxSource
Prototype
EditCartBoxSource(source, start_x, start_y, start_z, end_x, end_y, end_z, x_div, y_div, z_div)
Description
Modify the settings on an existing Cartesian box source. The box is defined by
start_x, start_y, start_z: the coordinates of one corner of the box.
end_x, end_y, end_z: the coordinates of the opposite corner.
x_div, y_div, z_div: These parameters control the amount of refinement to perform in the source. They
specify the minimum number of divisions to perform in the X, Y, and Z directions within the source. At the
beginning of meshing, the mesher will recursively split the bounding box into a minimum number of cells.
Afterwards, it will perform additional splits in the sources. Suppose, for example, that the global minimum
number of divisions is 4 in each direction. Now suppose that you've added a cylinder source with
minimum division levels of 7 in each direction. The mesher, after performing 4 levels of global splits, will
perform 3 additional levels of splits inside the source.
This function returns a handle to the new source.
CreateCartSphereSource
Prototype
CreateCartSphereSource(center_x, center_y, center_z, radius, x_div, y_div, z_div)
Description
Create a sphere source for Cartesian meshing. A sphere source is used to refine the mesh within a given
distance from a central point. The sphere is defined by:
center_x, center_y, center_z: the coordinates of the center of the sphere.
radius: The radius of the sphere. This value must be greater than 0.
x_div, y_div, z_div: These parameters control the amount of refinement to perform in the source. They
specify the minimum number of divisions to perform in the X, Y, and Z directions within the source. At the
beginning of meshing, the mesher will recursively split the bounding box into a minimum number of cells.
477
CFD-GEOM V2014.0 User Manual
Afterwards, it will perform additional splits in the sources. Suppose, for example, that the global minimum
number of divisions is 4 in each direction. Now suppose that you've added a cylinder source with
minimum division levels of 7 in each direction. The mesher, after performing 4 levels of global splits, will
perform 3 additional levels of splits inside the source.
This function returns a handle to the new source.
EditCartSphereSource
Prototype
EditCartSphereSource(source, center_x, center_y, center_z, radius, x_div, y_div, z_div)
Description
Modify the settings on an existing Cartesian sphere source. The sphere is defined by:
center_x, center_y, center_z: the coordinates of the center of the sphere.
radius: The radius of the sphere. This value must be greater than 0.
x_div, y_div, z_div: These parameters control the amount of refinement to perform in the source. They
specify the minimum number of divisions to perform in the X, Y, and Z directions within the source. At the
beginning of meshing, the mesher will recursively split the bounding box into a minimum number of cells.
Afterwards, it will perform additional splits in the sources. Suppose, for example, that the global minimum
number of divisions is 4 in each direction. Now suppose that you've added a cylinder source with
minimum division levels of 7 in each direction. The mesher, after performing 4 levels of global splits, will
perform 3 additional levels of splits inside the source.
CreateCartCylinderSource
Prototype
CreateCartCylinderSource(bottom_center_x, bottom_center_y, bottom_center_z, axis_dx, axis_dy,
axis_dz, axis_length, inner_radius, outer_radius, x_div, y_div, z_div)
Description
Create a cylinder source for Cartesian meshing. A cylindrical source is used to refine the mesh between an
interior radius and exterior radius region. The cylinder is defined by:
bottom_center_x, bottom_center_y, bottom_center_z: the coordinates of the bottom center of the
cylinder.
axis_dx, axis_dy, axis_dz: vector specifying the direction of the cylinder axis.
axis_length: the length of the cylinder. Note that, if the vector specifying the cylinder axis direction is
normalized, axis_length will be the actual length of the cylinder. If not, the actual cylinder length will be
the axis_length multiplied by the length of the direction vector.
inner_radius: the inner radius of the cylindrical region. This may be 0, and must be less than the
outer_radius.
outer_radius: the outer radius of the cylindrial region. This must be greater than the inner radius.
x_div, y_div, z_div: These parameters control the amount of refinement to perform in the source. They
specify the minimum number of divisions to perform in the X, Y, and Z directions within the source. At the
beginning of meshing, the mesher will recursively split the bounding box into a minimum number of cells.
Afterwards, it will perform additional splits in the sources. Suppose, for example, that the global minimum
number of divisions is 4 in each direction. Now suppose that you've added a cylinder source with
minimum division levels of 7 in each direction. The mesher, after performing 4 levels of global splits, will
perform 3 additional levels of splits inside the cylinder source.
This function returns a handle to the new source.
478
CFD-GEOM Scripting
EditCartCylinderSource
Prototype
EditCartCylinderSource(source, bottom_center_x, bottom_center_y, bottom_center_z, axis_dx, axis_dy,
axis_dz, axis_length, inner_radius, outer_radius, x_div, y_div, z_div)
Description
Modify the settings on an existing Cartesian cylinder source. The cylinder is defined by:
bottom_center_x, bottom_center_y, bottom_center_z: the coordinates of the bottom center of the
cylinder.
axis_dx, axis_dy, axis_dz: vector specifying the direction of the cylinder axis.
axis_length: the length of the cylinder. Note that, if the vector specifying the cylinder axis direction is
normalized, axis_length will be the actual length of the cylinder. If not, the actual cylinder length will be
the axis_length multiplied by the length of the direction vector.
inner_radius: the inner radius of the cylindrical region. This may be 0, and must be less than the
outer_radius.
outer_radius: the outer radius of the cylindrial region. This must be greater than the inner radius.
x_div, y_div, z_div: These parameters control the amount of refinement to perform in the source. They
specify the minimum number of divisions to perform in the X, Y, and Z directions within the source. At the
beginning of meshing, the mesher will recursively split the bounding box into a minimum number of cells.
Afterwards, it will perform additional splits in the sources. Suppose, for example, that the global minimum
number of divisions is 4 in each direction. Now suppose that you've added a cylinder source with
minimum division levels of 7 in each direction. The mesher, after performing 4 levels of global splits, will
perform 3 additional levels of splits inside the cylinder source.
SetCartLocalSurfaceMeshingParams
Prototype
SetCartLocalSurfaceMeshingParams(surfaces, *args)
Description
Set local Cartesian meshing parameters on the input list of trimmed and/or discrete surfaces (to set
parameters on the 6 bounding box surfaces, use SetCartBoundingBoxSurfaceMeshingParams()). Meshing
parameters are expressed as a variable length set of option "groups", where each group consists of a
string indicating the name of the option being set, followed by a variable number of arguments whose
number and type(s) depend on the name of the option. A call to this function takes the form
GMesh.SetCartLocalSurfaceMeshingParams(
surfaces,
option_group1, # first group of options
... # additional groups of options
)
Valid option groups include:
"thinwall", value : A value of 1 (enable) tags surfaces for special Thin Wall treatment during mesh
generation. Ordinarily, such surfaces should lie in the interior of a volume rather than on the boundaries
of that volume. That is, cells from the same volume (domain) will lie on both sides of such surfaces. Thin
Walls can be used to represent baffles, plates, etc. whose thickness is negligible and need not be meshed,
but whose area is non-negligible and can impact the physics of a problem (such as momentum and heat
transfer). Setting the Thin Wall option on a surface instructs the Cartesian mesher that, during the
meshing process, the meshes on any flagged surfaces should be included in the final mesh. Moreover, it
479
CFD-GEOM V2014.0 User Manual
permits the assignment of boundary conditions to those surfaces and subsequent output to DTF. Finally, it
adds special data to those surfaces that assists downstream applications in identifying thin wall surfaces.
A value of 0 disables Thin Wall treatment of the surfaces. This is the default.
"suppress", value: Suppress (value=1) or unsuppress (value=0) the input surfaces. Suppressing a surface
makes it 'invisible' to the mesher during subsequent mesh generation. This means that, although the
surface remains in the model, it does not participate in any meshing operations.
"boundary_layers", value: Enable (value=1) or disable (value=0) boundary layer meshing for the input
surfaces. If enabled AND if boundary layer meshing is globally enabled, boundary layers will be generated
off the input surfaces. Currently, other boundary layer parameters such as the first layer thickness, growth
factor, and number of layers can only be set globally.
There are 3 options for specifying basic surface refinement settings. Note that, for any particular surface,
these 3 options are mutually exclusive.
"use_global_srf_refinement": Use the global surface refinement settings set by
SetCartGlobalMeshingParams(). This is the default behavior.
"use_local_srf_refinement_levels", lev_x, lev_y, lev_z: Locally specify the number of levels of
refinement in the X, Y, and Z directions using the 3 integer arguments lev_x, lev_y, and lev_z. These must
be greater than or equal to 2 and should ordinarily be larger than the corresponding global settings.
Exception: a value of -1 for a parameter indicates that setting for the input surfaces will not be modified.
For example, the values 8, 8, -1 indicate that lev_x and lev_y for the input surfaces will be set to 8, while
lev_z will remain unchanged.
"use_local_srf_refinement_norm_tang", norm, tang: Locally specify the local normal and tangential cell
sizes. Ordinarily, the tangential size should be twice the the normal size. There are 2 options for
controlling settings for the bodyfit factor. The bodyfit factor controls the amount of effort the meshing
algorithm expends to project near geometry mesh nodes onto the geometry. A value of 100% means that
the mesher will attempt to place these nodes exactly on the geometry. Smaller values allow the mesher
more freedom to place these nodes slightly away from the geometry. Though this results in a lower
fidelity mesh, it can sometimes be useful in attaining higher mesh quality. Note that bodyfit settings apply
only during projected single-domain meshing and will be ignored otherwise. Note also that, for any
particular surface, these 2 options are mutually exclusive.
"use_global_bodyfit_factor": Use the global bodyfit factor, which defaults to 100 if not changed in
SetCartGlobalMeshingParams().
"use_local_bodyfit_factor", bodyfit_factor: Use the specified local bodyfit_factor. bodyfit_factor must be
an integer in the range 0-100.
There are 3 options for specifying curvature refinement settings, which allow you to locally control
refinement in regions with sharp edges or high curvature. Refinement Factor is the ratio of the requested
surface cell size (see surface refinement settings above) to the final cell size. In other words, the higher
the value the more intense is the refinement around sharp edges and other regions of high curvature. The
Feature Angle indicates that additional refinement will be performed where curvature on the selected
surfaces exceeds this angle. Note that, for any particular surface, the following 3 options are mutually
exclusive. If none of these options is specified, global settings specified in SetCartGlobalMeshingParams()
are used.
"use_global_curvature_refinement": Use the global curvature refinement settings specified in
SetCartGlobalMeshingParams(). This is the default.
"disable_local_curvature_refinement": Locally disable curvature refinement on the selected surfaces.
"enable_local_curvature_refinement", refinement_factor, feature_angle: Locally enable curvature
refinement on the selected surfaces. Two additional arguments are required. refinement_factor is a real
number in the range [1,10000]. The default is 1.4. feature_angle is a real number in the range [10,90]. The
480
CFD-GEOM Scripting
default is 35. For both of these arguments, a value of -1 is allowed. This indicates that the value for the
corresponding argument will remain unchanged.
There are 2 additional arguments for controlling outline/feature preservation. These options are not
mutually exclusive.
"preserve_features", value: Locally set the feature preservation option. value must be either 0 (use global
setting), 1 (locally enable), or 2 (locally disable). If locally enabled, the mesh generator will try to capture
sharp features locally on the selected surfaces. Note that the capturing of features may not be 100%
successful. Also, this operation is computationally expensive. If the "preserve_features" option is not
specified, this setting defaults to the use of the global setting.
"preserve_outlines", value: Locally set the outline preservation option. value must be either 0 (use global
setting), 1 (locally enable), or 2 (locally disable). If enabled, this causes the mesher to capture explicit
boundaries (boundary between adjoining surfaces) as well as implicit boundaries (intersection of
overlapping parts, etc.) locally on the selected surfaces. Note that this option is especially useful when it
comes to capturing the boundary between adjoining coplanar surfaces. Such boundaries are invisible to
the above mentioned "preserve_features" since the dihedral angle is 0 in this situation. Note that free
boundaries and very small features may not be captured very well. Note also that this setting is used only
during projected single-domain meshing and is otherwise ignored. If the "preserve_outlines" option is not
specified, this setting defaults to the use of the global setting.
Example:
GMesh.SetCartLocalSurfaceMeshingParams(
[srf1, srf2],
'use_local_srf_refinement_levels', 8, 8, 8,
'boundary_layers', 1,
'enable_local_curvature_refinement', 1.4, 35
)
Note that all unspecified options will be set to default values (unless set in a previous call to this function).
SetCartBoundingBoxSurfaceMeshingParams
Prototype
SetCartBoundingBoxSurfaceMeshingParams(surface_indices, *args)
Description
Set local Cartesian meshing parameters on the input list of bounding box surfaces. These surfaces are
identified by integers as follows:
0: xmin
1: xmax
2: ymin
3: ymax
4: zmin
5: zmax
Meshing parameters are expressed as a variable length set of option "groups", where each group consists
of a string indicating the name of the option being set, followed by a variable number of arguments
whose number and type(s) depend on the name of the option. A call to this function takes the form
GMesh.SetCartBoundingBoxSurfaceMeshingParams(
481
CFD-GEOM V2014.0 User Manual
surfaces,
option_group1, # first group of options
... # additional groups of options
)
Valid option groups include:
"boundary_layers", value: Enable (value=1) or disable (value=0) boundary layer meshing for the input
surfaces. If enabled AND if boundary layer meshing is globally enabled, boundary layers will be generated
off the input surfaces. Currently, other boundary layer parameters such as the first layer thickness, growth
factor, and number of layers can only be set globally. By default, boundary layer meshing is disabled for
bounding box surfaces.
"constrain_boundary_layers", value: This option, when enabled (value=1) allows you to use a bounding
box surface to constrain boundary layer growth from adjacent geometric or bounding box surfaces. In
such cases, the boundary layers at the adjacency will be projected onto the constraining surface. By
default, this option is disabled, which indicates that the boundary layers at the adjacency will be joined
with the boundary layers of the adjacent surface, or pinched off if boundary layers are not being
generated on the adjacent surface. Note that if you enable both boundary layer growth and boundary
layer constraint for a surface, boundary layer constraint takes precedence. Note also that this option is
ignored during mesh generation if boundary layer meshing is not globally enabled.
There are 3 options for specifying basic surface refinement settings. Note that, for any particular surface,
these 3 options are mutually exclusive.
"use_global_srf_refinement": Use the global surface refinement settings set by
SetCartGlobalMeshingParams(). This is the default behavior.
"use_local_srf_refinement_levels", lev_x, lev_y, lev_z: Locally specify the number of levels of refinement
in the X, Y, and Z directions using the 3 integer arguments lev_x, lev_y, and lev_z. These must be greater
than or equal to 2 and should ordinarily be larger than the corresponding global settings. Exception: a
value of -1 for a parameter indicates that setting for the input surfaces will not be modified. For example,
the values 8, 8, -1 indicate that lev_x and lev_y for the input surfaces will be set to 8, while lev_z will
remain unchanged.
"use_local_srf_refinement_norm_tang", norm, tang: Locally specify the local normal and tangential cell
sizes. Ordinarily, the tangential size should be twice the the normal size.
Example:
GMesh.SetCartBoundingBoxSurfaceMeshingParams(
[2, 3],
'use_local_srf_refinement_levels', 8, 8, 8,
'boundary_layers', 1
)
Note that in the above example, all unspecified options will be set to default values (unless set in a
previous call to this function).
SetCartGlobalMeshingParams
Prototype
SetCartGlobalMeshingParams(*args)
Description
Set global Cartesian meshing parameters. These meshing parameters are expressed as a variable length
set of option "groups", where each group consists of a string indicating the name of the option being set,
482
CFD-GEOM Scripting
followed by a variable number of arguments whose number and type(s) depend on the name of the
option. A call to this function takes the form
GMesh.SetCartGlobalMeshingParams(
surfaces,
option_group1, # first group of options
... # additional groups of options
)
Valid groups include:
"mesh_type", mt : mt is an integer indicating the meshing algorithm to use. A value of 2 instructs the
mesher to use the Multi Domain intersection algorithm to bodyfit the mesh to the geometry. It can be
used regardless of the number of domain markers. A value of 1 instructs the mesher to use the Projected
Single Domain method, which uses a projection algorithm to shrinkwrap the mesh onto the geometry. It
can be used only when there is exactly one domain marker. If this group is not specified, the multi-domain
meshing algorithm will be used.
"tree_type", tt : tt is an integer indicating the tree type. Valid values for tt include 0 (omnitree) and 1
(octree). If this group is not specified, the tree type defaults to omnitree. You should seldom need to
change this.
"autogen_domain_markers", ag : ag is an integer indicating whether domain markers should be
automatically generated. If 1 (true), the mesher will generate domain markers in each logical subvolume
identified during meshing (except where they already exist). If 0 (false), meshes will be generated only in
those regions where domain markers have already been defined.
If this group is not specified, domain markers will not be automatically generated. Note also that this
option is applicable only when the multi-domain meshing algorithm is to be used. See "mesh_type"
above.
"min_div_levels", min_div_x, min_div_y, min_div_z : where the last 3 arguments are integers specifying
the minimum number of divisions to perform in the X, Y, and Z directions, respectively. For example, if the
width of the bounding box in the X direction is "dx", the maximum allowable cell size in the X direction is
dx/(2^min_div_x). If this group is not specified, the system defaults to 4 for each value.
"srf_refinement_levels", levx, levy, levz : This instructs the mesher to base global surface refinement on
"division levels". During the initial refinement at the geometry, all cells at the geometry will be split to the
specified integer levels levx, levy, levz in the X, Y, and Z directions, respectively. For example, if the width
of the bounding box in the X direction is "dx", the near-geometry cell size in the X direction is dx/(2^levx).
If this group is not specified, the system defaults to 8 for each value. Note that these settings can be
locally overridden in the function SetCartLocalSurfaceMeshingParams(). Note also that other factors, such
as curvature refinement and sources can cause additional refinement along surfaces. This option and
"srf_refinement_norm_tang" (see below) are mutually exclusive.
"srf_refinement_norm_tang", norm, tang : This instructs the mesher to base global surface refinement
on normal and tangential cell sizes, specified by the additional real arguments norm and tang. Note that in
general, you should specify a tangential size twice as large as the normal size. This option and
"srf_refinement_levels" (see above) are mutually exclusive. If neither option is specified, the refinement
method defaults to "srf_refinement_levels" with default values for the levels. Note that these settings can
be locally overridden in the functionSetCartLocalSurfaceMeshingParams(). Note also that other factors,
such as curvature refinement and sources can cause additional refinement along surfaces.
"bodyfit_factor", factor : This option globally controls the bodyfit factor during projected single-domain
meshing. This factor (an integer between 0 and 100) controls the amount of effort the meshing algorithm
expends to project near geometry mesh nodes onto the geometry. A value of 100% means that the
mesher will attempt to place these nodes exactly on the geometry. Smaller values allow the mesher more
freedom to place these nodes slightly away from the geometry. Though this results in a lower fidelity
483
CFD-GEOM V2014.0 User Manual
mesh, it can sometimes be useful in attaining higher mesh quality. If this group is not specified, this value
defaults to 100.
"enable_boundary_layers", growth_type, first_layer_thickness, growth_factor, numlayers : Globally
enable boundary layer growth. "growth type" specifies how "first_layer_thickness" is to be interpreted. If
growth_type is 0, first_layer_thickness (a real) is interpreted as an absolute value. If growth_type is 1,
first_layer_thickness is interpreted as a fraction of the local face size on the geometry. "growth_factor", a
real, specifies how quickly the thickness transitions from layer to layer. In general, this value should be
greater than 1, but values between 0 and 1 are permitted. "num_layers", an integer, specifies the number
of layers desired. The mesher will attempt to honor this value, but will reduce the number of layers where
necessary. If this group is not specified, boundary layer growth is disabled by default.
"disable_boundary_layers" : Globally disable all boundary layer growth. This is the default if
"enable_boundary_layers" (see above) is not specified.
"num_cartesian_layers_at_srfs", num : num is an integer specifying the number of Cartesian layers to
generate around the surface geometry. For example, if the local surface mesh size is "x" and you specify 3
Cartesian layers, 3 layers of Cartesian cells of this size will be grown away from the geometry in the
vicinity. After this, the mesher is free to coarsen the mesh as needed. Note that this option should not be
confused with boundary layers. The default value for this option is 0 if this group is not specified.
"num_cartesian_layers_at_refinement_level", num : With this option, you can specify the minimum
number of Cartesian cell layers that need to be generated at each refinement level. The default value is 1.
The larger this integer value, the slower the transition from dense to coarser mesh. In general if a
smoother mesh is needed, the value should be greater than 2. But increasing the value will increase the
overall cell count significantly. Thus, an optimal value needs to be chosen considering the pros (smoother
mesh) and cons (increase in number of cells). The default value is 1.
"enable_curvature_refinement", refinement_factor, feature_angle : This option allows you to globally
control refinement in regions with sharp edges or high curvature. refinement_factor is the ratio of the
specified surface cell size to the final cell size. In other words, the higher the value the more intense is the
refinement around sharp edges and other regions of high curvature. The default value is 1.4. The
feature_angle indicates that additional refinement will be performed where curvature on the selected
surfaces exceeds this angle. The default is 35 degrees. These options can be locally overridden
SetCartLocalSurfaceMeshingParams(). By default curvature refinement is enabled.
"disable_curvature_refinement" : Globally disable curvature refinement described above. Note that it is
possible to re-enable this refinement locally using SetCartLocalSurfaceMeshingParams().
"preserve_features", value : If enabled (value=1), the mesh generator will try to capture sharp features in
the geometry, globally. Note that the capturing of features may not be 100% successful. Also, this
operation is computationally expensive. To disable, specify value=0. By default this option is disabled.
"preserve_outlines", value : When enabled (value=1), the mesher will attempt to capture explicit
boundaries (boundary between adjoining patches) as well as implicit boundaries (intersection of
overlapping parts, etc.). Note that this option is especially useful when it is necessary to capture the
boundary between adjoining coplanar patches. Such boundaries are invisible to the above mentioned
"preserve_features" option since the dihedral angle is 0 in this situation. Note that free boundaries and
very small features may not be captured very well. To disable, specify value=0. By default this option is
disabled. This option is used only during projected single-domain meshing.
"smooth_interior_nodes", value : When enabled (value=1), interior nodes will be smoothed with a face-
area weighted Laplacian smoothing method. Note that, here, interior nodes are those nodes between the
boundary and Cartesian cells. To disable, specify value=0. By default this option is disabled. Smoothing
interior nodes could improve mesh quality in some cases.
"smooth_boundary_nodes", value : When enabled (value=1), the boundary nodes will be smoothed with
a face-area weighted Laplacian smoothing method. Smoothing boundary nodes tends to generate better
quality cells, but the nodes may not lie exactly on the geometry and thus sharp features may be washed
484
CFD-GEOM Scripting
out. To disable, set value=0. By default this option is disabled. This option is used only during projected
single-domain meshing.
Example:
GMesh.SetCartGlobalMeshingParams(
'mesh_type', 2,
'srf_refinement_levels', 8, 7, 7
)
Specifies that the multidomain meshing algorithm should be used with a division-level-based surface
refinement scheme using 8, 7, and 7 division levels in X, Y, and Z, respectively.
Note that all unspecified options will be set to default values (unless set in a previous call to this function).
GenerateCartesianMesh
Prototype
GenerateCartesianMesh()
Description
Generate a Cartesian mesh using the meshing parameters specified in SetCartGlobalMeshingParams(). If
the "mesh_type" parameter was specified to that function, that mesh type will be generated. If that
parameter was not specified, the mesh type defaults to multi-domain intersecting mesh. Upon success,
this function returns a handle to any pseudo surfaces and domain markers generated during the meshing
process.
GMesh.CreateFilament
Prototype
GMesh.CreateFilament(edges, default_radius, numsides, multivc=0)
Description
Create a filament with the specified default radius and number of sides across the input edges. The
default radius is the radius value used where local radius values have not been assigned via
ModifyFilament(). It should be greater than 0 and should be small enough not to cause mesh folding at
branches (if present). Note that numsides must be at least 4 and evenly divisible by 2. If "multivc" is set to
1 (TRUE), the cells constructed around each edge will be grouped separately from those around other
edges for the purposes of volume condition assignment in CFD-ACE-GUI. This argument is optional and
defaults to 0 (FALSE) if not specified. It is ignored if the number of edges is less than 2.
Back to Top
485
CFD-GEOM V2014.0 User Manual
GMesh.ModifyFilament
Prototype
GMesh.ModifyFilament(filament, default_radius, numsides, multivc=0, points=0, radii=0)
Description
Modify the specified filament. "default_radius", "numsides", and "multivc" have the same meanings as in
CreateFilament(). "points", if specified, contains edge endpoints (within the filament) at which we want to
set local radius values. "radii", which must be specified if "points" is specified, contains those radii. The
number of such radii must equal the number of points. Note that specifying a local radius of 0 instructs
CFD-GEOM to use the default radius around the corresponding point.
Back to Top
GMesh.GetNumCells
Prototype
GMesh.GetNumCells()
Description
Return the total number of cells in the current model.
Back to Top
GFileIO.SaveGGD(filename, save_volume_meshes=0)
486
CFD-GEOM Scripting
GFileIO.ImportGGD
Prototype
GFileIO.ImportGGD(filename)
Description
# Import the specified GGD file into the current model. Note that this capability is not available in the
CFD-GEOM GUI, and its usage in Python scripts is severely limited. Please note the following restrictions:
1. This command, if used, must be executed before any other CFD-GEOM script functions (exception: if your
script contains a call to GUtils.StartGeom(), then GFileIO.ImportGGD(...) should be executed after that
function).
2. This command can be executed only once in a CFD-GEOM script.
All entities restored from the GGD file are returned to Python through an entity dictionary. Below is an
example of its usage.
ggd_entities = GFileIO.ImportGGD('model.ggd')
Note the following additional behaviors:
1. Currently, entity names in the GGD file are not restored. For example, if your GGD file
contains a line named "geom_line2", that name will be lost. To access the line, you will
need to refer to it via the entity dictionary returned by this function. This behavior is
necessary to avoid conflicts between names in the GGD file and names for new entities
generated by your script. This problem may be remedied in a future release.
2. You should exercise caution when saving GGD files after calling this function. For
example, if you import 'model.GGD', generate some new entities in your script, and save
(using SaveGGD()) to 'model.GGD', your script will behave differently during subsequent
runs.
Inputs
A filename.
Return Value
None.
487
CFD-GEOM V2014.0 User Manual
Back to Top
GFileIO.SaveGGD
Prototype
SaveGGD( filename, save_volume_meshes=0 )
Description
Save the current model to a GGD file with the specified name. If the filename has a .gz extension, the file
will be automatically compressed with gzip. There is one additional argument:
save_volume_meshes: If 1 (TRUE), tetrahedral meshes generated on unstructured domains will be saved.
The default is 0 (FALSE). Note that, currently, polyhedral meshes (e.g. honeycomb, Cartesian) are not
saved to GGD regardless of this setting.
Back to Top
GFileIO.ImportIGES
Prototype
GFileIO.ImportIGES(filename, use_model_relative_precision, model_relative_precision_factor)
Description
Import the specified IGES file into the current model. The argument use_model_relative_precision, if 1
(TRUE), specifies that CFD-GEOM should use a geometric precision relative to the model dimensions
multiplied by the supplied factor. If 0 (FALSE), CFD-GEOM uses an absolute precision as defined in the
IGES file.
Note that the entities created during the import are returned through an entity dictionary. In general,
you'll likely want to assign the output to some variable representive of a part name. For example, you
might do something like the following:
impeller = GFileIO.ImportIGES('impeller.igs', 1, 1e-4)
Back to Top
GFileIO.ExportIGES
Prototype
GFileIO.ExportIGES(filename, write_points, units)
Description
Export the current model to an IGES file with the specified name. The parameter "write_points" should be
either 0 (FALSE) or 1 (TRUE). If 1, point entities are written to the file. If 0, they are not (this can help
reduce file size). Valid units are defined as follows:
0 (METERS)
1 (FEET)
2 (INCHES)
3 (MILLIMETERS)
4 (CENTIMETERS)
5 (MICRONS)
6 (KILOMETERS)
488
CFD-GEOM Scripting
7 (MILES)
8 (MILS)
9 (NANOMETERS)
If "units" is not specified, or is -1, the current model units are used (see GUtils.SetUnits()).
Back to Top
GFileIO.ExportDTF
Prototype
GFileIO.ExportDTF(filename, mode, update, units, autoname)
Description
Export the mesh(es) in the current model to a DTF file with the specified name. "mode" specifies the
dimensionality of the meshes and can be 2 (2-D) or 3 (3-D). "update" specifies whether to update the file.
This option is meaningful only if the DTF file already exists. Specifying 1 (TRUE) means that CFD-GEOM
should attempt to update the grids in the file without altering boundary and volume condition data.
Specifying 0 (FALSE) indicates that the existing file should be overwritten. Valid units are defined as
follows:
0 (METERS)
1 (FEET)
2 (INCHES)
3 (MILLIMETERS)
4 (CENTIMETERS)
5 (MICRONS)
6 (KILOMETERS)
7 (MILES)
8 (MILS)
9 (NANOMETERS)
If "units" is not specified, or is -1, the current model units are used (see GUtils.SetUnits()).
If "autoname" is set to 1 (TRUE), CFD-GEOM will automatically name BC's and create BC groups based on
VC names and BC types. Use this option with caution as it will overwrite any previously assigned BC
names. Please refer to (link to BC tool) to learn more about the recommended workflow for automatically
naming BCs. If this option is not specified, or is set to 0 (FALSE), it is disabled.
Back to Top
GFileIO.ExportSimplifiedDTF
Prototype
GFileIO.ExportSimplifiedDTF(filename, mode, update, units)
Description
Export the mesh(es) in the current model to a simplified DTF file with the specified name. Unlike
ExportDTF, this function will minimize the number of output volumes and surfaces-thus reducing the
number of boundary and volume conditions that must be assigned in downstream applications. "mode"
specifies the dimensionality of the meshes and can be 2 (2-D) or 3 (3-D). Alternatively, "mode" can be a
list of entities whose meshes are to be output. "update" specifies whether to update the file. This option
489
CFD-GEOM V2014.0 User Manual
is meaningful only if the DTF file already exists. Specifying 1 (TRUE) means that CFD-GEOM should attempt
to update the grids in the file without altering boundary and volume condition data. Specifying 0 (FALSE)
indicates that the existing file should be overwritten. Valid units are defined as follows:
0 (METERS)
1 (FEET)
2 (INCHES)
3 (MILLIMETERS)
4 (CENTIMETERS)
5 (MICRONS)
6 (KILOMETERS)
7 (MILES)
8 (MILS)
9 (NANOMETERS)
If "units" is not specified, or is -1, the current model units are used (see GUtils.SetUnits()).
Back to Top
GFileIO.ImportSAT
Prototype
GFileIO.ImportSAT(filename, heal, process_type, use_precision_relative_to_model_size=0, precision=1e-
6)
Description
Import the specified SAT (Standard ACIS text) file into the current model. Note that the "heal" argument
(an integer) is currently unused and is reserved for future usage; you should specify a value of 0 for this
argument. "process_type" can be one of the following:
1. Stitch connected solids, creating clean/shared interfaces between those solids.
2. Unite connected solids into a single solid, tossing out any surfaces that formerly lay between the original
solids.
3. Perform no special assembly processing. Import the solids as-is. This will usually result in arbitrary
interfaces between connected solids.
"use_precision_relative_to_model_size", an integer, controls the interpretation of the specified precision.
If 0 (FALSE), the specified precision is treated as an absolute precision. If 1 (TRUE), the precision is
interpreted as a fraction of the size of the model's bounding box. In both cases, 1e-6 is a typical value for
the precision.
Below is an example of its usage:
entities = GFileIO.ImportSAT('model.sat', 0, 1, 1, 1.0e-6)
Back to Top
GFileIO.ImportParasolid
Prototype
GFileIO.ImportParasolid(filename, heal, process_type, use_precision_relative_to_model_size, precision)
Description
490
CFD-GEOM Scripting
Import the specified Parasolid file into the current model. Note that the "heal" argument (an integer) is
currently unused and is reserved for future usage; you should specify a value of 0 for this argument.
"process_type" can be one of the following:
1. Stitch connected solids, creating clean/shared interfaces between those solids.
2. Unite connected solids into a single solid, tossing out any surfaces that formerly lay between the original
solids.
3. Perform no special assembly processing. Import the solids as-is. This will usually result in arbitrary
interfaces between connected solids.
"use_precision_relative_to_model_size", an integer, controls the interpretation of the specified precision.
If 0 (FALSE), the specified precision is treated as an absolute precision. If 1 (TRUE), the precision is
interpreted as a fraction of the size of the model's bounding box. In both cases, 1e-6 is a typical value for
the precision.
Note that this capability is currently available only to licensed users on 32- and 64-bit MS-Windows
platforms and the 32-bit Linux platform.
Below is an example of its usage:
entities = GFileIO.ImportParasolid('model.x_t', 0, 1, 1, 1.0e-6)
Back to Top
GFileIO.ImportSTEP
Prototype
GFileIO.ImportSTEP(filename, heal, process_type, use_precision_relative_to_model_size, precision)
Description
Import the specified STEP file into the current model. Note that the "heal" argument (an integer) is
currently unused and is reserved for future usage; you should specify a value of 0 for this argument.
"process_type" can be one of the following:
1. Stitch connected solids, creating clean/shared interfaces between those solids.
2. Unite connected solids into a single solid, tossing out any surfaces that formerly lay between the original
solids.
3. Perform no special assembly processing. Import the solids as-is. This will usually result in arbitrary
interfaces between connected solids.
"use_precision_relative_to_model_size", an integer, controls the interpretation of the specified precision.
If 0 (FALSE), the specified precision is treated as an absolute precision. If 1 (TRUE), the precision is
interpreted as a fraction of the size of the model's bounding box. In both cases, 1e-6 is a typical value for
the precision.
Note that this capability is currently available only to licensed users on 32- and 64-bit MS-Windows
platforms and the 32-bit Linux platform.
Below is an example of its usage:
entities = GFileIO.ImportSTEP('model.stp', 0, 1, 1, 1.0e-6)
Back to Top
GFileIO.ImportProEngineer
Prototype
491
CFD-GEOM V2014.0 User Manual
Back to Top
GFileIO.ImportUnigraphics
Prototype
GFileIO.ImportUnigraphics(filename, heal, process_type, use_precision_relative_to_model_size,
precision)
Description
Import the specified Unigraphics file into the current model. Note that the "heal" argument (an integer) is
currently unused and is reserved for future usage; you should specify a value of 0 for this argument.
"process_type" can be one of the following:
1. Stitch connected solids, creating clean/shared interfaces between those solids.
2. Unite connected solids into a single solid, tossing out any surfaces that formerly lay between the original
solids.
3. Perform no special assembly processing. Import the solids as-is. This will usually result in arbitrary
interfaces between connected solids.
"use_precision_relative_to_model_size", an integer, controls the interpretation of the specified precision.
If 0 (FALSE), the specified precision is treated as an absolute precision. If 1 (TRUE), the precision is
interpreted as a fraction of the size of the model's bounding box. In both cases, 1e-6 is a typical value for
the precision.
Note that this capability is currently available only to licensed users on 32- and 64-bit MS-Windows
platforms and the 32-bit Linux platform.
Below is an example of its usage:
entities = GFileIO.ImportUnigraphics('model.prt', 0, 1, 1, 1.0e-6)
Back to Top
492
CFD-GEOM Scripting
GFileIO.ImportSolidWorks
Prototype
GFileIO.ImportSolidWorks(filename, heal, process_type, use_precision_relative_to_model_size, precision)
Description
Import the specified SolidWorks file into the current model. Note that the "heal" argument (an integer) is
currently unused and is reserved for future usage; you should specify a value of 0 for this argument.
"process_type" can be one of the following:
1. Stitch connected solids, creating clean/shared interfaces between those solids.
2. Unite connected solids into a single solid, tossing out any surfaces that formerly lay between the original
solids.
3. Perform no special assembly processing. Import the solids as-is. This will usually result in arbitrary
interfaces between connected solids.
"use_precision_relative_to_model_size", an integer, controls the interpretation of the specified precision.
If 0 (FALSE), the specified precision is treated as an absolute precision. If 1 (TRUE), the precision is
interpreted as a fraction of the size of the model's bounding box. In both cases, 1e-6 is a typical value for
the precision.
Note that this capability is currently available only to licensed users on 32- and 64-bit MS-Windows
platforms.
Below is an example of its usage:
entities = GFileIO.ImportSolidWorks('model.sldprt', 0, 1, 1, 1.0e-6)
Back to Top
GFileIO.ImportCatiaV4
Prototype
GFileIO.ImportCatiaV4(filename, heal, process_type, use_precision_relative_to_model_size, precision)
Description
Import the specified Catia V4 file into the current model. Note that the "heal" argument (an integer) is
currently unused and is reserved for future usage; you should specify a value of 0 for this argument.
"process_type" can be one of the following:
1. Stitch connected solids, creating clean/shared interfaces between those solids.
2. Unite connected solids into a single solid, tossing out any surfaces that formerly lay between the original
solids.
3. Perform no special assembly processing. Import the solids as-is. This will usually result in arbitrary
interfaces between connected solids.
"use_precision_relative_to_model_size", an integer, controls the interpretation of the specified precision.
If 0 (FALSE), the specified precision is treated as an absolute precision. If 1 (TRUE), the precision is
interpreted as a fraction of the size of the model's bounding box. In both cases, 1e-6 is a typical value for
the precision.
Note that this capability is currently available only to licensed users on 32- and 64-bit MS-Windows
platforms and the 32-bit Linux platform.
Below is an example of its usage:
entities = GFileIO.ImportCatiaV4('mypart.model', 0, 1, 1, 1.0e-6)
493
CFD-GEOM V2014.0 User Manual
Back to Top
GFileIO.ImportCatiaV5
Prototype
GFileIO.ImportCatiaV5(filename, heal, process_type, use_precision_relative_to_model_size, precision)
Description
Import the specified Catia V5 file into the current model. Note that the "heal" argument (an integer) is
currently unused and is reserved for future usage; you should specify a value of 0 for this argument.
"process_type" can be one of the following:
1. Stitch connected solids, creating clean/shared interfaces between those solids.
2. Unite connected solids into a single solid, tossing out any surfaces that formerly lay between the original
solids.
3. Perform no special assembly processing. Import the solids as-is. This will usually result in arbitrary
interfaces between connected solids.
"use_precision_relative_to_model_size", an integer, controls the interpretation of the specified precision.
If 0 (FALSE), the specified precision is treated as an absolute precision. If 1 (TRUE), the precision is
interpreted as a fraction of the size of the model's bounding box. In both cases, 1e-6 is a typical value for
the precision.
Note that this capability is currently available only to licensed users on 32- and 64-bit MS-Windows
platforms.
Below is an example of its usage:
entities = GFileIO.ImportCatiaV5('model.CATPart', 0, 1, 1, 1.0e-6)
Back to Top
GFileIO.ImportSTL
Prototype
GFileIO.ImportSTL(filename, extract_discrete_surfaces, extract_points_and_lines)
Description
Import the specified stereolithography (STL) file into the current model. Arguments include:
extract_discrete_surfaces: if 1 (TRUE), derive a discrete surface entity from the triangular facets in the file.
extract_points_and_lines: if 1 (TRUE), derive point/line entities from the edges of the triangular facets in
the file. This can often be useful when you need to reverse-engineer a model.
All entities derived from the STL file are returned to Python through an entity dictionary. Below is an
example of its usage:
entities = GFileIO.ImportSTL('model.stl', 1, 0)
Back to Top
GFileIO.ImportNASTRAN
Prototype
GFileIO.ImportNASTRAN(filename, extract_discrete_surfaces, extract_points_and_lines)
Description
Import the specified NASTRAN file into the current model. Arguments include:
494
CFD-GEOM Scripting
extract_discrete_surfaces: if 1 (TRUE), derive discrete surface entities from the grid information in the file.
extract_points_and_lines: if 1 (TRUE), derive point/line entities from the edges of the triangles/quads in
the file. This can often be useful when you need to reverse-engineer a model.
All entities derived from the NASTRAN file are returned to Python through an entity dictionary. Below is
an example of its usage:
entities = GFileIO.ImportNASTRAN('model.nas', 1, 0)
Back to Top
GFileIO.ImportPATRAN
Prototype
GFileIO.ImportPATRAN(filename, extract_discrete_surfaces, extract_points_and_lines)
Description
Import the specified PATRAN neutral file into the current model. Arguments include:
extract_discrete_surfaces: if 1 (TRUE), derive discrete surface entities from the grid information in the file.
extract_points_and_lines: if 1 (TRUE), derive point/line entities from the edges of the triangles/quads in
the file. This can often be Useful when you need to reverse-engineer a model.
All entities derived from the PATRAN file are returned to Python through an entity dictionary. Below is an
example of its usage:
entities = GFileIO.ImportPATRAN('model', 1, 0)
Back to Top
GBCVC.AddEntitiesToBCGroup(entities, group_name)
GBCVC.RemoveEntitiesFromBCGroup(entities)
GBCVC.RenameBCGroup(old_group_name, new_group_name)
GBCVC.AddEntitiesToVCGroup(entities, group_name)
GBCVC.RemoveEntitiesFromVCGroup(entities)
GBCVC.RenameVCGroup(old_group_name, new_group_name)
495
CFD-GEOM V2014.0 User Manual
GBCVC.AutoNameBCs
GBCVC.SetBC
Prototype
GBCVC.SetBC(entities, bc_name, bc_type)
Description
Assign the indicated boundary condition name and type to the specified entities. If you want to
leave one of the components unaltered, you may specify "" for the corresponding value, as long
as you don't also specify "" for the other. Note that valid boundary condition types for each
solver are listed below:
CFD-ACE:
"Default"
"Outlet"
"Inlet"
"Symmetry"
"Wall"
"R_wall"
CFD-FASTRAN:
"Interface"
"Inlet"
"Outlet"
"Inflow_Outflow"
"Wall"
"Symmetry"
"Overset"
"Time Profile"
Note that with the introduction of BC grouping in v2008.2.0.0, it is now possible for this routine
to change the boundary condition type on entities other than the input entities. All entities in a
BC group must have the same BC type. If you change the BC type on an input entity that belongs
to a BC group, all entities in that group will receive the new BC type.
Because the assignment of BC names is independent of BC grouping, the new name (if any) will
still be assigned only to the input entities.
Back to Top
GBCVC.AddEntitiesToBCGroup
Prototype
GBCVC.AddEntitiesToBCGroup(entities, group_name)
Description
Add the input entities to the BC group with the given name. If the group does not already exist, it will be
created. Note the following restrictions:
1. No input entity may already belong to a BC group.
2. All input entities must have the same BC type.
496
CFD-GEOM Scripting
3. If adding to an existing group, the input entities must have the same BC type as the entities already in the
group.
Note also that the input entities should be suitable for BC group assignment. For example, you may not
add a structured 3-D domain (i.e. Block) to a BC group (you would instead add to a VC group). For 3-D
models, you may add surfaces, faces, and discrete surfaces to BC groups. For 2-D models, you may add
lines, curves, edges, and composite edges to BC groups.
Note finally that group_name (a string) may consist only of alphanumeric characters and underscores ('_').
No spaces or other characters are permitted.
Back to Top
GBCVC.RemoveEntitiesFromBCGroup
Prototype
GBCVC.RemoveEntitiesFromBCGroup(entities)
Description
Remove the input entities from any BC group to which they belong. Silently ignore those entities that
don't belong to a group.
Back to Top
GBCVC.RenameBCGroup
Prototype
GBCVC.RenameBCGroup(old_group_name, new_group_name)
Description
Rename the specified BC group (henceforth referred to as group A) referenced by "old_group_name".
Ordinarily, you would use this function to simply assign a new group name. Note that group A must be an
existing BC group.
If, however, new_group_name refers to the name of an existing BC group (henceforth referred to as
group B), the behavior is slightly different. In such cases, the entities in group A will be moved into group
B, and group A will be deleted. However, this is permitted only if the entities in group A have the same BC
type as those in group B.
Note that the old and new group names (strings) may consist only of alphanumeric characters and
underscores ('_'). No spaces or other characters are permitted.
Back to Top
GBCVC.SetVC
Prototype
GBCVC.SetVC(entities, vc_name, vc_type)
Description
Assign the indicated volume condition name and type to the specified entities. If you want to leave one of
the components unaltered, you may specify "" for the corresponding value, as long as you don't also
specify "" for the other. Note that valid volume condition types for each solver are listed below:
CFD-ACE:
"Fluid"
"Solid"
497
CFD-GEOM V2014.0 User Manual
"Block"
CFD-FASTRAN:
"Fluid"
"Blocked"
Note that with the introduction of VC grouping in v2008.2.0.0, it is now possible for this routine to change
the volume condition type on entities other than the input entities. All entities in a VC group must have
the same VC type. If you change the VC type on an input entity that belongs to a VC group, all entities in
that group will receive the new VC type.
Because the assignment of VC names is independent of VC grouping, the new name (if any) will still be
assigned only to the input entities.
Back to Top
GBCVC.AddEntitiesToVCGroup
Prototype
GBCVC.AddEntitiesToVCGroup(entities, group_name)
Description
Add the input entities to the VC group with the given name. If the group does not already exist, it will be
created. Note the following restrictions:
1. No input entity may already belong to a VC group.
2. All input entities must have the same VC type.
3. If adding to an existing group, the input entities must have the same VC type as the entities already in the
group.
Note also that the input entities should be suitable for VC group assignment. For example, you may not
add an edge to a VC group (in a 2-D model you would instead add to a BC group). For 3-D models, you
may add structured domains, semi-structured domains, and unstructured domains to VC groups. For 2-D
models, you may add surfaces, faces, and discrete surfaces to VC groups.
Note finally that group_name (a string) may consist only of alphanumeric characters and underscores ('_').
No spaces or other characters are permitted.
Back to Top
GBCVC.RemoveEntitiesFromVCGroup
Prototype
GBCVC.RemoveEntitiesFromVCGroup(entities)
Description
Remove the input entities from any VC group to which they belong. Silently ignore those entities that
don't belong to a group.
Back to Top
GBCVC.RenameVCGroup
Prototype
GBCVC.RenameVCGroup(old_group_name, new_group_name)
Description
498
CFD-GEOM Scripting
GBCVC.AutoNameBCs
Prototype
AutoNameBCs ()
Description
Automatically name and group BCs based on the surrounding VC names. If the model is 3-D, any surfaces
and structured face entities will be named based on the names of the unstructured domains, structured
domains, semi-structured domains, and Cartesian domain markers they bound. If the model is 2-D, any
lines, curves, edges, and composite edges will be named based on the names of the surfaces and
structured face entities that use them.
Following is the recommended workflow in which this function should be used:
1) Assign names to all volumes using SetVC(). Recall that, unless specifically named, volumes get the
default name "NoName".
2) Set any BC TYPES (see SetBC()) that require special consideration. For example, you may want to
specify inlets and outlets at this time.
3) Call this function. It will automatically name BCs based on the following rules (using example VC
names):
a) A BC lying between 2 VCs named "VC1" and "VC2" will be named "VC1-VC2". It will be added to a BC
group with the same name.
b) A BC bounding only 1 VC will be named based on the VC name and the BC type. For example, if the VC
name is "VC1" and the BC has been tagged as an inlet, the BC name will be "VC1-Inlet". It will be added to
a BC group with the same name.
c) A BC lying in the interior of a volume (i.e. a baffle/thin wall) with name "VC1" will be named "VC1-
Thin_wall". It will be added to a BC group with the same name.
(4) If you wish to manually specify any BC's, do so now.
Back to Top
499
CFD-GEOM V2014.0 User Manual
GUtils.StartGeom()
GUtils.StopGeom()
GUtils.SetUnits(units)
GUtils.GetUnits()
SetName(entities, new_name)
GetEntitiesWithName(name)
GUtils.DeleteEntities(entities)
GUtils.Undo()
GUtils.Redo()
GUtils.AddExternallyControlledUserVariable(name, value)
GUtils.DeleteLevel(name)
GUtils.SetActiveLevel(name)
GUtils.AddEntitiesToLevel(name, entities)
GUtils.RemoveEntitiesFromLevel(name, entities)
GUtils.ChangeLevelName(old_name, new_name)
GUtils.Get<Various>()
GUtils.Get<Various>InLevel(level_name)
GUtils.StartGeom
Prototype
GUtils.StartGeom()
Description
500
CFD-GEOM Scripting
Initialize the CFD-GEOM scripting system when running scripts outside the CFD-GEOM graphical user
interface. This initialization is required, for example, when you wish to run CFD-GEOM scripts from
SimManager or a standalone Python interpreter.
Note that, once this function is called, any subsequent calls to it do nothing until StopGeom() is called.
Note also that this function does nothing if run from within the CFD-GEOM graphical user interface.
Back to Top
GUtils.StopGeom
Prototype
GUtils.StopGeom()
Description
Terminate the CFD-GEOM scripting system when running scripts outside the CFD-GEOM graphical user
interface. This is not strictly required, but is important if you want to free CFD-GEOM resources used
during the script run.
Note that this function does nothing if the scripting system is not in a "started" state ( see StartGeom() ).
It also does nothing if run from within the CFD-GEOM graphical user interface.
Back to Top
GUtils.SetUnits
Prototype
GUtils.SetUnits(units)
Description
Set the units for the current model. Valid units are defined as follows:
0 (METERS)
1 (FEET)
2 (INCHES)
3 (MILLIMETERS)
4 (CENTIMETERS)
5 (MICRONS)
6 (KILOMETERS)
7 (MILES)
8 (MILS)
9 (NANOMETERS)
Back to Top
GUtils.GetUnits
Prototype
501
CFD-GEOM V2014.0 User Manual
GUtils.GetUnits()
Description
Get the units of the current model. Return values are as follows:
0 (METERS)
1 (FEET)
2 (INCHES)
3 (MILLIMETERS)
4 (CENTIMETERS)
5 (MICRONS)
6 (KILOMETERS)
7 (MILES)
8 (MILS)
9 (NANOMETERS)
Back to Top
SetName
Prototype
SetName(entities, new_name)
Description
Assign the specified name to the input entities. new_name must be a non-empty string without leading
and trailing whitespace.
Back to Top
GetEntitiesWithName
Prototype
GetEntitiesWithName(name)
Description
Collect all entities with the given name in the current model. "name" does not refer to a Python handle,
but rather to a name explicitly assigned by the user in the CFD-GEOM graphical user interface, a name
assigned (in a CAD models) by a CAD system, or a name assigned via SetName()
Back to Top
GUtils.DeleteEntities
Prototype
GUtils.DeleteEntities(entities)
Description
Delete the specified entities. Note that only those entities which can be deleted will be deleted.
Back to Top
502
CFD-GEOM Scripting
GUtils.Undo
Prototype
GUtils.Undo()
Description
Undo the most recent command. Note that modifications of edge grid parameters can not currently be
undone via this function. Note also that this function is provided only for the sake of completeness of the
journaling system. In general, if you need to undo an operation, you should delete the last command in
your script, rerun the script, and continue journaling.
Back to Top
GUtils.Redo
Prototype
GUtils.Redo()
Description
Redo the most recently undone operation. See notes for Undo() above.
Back to Top
GUtils.AddUserVariable
Prototype
GUtils.AddUserVariable(dict, name, expression)
Description
Add a user variable. This capability corresponds to the "Edit -> User Variables" tool in the CFD-GEOM
graphical user interface. This function serves 3 purposes:
1) It adds the variable to CFD-GEOM's internal list of user variables, so that it can be used in CFD-GEOM
AFTER the script run.
2) It adds the variable to Python's global namespace so that it can be used DURING the script run.
3) It informs SimManager of the existence of the variable (if the script is specified for parametric studies in
SimManager) so that values can be specified (in SimManager) for the variable BEFORE the script run.
Note This function will usually create/modify the specified variable. However, if the variable has been
"hijacked" by an external app (such as SimManager) via AddExternallyControlledUserVariable(), this
function will simply reset the variable's value to the value specified in the
AddExternallyControlledUserVariable() call.
Back to Top
GUtils.AddExternallyControlledUserVariable
Prototype
GUtils.AddExternallyControlledUserVariable(name, value)
Description
503
CFD-GEOM V2014.0 User Manual
This function allows other programs (i.e. other than CFD-GEOM) running CFD-GEOM scripts to "hijack"
user variables that control the execution of the CFD-GEOM script. Its proper usage and rationale are best
described by an example from SimManager.
Suppose that you've created the following (abbreviated) CFD-GEOM script:
import GUtils
#import other CFD-GEOM modules
GUtils.StartGeom()
GUtils.AddUserVariable(globals(), 'length', 2)
...
# Use 'length' in 1 or more commands
...
GUtils.StopGeom()
Suppose that you now wish to base a parametric study in SimManager upon this script and the variable
"length". When you specify this script in SimManager's "Parametric Study Wizard", SimManager identifies
all calls to GUtils.AddUserVariable and makes the specified variables available for respecification.
Immediately prior to execution of this script in the Python interpreter, SimManager informs CFD-GEOM of
the new user variable. However, without some special protections, the call to GUtils.AddUserVariable (in
the script) would overwrite the value assigned to "length" immediately prior to the script run.
AddExternallyControlledUserVariable helps circumvent this problem. This function is called automatically
by SimManager immediately prior to the script run. This function is very similar to AddUserVariable
except that it sets a special tag on the variable such that any subsequent calls to AddUserVariable will not
modify the variable's value.
Unless you're writing your own SimManager-like system, you should never need to call this function
yourself.
Back to Top
GUtils.CreateLevel
Prototype
GUtils.CreateLevel(name, red=255, green=255, blue=255, alpha=255)
Description
Create a level with the given name and color. red, green, blue, and alpha should be in the range [0..255].
Note the following restrictions on the name:
1) It must be a string at least one character long
2) It may contain only alphanumeric and underscore ('_') characters
3) It must not be in use by another level
4) The name "none" (case-insensitive) is reserved for use by CFD-GEOM and must not be specified.
Back to Top
GUtils.DeleteLevel
Prototype
GUtils.DeleteLevel(name)
Description
504
CFD-GEOM Scripting
Back to Top
GUtils.SetActiveLevel
Prototype
GUtils.SetActiveLevel(name)
Description
Make the specified level the current level. The current level is the level into which newly created entities
are inserted. If name is "" or "none", no level will be current (i.e. newly created entities will not be
inserted into any user-defined level). Otherwise, the specified name must be that of an existing level.
Back to Top
GUtils.AddEntitiesToLevel
Prototype
GUtils.AddEntitiesToLevel(name, entities)
Description
Add the specified entities to the level with the given name. "name" must be the name of an existing user-
defined level created by CreateLevel() or renamed via ChangeLevelName().
Back to Top
GUtils.RemoveEntitiesFromLevel
Prototype
GUtils.RemoveEntitiesFromLevel(name, entities)
Description
Remove the specified entities from the level with the given name. Note that CFD-GEOM ignores those
entities that don't belong to that level. "name" must be the name of an existing user-defined level created
by CreateLevel() or renamed via ChangeLevelName().
Back to Top
GUtils.ChangeLevelName
Prototype
GUtils.ChangeLevelName(old_name, new_name)
Description
Change the name of the level specified by "old_name". "new_name" must meet the following
requirements:
1) It must be a string at least one character long
2) It may contain only alphanumeric and underscore ('_') characters
3) It must not be in use by another level
4) The name "none" (case-insensitive) is reserved for use by CFD-GEOM and must not be specified.
505
CFD-GEOM V2014.0 User Manual
Back to Top
GUtils.Get<Various>
Prototype
GUtils.GetPoints()
GUtils.GetLines()
GUtils.GetCurves()
GUtils.GetEdges()
GUtils.GetCompositeEdges()
GUtils.GetEdgeLinkGroups()
GUtils.GetLoops()
GUtils.GetUntrimmedSurfaces()
GUtils.GetSurfaces()
GUtils.GetDiscreteSurfaces()
GUtils.GetFaces()
GUtils.GetShells()
GUtils.GetUnstructuredDomains()
GUtils.GetSemiStructuredDomains()
GUtils.Get2DStructuredDomains()
GUtils.GetStructuredDomains()
GUtils.GetCompositeStructuredDomains()
GUtils.GetFilaments()
Description
Grab all points, lines, etc. in the current model. These functions may be useful for a variety of purposes.
For example, suppose that you've read a SAT file during a script run, and that you want to mesh all
surfaces read from that file. This function grabs all the surfaces and sticks them in a list, which can then be
fed to the meshing API.
Back to Top
GUtils.Get<Various>InLevel
Prototype
GUtils.GetEntitiesInLevel(level_name)
GUtils.GetPointsInLevel(level_name)
GUtils.GetLinesInLevel(level_name)
GUtils.GetCurvesInLevel(level_name)
GUtils.GetEdgesInLevel(level_name)
GUtils.GetCompositeEdgesInLevel(level_name)
GUtils.GetEdgeLinkGroupsInLevel(level_name)
GUtils.GetLoopsInLevel(level_name)
GUtils.GetUntrimmedSurfacesInLevel(level_name)
GUtils.GetSurfacesInLevel(level_name)
GUtils.GetDiscreteSurfacesInLevel(level_name)
GUtils.GetFacesInLevel(level_name)
GUtils.GetShellsInLevel(level_name)
GUtils.GetUnstructuredDomainsInLevel(level_name)
GUtils.GetSemiStructuredDomainsInLevel(level_name)
GUtils.Get2DStructuredDomainsInLevel(level_name)
GUtils.GetStructuredDomainsInLevel(level_name)
506
CFD-GEOM Scripting
GUtils.GetCompositeStructuredDomainsInLevel(level_name)
GUtils.GetFilamentsInLevel(level_name)
Description
Grab all points, lines, etc. belonging to the specified level in the current model. These can be useful for
grabbing entities belonging to levels imported from a GGD or IGES file.
Back to Top
GViz.BlankEntities(entities)
GViz.UnblankEntities(entities)
GViz.BlankEntities
Prototype
GViz.BlankEntities(entities)
Description
Blank the specified entities. This capability corresponds to a CTRL-B in the CFD-GEOM GUI.
Back to Top
GViz.UnblankEntities
Prototype
GViz.UnblankEntities(entities)
Description
Unblank (i.e. show) the specified entities. There is currently no corresponding button or hotkey sequence
for this in the CFD-GEOM GUI.
Back to Top
507
CFD-GEOM V2014.0 User Manual
CFDForm.ExecuteForm(form, placement=4)
CFDForm.CreateForm
Prototype
CFDForm.CreateForm(window_title)
Description
Create a new (and empty) Form with the given title.
Back to Top
CFDForm.ExecuteForm
Prototype
CFDForm.ExecuteForm(form, placement=4)
Description
Execute the specified form. This causes the form to become visible and to enter an event loop, waiting for
input. This function returns only when a closure button (see AddCloseButton(...) ) is pressed (see caveat
508
CFD-GEOM Scripting
below). The return value indicates which closure button was pressed. For example, suppose that you add
2 closure buttons "OK" amd "Cancel" (in this order) to the form. Pressing "OK" will cause ExecuteForm() to
return a value of 1. Pressing "Cancel" will cause ExecuteForm() to return a value of 2. You can key on
these return values to control the flow of the remainder of your script.
It is possible to terminate a form by pressing the ESC key. In this case, the return value is 0. Moreover,
none of the changes to any of the widgets in the form is applied (i.e. it will be as if the form was never
executed).
Note that the "placement" argument is reserved for future usage.
Back to Top
CFDForm.AddCloseButton
Prototype
CFDForm.AddCloseButton(form, label, disable_if_invalid_input)
Description
Add a button for closing the specified form. The label will typically be something like "OK" or "Cancel".
Back to Top
CFDForm.AddIntegerInputField
Prototype
CFDForm.AddIntegerInputField(form, parent_name, field_name, py_variable_name, value, low, high,
label_text="", tip_text="", width=5)
Description
Add an integer input field to the given form. Additional arguments include:
parent_name : the name of the container into which the input field should be inserted. If you haven't
added any named containers, you should specify "main" for this argument.
field_name : the name of the field. This is a handle by which you can later access the field, and should be
unique.
py_variable_name : the variable (in your script) to which this field is connected. Note that this variable will
be created upon the completion of form execution if it does not already exist. The name of this variable
should be placed in double quotes.
value : the value of the above variable
low, high : the acceptable range (inclusive) of the value in this field.
label_text (optional) : the text label to display next to the field.
tip_text (optional) : the tooltip to display if you hover over this field with the mouse pointer
width (optional) : the number of digits to display.
Back to Top
CFDForm.AddRealInputField
Prototype
CFDForm.AddRealInputField(form, parent_name, field_name, py_variable_name, value, low, high,
label_text="", tip_text="", width=20)
509
CFD-GEOM V2014.0 User Manual
Description
Add a real (number) input field to the given form. Additional arguments include:
parent_name : the name of the container into which the input field should be inserted. If you haven't
added any named containers, you should specify "main" for this argument.
field_name : the name of the field. This is a handle by which you can later access the field, and should be
unique. py_variable_name : the variable (in your script) to which this field is connected. Note that this
variable will be created upon the completion of form execution if it does not already exist. The name of
this variable should be placed in double quotes.
value : the value of the above variable
low, high : the acceptable range (inclusive) of the value in this field.
label_text (optional) : the text label to display next to the field.
tip_text (optional) : the tooltip to display if you hover over this field with the mouse pointer
width (optional) : the number of digits to display.
Back to Top
CFDForm.AddMenu
Prototype
CFDForm.AddMenu(form, parent_name, menu_name, py_variable_name, value, label_text="",
tip_text="", max_visible=5)
Description
Create a scrollable pulldown menu into which you can insert text items (see AddMenuItem() defined
later). Additional arguments include:
parent_name : the name of the container into which this menu should be inserted. If you haven't added
any named containers, you should specify "main" for this argument.
menu_name : the name of the menu. This is a handle by which you can later access the menu (for
inserting items), and should be unique.
py_variable_name : the variable (in your script) to which this menu is connected. Note that this variable
will be created upon the completion of form execution if it does not already exist. The name of this
variable should be placed in double quotes. When the parent form completes execution, the value of this
variable will be 1 if the 1st item is selected, 2 if the second item is selected, etc. If no items are inserted
into this menu via AddMenuItem(), the resulting value will be 0.
value : the initial value of the above variable. Currently this has no effect and is reserved for future use.
For the time being, you should specify 0.
label_text (optional) : the text label to display next to the menu.
tip_text (optional) : the tooltip to display if you hover over this menu with the mouse pointer
max_visible (optional) : the maximum number of items to display. If the number of inserted items exceeds
this value, a scrollbar becomes visible.
Back to Top
CFDForm.AddMenuItem
Prototype
CFDForm.AddMenuItem(form, menu_name, item_name)
Description
510
CFD-GEOM Scripting
Add a menu item to named menu referred to by menu_name. That menu must have been created via
AddMenu()
Back to Top
CFDForm.AddSimpleGroup
Prototype
CFDForm.AddSimpleGroup(form, parent_name, group_name, orientation, group_title="")
Description
Add a named container which can be used to group related input fields, buttons, etc. Such containers are
useful for enforcing a particular type of layout. Arguments include:
parent_name : the name of the container into which this container should be inserted. If you haven't
added any named containers, you should specify "main" for this argument.
group_name : the name of the new container. This is a handle by which you can later access this
container, and should be unique. You'll need this handle when you want to insert items into it.
orientation : specifies whether items inserted into the group should be arranged vertically (1) or
horizontally (2).
group_title (optional) : If specified, a border will be drawn around the new container and the specified
title will be embedded in that border.
Back to Top
CFDForm.AddRadioSwitcher
Prototype
CFDForm.AddRadioSwitcher(form, parent_name, group_name, button_style, py_variable_name, value,
orientation=1, group_title="", button_orientation=1)
Description
Add a radio switcher to the specified form. A radio switcher is defined by 2 regions. Region1 consists of a
set of buttons upon which "radio" behavior is enforced (that is, exactly one button is selected at any one
time). Region2, which is placed adjacent to Region1, contains "simple groups" (see AddSimpleGroup())
that are placed on top of each other. Which group is currently visible is controlled by the currently
selected button in Region1. Note that this function only creates an empty radio switcher. You must use
AddButtonToRadioSwitcher() to populate this container. Additional arguments include:
parent_name : the name of the container into which this container should be inserted. If you haven't
added any named containers, you should specify "main" for this argument.
group_name : the name of the new container. This is a handle by which you can later access this
container, and should be unique. You'll need this handle when you want to insert items into it.
button_style : specifies whether to create round (1) or square (2) buttons in region1.
py_variable_name : the variable (in your script) to which this switcher is connected. Note that this
variable will be created upon the completion of form execution if it does not already exist. The name of
this variable should be placed in double quotes. When the parent form completes execution, the value of
this variable will be 1 if the 1st item is selected, 2 if the second item is selected, etc. If no items are
inserted into this switcher via AddButtonToRadioSwitcher(), the resulting value will be 0.
value : the initial value of the above variable. Currently this has no effect and is reserved for future use.
For the time being, you should specify 0.
511
CFD-GEOM V2014.0 User Manual
orientation (optional) : specifies whether region2 should be positioned to the left (1), below (2), to the
right (3), or above (4) region1.
button_orientation (optional) : specifies whether the buttons in region1 should be arranged vertically (1)
or horizontally (2)
Back to Top
CFDForm.AddButtonToRadioSwitcher
Prototype
CFDForm.AddButtonToRadioSwitcher(form, switcher_name, button_name, new_container_name,
new_container_orientation, new_container_title="")
Description
See notes in AddRadioSwitcher(). Add a new button and container pair to the specified radio switcher.
The new container will always be a "simple group". Additional arguments include:
switcher_name : the name of the switcher into which this pair should be inserted. This name must refer
to a radio switcher.
button_name : the name and text label of the new button.
new_container_name : the name of the new container inserted into region2. This is a handle by which
you can later access this container, and should be unique. You'll need this handle when you want to insert
items into it.
new_container_orientation : specifies whether items inserted into the new container should be arranged
vertically (1) or horizontally (2).
group_title (optional) : If specified, a border will be drawn around the new container and the specified
title will be embedded in that border.
Back to Top
CFDForm.AddImage
Prototype
CFDForm.AddImage(form, parent_name, filename)
Description
Insert an image into the specified container. Arguments include:
parent_name : the name of the container into which this image should be inserted. If you haven't added
any named containers, you should specify "main" for this argument.
Back to Top
512
Chapter 12. Frequently Asked Questions
What do the different update options for DTF files mean when saving a DTF file
from CFD-GEOM?
• Overwrite: If you choose this option, GEOM will overwrite the existing DTF file and you will loose all
settings that were previously in the DTF file. This is essentially a fresh DTF file.
• Update Grids Only: This option will update the grids in your DTF file and will retain all the settings that
were used in the DTF file.
• Limitations:
• These options will not work if any entities are deleted and recreated. The reason is that the key
numbers for the entities will be different, which is not allowed when attempting to update a DTF
file.
• These options will not work if any additional entities are added to the DTF file, i.e. you add a new
part to the geometry.
513
Appendix A IBC File Format
The .IBC file is created when the Save Structured Grid/Save GEOM option is invoked. The .IBC file, in conjunction
with the Plot3D grid file, transmits interface, boundary condition, and cell type information for structured grid
datasets, as well as the relationship between the Plot3D information and CFD-GEOM database, to a flow solver.
The CFD-ACE Graphical User Interface relies on this information extensively.
Note The file is divided into the following three separate sections: Interface information, Boundary condition
information, and Cell type information
Comments can be placed anywhere in the file. A comment line has an "!” as the first character of its line.
Additionally, the first line of the file has a comment line that indicates the .IBC file version number. The domain
interface information is automatically provided by CFD-GEOM. For 3D, a domain interface exists if a face is shared
by two different blocks, while for 2D an interface exists if an edge is shared by two 2D blocks. The boundary
condition and cell type (volume condition) information is set by the user in either the Boundary Conditions or
Volume Conditions window. Boundary conditions may be set on edges (2D) or faces (3D) while volume conditions
may be set on faces (2D) or blocks (3D). All entities, even those for which no boundary or volume condition was
specified, are output to the .IBC file.
515
Appendix B Data
• Block Interface Data
• Boundary Condition Data
• Cell Type Data
1 Num_interfaces
where:
Key = unique integer number specifying the CFD-GEOM entity to which this interface refers
1 Num_bc
where:
517
CFD-GEOM V2014.0 User Manual
1 Num_cell_type_records
where all parameters are as defined in the Boundary Condition Data except that the strings refer to the cell types.
518
Appendix C Formats
Grid File Formats
PLOT3D Data Format
Unstructured FAST Data Format
NASTRAN Mixed Element Format
PATRAN Mixed Element Format
Filename Usage
File Formats
CFD-GEOM Supports the PLOT3D and FAST data formats as well as others. The PLOT3D can be formatted,
unformatted, or binary, contain an single or multi domain 3D grid and may have blanking information. However,
CFD-GEOM can only read formatted FAST files and they can contain multi-domain 3D grids. For both PLOT3D and
FAST the files may be in single or double precision. When reading formatted PLOT3D and FAST files, CFD-GEOM
will use whatever precision is specified in the file. When reading unformatted and binary PLOT3D files, CFD-GEOM
will read single-precision by default and give you the option of specifying double precision.
519
CFD-GEOM V2014.0 User Manual
1D Structured Edges
2D 2D Blocks (Note that Faces must be composited into 2D Blocks before they can be written to PLOT3D)
In the File Save Dialog, the dimension can be specified. The availability of these options will depend upon the types
of entities that exist in the model (i.e. the 3D option will be disabled if the current model contains no Blocks or
Composite Blocks). A fourth option, Selective is also available. Before opening the File Save Dialog, you may select
a set of structured grid entities. Upon entering the File Save Dialog and selecting Selective, only those picked
entities will be written to the file.
• Formatted (ASCII)
• Unformatted (binary)
• Binary (binary)
Grid Point coordinates can be written in single (the default) or double precision. CFD-GEOM always writes blanking
information (except when writing 1D grids) and always writes multi-zone files (even if only one zone is being
written). You may also elect to write a companion IBC file. (See Appendix A for a description of the IBC file format).
For unformatted and binary output types, integer and floating point data are written in the native byte order (see
the section below on reading PLOT3D files) A detailed description of the PLOT3D format can be found at the end of
this section and at the following web site:
www.nas.nasa.gov/Software/FAST/RND-93-010.walatka-clucas/htmldo
CFD-GEOM can also read PLOT3D structured grid files, and unstructured grid files (commonly called FAST-format
files, which are described later in this Appendix). There are several other variants of PLOT3D (solution, scalar, and
vector file formats). These are not supported by CFD-GEOM. Given a PLOT3D file, CFD-GEOM automatically
determines the following file characteristics:
520
Appendix C
CFD-GEOM can read file of mixed dimensionality. CFD-GEOM reverse engineers the geometry/topology/grid data
from the file. Given the dimensionality of a particular zone, CFD-GEOM performs the following actions:
• 1D - Geometry points are created from the grid points in the zone. A curve is then splined through those
points. An edge is then created on the curve. The grid points in the zone are then assigned to the edge.
Note: Most often, CFD-GEOM can not determine what mathematical rule was used to generate the grid.
Thus, it assigns the type extracted (as opposed to power law, hyperbolic tangent, or geometric currently
supported by CFD-GEOM) to the Edge. The extracted distribution will be preserved unless you later
change the number of grid points on the edge or modify the underlying geometry. In these cases, the
edge distribution reverts to a power law 1.0 distribution.
• 2D - Points, a curve, and an edge (created in a manner similar to the 1D case) are created on each of the
four sides of the 2D grid in the zone. Degenerate Edges are created when the number of sides is less than
four. A face is then created from these edges. The face’s grid is then extracted from the grid points in the
file. Note: CFD-GEOM will be unaware of any projection, smoothing, etc. used to generate the grid in the
file. Hence, it assigns the type extracted to the Face. The face grid will be preserved so long as the
underlying edges or geometry are not subsequently modified. If you intend to modify the grid, it may be
necessary to create a NURBS surface from the face and then to project the face to the surface. This will
help preserve the face’s shape during the grid modifications.
• 3D - Faces (created in a manner similar to the 2D case) are created on each of six sides of the 3D grid in
the zone. Degenerate Faces are created where necessary. A block is then created from these faces. In
most cases, CFD-GEOM will be unable to preserve the locations of the interior nodes in the grid, and will
thus revert to a TFI of the interior nodes. If your intention is simply to translate a 3D PLOT3D grid to DTF,
CFD-Toolkit is recommended. However, once the block is created in CFD-GEOM via reading a PLOT3D file,
you can change grid distributions in the usual ways.
Notes
• When blocks are composited (in CFD-GEOM or another package) and the composited block is written to
PLOT3D, all geometry and topology data interior to the composite block is lost. A composited block in the
PLOT3D file will appear as a single block to CFD-GEOM. Therefore, CFD-GEOM has no way of reverse
engineering any interior interfaces that may have once existed.
• If the original geometry contained a Block with two or more Blocks adjacent to it on a single side, and
these Blocks were written to separate zones in a PLOT3D file, CFD-GEOM will create overlapping or
coincident faces at the interface between these Blocks. Even though the grid points on the overlapping
Faces will match, these will be treated as arbitrary interfaces, and may require further action from the
user to correct. This issue may be corrected in a future release of CFD-GEOM.
521
CFD-GEOM V2014.0 User Manual
where
all other variables = the same as for the grid file without blanking
where
Nz = number of domains
522
Appendix C
Xn, Yn, Zn = 3D arrays of the X, Y, and Z Cartesian grids points for domain n
all other variables = same as for the grid file without blanking
523
CFD-GEOM V2014.0 User Manual
.
T1(Nt) T2(Nt) T3(Nt) T4(Nt)
where:
Np = number of points
Nt = number of tetrahedra
524
Appendix C
where
Nz = number of domains
T1N(n), T2N(n), T3N(n), T4N(n) = four triangles comprising tetrahedra n for domain N
0.0 1.0 0.0 1.0 0.0 1.0 0.0 1.0 <--- X values of point 1,2,...,8
0.0 0.0 1.0 1.0 0.0 0.0 1.0 1.0 <--- Y values of point 1,2,...,8
0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 <--- Z values of point 1,2,...,8
248
286
348
387
135
375
123
243
525
CFD-GEOM V2014.0 User Manual
568
5286
2438
5837
526
Appendix D CFD-GEOM Tabulated Data
The format for CFD-GEOM Tabulated Data is given below. TAB is the default extension given to tabulated data.
Line 1 Number of curves in the file
Line 2 Number of points defining the curve
Line 3-N X Y Z
Example
3 ♦ Number of Curves to be created
5 ♦ First curve defined by first five points
4 ♦ Second curve defined by next four points
2 ♦ Third curve defined by next two points
0.000 0.0 0.0 ♦ X Y Z data for first point in curve 1
1.25 1.000 0.0 .
2.3367 3.000 0.0 .
3.84 7.00 0.00 .
5.5 6.3 0 ♦ X Y Z data for last point in curve 1
0.0 0.0 0.0 ♦ X Y Z data for first point in curve 2
0.0 1.0 0.0 .
0.0 2.0 0.0 .
0.0 3.0 0.0 ♦ X Y Z data for last point in curve 2
1.25 6.8 3.39 ♦ X Y Z data for first point in curve 3
16.115 -12.54 -9.6 ♦ X Y Z data for last point in curve 3
527
Appendix E Sample Python Scripts
This appendix includes scripts for the following:
if (len (par) != len (twist)) or (len (par) != len (length)) or (len (par) != len
(taperratio)):
raise "Not all the required data was provided for all airfoils"
numAirfoils = len (par)
airfoilCurves = []
for x in range (0, numAirfoils):
xpos = (0.5 - 0.5/taperratio[x]) + length[x] * math.tan (GGlobal.DTOR (sweepangle))
offset = [xpos, 0.0, length[x]]
airfoilCurves.append (AirfoilGeometry (par[x][0], par[x][1], par[x][2], twist[x],
offset, 1./taperratio[x]))
airfoilLoop = GLoop.Create (airfoilCurves[0])
min_point = [-1.0*leadingDistance,-1.0*lowerDistance,length[0]]
max_point = [1.0+trailingDistance, upperDistance, length[numAirfoils-1]*2]
srfs = GSurface.CreateBoundingBox ( min_point, max_point)
GSurface.AddLoop (srfs[0], airfoilLoop)
ruledTopCurves = []
ruledBottomCurves = []
for x in range (0, numAirfoils):
ruledTopCurves.append ([airfoilCurves[x][0]])
ruledBottomCurves.append ([airfoilCurves[x][1]])
usurf = GSurface.CreateRuled (ruledTopCurves)
lsurf = GSurface.CreateRuled (ruledBottomCurves)
bsurf = GSurface.CreateRuled (airfoilCurves[numAirfoils-1][0],
airfoilCurves[numAirfoils-1][1])
GSurface.TrimAll ()
dShell = GUnstruct.CreateClosedSurfaceSet (srfs, bsurf, usurf, lsurf)
domain = GUnstruct.CreateDomain (dShell)
GUnstruct.GenerateTriangularMesh (domain)
GUnstruct.GenerateTetMesh (domain)
529
CFD-GEOM V2014.0 User Manual
530
531