Ensight Howto User Manual How To

2017-12-05

User Manual: Ensight Howto HowTo EnSight10_Docs www3.ensight.com 3:

Open the PDF directly: View PDF PDF.
Page Count: 546

DownloadEnsight Howto User Manual How To
Open PDF In BrowserView PDF
HOW TO TABLE OF CONTENTS
Introduction
Use the Online Documentation
Use The How To Manual
EnSight Overview
Command Line Start-up Options
Use Environment Variables
Connect EnSight Client & Server
Read and Load Data
Read Data
Use ens_checker
Load Multiple Datasets (Cases)
Compare Cases
Load Transient Data
Use Server of Servers
Load Spatially Decomposed Case Files
Read User Defined
Do Structured Extraction
Use Resource Management
Use Root Level Server of Servers

Use the Sphere Tool
Use the Cone Tool
Use Surface of Revolution Tool
Use the Selection Tool
Use the Spline Tool
Miscellaneous
Use Batch
Use Keyboard Shortcuts
Use Rigid Body Motion
Select Files
Use EnSight with Workbench

Manipulate Viewing Parameters
Rotate, Zoom, Translate, Scale
Set Drawing Mode
Set Global Viewing Parameters
Set Z Clipping
Set LookFrom / LookAt
Set Auxiliary Clipping
Define and Change Viewports
Set Light Sources
Display Remotely
Save & Restore Viewing Parameters
Create and Manipulate Frames
Reset Tools and Viewports
Use the Color Selector
Enable Stereo Viewing
Pick Center of Transformation
Set Model Axis/Extent Bounds
Do Viewport Tracking
View a Viewport Through a Camera
Manage Views

Visualize Data
Introduction to Part Creation
Create Auxiliary Geometry
Create Contours
Create Isosurfaces
Create Particle Traces
Create Clips
Create Clip Lines
Create Clip Planes
Create Box Clips
Create Quadric Clips
Create IJK Clips
Create XYZ Clips
Create RTZ Clips
Create Revolution Tool Clips
Create Revolution of 1D Part Clips
Create General Quadric Clips
Create Clip Splines
Create Vector Arrows
Create Elevated Surfaces
Extrude Parts
Create Profile Plots
Create Developed (Unrolled) Surfaces
Create Subset Parts
Create Tensor Glyphs
Display Displacements
Display Discrete or Experimental Data
Change Time Steps
Extract Vortex Cores
Extract Separation & Attachment Lines
Extract Shock Surfaces
Create Material Parts
Filter Part Elements
Do Element Blanking
Use Point Parts
Use Raytrace Rendering

Manipulate Tools
Use the Cursor (Point) Tool
Use the Line Tool
Use the Plane Tool
Use the Box Tool
Use the Cylinder Tool

Create and Manipulate Variables
Activate Variables
Create New Variables
Extract Boundary Layer Variables
Edit Color Palettes
Use Volume Rendering

Save or Output
Save or Restore an Archive
Record and Play Command Files
Print/Save an Image
Save Geometric Entities
Save/Restore Context
Save Scenario
Save/Restore Session

Page 1

HOW TO TABLE OF CONTENTS
Query, Probe, Plot
Get Point, Node, Element, & Part Info
Probe Interactively
Query/Plot
Change Plot
Query Datasets
Manipulate Parts
Change Color
Set Surface Properties
Use Quick Color Settings
Clone a Part
Copy Parts
Group Parts
Merge Parts
Extract Part Representations
Cut Parts
Delete a Part
Change the Visual Representation
Set
Display Labels
Set Transparency
Select Parts
Set Symmetry
Map Textures
Animate
Animate Transient Data
Create a Flipbook Animation
Create a Keyframe Animation
Animate Particle Traces
Annotate
Create Text Annotation
Create Lines
Create 2D Shapes
Create 3D Arrows
Create Dials
Create Gauges
Load Custom Logos
Create Color Legends
Manipulate Fonts
Configure EnSight
Customize Icon Bars and Panels
Customize Mouse Button Actions
Save Settings
Define and Use Macros
Set or Modify Preferences
Enable User Defined Input Devices
Produce Customized Pop-Up Menus
Produce Customized Access to Tools & Features
Setup For Parallel Computation
Setup For Parallel Rendering

Page 2

HOW TO USE THE ONLINE DOCUMENTATION
Introduction
Use the Online Documentation

INTRODUCTION
The EnSight online documentation consists of:
Installation Guide

Consists of a .pdf file in the doc directory (as well as being available for easy reading
from the web install page). Also goes out as hardcopy with an EnSight CD.

Getting Started
Manual

The Getting Started Manual contains basic Graphical User Interface overview
information and several tutorials. This manual is not cross-referenced with any of the
other manuals.

How To Manual

The How To documentation consists of relatively short articles that describe how to
perform a specific operation in EnSight, such as change the color of an object or
create an isosurface. Step-by-step instructions and pictures of relevant dialogs are
included. In addition, each How To article typically contains numerous hyperlinks
(colored blue) to other related articles (and relevant sections of the User Manual).
How To Use the How To Manual
How To Table of Contents

User Manual

The User Manual is a more traditional document providing a detailed reference for
EnSight. The User Manual contains blue hyperlinks as well. The User Manual table of
contents is hotlinked as well as cross-reference entries within chapters (which
typically start with “See Section ...” or “See How To ...”).
User Manual Table of Contents

Interface Manual

The Interface Manual contains the information needed for creating user-defined
readers, creating user-defined writers, creating user-defined math functions,
interacting with EnSight through the external command driver, and using the EnSight
python interpreter.

WHERE TO START?
If you are new to EnSight you should read the EnSight Overview article. Chapter 1 and Chapter 5 in the User
Manual also provide overview information. The Introduction to Part Creation provides fundamental information on
EnSight’s part concept.

PDF READER
The EnSight online documentation is in pdf format. EnSight uses a pdf reader such as the Acrobat® Reader software
from Adobe Systems, Inc., Xpdf, or Apple’s Preview. Any of these readers provide similar capabilities. For the
purposes of this documentation, the Acrobat Reader will be pictured. A pdf reader provides much the same
functionality as a World Wide Web browser while providing greater control over document content quality. To use a
different reader (from the default), simply set the environment variable CEI_PDFREADER to a different reader
application. See How To Use the How To Manual for more information on using a pdf reader.

Page 3

HOW TO USE THE ONLINE DOCUMENTATION
HOW TO PRINT THE DOCUMENTATION
Printing Topics From a PDF Reader
You can easily print any topic in the How To manual or any pages from the other documentation from within the pdf
reader. The documents have been optimized for screen manipulation, but will still produce decent hardcopy printouts.
To print a topic:
1. Navigate to the topic you want to print.
2. Choose Print... from the File menu.
3. Be sure the Printer Command setting is correct for your environment and then click OK. Your document should
print to the selected (or default) printer. If you do not have a printer available on your network or you wish to save
the PostScript file to disk, you can do so: click the File button, enter a filename, and click OK.

Printing EnSight Manuals
You can print (all or portions of) the EnSight manuals from provided .pdf files. These files have been print optimized
and should produce reasonably high quality hardcopy. They have all been formatted for letter size paper. These files
are located in the doc/Manuals directory of the EnSight installation.
$CEI_HOME/ensight102/doc/Manuals/GettingStarted.pdf
$CEI_HOME/ensight102/doc/Manuals/HowTo.pdf
$CEI_HOME/ensight102/doc/Manuals/UserManual.pdf
$CEI_HOME/ensight102/doc/Manuals/InterfaceManual.pdf
You can open these manuals in the pdf reader and print any or all pages, or send them to an outside source for
printing, or order printed copies from our website.

CONTACTING CEI
If you have questions or problems, please contact CEI:
Computational Engineering International, Inc.
2166 N. Salem Street, Suite 101
Apex, NC 27523 USA
Email:
Hotline:

support@ceisoftware.com
800-551-4448 (U.S.)
919-363-0883 (Non-U.S.)

Phone:
FAX:

919-363-0883
919-363-0833

WWW:

http://www.ceisoftware.com

Page 4

HOW TO USE THE HOW TO MANUAL
Use The How To Manual

INTRODUCTION
The “How To” documentation provides quick access to various topics of interest. The topics provide basic and some
advanced usage information about a specific tool or feature of EnSight. Each topic will provide links to the
appropriate section of the EnSight User Manual as well as links to other applicable How To articles. When you hit a
Help button within the various dialogs in EnSight, you will generally be taken to one of the topics in the “How To”
manual.
Topics typically contain the following sections:
Introduction

Introduction to the topic

Basic Operation

Quick steps for simple usage

Advanced Usage

Detailed information on topic

Other Notes

Other items of interest

See Also

Links to related topics and documentation

(See below for how to quickly jump to a specific section using document navigation.)
The header and footer of each article page provides simple navigation controls:
Return to How To
Topics List

Access this page

First page of
current topic

Previous page

Last page of
current topic

Next page

In addition, links to other documents are displayed as highlighted text. Note that all links and navigation controls are
colored blue.
Historically, an index was provided for this document. However, since the document is intended to be used online, the
index has been removed in favor of the more efficient “search” capabilities provided in pdf readers.

PDF READER
The EnSight online documentation is in .pdf format. EnSight uses a pdf reader such as the Acrobat® Reader software
from Adobe Systems, Inc., Xpdf, or Apple’s Preview. Any of these readers provide similar capabilities. For the
purposes of this documentation, the Acrobat Reader is pictured. A pdf reader provides much the same functionality
as a World Wide Web browser while providing greater control over document content quality. To use a different pdf
reader, simply set the environment variable CEI_PDFREADER to a different reader application.
The user interface for the various pdf readers is very simple and provides intuitive navigation controls. Keep in mind
that the pages were designed to be viewed at 100% magnification. Although you can use other magnification
settings, the quality of the dialog images may be degraded.

Page 5

HOW TO USE THE HOW TO MANUAL
Thus, in addition to the navigation controls within the document itself which are described above, a pdf reader
(Acrobat for example) provides quick access to various display options and navigation controls. A few of them are
pointed out for the Acrobat Reader below. Please use the Help option for your reader for a more comprehensive
description of its options.
Select Tool
Grab and move page
Print

Click and zoom in
(Ctl-click to zoom out)
Standard page
magnification controls
For additional help

Standard page
navigation

Go forward to previously
viewed page
Go back to last
viewed page

Each How To topic provides a set of bookmarks that match the standard
section titles. You can quickly navigate to one of these sections by using
the bookmark list in pdf reader.
The “Go back/forward” buttons are particularly useful – they operate somewhat like the “Back” and “Forward” buttons
on standard Web browsers. If your previously viewed page was in a different document, the pdf reader will
automatically reload the appropriate file and jump to the correct page. Note that most pdf readers also consider a
change of view (e.g. scrolling) or magnification as an event to remember in the back/forward list.

Page 6

HOW TO USE THE HOW TO MANUAL
PRINTING
Printing Topics From The PDF Reader
See Printing Topics From a PDF Reader

Printing EnSight Manuals
See Printing EnSight Manuals

Page 7

HOW TO ENSIGHT OVERVIEW
EnSight Overview

ENSIGHT OVERVIEW
EnSight is a powerful software package for the postprocessing, visualization, and animation of complex datasets.
Although EnSight is designed primarily for use with the results of computational analyses, it can also be used for
other types of data.
This document provides a very brief overview of EnSight. Consult Chapter 1 in the User Manual for additional
overview information. This article is divided into the following sections:
Graphical User Interface
Client / Server Architecture
EnSight’s Parts Concept
Online Documentation

Graphical User Interface
The graphical user interface () of EnSight contains the following major components:
Note: This whole upper level of the is
referred to as the “Desktop”

Quick Action Icon Bar
Features and Actions relevant to the last selected object

Main Menu
Feature Icon Bar
Sets the current feature and opens
the Feature Panel.
Parts List
All parts from your model as well as
created parts (e.g. clips, isosurfaces)
are listed here. Click an item to
select part(s) to operate on.

Message Area
Graphics Window showing inset plot and viewport
Information Button
Click to see information dialog.
Transformation Control Area
Buttons that control the current transformation operation (e.g.
rotate or translate) associated with mouse action in the Graphics
Window.

Chapter 1 in the User Manual provides additional overview information on the user interface.
Page 8

HOW TO ENSIGHT OVERVIEW
Client / Server Architecture
To facilitate the handling of large datasets and efficiently use networked resources, EnSight was designed to
distribute the postprocessing workload. Data I/O and all compute intensive functions are performed by a server
process. The server transmits 3D geometry (and other information) to a client running on a graphics workstation.
The client handles all user interface interaction and graphic rendering using the workstation’s built-in graphics
hardware.
host1

host2

Server
Requests

Server
3D objects

host1

Client

Client

Stand-alone Operation

Distributed Operation

The client and server each run as separate processes on one or more computers. When distributed between a
compute server and a graphics workstation, EnSight leverages the strengths of both machines. When both tasks
reside on the same machine, a stand-alone capability is achieved. The client–server architecture allows EnSight to
be used effectively, even on systems widely separated geographically.
Before EnSight can be used, the client and server must be connected. For standalone operation, you simply run the
“ensight102” script and the client and server are started and connected for you. For distributed operation (as well as
for standalone operation when more control is desired), there are two methods of achieving a connection: a manual
connection (described in the Getting Started manual) or an automatic connection (described in How To Connect
EnSight Client and Server).
EnSight’s cases feature allows you to postprocess multiple datasets simultaneously. Cases is implemented by
having a single client connected to multiple servers running on the same or different machines.

EnSight’s Parts Concept
One of the central concepts of EnSight is that of the part. A part is a named collection of elements (or cells) and
associated nodes. The nodes and/or elements may have zero or more variables (such as pressure or stress). All
components of a part share the same set of attributes (such as color or line width).
Parts are either built during the loading process (based on your computational mesh and associated surfaces) or
created during an EnSight session. Parts created during loading are called model parts.
All other parts are created during an EnSight session and are called created or derived parts. Created parts are built
using one or more other parts as the parent parts. The created parts are said to depend on the parent parts. If one or
more of the parent parts change, all parts depending on those parent parts are automatically recalculated and
redisplayed to reflect the change. As an example, consider the following case. A clipping plane is created through
some 3D computational domain and a contour is created on the clipping plane. The contour’s parent is the clipping
plane, and the clipping plane’s parent is the 3D domain. If the 3D domain is changed (e.g. the time step changes),
the clipping plane will first be recalculated, followed by the contour. In this way, part coherence is maintained.
Since operating on parts is integral to the operations you will perform in EnSight, it is important that you are aware of
the different ways this can be done. See How To Select Parts.
See the Introduction to Part Creation for more information on parts.

Online Documentation
Documentation for EnSight is available online. See How To Use the Online Documentation for more information as
well as hyperlinks to the main documents. Online documentation is accessed from the Main Help menu in the user
interface. In addition, major dialog windows contain Help buttons that will open a relevant “How To” article.

Page 9

HOW TO COMMAND LINE START-UP OPTIONS
Command Line Start-up Options

INTRODUCTION
There are a number of options that can be included on the command line when starting EnSight. The following tables
indicate the commands that can be issued for the EnSight script (ensight102), the EnSight client (ensight102.client),
the EnSight server (ensight102.server), or the EnSight server-of-servers (ensight102.sos). To see the most current
listing for any of these, issue one or more of the following:
Linux/Unix/Mac
ensight102 -help
ensight102.client -help
ensight102.server -help
ensight102.sos -help

Windows
ensight102_client -help
ensight102_server -help
ensight102_sos -help

BASIC USAGE
ensight102 [options]
or

ensight102.client [options]
Section 1. EnSight Startup/Client-Server Options
-ar 
Restore from specified archive file “f”
-c [[:]]
Do an auto connection, with optional “host” machine and executable. If only -c is used, the
auto connection will be according to the values set in your ensight_conn_settings file (which is
created in your EnSight Defaults directory (located at
%HOMEDRIVE%%HOMEPATH%\(username)\.ensight102 commonly located at
C:\Users\username\ on Vista and Win7, C:\Documents and Settings\yourusername\ on older
Windows, ~/.ensight102 on Linux, and in ~/Library/Application Support/EnSight102 on the Mac)
if you connect via the Connect dialog). EnSight server will run on “host” if you include it after

-case 
-ceishell [URL]
-cierr
-cip

-cm
-ctx 
-custom
-cwd 

-d # -display # -delay_refresh -extcfd -externalcmdport -externalcmds -gold -hpc -hide_console -homecwd -lite -localhostname -no_delay_refresh the -c. And you can also optionally specify the server executable to run on said “host”. Read EnSight casefile name ”f” and display part loader Start up EnSight and connect with URL, default URL is as follows: - connect://localhost?port=1109&timeout=60 Connect auto and ignore errors Send client’s IP address to the server for auto connect. The IP address will be used instead of the internet hostname. This can be useful for clients which use dynamic IP address assignment (i.e. dhcp). (However, it may not send the correct address if the client computer has multiple network interfaces (e.g. WiFi and wired ethernet).) Do a manual connection of server Applies context file “f” as soon as connection is made Force the license manager to look for a custom token Sets the client working directory to the path specified by ‘p’ With multiple displays, enter a number and EnSight will start up on that display. ensight102 -d :0.1 will start up on display 1 Graphics window is not updated during command file playback, until finished Extended CFD variables automatically placed in variable list Specify the port on which to receive external commands. See -externalcmds. Has EnSight start listening for a connection on port 1104 (or the port specified with the -externalcmdport) for an external command stream. Once connected, all commands must then come from the external source - as the commands will be ignored. Force the license manager to look for a hpc (formerly gold) token (while this still works, please use -hpc) Force the license manager to look for a hpc (formerly gold) token (Windows only) hides console on startup (Windows only) Sets the client working directory to HOME Start EnSight in Lite mode Host name to force server(s) to use to connect to client Graphics window is updated during command file playback, until finished Page 10 HOW TO COMMAND LINE START-UP OPTIONS -p -part_loader Plays playfile “f” as soon as connection is made If a file is specified on the command line, this command will bring up the part loader to allow for part selection. If a file is specified on the command line without this command, all parts will be loaded. -ports # Allows user specification of socket communication port. (passed on to server or sos) -prdist # Specify a parallel rendering config file. -pyargv . . . [-endpyargv] Anything on the command line between these two options will appear as ‘sys.argv’ in Python. sys.argv[0] = “ensight” except if a python startup file is specified via -qtguipy, in which case, that filename becomes sys.argv[0]. Note, -pyargv will swallow arguments up to the end of the argument list or -endpyargv, whichever comes first. -rsh Remote shell program to use for automatic connection. (passed on to server or sos) -security [#] Forces a handshake between the client and server using the # provided or a random number -slim_on_server Tells EnSight to look for the license key on the server. -sos Set up to connect to the Server-of-Servers (ensight102.sos) instead of normal server. -soshostname Host name to force server(s) to use to connect to Server-of-Servers -standard Force the license manager to look for a standard token -timeout <#> Number of seconds to wait for server connection; default = 60, infinite = -1 -token_try_again <#> If can’t obtain a license token, try again in # minutes. where # is a float value. If neither -token_wait_for nor -token_wait_until is specified, will try for 1 hour. -token_wait_for # If can’t obtain a license token, try again for # minutes, where # is a float value. If -token_try_again is not specified, sets -token_try_again to 10. Supersedes -token_wait_until. -token_wait_until # If can’t obtain a license token, try again until the time is hour:minute. If -token_try_again is not specified, sets -token_try_again to 10. -usage_feedback_always EnSight will ask if certain usage and message data can be forwarded back to CEI in order to enhance our support. This will force EnSight to always send user data regardless of the option that the user chooses. See the 10.2 Release Notes for more details. -usage_feedback_never EnSight will ask if certain usage and message data can be forwarded back to CEI in order to enhance our support. This will force EnSight to never send user data regardless of the option that the user chooses. See the 10.2 Release Notes for more details. -v # Output verbosity 0 to 9, none, normal, medium, high, debug, and full, respectively -version Prints out EnSight’s version number. (Does not start EnSight) Section 2. EnSight Client Options -E Call a method on a registered user-defined extension (see EnSight extension mechanism and How to Produce Customized Access to Tools & Features) using the name of the extension. There must be no space between the -E and the extension name and the option can be used repeatedly in the same command line (the order of execution matches the order on the command line). These calls are made just prior to playing command files or python files after EnSight starts up. By default, the method ‘cmdLine()’ is invoked, but options exist to specify the method as well as parameters to the method. The whole option may need to be enclosed in quotes if some of these latter features are used. For example, suppose you have a registered extension named ‘foo’. The following usages are permitted. ‘-Efoo’ will call foo.cmdLine(). ‘-Efoo.run()’ will call foo.run(), a specific object method. ‘-Efoo=5.7’ will call foo.cmdLine(5.7), the default method with a parameter. ‘-Efoo.bar(5.7,”hello”)’ will call foo.bar(5.7, “hello”), a specific object method with multiple parameters. -iconlblf <#> Icon label font size -ignorexerr Ignore X window errors -jumboicons Adds support for high resolution displays such as IBM Big Bertha (linux/unix) (see -mag) -largeicons Uses larger feature icons in EnSight (non-Windows only) Page 11 HOW TO COMMAND LINE START-UP OPTIONS -mag # -ni -smallscreen -smallicons Magnification factor of menus, titlebars, icons using a float number that is greater than 1.0 on high resolution displays or power wall (Windows only). Will use text in place of icons Sets window based on the screen size of 1024x768 (non-Windows only) Uses smaller feature icons in EnSight (default) Section 3. EnSight Server Specific Options -buffer_size <#> Set element buffer size for Unstructured Auto Distribute (passed from client down) -gdbg Print some debugging info for EnSight format geometries (passed from client to server) -iwd Ignore the working directory in the ensight.connect.default file -maxoff Turns off maxsize checking (passed from client to server) -no_ghosts Don’t produce ghosts in Unstructured Auto Distribute (passed from client down). -use_ghosts Produce ghosts in Unstructured Auto Distribute (passed from client down). This action can also be turned on by setting the environment variable: -no_metric -use_metric -readerdbg -scaleg <#> -scalev <#> -swd

-time -writerdbg UNSTRUCT_AUTODISTRIBUTE_USE_GHOSTS to 1. Don’t print metric for Unstructured Auto Distribute (passed from client down). Print metric for Unstructured Auto Distribute (passed from client down). This action can also be turned on by setting the environment variable: UNSTRUCT_AUTODISTRIBUTE_USE_METRIC to 1. Prints user-defined-reader library loading information in shell window upon startup of server (passed from client to server) Provide scale factor to scale geometry by (passed from client to server) Provide scale factor to scale all vectors by (passed from client to server) Set the server working directory Prints out timing information (passed from client to server) Prints user-defined-writer library loading information in shell window upon startup of server (passed from client to server) Section 4. Miscellaneous Options -h, -help, -Z Prints the usage list -inputdbg Prints user-defined input device information -nb No automatic backup recording -no_file_locking Turns off file locking (lock()). Some systems don’t support this properly -no_prefs Do not load saved user preferences (uses original defaults except for mouse button settings) -pal_tex Use 1D textures for color palettes. -pal_rgb Use rgb colors for color palettes -range10 Use palette ranges which are 10% in from the extremes -silent Causes all stdout and stderr messages to be thrown away -slimtimeout Allow slimd token to expire if idle. -stderr Cause all stderr messages to be written to the file. -stdout Causes all stdout messages to be written to the file. Section 5. Rendering Options -batch < height> Batch mode with optional width and height. -bbox Render only bounding boxes in the window (useful for detached displays with -prsd2 option). (See How To Setup For Parallel Rendering) -box_resolution <#> Resolution of bounding boxes for part culling (max 9). Implies -no_display_list -ctarget <#> Set the number of chunks per server for parallel rendering (passed from client to server(s)). -dconfig Specify a display configuration file -display_list Use OpenGL display lists Page 12 HOW TO COMMAND LINE START-UP OPTIONS -egl -frustrum_cull -glconfig -glsw -gl -ogl -no_display_list -no_frustrum_cull -norm_per_vert -norm_per_poly -multi_sampling -multi_sampling_sw -no_multi_sampling -no_start_screen -num_samples <#> -num_samples_st <#> -occlusion_test -no_occlusion_test -stencil_buff -no_stencil_buff -double_buffer -single_buffer -sort_first -sort_last -unmapdd -vcount <#> -X Use embedded OpenGL which directly calls the graphics card and no longer needs access to an X-server, nor uses the DISPLAY environmental variable. This option is only available on Linux using nVidia cards with driver 3.58.16 or later when using batch or when using parallel compositing. Use frustrum culling where possible Prints current OpenGL configuration parameter defaults to screen Forces use of software implementation of OpenGL, bypassing the hardware graphics card (same as -X) Sets line drawing mode to draw polygons Sets line drawing mode to draw lines Force EnSight to use immediate mode graphics Do not use frustrum culling Use one normal per vertex for flat-shading Use one normal per polygon for flat-shading Turns MultiSampling on Use software MultiSampling Do not use MultiSampling Ignore the start screen image (Good for HP using TGS OpenGL) Specify number of samples for software multi-sampling Specify number of samples for hardware stereo multi-sampling Use the HP occlusion extension if available Do not use the HP occlusion extension Use the OpenGL stencil buffer (even if not enabled by default) Assumes there is not a working stencil buffer (some Windows video cards) Use double-buffering for the graphics window (default) Do not use double-buffering Sets the default parallel rendering sorting method to be the sort first method Sets the default parallel rendering sorting method to be the sort last method Don’t map the detached display on startup Specifies the maximum number of vertices between begin/end pairs in a OpenGL display list object. This option is useful for certain graphics cards (most modern Nvidia based) when dealing with large display objects - it will usually impact the performance of creating the display list objects. Every graphics card/driver will be optimal at a different vcount value so testing is necessary to achieve maximum performance. Starts the X version of EnSight (uses Mesa OpenGL instead of native OpenGL, bypassing the hardware graphics card. This is the same as -glsw) Section 6. Resource Options -chres Collab hub resource filename -res Resource filename Section 7. Distributed Rendering (HPC & DR) Specific Options -offscreen Batch offscreen rendering -onscreen Batch onscreen rendering -pc Compositing mode Client Examples: ensight102 -cm -p myplayfile This will allow the user to do a manual connection, after which the “myplayfile” will be run. ensight102 -c -gold -ports 1310 -case myfile.case This will do an automatic connection (according to information in the user’s ensight.connect.default file) on port 1310, using a gold seat. After the connection is made, the “myfile.case” casefile will be run. ensight102 -rsh ssh (or ensight102.client -c -rsh ssh ) Page 13 HOW TO COMMAND LINE START-UP OPTIONS This will use ssh as the remote shell for an automatic connection. ensight102.server [options] -buffer_size <#> -c -ctarget <#> -ctries <#> -ether -gdbg -h, -help -maxoff -no_ghosts -no_metric -pipe -ports <#> -readerdbg -scaleg <#> -scalev <#> -security <#> -sock -soshostname -time -writerdbg Set element buffer size for Unstructured Auto Distribute “host” indicates where the client is running Set the number of chunks per server for parallel rendering. The number of times (1 second per try) to try to connect client and server. Ethernet device name such as ln0 Print some debugging info for EnSight format geometries Prints the usage list Turns off maxsize checking Don’t produce ghosts in Unstructured Auto Distribute Don’t print metric for Unstructured Auto Distribute Forces the server to use a named pipe connection (must be on same machine) Allows user specification of socket communication port. Prints user-defined-reader lib loading information in shell window upon startup of server Provide scale factor to scale geometry by Provide scale factor to scale all vectors by Provide number for client to server security check or else random token is generated Forces the server to use a socket connection Allows different name for servers to connect back to Server-of-Servers with Prints out timing information Prints user-defined-reader lib loading information in shell window upon startup of server Server Examples (when started manually): ensight102.server -c clientmachine -readerdbg Specifies “clientmachine” as the machine on which the client is running, and that information on user-defined-reader library loading should be printed out. ensight102.server -ports 1310 -scaleg 3.7 -scalev 3.7 Specifies that communication is to occur on port 1310, and that the geometry and all vectors are to be scaled by a factor of 3.7. ensight102.sos [options] -buffer_size <#> -c -cports -ctarget <#> -ctries <#> -ether -gdbg -h, -help -maxoff -no_ghosts -no_metric -pipe -ports <#> -readerdbg -rsh Set element buffer size for Unstructured Auto Distribute (passes on to servers) “host” indicates where the client is running Allows specification of socket communication port to the client. See also -ports, -sports. Set the number of chunks per server for parallel rendering (passes on to servers). The number of times (1 second per try) to try to connect client and server. Ethernet device name such as ln0 Print some debugging info for EnSight format geometries (passes on to servers) Prints the usage list Turns off maxsize checking (passes on to servers) Don’t produce ghosts in Unstructured Auto Distribute (passes on to servers) Don’t print metric for Unstructured Auto Distribute (passes on to servers) Forces the server to use a named pipe connection (must be on same machine) (passes on to servers) Allows user specification of socket communication port. (passes on to servers) Has the effect of setting -cports and -sports to be the same. Prints user-defined-reader library loading information in shell window upon startup of server (passes on to servers) Remote shell program to use for automatic connection of servers. (passes on to servers) Page 14 HOW TO COMMAND LINE START-UP OPTIONS -scaleg <#> -scalev <#> -security <#> -slog -sock -soshostname -sports -time -writerdbg Provide scale factor to scale geometry by (passes on to servers) Provide scale factor to scale all vectors by (passes on to server) Provide number for client to server security check (passes on to servers) Create SOS log file ‘f’ Forces the server to use a socket connection Allows different name for servers to connect back to Server-of-Servers with (passes on to servers) Allows specification of socket communication port to the servers. See also -ports, -cports. Prints out timing information (passes on to servers) Prints user-defined-reader library loading information in shell window upon startup of server (passes on to servers) SOS (Server-of-Servers) Examples (when started manually): ensight102.sos -c clientmachinename -soshostname sosmachinename Specifies “clientmachinename” as the machine on which the client is running, and that the individual servers should connect back to “sosmachinename”. ensight102.sos -readerdbg -gdbg Specifies that the sos and any servers print out user-defined-reader library loading information, and that the servers print out EnSight data format geometry loading information. Page 15 HOW TO USE ENVIRONMENT VARIABLES Use Environment Variables INTRODUCTION There are a number of environment variables that can be set to control and modify aspects of EnSight. These are generally described in sections of the documentation where they apply. However, for convenience, a summary of them is indicated below. All, except those indicated otherwise, are optional. Note: None of the environment variables associated with specific user defined readers and writers are included here. See the appropriate README files or other documentation for each reader/writer. BASIC USAGE List sorted by Category: Name Location Category Description CEI_FONT_GLYPHCACHESIZE Client Font CEI_FONT_NOSYSTEMFONTS Client Font CEI_FONTPATH Client Font ENSIGHT_FONT_DEFAULT_ANNOT ENSIGHT_FONT_DEFAULT_ANNOT_STYLE ENSIGHT_FONT_DEFAULT_OUTLINE ENSIGHT_FONT_DEFAULT_OUTLINE_SCALE Client Client Client Client Font Font Font Font ENSIGHT_FONT_DEFAULT_OUTLINE_STYLE ENSIGHT_FONT_DEFAULT_SYMBOL ENSIGHT_FONT_DEFAULT_SYMBOL_STYLE ENSIGHT10_FIXED_FONT_SIZE Client Client Client Client Font Font Font Font Number of font characters to keep in memory at a given time (default 500). Increasing this number will use more memory but may increase rendering speed if many different characters are in use. Disable the loading of fonts from the system directories, and use only the fonts provided by CEI. A list of ":" separated directories (";" on Windows) where EnSight looks for .ttf and .ttc font files. Specify family to be used for annotation defaults Specify style to be used for annotation defaults Specify family to be used for ID and axis defaults Specify the relative scale for the outline font. (The value 100.0 is the default, 200.0 is 2x larger, 50.0 is 1/2 size). Specify style to be used for ID and axis defaults Specify family to be used instead of the symbol font Specify style to be used with the symbol font defines font size - expecting range between 10 and 100 (old) CEI_ENABLE_PBUF CEI_ENABLE_PMAP CEI_PIXELFORMAT CEI_PIXELFORMAT_ST CVF_NO_WM_OVERRIDE Client Client Client Client Client Graphics Graphics Graphics Graphics Graphics ENSIGHT_PICK_SCALE Client Graphics Enable/disable the use of pbuffers for off-screen rendering Enable/disable the use of pixmaps for off-screen rendering Specify pixel format for mono rendering Specify pixel format for stereo rendering Change the behavior of detached displays so that the 'OverrideRedirect' attribute is not used on the Windows. If > 1, modifies the scaling of the GL viewport CEI_RSH Client/ SoS Client/ Server Client/ SoS/ Server Networking Alternative to default ssh command Networking Enable Nagle (RFC896) network feature (on by default). Networking Sets socket buffer size (can be different between client and server) CVF_COMM2_NAGLE ENSIGHT10_SOCKBUF DISPLAY Client Other Do not remote the display from a different machine as this is inefficient and prone to problems. Run the client on your local machine and the server remotely and connect them as EnSight is optimized for this configuration. ENSIGHT10_MAX_CTHREADS Client Parallel The maximum number of threads to use for each EnSight client. Threads in the client are used to accelerate sorting of transparent surfaces. If not defined, then the EnSight client chooses the number of threads based on the number of processors available and license limitations. Page 16 HOW TO USE ENVIRONMENT VARIABLES Name ENSIGHT10_MAX_SOSTHREADS Location Category SoS Parallel ENSIGHT10_MAX_THREADS Server Parallel The maximum number of threads to use on the server of server in order to start up server processes in parallel rather than serially. If not defined, then EnSight chooses the number of threads based on the number of processors available and license limitations. The maximum number of threads to use for each EnSight server. Threads are used to accelerate the computation of streamlines, clips, isosurfaces, and other computeintensive operations. If not defined, then the EnSight server chooses the number of threads based on the number of processors available and license limitations. ENSIGHT10_RES Client/ SoS/ Collab Client/ SoS Resources Specify a resource file name that the client reads Resources Specify quoted strings of space delimited host names (e.g. “host1 host2 host1 host3”) to be used for EnSight servers. The host names are used in the order they occur. A host name may occur multiple times If either the ‘-use_lsf_for_servers’ or ‘use_lsf_for_renderers’ command line options are specified, then the client will evaluate this environment variable for resources. The environment variable specifies a quoted string such as “host1 5 host2 4 host3 1” which indicates 5 CPUs should be used on host1, 4 CPUs should be used on host2, and 1 CPU should be used on host3. The hosts will be used in a round-robin fashion. ENSIGHT10_SERVER_HOSTS Description LSB_MCPU_HOSTS Client/ SoS Resources CEI_ARCH All Path CEI_HOME All Path Description of hardware & OS (set automatically on EnSight startup) Location of EnSight installation (required) CEI_PDFREADER Client Path Application for reading EnSight .pdf help files CEI_PYTHONHOME Client Path CEI_UDILPATH Client Path ENSIGHT_PATHREPLACE Client Path PATH Client Path Point to a different Python runtime library. Default is CEI_HOME/apex31/machines/CEI_ARCH/python271 A list of ":" separated directories (";" on Windows) where EnSight looks for user-defined image libraries. Replaces the data path with the path found in this environment variable Must include $CEI_HOME/bin TMPDIR Server Path Location for temporary files. Default is usually /tmp or /usr/ tmp CEI_CONTROLLER_KEY Client Tracking See CEI_INPUT CEI_INPUT Client Tracking CEI_TRACKD_DEBUG Client Tracking CEI_TRACKER_KEY Client Tracking To specify the tracking library. To select trackd, use: setenv CEI_INPUT trackd (for csh or equivalent users) The value of CEI_INPUT can either be a fully-qualified path and filename or simply the name of the driver, in which case EnSight will load the library libuserd_input.so from directory: $CEI_HOME/apex31/machines/$CEI_ARCH/udi/ $CEI_INPUT/ For the trackd interface you will also need to set: CEI_TRACKER_KEY CEI_CONTROLLER_KEY Turn on debug information from the trackD user defined input library. See CEI_INPUT ENSIGHT10_INPUT Client Tracking Input device to use for EnSight (same as CEI_INPUT) ENSIGHT10_READER Server User Path to the location of additional user-defined readers ENSIGHT10_READER_ Server User ENSIGHT10_UDMF Server User Set to 0 in order to not load user-defined extra. Any other setting (or unset) loads extra. Sets directory location of user defined math functions to be loaded by EnSight at startup Page 17 HOW TO USE ENVIRONMENT VARIABLES Name Location Category ENSIGHT10_UDW Server UNSTRUCT_AUTODISTRIBUTE_USE_GHOSTS Server UNSTRUCT_AUTODISTRIBUTE_USE_METRIC Server ENSIGHT_FORCE_POLYHEDRAL_CLIPCUT n Server Description Sets directory location of user defined writers to be loaded by Ensight at startup Autodistribute Sets unstructured server autodistribution to use ghost processing. (Same effect as, and takes precedence over, using -use_ghosts command line argument) Autodistribute Sets unstructured server autodistribution to calculate the ghost metric. (Same effect as, and takes precedence over, using -use_metric command line argument) User Part Creation EnSight can clip or cut with the traditional algorithm that tesselates the element faces with additional face elements or the polyhedral algorithm that shows the clipped/cut faces with the exact representation of the element face. If you always want to see a clip or cut face without additional tesselation, then use option 2. n = 0, 3D Zoo elements clipped or cut with traditional algorithm. n=1, Treat 3D Zoo elements as polyhedral only if there are polyhedral elements in the part when it is clipped or cut. n=2, Treat 3D Zoo elements as polyhedra. SLIMD8_SERVERS Server License EnSight can set slimd8 server hostname(s) and port. setenv SLIMD8_SERVERS “huey:7790” setenv SLIMD8_SERVERS “huey:7790; dewey:8890” Page 18 HOW TO CONNECT ENSIGHT CLIENT & SERVER Connect EnSight Client & Server INTRODUCTION EnSight is a distributed application with a client that manages the user interface and graphics, and a server that reads data and performs compute-intensive calculations. The client and server each run as separate processes on one or more computers. Before EnSight can do anything useful, the client process must be connected to the server process. For a simple operation on the same machine (standalone), the client and server processes will be started and connected for you. If you desire more control over the standalone operation or want to take advantage of a distributed operation, you have the options described below. Necessary Prerequisites EnSight must have been installed and the CEI_HOME and the command search path set properly. If you successfully performed the installation as described in the Installation Guide, then these settings should be correct. (See $CEI_HOME/ensight102/doc/Manuals/Installation.pdf if you need this manual.) SIMPLE STANDALONE OPERATION (CONNECTION OCCURS AUTOMATICALLY) If you want to run Ensight client and server (or SOS) on the same machine (standalone), and you have not changed the default automatic connections to be elsewhere, you can simply do the following: To Start Ensight: Non Windows: Windows: $ ensight102 Either double click the EnSight 10.2 icon on the desktop, or Start > CEI > EnSight 10.2 At the prompt In a shell window, type: ensight102 To Start Ensight in SOS mode: (reminder that you need a gold license key for this) Non Windows: Windows: Start > CEI > EnSight 10.2 SOS $ ensight102 -sos At the prompt in a shell window, type: ensight102 -sos Note: To add another dataset or replace the existing dataset (which EnSight refers to as another case), see Adding Another Case below Page 19 HOW TO CONNECT ENSIGHT CLIENT & SERVER CONNECTING MANUALLY ensight102.client -cm will start a client that expects a manual connection and will prompt the user to start the server/SOS manually. You can do something like the following: Note: the machine you are running the client on will be referred to as CLIENT_HOST. the machine you desire to run the server on will be referred to as SERVER_HOST In a second window, log onto the SERVER_HOST machine using telnet (or ssh or equivalent). The SERVER_HOST does not have to be of the same operating system as the CLIENT_HOST. Example of doing a telnet from a linux machine to a unix machine. Example of doing a telnet from a windows machine to a windows machine. Start the ensight server on the SERVER_HOST machine, using the appropriate script and the -c option. ensight102.server -c CLIENT_HOST or for SOS ensight102.sos -c CLIENT_HOST The -c CLIENT_HOST option tells the EnSight Server to connect to the EnSight Client listening on CLIENT_HOST. Example if doing a telnet into a SERVER_HOST which is a windows machine ensight10_server -c wclient Example if doing a telnet into a SERVER_HOST which is a linux machine. ensight10.server -c myclient The Server should now make the connection. To see if the connection is successful, you can click on the Information button in the Tools Icon Bar on the Desktop. You should see “Connection accepted” in the EnSight Message Window Page 20 HOW TO CONNECT ENSIGHT CLIENT & SERVER which comes up. You can also check the Connection Details under the Case menu. Licensing information should also appear in the Graphics Window. If the connection failed, please consult Manual Connection Troubleshooting below and Troubleshooting the Connection in the Installation Guide before contacting CEI support. Manual Connection Troubleshooting A manual connection can fail for any of several reasons. Because of the complexity of networking and customized computing environments, we recommend that you consult your local system administrator and/or CEI support if the following remedies fail to resolve the problem. Problem Probable Causes Solutions Unable to telnet into the SERVER_HOST machine Telnet service not allowed or not running on the SERVER_HOST machine. Get system administration help to be able to perform this operation. It may be that your site requires the use of ssh or some other equivalent. Ensight server does not start on SERVER_HOST machine. EnSight is not properly installed on the SERVER_HOST Verify the installation on the SERVER_HOST as described in the Installation Guide. Making sure that the proper environment variables and command path have been set. For Unix Systems: ADVANCED USAGE Command Line Options Command line options can be used to streamline many of the connection processes. Startup Command Description ensight102 ensight102.client -c Starts up client and autoconnects to localhost.* ensight102 -sos ensight102.client -c -sos Starts up client and auto connects to sos on localhost. This requires a gold key.* ensight102.client Starts up client with no connection.* ensight102.client -c hostname Starts up client and auto connects to the hostname. The host localhost is are used is used if hostname is not listed.* ensight102.client -c hostname -sos Starts up client and auto connects the sos to the host specified.* ensight102.client -cm Starts up a client, and prompts for a manual connection.* * Note that if you are starting from a PC in a command window, change the period to an underscore: ensight102.client becomes ensight102_client. Also if you specify a resource file to use in the start up, it takes precedence over connection settings. . Page 21 HOW TO CONNECT ENSIGHT CLIENT & SERVER Adding Another Case You would add another case when you want to add an additional dataset (called a “case”) to your EnSight session. This is often used for things like A-B comparisons or for assembling components that have been analyzed in different solvers. You can also use the process described below to replace the current case with a new one without having to restart EnSight. You can add or replace cases directly from the Case menu, From either option, this dialog will appear when adding a case. If you keep the current case the optional settings are available and will be applied to the new added case. Create viewport - If checked the added case will appear in a new viewport. Apply Context - The context from the first case is applied to the new case. Clone current connection - Use the same server connection as the first case. Manual connection - Add the new case using a manual connection even if the first connection was auto connected. Reflect model - Reflect the new case about an axis using the Origin specified. For more information on Cases, see How To Load Multiple Datasets (Cases) Page 22 HOW TO CONNECT ENSIGHT CLIENT & SERVER Other Auto connection requirements The auto-connect mechanism requires that certain conditions exist in your computing environment for auto connections to work when running the EnSight server or SOS process on a different computer. Specifically, EnSight depends on a correctly working 'ssh' command that doesn't require passwords. The notes below assume using the default 'ssh' command. Alternatively, EnSight can use a replacement command for 'ssh' as long as that replacement command follows 'ssh' syntax or ‘rsh’ syntax (i.e. rsh [-l username] hostname command) Should you wish to use an alternative command for 'ssh', you may specify this command on the EnSight command line with the '-ssh alternative_command_name' command line option where 'alternative_command_name' is the replacement command. Typically, one of these mechanisms is used in computing environments that use either 'ssh' or 'k5rsh'. On Unix Systems: 1. You have a .cshrc file (even if you are running some other command shell such as /bin/sh) in your home directory on the EnSight server host that contains valid settings for CEI_HOME, and that your path variable includes the bin directory of CEI_HOME. For example, if your EnSight is installed in /usr/local/CEI and you are running EnSight on an Linux or Unix system (other architectures use a different library path variable), your .cshrc should contain: setenv CEI_HOME /usr/local/CEI set path = ( $path $CEI_HOME/bin ) To verify the settings, simply try to start the server. 2. Your .cshrc file (or files sourced or executed from there) has no commands that cause output to be written (e.g. date or pwd). Any output can interfere with EnSight server startup. 3. You can successfully execute a remote shell command from the client host system to the server host system. The name of the remote shell command varies from system to system. While logged on to the client host system, execute one of the following (where serverhost is the name of your server host system): ssh serverhost date If successful, the command should print the current date. If any of these conditions are not met, you will be unable to establish a connection automatically and will have to use the manual connection mechanism. Note that it is not uncommon for system administrators to disable operation of all remote commands for security reasons. Consult your local system administrator for help or more information. Note that if you wish to use ‘rsh’ instead of ‘ssh’, then you need to have a valid .rhosts file in your home directory on all systems on which you wish to run the EnSight server. The file permission for this file must be such that only the owner (you) has write permission (e.g. chmod 600 ~/.rhosts). A .rhosts file grants permission for certain commands (e.g. rsh or rlogin) originating on a remote host to execute on the system containing the .rhosts file. For example, the following line grants permission for remote commands from host clienthost executed by user username to execute on the system containing the .rhosts file: clienthost username There should be one line like this for every client host system that you wish to be able issue remote commands from. It is sometimes necessary to add an additional line for each client host of the form clienthost.domain.com username (where domain.com should be changed to the full Internet domain name of the client host system). To verify this, simply try to rsh to the remote machine. On Windows Systems: 1. You have the EnSight server (ensight102_server) installed on the same system as your EnSight client (if you plan to connect to the same system) ---- OR ---2. You can successfully execute a remote shell command from the client host system to the server host system. Page 23 HOW TO CONNECT ENSIGHT CLIENT & SERVER Note: By default EnSight will use the ‘ssh’ command. ssh is not a default component on Windows workstations and must be installed by the user from one of many third party sources. However, Windows does include a rsh command which EnSight can optionally use. Note, however, only systems running Windows Server have the RSH service and can respond by executing the EnSight server. The name of the remote shell command varies from system to system. While logged on to the client host system, execute one of the following (where serverhost is the name of your server host system): ssh serverhost date rsh serverhost date If successful, the command should print the current date. If condition 1. or 2. is not met, you will be unable to establish a connection automatically and will have to use the manual connection mechanism. Note that it is not uncommon for system administrators to disable operation of all remote commands for security reasons. Consult your local system administrator for help or more information. Manual connection Troubleshooting An automatic connection can fail for any of several reasons. Because of the complexity of networking and customized computing environments, we recommend that you consult your local system administrator and/or CEI support if the following remedies fail to resolve the problem. Problem Probable Causes Solutions Server (remote) host name is incorrect for some reason. Is the server host entered correctly in the Hostname field? Try running telnet serverhost from the client machine. Incorrect or missing .rhosts file in your home directory on the server host. Follow the instructions on .rhosts files (as described in the Basic Operation section, step 1 above). If you cannot successfully execute a remote command (such rlogin or rsh) from the client host to the server host, you will not be able to connect automatically. The user account (i.e. login name) on the client host does not exist on the server host. Enter your login name on the server host in the Login name field. The server executable is not found on the server system Is the entry in the Executable [path/]name field correct? If the server executable is NOT in your default command search path on the server, you must include the full path name to the executable. For example, /usr/local/ CEI/ensight102/bin/ensight102.server. Your .cshrc does not contain a valid setting for CEI_HOME. Add the appropriate line as described in the Basic Operation section, step 2 above. Your .cshrc file (or files executed by it) causes output to be written. This is interpreted as a server startup error. Remove the offending commands from your .cshrc file. As a test, do the following: For Unix Systems: Automatic connection fails or is refused % cd % mv .cshrc .cshrc-SAVE Create a new .cshrc file that contains only the lines to set CEI_HOME and path as described in the Basic Operation section, step 2 above. If that test works, you will need to examine your .cshrc to find and remove the offending lines. For Windows Systems: Automatic connection fails or is refused (trying to connect to same host system) Server not installed or not executable. You should be able to locate the server executable (ensight102_server) using Windows Explorer. Double click on it and see if a console window opens with “This is EnSight Server 10.2” etc. If this doesn’t happen, refer to “Troubleshooting the Installation” in the Getting Started Manual. Page 24 HOW TO CONNECT ENSIGHT CLIENT & SERVER Problem Probable Causes Solutions Path to the server is incorrect If using the EnSight Connect dialog, check that the correct path is specified in the “Executable” field. If running from the ensight102 command, first ensure that your PATH environment variable contains the paths for the ensight102 “client” and “server” directories. You can check and correct the value of PATH in the Start >Settings >ControlPanel >System_Environment dialog. Incorrect hostname entered in the “Hostname” field of the Connection settings dialog. Make sure that the hostname is correct, including the case of all letters. The ONLY way to confidently see the hostname (in the correct case) from Windows is to open a Command Prompt window and type: > ipconfig /all The Host Name will be one of the first things listed. Automatic connection fails or is refused (trying to connect to a remote server) Same causes as for a Unix system See “For Unix Systems” portion of this table above. Other Notes Connection Name - Hostname flexibility When you specify '-c hostname' on the command line, EnSight will start up a server on the hostname. Users with complex computing environments should migrate to using ceishell (see the demo by typing ceistart102). Network ports used by EnSight and SLiM Client/Server Mode The EnSight client connects to the slimd8 license manager via TCP port 7790 typically. This actual port used is defined in $CEI_HOME/license8/slim8.key and appears on the 'slimd' line as the number after 'slimd'. The client listens for connections from the EnSight server on TCP port 1106. It also communicates with the collaborative hub on TCP port 1107. If the client is listening for external commands, it will use TCP port 1104. If port 1106 is used by another process, EnSight will give you an error "Address already in use", and there are two possible solutions: 1: use another port with command line option "-ports ####" for both client and server (inconvenient) 2: kill (or have root kill) the process that has the port locked. For example, determine the process: /sbin/fuser 1106/tcp the result comes back.... 1106/tcp: 314159o in this case you(or root, if necessary) would kill it... kill -9 314159 Note that the specific commands to use will vary depending on operating system. Page 25 HOW TO CONNECT ENSIGHT CLIENT & SERVER Server of Server Mode When running in Server of Server mode (SOS), the SOS is threaded and will start up server processes in parallel (subject to CPU availability and license restrictions) using ports 1110 through 1117. To limit the number of threads, set the environmental variable ENSIGHT10_MAX_SOSTHREADS to the maximum number of threads (max is 8). Distributed Renderer - used by parallel compositor Ports 8739 to 8789 must be available to EnSight for its own internal TCP/IP connections when running the parallel compositor in EnSight DR. SEE ALSO Chapter 2 of the Getting Started Manual How To Load Multiple Datasets (Cases) Page 26 HOW TO READ DATA Read and Load Data Read Data INTRODUCTION EnSight supports a number of file formats common in computational analysis. In addition, CEI has defined generic data formats (in both ASCII and binary versions) that can be used for both structured and unstructured data. In many cases analysis codes output this data directly (i.e. FLUENT, STAR-CD, KIVA, etc.) Reading data into Ensight can be accomplished with a “simple interface” if an association is known for the data format type and you wish to load all parts. Otherwise, the more traditional method for loading data into EnSight can be accomplished with the “advanced interface”. It provides more control over the reading of data files and the part creation process. The first step is the selection of appropriate files. The second step is the loading of parts. Both steps have many similarities regardless of the data format. These basic steps are described below. Variations from the methods shown will be described in Chapter 2 (Reader Basics) of the User Manual for the various formats. Both of these methods are accessed under File->Open... BASIC OPERATION Simple Interface The simple interface method of reading data into EnSight works for most formats and requires a file extension-toreader mapping file (ensight_reader_extension.map). This file can reside in the site_preferences directory and/or each user can have his own personal one in his personal EnSight defaults directory (located at %HOMEDRIVE%%HOMEPATH%\(username)\.ensight102 commonly located at C:\Users\username\.ensight102 on Vista and Win7 and newer, C:\Documents and Settings\yourusername\.ensight102 on older Windows, and ~/.ensight102 on Linux, and in ~/Library/Application Support/EnSight102 on the Mac). A sample of this file is shown below. The mapping file associates file extensions to readers. If this file is not provided or an association is not known, or the format doesn’t allow it due to required intermediate information (such as Plot3D currently), the simple interface method cannot be used and the OK button will not be active. One is then required to use the advanced Interface method 1. Select File > Open... 2. If not already selected, toggle Simple Interface on. 3. Navigate to the desired directory using typical navigation methods. 4. Filter the list using the File type, if desired. 5. Select the desired file. This file’s extension is what will be mapped to a reader in the ensight_reader_extension. map. 6. Click Okay (Double clicking the file in step 4. is also allowed.) Page 27 HOW TO READ DATA At this point (provided the association is successful and the data is readable) all parts of the model will be loaded into EnSight and will appear in the graphics screen and in the Parts List. If the association is not successful, an error message will result. Note that variables in the data are also listed at this point. They have not yet been activated. The process for doing so will be discussed in How To Activate Variables. Ensight_reader_extension.map file example: The following is a sample containing associations for EnSight Case, EnSight5, STL and MSC/Dytran: EnSight file extension to format association file Version 1.0 # # Comment lines start with a # # # # The format of this file is as follows: # # READER_NAME: reader name as it appears in the Format chooser in the EnSight Data Reader dialog # NUM_FILE_1: the number of file_1_ext lines to follow # FILE_1_EXT: the extension that follows a file name minus the “.”, i.e., “geo”, “case”, etc. # There should be one definition after the :. Multiple FILE_1_EXT lines may exist # NUM_FILE_2: the number of file_2_ext lines to follow # FILE_2_EXT: the extension of a second file that will act as the result file. This is only used # for formats that require two file names. As with FILE_1_EXT, there may be multiple # FILE_2_EXT lines. # ELEMENT_REP: A key word that describes how the parts will be loaded (all parts will be loaded the # same way). One of the following: # “3D border, 2D full” # “3D feature, 2D full” # “3D nonvisual, 2D full” # “Border” # “Feature angle” # “Bounding Box” # “Full” # “Non Visual” # If option is not set then 3D border, 2D full is used # READ_BEFORE: (optional) The name of a command file to play before reading the file(s) Page 28 HOW TO READ DATA # READ_AFTER: (optional) The name of a command file to read after loading the parts # Definition for Case files READER_NAME: Case NUM_FILE_1: 2 FILE_1_EXT: case FILE_1_EXT: encas ELEMENT_REP: 3D feature, 2D full # Definition for EnSight5 files READER_NAME: EnSight 5 NUM_FILE_1: 2 FILE_1_EXT: geo FILE_1_EXT: GEOM NUM_FILE_2: 2 FILE_2_EXT: res FILE_2_EXT: RESULTS ELEMENT_REP: 3D feature, 2D full # Definition for STL files READER_NAME: STL NUM_FILE_1: 4 FILE_1_EXT: stl FILE_1_EXT: STL FILE_1_EXT: xct FILE_1_EXT: XCT ELEMENT_REP: 3D feature, 2D full # Definition for Dytran files READER_NAME: MSC/Dytran NUM_FILE_1: 2 FILE_1_EXT: dat FILE_1_EXT: ARC ELEMENT_REP: 3D border, 2D full READ_AFTER: read_after_dytran.enc Page 29 HOW TO READ DATA Advanced Interface When using the advanced method, the user similarly specifies the files, but can also specify the format, and other format and time options. He then has control over whether all parts will be loaded into EnSight, or whether EnSight will be informed of their existence, but not actually be loaded yet. 1. Select File > Open... 2. Toggle Advanced Interface, if not already set. 3. Navigate to the desired directory using typical navigation methods. 4. Filter the list using the File type, if desired. 5. Select the desired file. This file’s extension is what will be mapped to a reader in the ensight_reader_extension.map. 6. Click the applicable Set Button(s) (in this case, the Set d3plot button) If a mapping is known, the correct Format will be automatically chosen for you. 7. Select the correct Format - if not already correct. The list shown is dependent on the presence of internal and user-defined readers at your site, and in your preference settings. For the list of available readers please see Native EnSight Format Readers or Other Readers. 8. Optionally set any Format options. Note the options presented will vary according to the data format. Big-Endian is only necessary for legacy binary case gold files written on Unix platforms. All but the Casefile format will allow input of measured point data. See EnSight5 Measured/ Particle File Format. Plot3d, Casefile, and Special HDF5 structured formats will provide a field for a boundary file. See EnSight Boundary File Format (Continued on next page) Page 30 HOW TO READ DATA 9. Optionally set any Time options. . 10. Click Select parts to load... If you want to pick and choose which parts get loaded. or click Load all parts If you want to have all parts loaded. The parts in the model will now appear in the Parts list in EnSight. If you did a Load all parts, the parts will be loaded and active and will also be visible in the Graphics window. Page 31 HOW TO READ DATA If you instead clicked Select parts to load, the parts will show up in the Parts list, but are in a “not loaded” state. So, they will appear like: If you hover your mouse over one of the parts you will see: If you right click on one of the parts, you will see: Page 32 HOW TO READ DATA And if your data is unstructured, when you click on Load part, you will see a dialog like that to the right, wherein you can set: 1. The initial Visual Representation to use 2 A description other than the default, if desired. And click Load as new part to get the part created. If the data is structured, then you will see a dialog like the one to the right, wherein you can set: 1. From, To, and Step IJK values for the selected part(s). The From and To values are inclusive. Valid values in the From and To fields are numbers advancing from 1(the min for each part), or numbers decreasing from 0(the max for each part): 1,2,3,... ---> <---...-3,-2,-1,0 |---------------------------------------| min max (always 1) (varies per part) If you specify values that will be outside of the range of an individual part, the proper min or max values for the given part will be used. The Defined Min and Defined Max fields are for reference only. 2. If the selected part has Iblanking, you can build based on the value (Inside selects cells where Iblank=1, Outside selects Iblank=0, All selects all cells ignoring Iblanking). 3. The initial Visual Representation to use 4. A description other than the default, if desired. If you leave the Description field blank, it will default to what is shown in the Parts list. And click Load as new part to get the part created. Note that all parts in the case can be loaded by right clicking on the parent Case 1, instead of individual parts. If there are any exceptions to this general process, please see the details for specific readers in Chapter 2 (Other Readers) of the User Manual SEE ALSO How To Use ens_checker Page 33 HOW TO READ DATA User Manual: Reader Basics EnSight Case Reader EnSight5 Reader Other Readers Page 34 HOW TO USE ENS_CHECKER Use ens_checker INTRODUCTION This program attempts to check the integrity of the EnSight Gold (or EnSight6) file formats. Most files that pass this check will be able to be read by EnSight (see Other Notes below). If EnSight Gold (or EnSight6) data fails to read into Ensight, one should run it through this checker to see if any problems are found. Ens_checker makes no attempt to check the validity of floating point values, such as coordinates, results, etc. It is just checking the existence and format of such. Invoke ens_checker using the version of EnSight that you are using. For example, for EnSight 10.2, use ens_checker102. BASIC OPERATION Program invocation: If you invoke the program without any arguments, it will prompt you for the casefile to read. For example: > ens_checker102 ***************************************************************** * EnSight Data Format Checker * * =========================== * * Currently, * * 1. Must be run from directory in which casefile is located. * * 2. Handles EnSight6 and EnSight Gold formats only. * * 3. Does not process SOS casefiles. * ***************************************************************** mydata.case You can alternatively invoke the program with the casefile on the command line. > ens_checker102 mydata.case Sample runs: As ens_checker works it will be providing feedback. This feedback is important in interpreting what is wrong in the files. Here is a sample run, which was successful: > ens_checker102 3by3.case ***************************************************************** * EnSight Data Format Checker * * =========================== * * Currently, * * 1. Must be run from directory in which casefile is located. * * 2. Handles EnSight6 and EnSight Gold formats only. * * 3. Does not process SOS casefiles. * ***************************************************************** 3by3.case Casefile to Process: -------------------3by3.case (Opened successfully) --------------------Major Sections Found: --------------------Required FORMAT section Required GEOMETRY section Optional VARIABLE section Optional TIME section (at (at (at (at line line line line 1) 4) 7) 11) --------------FORMAT Section: --------------- Page 35 HOW TO USE ENS_CHECKER EnSight 6 Format (set at line 2) ------------TIME section: ------------Info for timeset number: 1 ---------------------------Time set: 1 (at line 12) No description provided Number of steps: 1 (at line 13) Time values: (starting on line 14) time values[1] = 0 >-------------------< > TIME section OKAY < >-------------------< ----------------GEOMETRY Section: -----------------------Model filename is: 3by3.geo (at line 5) Static geometry -------Opened 3by3.geo successfully File type is: Description 1: Description 2: node ids: element ids: ASCII EnSight test geometry file ========================== assign assign Global section: Number of nodes: 64 Coordinates for (64) nodes found Part 1: Description is: 3 x 3 xy Unstructured Part Number of quad4 elements is: 9 Connectivities for (9) quad4 elements found Part 2: Description is: 3 x 3 yz Unstructured Part Number of quad4 elements is: 9 Connectivities for (9) quad4 elements found Part 3: Description is: 3 x 3 xz Unstructured Part Number of quad4 elements is: 9 Connectivities for (9) quad4 elements found Part 4: Description is: 3 x 3 45 Unstructured Part Number of quad4 elements is: 9 Connectivities for (9) quad4 elements found >-----------------------< > GEOMETRY section OKAY < >-----------------------< ----------------VARIABLE Section: ----------------scalar per node: scalar Filename is: 3by3.scl (at line 8) Page 36 HOW TO USE ENS_CHECKER Non transient variable -------Opened 3by3.scl successfully Description: 3by3 scalar variable Global section: (64) Nodal scalar values for unstructured nodes found vector per node: vector Filename is: 3by3.vct Non transient variable (at line 9) -------Opened 3by3.vct successfully Description: 3by3 vector variable Global section: (192) Nodal vector values for unstructured nodes found >-----------------------< > VARIABLE section OKAY < >-----------------------< >----------- Hooray! ----------< > < > Data verification SUCCESSFUL < > < > with No Warnings < > < >------------------------------< And here is a sample run, with a problem, namely a ‘block’ line is missing: > ens_checker102 3by3s.case ***************************************************************** * EnSight Data Format Checker * * =========================== * * Currently, * * 1. Must be run from directory in which casefile is located. * * 2. Handles EnSight6 and EnSight Gold formats only. * * 3. Does not process SOS casefiles. * ***************************************************************** Casefile to Process: -------------------3by3s.case (Opened successfully) --------------------Major Sections Found: --------------------Required FORMAT section Required GEOMETRY section Optional VARIABLE section Optional TIME section --------------FORMAT Section: --------------EnSight 6 Format (at (at (at (at line line line line 1) 4) 7) 11) (set at line 2) ------------TIME section: ------------Info for timeset number: 1 Page 37 HOW TO USE ENS_CHECKER ---------------------------Time set: 1 (at line 12) No description provided Number of steps: 1 (at line 13) Time values: (starting on line 14) time values[1] = 0 >-------------------< > TIME section OKAY < >-------------------< ----------------GEOMETRY Section: -----------------------Model filename is: 3by3s.geo (at line 5) Static geometry -------Opened 3by3s.geo successfully File type is: Description 1: Description 2: node ids: element ids: ASCII EnSight test geometry file ========================== assign assign Global section: Number of nodes: 0 Part 1: Description is: 3 x 3 xy block Structured Part Not iblanked i j k = 4 4 1 Number of nodes: 16 Number of cells: 9 Block X coordinates for (16) nodes found Block Y coordinates for (16) nodes found Block Z coordinates for (16) nodes found Part 2: Description is: 3 x 3 yz block ===> Problem: ------------Looking for one of the following valid line types: element type (unstructured types, any of the following: point tria6 tetra10 penta15 bar2 quad4 pyramid5 hexa8 bar3 quad8 pyramid13 hexa20 tria3 tetra4 penta6 block (structured block) part (the next part) but found the following: 4 4 1 >-------------------------< > GEOMETRY section FAILED < >-------------------------< >-*-*-*-*-*-* bummer! *-*-*-*-*-*-< > < > Verification of the data FAILED < > < >-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-< Page 38 HOW TO USE ENS_CHECKER After fixing the ‘block’ line and running the program again, another problem is encountered - namely, an extra space at the end of the second line of x coordinates for the block that is part 2. > ens_checker102 3by3s.case ***************************************************************** * EnSight Data Format Checker * * =========================== * * Currently, * * 1. Must be run from directory in which casefile is located. * * 2. Handles EnSight6 and EnSight Gold formats only. * * 3. Does not process SOS casefiles. * ***************************************************************** Casefile to Process: -------------------3by3s.case (Opened successfully) --------------------Major Sections Found: --------------------Required FORMAT section Required GEOMETRY section Optional VARIABLE section Optional TIME section --------------FORMAT Section: --------------EnSight 6 Format (at (at (at (at line line line line 1) 4) 7) 11) (set at line 2) ------------TIME section: ------------Info for timeset number: 1 ---------------------------Time set: 1 (at line 12) No description provided Number of steps: 1 (at line 13) Time values: (starting on line 14) time values[1] = 0 >-------------------< > TIME section OKAY < >-------------------< ----------------GEOMETRY Section: -----------------------Model filename is: 3by3s.geo (at line 5) Static geometry -------Opened 3by3s.geo successfully File type is: Description 1: Description 2: node ids: element ids: ASCII EnSight test geometry file ========================== assign assign Global section: Number of nodes: 0 Part 1: Description is: 3 x 3 xy block Structured Part Not iblanked Page 39 HOW TO USE ENS_CHECKER i j k = 4 4 1 Number of nodes: 16 Number of cells: 9 Block X coordinates for (16) nodes found Block Y coordinates for (16) nodes found Block Z coordinates for (16) nodes found Part 2: Description is: 3 x 3 yz block Structured Part Not iblanked i j k = 4 4 1 Number of nodes: 16 Number of cells: 9 ===> Problem: ------------Previous lines end with 1 extra chars on the line, but line 2 has 2 extra chars. The lines must be consistent or EnSight will have trouble reading it. ===> Problem: ------------Not successful reading 16 X block coordinates >-------------------------< > GEOMETRY section FAILED < >-------------------------< >-*-*-*-*-*-* bummer! *-*-*-*-*-*-< > < > Verification of the data FAILED < > < >-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-< After eliminating the extra space, the file then checked out fine. ADVANCED USAGE Redirecting Output to a File: ens_checker is writing to stderr, so if you want to redirect output to a file, you need to use “>&”. For example, the following will place the output of the run into a file called output.file: > ens_checker102 3by3.case >& output.file OTHER NOTES The word “most” is used above because one of the things that could pass the checker, but fail in EnSight is element connectivity of EnSight6 files with node ids. The ens_checker checks that node ids used in the element connectivities lie within the min and max range of the node ids, but does not verify that there is actually a node with each individual id. The validity of model extents, presence of nan’s, etc. are currently checked to some degree in ens_checker, but again, this is a format checker - not a model integrity checker. SEE ALSO User Manual: EnSight Gold Casefile Format EnSight6 Casefile Format Page 40 HOW TO LOAD MULTIPLE DATASETS (CASES) Load Multiple Datasets (Cases) INTRODUCTION Normal operation of EnSight involves one client process (the graphics and user interface) interfacing with one server process (data I/O and computation) to postprocess your data. There are however several other configurations possible. One of these is the ability to connect a single client to multiple servers at the same time, with each server maintaining a unique dataset. Each of these servers can potentially run on different machines. Server Client Normal Operation Server Server Client Two Cases The main use of this capability is to visualize multiple datasets simultaneously. Each dataset is loaded into a separate case and can be viewed in the same window or in separate viewports. You can perform before and after comparisons of the same problem or compare experimental with simulated results. The same operation (such as a clip or a particle trace) can be performed in both cases simultaneously. Created parts always belong to the same case as the parent from which the part was created. As a consequence, you cannot perform operations that combine parts (such as a merge) from multiple cases. When EnSight reads a new case, it searches the current list of variables for matches with the variables from the new case. If it finds a match (based on an exact match of the variable name), it will not enter the new variable in the list. Rather, the matched name will be used for both. This behavior is based on the assumption that the identical variable names represent the same physical entity and should therefore be treated the same. If the new variable name does not match any existing name, the new variable is added to the list as usual. Up to 32 cases can be active at one time. You can add a new case or replace an existing case to a running session by using the File->Open... process (if you want to load all parts and don’t need to control other options available when loading cases) or the File->Data (reader)... process (which provides greater control). Adding a case starts a new server process, connects it to the client, and either loads all the parts (if you used Open...) or allows you to specify the data format and files as well as which parts to load into the new server and what optional settings to use as the case is created. One of the helpful uses of the replace case option is to load a new dataset into EnSight without re-starting the client. You can of course also delete cases you no longer need. It is possible to allow EnSight to link cases together in which operations performed on one case are performed on all cases. See the Release Notes for a list of limitations and for details on linking cases see How To Compare Cases. Page 41 HOW TO LOAD MULTIPLE DATASETS (CASES) BASIC OPERATION Once an existing case has been loaded in the normal manner, further case operations can be accessed through: File->Open... or through: Case->Add..., Replace..., Delete,,. Add a Case To add a case to a running EnSight session Do File->Open..., or Case->Add... 1. Select Keep currently loaded data This will add, rather than replace, the case 2. If desired, enter a name for the case (other than the default). The name will be displayed in the Case menu. 3. Set other optional settings. Select Server launch configuration if you have a predefined configuration. Link operations for all cases see How To Compare Cases. Apply Context From Case 1 will cause the new case to inherit positioning etc. from case 1. Create new viewport for this case will place the new case in a new viewport. Clone current connection will cause the same connection method as current one. Manual connection will cause a manual connection to be used - even if current connection(s) were automatic. Reflect Model About Axis allows the model to be reflected as it is read in. Pick the axis and specify the origin location. 4. Click Okay. Page 42 HOW TO LOAD MULTIPLE DATASETS (CASES) You will then be presented with the Open... dialog. Navigate to and select your data, and use the Simple interface to load all parts. (Note that the file type must be recognized for this method to work.) Or, use the Advanced interface, and control the Format and other options. As well as being able to Select parts to load, etc. The EnSight client will now start the connection process for the new server. Depending on the launch or connection settings chosen, the new server will be started automatically or you will have to manually start another server. The default is to start a new server automatically if your original connection was automatic, or to cause you to start another server manually if your original connection was manual. You can follow the progress of the connection in the Message area. See the EnSight Getting Started Manual or How To Connect EnSight Client and Server for more information. Once connected, EnSight will also load all parts of this new case if you use this method. Page 43 HOW TO LOAD MULTIPLE DATASETS (CASES) Replace a Case You can replace an existing case. This is most useful when you wish to load a new dataset without having to stop and re-start the client. To replace a case: Do File->Open... and select Replace currently loaded data, or Case->Replace... This will open the dialog shown. You can optionally set a case name or choose a predefined launch configuration, or just use the default. Click Okay You will now be presented with the Open... dialog, just as shown in Add Case above. You can use the Simple Interface and load all parts, or control the options and part loading by using the Advanced interface. The server associated with the selected case is terminated and the EnSight client will now start the connection process for the new server. Again, depending on the launch configuration chosen, the new server will be started automatically or you will have to manually start another server. The default is to start a new server automatically if your original connection was automatic, or to cause you to start another server manually if your original connection was manual. You can follow the progress of the connection in the Message area. See How To Connect EnSight Client and Server for more information. Delete a Case To delete a case: 1. Select the case you wish to delete in the Case menu (Case > casename). 2. Select Case > Delete... You will be asked to confirm the deletion. If confirmed, the server associated with the selected case is terminated. Page 44 HOW TO LOAD MULTIPLE DATASETS (CASES) Displaying Parts by Case By default all parts from all cases are displayed in the Main Parts list and they are displayed in a hierarchical manner by case. See How To... Introduction to Part Creation for more details on viewing the parts list. Case Viewport Display One of the chief advantages of the case feature is the ability to perform side-by-side comparisons of different datasets. One way to do this is to display each case in a separate viewport. To do this: 1. Create as many additional viewports as you need to display your cases. See How To Define and Change Viewports for more information. 2. Select the case whose parts you wish to display only in certain viewports in the Case menu (Case > casename). 3. Select Case > Viewport Visibility... 4. Click in the desired viewport to enable or disable display of the selected case. Black means the selected case is not displayed in the viewport, green means that it is displayed. Page 45 HOW TO LOAD MULTIPLE DATASETS (CASES) ADVANCED USAGE EnSight’s cases capability has also been used to achieve coarse-grained parallelism for very large datasets by partitioning a mesh into blocks and reading each block into a different case. Each case can run on different machines or on different CPUs of a multiprocessor host. Since the EnSight client places the geometry from the different cases in the same coordinate system, the blocks are effectively “stitched” back together for viewing. Operations such as clipping and isosurface calculation are then automatically performed in parallel. However, since there is no communication between the servers (in the current release) you cannot trace particles originating in one block and expect them to cross a block boundary into a different block. (It should be noted that EnSight’s server-of-server capability is an alternate, and usually better way to do parallel operations on a model.) OTHER NOTES When you perform an archive operation, a binary dump file is produced for each active server (case). The archive information file contains details about the cases and can be used to restart the EnSight client as well as all servers active when the archive was performed. See How To Save and Restore an Archive for more information. SEE ALSO User Manual: Case Menu Functions How To Manual: Compare Cases Page 46 HOW TO COMPARE CASES Compare Cases INTRODUCTION EnSight has long had the ability to load multiple datasets and included tools to help compare them. Each of these datasets is loaded as a separate EnSight Case. But no functionality or capability existed to try to make case comparison easy or automated for the user. The first step instructions on using multiple EnSight cases, is to see How to Load Multiple Datasets (Cases) which will explain how multiple cases are loaded in EnSight. All of this functionality for reading and comparing multiple cases is available to the user in a somewhat tedious step-by-step process. This “How To” was written to document a new and more automated case compare capability named “case linking” which is intended to provide easy case comparison functionality. The goal of linking all the cases is to quickly and uniformly perform the same operation over all of the cases. So transformations, part attribute changes, part and variable creation and query operations are performed automatically and uniformly across all of the loaded cases. When one case is changed, all are changed in the same way. To use case linking, first load a dataset and perhaps set up what you want to visualize. Then load the next case and toggle on "Link operations for all cases". This will read in the new case, apply the context file from the first case and automatically place the new case in its own linked viewport. Subsequent cases loaded will also be linked together and each appear in their own linked viewport. Case linking remains on until you turn it off (either right click on a case in the parts dialog or turn it off via the Case pulldown). Once turned off, the case linking can not be turned back on in the current session. Limitations Every dataset must contain the same number of parts. Case linking does not use part id nor part name, but rather part order in the part list to match up the parts. Therefore the parts must match up in the same order in the part list. Same model variables must exist with same names across the cases. Load all cases prior to doing calculations. The geometry must be in roughly the same dimensions. What are linked? Once turned on, case linking applies all of the previous and subsequent operations that have been and will be applied to any case and applies them to all of the cases as follows: Any case added will apply the context file from the first case and place the new case in a new, linked viewport. The second case will automatically split the screen into a left/right viewport. Other cases added will produce “thumbnail” viewports down the left side. Once the number of cases added is greater than the number of viewports that can be viewed, a scroll bar is added. All transformations in all viewports are linked. Any part attribute modified will be applied to the corresponding parts of the other cases. Any part created (e.g. a clip part) will be created through the same parts of the other cases. Any variable created will be duplicated across all loaded cases. Constant variables will have the case number appended to their name (e.g. “variable_02”). Scalar and vector variables will appear only once in the variable list. Queries will be performed through all cases and plotted on the same plotter. Interactive probe queries will be performed at the same screen position in the linked viewports. Rotational and mirrored symmetry will be applied to all the cases. Caveat This is a capability that is evolving. For the most current conditions and limitations please refer to the Release Notes. Page 47 HOW TO COMPARE CASES If your data does not fall within the limitations, the new capability will not be of benefit and instead use the step-bystep manual method of comparing cases described in How to Load Multiple Datasets (Cases). Page 48 HOW TO COMPARE CASES BASIC OPERATION Add a Case To add a case to a running EnSight session. First verify that your datasets all fall within the limitations described above. Then read in the first dataset in the normal manner. Next, load subsequent linked datasets. Finally do any calculations, manipulations, part creations etc. Do File->Open..., or Case->Add... 1. Select Keep currently loaded data This will add, rather than replace, the case 2. If desired, enter a name for the case (other than the default). The name will be displayed in the Case menu. 3. Set other optional settings. Link operations for all cases to compare this newly added case to the existing one. Toggle this on. When this is toggled on other options become unavailable. Server connection options are still available with the Link option. Note: The case linking toggle is only available on the addition of the second case. All subsequent cases adopt the Link setting of the second case. If the Link toggle is on for the second case, the dialog will no longer even appear for subsequent cases. Grayed out options are no longer necessary if you Link operations for all cases as they now automatically happen. 4. Click Okay. Page 49 HOW TO COMPARE CASES You will then be presented with the Open... dialog. Navigate to and select your data, and use the Simple interface to load all parts. (Note that the file type must be recognized for this method to work.) Or, use the Advanced interface, and control the Format and other options. As well as being able to Select parts to load, etc. The EnSight client will now start the connection process for the new server. Depending on the launch or connection settings chosen, the new server will be started automatically or you will have to manually start another server. The default is to start a new server automatically if your original connection was automatic, or to cause you to start another server manually if your original connection was manual. You can follow the progress of the connection in the Message area. See the EnSight Getting Started Manual or How To Connect EnSight Client and Server for more information. Once connected, EnSight will also load all parts of this new case if you use this method, and, if the “Link operations for all cases” toggle is on, a new linked viewport labeled with the case will be created for the data. Load all of your cases prior to doing calculator functions. Page 50 HOW TO COMPARE CASES Simple Demonstration of Case Linking With two linked cases loaded (each with the same part names and variables), right-click on a field part and create a Y-clip. Note that this results in the clip being created at the same location throughout the loaded cases Page 51 HOW TO COMPARE CASES How to end case linking Toggle off Case Linking using the top menu entry under Case. Do Case>Case Linking to toggle it off. And once you turn it off you can continue working with the unlinked cases, but you cannot turn linking back on during the remainder of the EnSight session. : 1. When you are finished with the portion of your analysis facilitated by Case Linking, simply toggle off Case>Case linking and the cases will no longer be linked. 2. Warning: once you end case linking you can no longer case link in this EnSight Session. 3. When Case Linking is turned off you can now change features in one viewport and they will no longer change in the other viewports. You can calculate variables in one case that will no longer be calculated in the other cases. Page 52 HOW TO COMPARE CASES Case linked Calculations If you are going to do calculations with multiple cases, it is recommended that you load all the cases first, then do the calculations. Calculation of a variable such as vsq = velocity*velocity on a certain part, such as a clip plane, in one of the cases will cause that same variable to be calculated on the corresponding clip plane in all the other cases when case linking is on. The variable vsq will show up once in the variable list if it is a vector or scalar as always. If the variable is a constant such as that returned by the EnSight Flow function then there will be a constant variable for each case in the variable list calculated on the corresponding cases. Constant variables from cases besides the first, will have the case number appended to their name (e.g. “flow_02” for the case 2 flow). To compare a variable across cases, use the new CaseMapDiff calculator function. This will give you a variable that results from the subtraction of that variable from the CaseMap of that variable from the chosen case. See the example below for an illustration of using this function to compare the pressure across cases. CaseMapDiff Calculator function example: Select the Field part in Case 2, calculate CaseMapDiff of the variable pressure from Case 1 using the nearest value. Now create a Y clip of the field and color by the variable. See that the CaseDiff variable is zero everywhere at Case 1 and has a non-zero value of CaseDiff at Case 2 because it equals (Case2 pressure - Case 1 pressure). Case Mapping Tips The searching algorithm in CaseMap and CaseMapDiff slows dramatically as the size of the model grows. Consider starting EnSight with the -hpc (formerly -gold) option if you have an hpc (formerly gold) license, to maximize your use of Threading. At your first attempt at casemapping, use the faster ‘search only’ (option 0) flag, which will result in an undefined value if the local search fails, and will not resort to the slower global search used by the ‘nearest value’ search option. When case mapping finishes, check your results by right clicking on the variable and edit the palette and, under the Options tab in the Palette dialog, change the ‘Display Undefined’ as Invisible. This will remove the Page 53 HOW TO COMPARE CASES undefined value as a ‘hole’ in your mesh to give you a sense of the number of failures in your case mapping. If you have holes in your mesh, and if the case map was relatively quick, and the variable that you are mapping is elemental, then consider creating a nodal variable and rerunning using search option 0 flag. Nodal variables tend to succeed in the searching algorithm better. Or if you are using a nodal variable and still getting undefined values, try using ‘nearest value’ (search option 1) flag, which, if the local search fails, will ‘look around’ using a slower, global search. You can restrict the search using the ‘parts to map from’ pulldown. If both cases have matching part numbers, use the ‘Part number match’ and the search will be restricted to matching part(s) in the same list position in the Part List. Or I can use ‘Parts selected for case to map from’ and select the parts in each case to use for searching. Or if I’m mapping to parts that are all the same dimension (say 2D) then I can select ‘Dimensionality match’ to only use parts in the ‘case to map from’ that are the same dimension as my selected parts. Warning, if you use the default search option ‘Global search’, then EnSight will search the 3D, 2D, 1D, and 0D parts in the ‘case to map from’, which may slow performance dramatically. ADVANCED USAGE A common usage scenario is to load all your cases with case linking turned on, do your common calculations and perform the operations that case linking takes care of most easily. Then turn it off to complete the post processing. OTHER NOTES When calculator functions are executed and then subsequent cases are loaded, this sometimes works, however this is not recommended. It is recommended that you load all your cases first and then do your calculations so that they can all occur on the existing cases at once. SEE ALSO User Manual: Case Menu Functions How to Manual: Load Multiple Datasets (Cases) Page 54 HOW TO LOAD TRANSIENT DATA Load Transient Data INTRODUCTION From its inception, EnSight has been used extensively to postprocess time-varying or transient data. In many cases, dynamic phenomena can only be understood through interactive exploration as a transient case is animated. EnSight handles all types of transient data. All variables as well as mesh coordinates and connectivity can vary over time. The rate at which variables (or the mesh) change can differ (supported through the EnSight Gold and EnSight6 Case data format only). EnSight can postprocess transient data in many ways. The Player (Solution Time) area lets you easily set the current time step, step through time (manually or automatically), or restrict the range of time to a region of interest. You can perform query operations to extract information over time. You can use the flipbook capability to create an on-screen animation of your data changing over time and continue to interact with it during animation playback. EnSight’s keyframe animation capability can be used to create high-quality video animations of transient data. This article covers reading transient data into EnSight. BASIC OPERATION Reading transient data into EnSight is essentially the same as reading static data (see How To Read Data for more information). By default, the last time step will become the current time step. This behavior is based on the assumption that the last step will contain the largest dynamic range of the variable data so that variable palettes will be initialized properly. However, you can override this by clicking the Specify Starting step toggle and entering the desired time step under the Time options tab in the File > Open dialog. Note, for some data formats, you can also monitor the dataset for new timesteps as described in User Manual 5.1 Solution Time. For many data formats, some type of “results” file supplies the necessary time information, including number of steps, actual solution time at each step, and how to access the dynamic variable and geometry files. However, some formats supported by EnSight include this information in the same file that contains other geometry or variable data. EnSight 6 and EnSight Gold formats have a casefile which contains solution time information and how this is tied to each variable and the geometry. The manner for each format can vary widely enough that we refer you to User Manual 2.1 Reader Basics, User Manual 2.1 Native EnSight Format Readers, and User Manual 2.1 Other Readers Page 55 HOW TO LOAD TRANSIENT DATA ADVANCED If you wish to read transient data that is being updated (that is, perhaps the solver is in the process of writing the data and you are looking at it as the solution proceeds: coprocessing) then you will need to get your solver to write out the maximum number of steps keyword if the data is PLOT3D Results File Format or EnSight Gold Casefile Format. Or, if you are using another format and have a custom user-defined reader, then you will need to add a routine called USERD_get_max_time_steps that cues the EnSight Server that the number of time steps can be updated (and provides a maximum never-to-exceed number of time steps that can be loaded). Currently the EXODUS II Reader has this capability. The user chooses the action which will occur when a new timestep becomes available. Either the timestep will automatically update to the last timestep available or you can stay at the current timestep. For the latter, the End time value for the solution time dialog will update to reflect the new timestep availability, but the time will not be modified. Click on the advanced button to pop up the “Solution time” dialog. If the current dataset is set for timestep monitoring, the pulldown options for Monitor for new time steps will be available. Click this pulldown to decide what action will be taken when new timesteps are available. SEE ALSO How To Change Time Steps, How To Animate Transient Data, How To Query/Plot User Manual: Flipbook Animation, Query/Plotter Page 56 HOW TO USE SERVER OF SERVERS Use Server of Servers INTRODUCTION EnSight102, using an hpc (formerly gold) license key has the capability of dealing with spatially partitioned data or temporally decomposition in an efficient distributed manner by utilizing what we call a server-of-servers (SOS for short). An SOS server resides between a normal client and a number of normal servers. Thus, it appears as a normal server to the client, and as a normal client to the various normal servers. When reading spatially decomposed data (or when the decomposition is done on the fly), each server is responsible for only a portion of the geometry for all time. This is useful, for example, when the entire geometry for a single timestep simply cannot fit into one server on one machine. When the data is temporally decomposed, each server is responsible for all of the geometry but only at one timestep. This is useful, for example, when the entire geometry at one timestep fits on one server, and the user desires to precache (read ahead) to other timesteps to speed up time changes. This arrangement allows for distributed parallel processing of the various portions of a model or different portions of time, and has been shown to scale quite well. Currently, EnSight SOS spatially decomposed capability is only available for EnSight5, EnSight6, EnSight Gold, Plot3d, and some EnSight User-Defined Reader data formats. All data formats permit temporal decomposition. For spatial decomposition, please recognize that your data must be spatially partitioned in some manner (hopefully in a way that will be reasonably load-balanced) in order for this approach to be useful. This partitioning can be done externally, be done by a reader internally, or be auto_distributed by the EnSight servers. Each of these options for spatial decomposition will now be discussed, because they have limitations. Temporal decomposition will be discussed at the very end of this document. Page 57 HOW TO USE SERVER OF SERVERS SPATIAL PARTITIONING OF DATA DONE OUTSIDE ENSIGHT Choose “Don’t decompose” in the SOS options tab if the data is already partioned outiside of EnSight and you don’t want EnSight to do the decomposition. This option requires that each portion of the model be prepared as a standalone partitioned dataset, that can be read as such by an EnSight server. For example, if it were EnSight gold format, there will be a casefile (.case) and associated gold geometry and variable results file(s) for each partitioned dataset. There will also need to be an SOS casefile (.sos), which is a simple ascii file which informs the SOS about pertinent information needed to run a server on each of the machines that will compute the various portions and what case file partition it is to read. The SOS will read the sos casefile (.sos), and each server will read one of these pre-partitioned (.case) datasets. The SOS will conglomerate geometry together so that the client sees the whole model. The EnSight formats, PLOT3D, and any user-defined readers using our 1.0 or 2.0 APIs can be used The advantage of external partitioning is that once the data has been partitioned once, the partitioning is done. EnSight’s SOS and servers can then operate without expending any effort on partitioning. The disadvantage is that it is not easily changed. Some formats require that the number of servers be the same as the number of partitioned datasets. However, for EnSight Gold format, EnSight now has the capability of running more than one of these datasets on a given server - so it is possible to run the model on fewer servers than the number of partitioned datasets. And the number of those servers is easily changed. See How To Load Spatially Decomposed Case Files. Data can be partitioned prior to reading in EnSight, for example, by a solver, or by an external partitioning utility as described below. Partitioning with a Solver, or Self-Partitioning Note: If you do your own partitioning, please be aware that, as of EnSight 10.2, each dataset is no longer required to have all parts present in all of the partitioned data files. EnSight now uses the part name as the unique identifier, so, if the part is present in the dataset, it must be consistently named everywhere: in all partitioned datasets over all timesteps. Thus one can fairly easily partition as desired, whether that be with decomposed parts across several datasets, or with parts empty (or even nonexistent) in all but one of the datasets, etc. Note that in EnSight Case Gold format, an empty part need only have the “part” line, the part number, and a consistent “description” line (or, now, it can be left out altogether). EnSight’s Partition102 Utility Included in the EnSight distribution is a command-line Partition Utility that will take EnSight Case Gold multi-file format, C-binary unstructured datasets and partition them for you using geometric partitioning (thick slicing the geometry along it’s longest edge into chunks). This utility will work for static, changing coordinate or changing geometry datasets. It will not work for ascii files, for single file format, measured/particle data, or datasets with multiple timesets (i.e. all variables must be on same timeset). It will also not work for structured data (which must be server decomposed, see below). Simply type partition102 at the command prompt to begin. This command line program will prompt you for the name of the input case file and the number of partitions in the x, y, and z and whether or not to use ghost elements, etc. and will create (in a directory of your choosing) a case sos file (.sos) pointing to the partitioned case files ready for loading into EnSight server of server mode. You should place each partitioned portion of the model on the machine that will compute that portion. On the machine where the EnSight SOS will be run, you will need to place the sos casefile. If you move the case files around to different locations and/or different machines, you will need to edit the sos file (.sos) to properly indicate the machines and directories where the case files are located. Once you load the data into EnSight Server of Server mode, Page 58 HOW TO USE SERVER OF SERVERS calculate the variable ServerNumber in the EnSight calculator and color your geometry by this variable to visualize the spatial distribution chosen by the partition utility. The partition utility simply takes the bounding box of the data and divides it into a grid according to the number of partitions in the x, y, and z-directions so works best on data that is cubic in shape. SPATIAL PARTITIONING DONE BY A READER, “READER DECOMPOSE” If the “Reader decompose” option is available, then the reader for your chosen format is SOS aware. You would choose “Reader decompose” in the SOS options tab to read the data in partitions on each server. If this option is available, then you will usually choose it because the reader knows how to best decompose the data. This method requires that the reader be based on our 2.0 or later User-defined reader API, which is “server-aware”, and that it does its own determination of what data goes to each server. Some “multiblock” formats for example, can easily distribute certain blocks to certain servers. And they can do so based on the number of servers that are being used at the time. There is still the requirement that each server be informed of the same number of total parts. But the reader can return different portions of a given part based on which server is querying. And yes, a given part can be empty for some servers. This type of partitioning reader has the advantage of being adaptable to the number of servers used. It does require the development of such a reader. Examples of that allow reader decompose are as follows: CGNS-XML, CTH, xdmf2, Exodus, Flow3d, Silo and VTK readers. In the data reader dialog (File>Open...) under the SOS options tab, are the SoS options for the selected data reader. One option is to pass wildcards to the server, for example if the data file refers to a set of files (file*.vtm). PARTITIONING DONE BY ENSIGHT SERVERS, “SERVER DECOMPOSE” If your data is not already decomposed nor is the Reader decompose option available, then EnSight has the final option of using the EnSight server to decompose (also called auto-distribute, since the EnSight server automatically does the distribution). Some formats/readers allow for an spatial auto-distribute capability that occurs within each server. Pre-partitioning is not required. Each server will determine its portion using a connectivity-based partitioning algorithm (selecting N elements in the connectivity order), and will read and act just on that portion. Note that this connectivity based algorithm is different than the partition utility described above. Currently this capability is available to Plot3d and EnSight Case gold format. It can be implement in User-defined readers (at level 2.08 or greater), which have implemented the “*_in_buffers” routines. Page 59 HOW TO USE SERVER OF SERVERS So, since none of the user-defined readers distributed by EnSight have currently implemented the needed *_in_buffer routines or structured reader cinching capability to take advantage of this option, only the internal EnSight Gold and Plot3d readers can be used with Server decompose (auto_distribute). However if you have on-site user defined readers, these may include this capability. Use of SOS with our native, Case Gold format can use an ASCII SOS Casefile which is a map for how data is to be distributed to the Servers using auto-distribute. FORMAT OF THE SOS CASEFILE: The format for this file is as follows: (Note that [ ] indicates optional information, and a blank line or a line with # in the first column are comments.) FORMAT type: master_server datatype (Required) (Required) where: datatype is required and is one of the formats of EnSight’s internal readers (which use the Part builder), namely: gold ensight6 ensight5 plot3d or it can be the string used to name any of the user-defined readers. Note: For user-defined readers, the string must be exactly that which is defined in the USERD_get_name_of_reader routine of the reader (which is what is presented in the Format pulldown of the Data Reader dialog). If datatype is blank, it will default to EnSight6 data type. [auto_distribute: on/off] (Optional for structured or unstructured data) EnSight server will automatically distribute data to the servers (also called Server decompose) specified below if this option is present and set to “on”. This will require that each of the servers have access to the same data (or identical copies of it). For structured data: use only if the datatype is gold, plot3d or a 2.06 or greater user-defined reader (which has implemented structured cinching). For unstructured data: use only if the datatype is gold, or a 2.08 (or greater) user-defined reader. Additionally, be aware that 2.* user-defined readers should implement the special functions defined in README_USERD_IN_BUFFERS file if memory is to be used efficiently in the unstructured auto-distribute process. [use_resources: on/off] (Optional, to allow specification of server machines to come from the “resource file”) [do_ghosts: on/off] (Optional for unstructured auto_distribute - default is on (before version 10.1.4(a)), and is off for later versions) Allows user to control whether ghost cells will be produced between the distributed portions. Please note that this could alternatively be set with the -use_ghosts command line argument, or by setting the UNSTRUCT_AUTODISTRIBUTE_USE_GHOSTS environment variable to 1. [buffer_size: n] (Optional for unstructured auto_distribute and do_ghosts - default is 100000) Allows user to modify the default buffer size that is used when reading node and element information of the model when producing ghost cells. [want_metric: on/off] (Optional for unstructured auto_distribute and do_ghosts - default is on (before version 10.1.4(a), and is off for later versions.) If set on, a simple metric will be printed in the shell window that can indicate the quality of the auto_. The unstructured auto_distribute method relies on some coherence in the element connectivity - namely, that elements that lie next to each other are generally listed close to each other in the data format. The metric is simply the (#total_nodes / #nodes_needed_if_no_ghosts). When no ghosts, the value will be 1.0. The more ghosts you must have, the higher this metric will be. If the number gets much more than 2.0, you may want to consider partitioning yourself. Please note that this could alternatively be set with the -use_metric command line argument, or by setting the UNSTRUCT_AUTODISTRIBUTE_USE_METRIC environment variable to 1. NETWORK_INTERFACES (Note: This whole section is optional. It is needed only when more than one network interface to the sos host is available and it is desired to use them. Thus, distributing the servers to sos communication over more than one network interface) number of network interfaces: num(Required - if section used) where: num is the number of network interfaces to be used for the sos host. network interface: sos_network_interface_name_1(Required - if section used) Page 60 HOW TO USE SERVER OF SERVERS network interface: sos_network_interface_name_2(Required - if section used) . . network interface: sos_network_interface_name_num(Required - if section used) SERVERS (Required) number of servers: num [repeat](Required) where: num is the number of servers that will be started and run concurrently. repeat indicates that the first server specification should be repeated num times for use with resources. Other server specifications will be ignored. #Server 1 machine id: mid (Comment only) (Required) where: mid is the machine id of the server. executable: /.../ensight92.server(Linux/Unix/Apple Required, must use full path) or ensight92_server.bat (Windows only Required, must use .bat extension) [directory: wd] (Optional) where: wd is the working directory from which ensight92.server will be run [login id: id] (Optional) where: id is the login id. Only needed if it is different on this machine. [data_path: /.../dd] (Optional) where: dd is the directory where the data resides. (Full path must be provided if you use this). casefile: yourfile.case (Required, but depending on format, may vary as to whether it is a casefile, geometry file, neutral file, universal file, etc. Relates to the first data field of the Data Reader Dialog.) [resfile: yourfile.res] (Depends on format as to whether required or not. Relates to the second data field of the Data Reader Dialog.) [measfile: yourfile.mea] (Depends on format as to whether required or not. Relates to the third data field of the Data Reader Dialog.) [bndfile: yourfile.bnd] (Depends on format as to whether required or not. Relates to the fourth data field of the Data Reader Dialog.) --- Repeat pertinent lines for as many servers as declared to be in this file --- BASIC OPERATION To use Server of Servers, depending on the method of spatial partitioning (Externally partitioned, Reader partitioned, or Server partitioned) described above, you do the following: External partitioning 1. Partition your data, and distribute it (or make it available) to the various machines on which you will run servers. 2. Create the sos casefile, which defines the data format to use, the server machines, the location of server executables on those machines, and the name and location of the [partitioned] data for the servers. Each server in the casefile will reference different data. Examples will be shown below. 3. Run EnSight with the -sos command line option(or use ensight102.sos in place of ensight102.server if connecting manually) and provide it with the sos casefile. You can run EnSight like: Page 61 HOW TO USE SERVER OF SERVERS ensight102 -sos Then under File->Open, set the sos casefile under the data tab, with a format of Case SOS. Under the SOS options tab, you can verify that Auto distribute is set to Don’t decompose (because the data is already decomposed). Using the command in this way runs the SOS on the same machine as the client. If you want to control where the SOS runs, connect manually instead (a manual example will be shown later in this article). Also note that if you want to load all parts, you could have simply included the sos casefile on the command line, like: ensight102 -sos /home/bjn/dat/sos/cube_10.sos Additionally, you can use resources in combination with a sos casefile if desired. See How To Use Resource Management for an example. Spatial partitioning done by a reader, “Auto distribute Reader decompose” If you use a reader that can do its own partitioning, you can use an sos casefile in which each server references the Page 62 HOW TO USE SERVER OF SERVERS same data, OR take advantage of a resource file and not have to create an sos casefile. Note that for this method, under the SOS options tab in the File->Open dialog, you will see that Auto distribute is set to Reader Decompose. It is probably easiest to describe the usage based on an example. So using the Exodus reader, lets run an Exodus model on two servers (computer1 and computer2), first using the .sos case file and then the .res file (you don’t use them both at the same time). The files we will reference are: sample.exo (the Exodus data file) servers.sos (the SOS casefile) FORMAT type: master_server MultiExodusII SERVERS number of servers: 2 #Server 1 #-----------machine id: computer1 executable: ensight102.server data_path: /home/user/exodus casefile: sample.exo #Server 2 #-----------machine id: computer2 executable: ensight102.server data_path: /home/user/exodus casefile: sample.exo servers.res (the resource file, see How To Use Resource Management for more details) #!CEIResourceFile 1.0 SOS: host: localhost SERVER: host: computer1 host: computer2 Flow3D SOS Case file example which uses two computers (computer1 and computer2), and 4 servers, with 4 files (flsgrf1.dat, flsgrf2.dat, flsgrf3.dat and flsgrf4.dat) located on a common file system that both computers can read: / scratch/data/lowres and perhaps name it servers.sos. It will also be necessary that the machine where you start up your server of server has the Flow3d reader (must be either a linux or windows machine) and it is able to start up servers using passwordless ssh. FORMAT type: master_server Flow3D-Multiblock SERVERS number of servers: 4 #Server 1 #-----------machine id: computer1 # for same machine use #machine id: localhost executable: ensight102.server # for windows use #executable: ensight102_server data_path: /scratch/data/lowres/ casefile: flsgrf*.dat #Server 2 #-----------machine id: computer1 Page 63 HOW TO USE SERVER OF SERVERS executable: ensight102.server data_path: /scratch/data/lowres/ casefile: flsgrf*.dat #Server 3 #-----------machine id: computer2 executable: ensight102.server data_path: /scratch/data/lowres/ casefile: flsgrf*.dat #Server 4 #-----------machine id: computer2 executable: ensight102.server data_path: /scratch/data/lowres/ casefile: flsgrf*.dat Your servers.res file will be the same as above except it will have four servers, and perhaps named four_servers.res. #!CEIResourceFile 1.0 SOS: host: localhost SERVER: host: computer1 host: computer1 host: computer2 host: computer2 1. For the exodus example above, make sure your sample.exo data file is available to the various computers on which you will run servers. For the Flow3d example above, make sure all four flsgrf*.dat files are in the same directory and available to all the computers. 2. Create the sos casefile, Or the resource file appropriate for your format above (use one or the other). You can copy/paste from the examples above. 3. Run EnSight using one of the following (not both): ensight102 -sos Then set the servers.sos file in the File->Open dialog (format Case SOS). This will let you load all parts, or select the ones to be loaded. Or use ensight102 -sos servers.sos on the command line if you want to load all parts. -- OR if you want to use the resource (.res) file -Choose the sample.exo file or the flsgrf*.dat in the File->Open dialog (format MultExodusII, format Flow3dMultiblock respectively), and place the appropriate .res file in the Set resource file field under the SOS options tab. For Flow3d data, toggle ON the Pass wild cards to server option, which will allow the asterisk in flsgrf*.dat to pass down to the servers to handle appropriately. This will let you then load all parts, or select the ones to be loaded. Or use ensight102 -sos -res servers.res on the command line and set sample.exo (or flsgrf*.dat) file in the File->Open dialog (format MultExodusII, Flow3D-Multiblock, respectively). Or, for exodus format, use ensight102 -sos -res servers.res sample.exo on the command line if you want to load all parts. You cannot use the command line for Flow3D format because you must tell EnSight to pass the asterisk to the servers and this appears to only work from the dialog. There are several other variations that could be used, including the use of a manual connection with the SOS. They all have similar corresponding options. Spatial partitioning by EnSight Servers “Auto_distribute, e.g. Server decompose” If you use EnSight Gold, Plot3d, or a User-defined reader that is capable (as described above), you can let EnSight do the partitioning. You can use an sos casefile in which each server references the same data, or take advantage of a resource file and not have to create an sos casefile. Note that for this method, under the SOS options tab in the Page 64 HOW TO USE SERVER OF SERVERS File->Open dialog, you will see that Auto distribute is set to Server Decompose. It is probably easiest to describe the usage based on an example. So using the EnSight Gold format, lets run a simple model on two servers (computer1 and computer2). The files we will reference are: cube.case (the EnSight Gold data file) two_partitions.sos (the SOS casefile) FORMAT type: master_server gold auto_distribute: on do_ghosts: on SERVERS number of servers: 2 #Server 1 #-----------machine id: computer1 executable: ensight102.server data_path: /home/user/exodus casefile: cube.case #Server 2 #-----------machine id: computer1 executable: ensight102.server data_path: /home/user/exodus casefile: cube.case two_servers.res (the resource file, see How To Use Resource Management for more details) #!CEIResourceFile 1.0 SOS: host: localhost SERVER: host: computer1 host: computer2 1. Make sure your cube.case data is available to the various machines on which you will run servers. 2. Create the two_partitions.sos sos casefile, or the two_servers.res resource file 3. Run EnSight like: ensight102 -sos Then set the two_partitions.sos file in the File->Open dialog (format Case SOS). This will let you load all parts, or select the ones to be loaded. Or use ensight102 -sos two_partitions.sos on the command line if you want to load all parts. -- or -Open the cube.case file in the File->Open dialog (format Case), and place two_servers.res in the Set resource file field under the SOS options tab. This will let you then load all parts, or select the ones to be loaded. Or use ensight102 -sos -res two_servers.res on the command line and set cube.case file in the File->Open dialog (format Case). Or use ensight102 -sos -res two_servers.res cube.case on the command line if you want to load all parts. There are several other variations that could be used, including the use of a manual connection with the SOS. They all have similar corresponding options. Page 65 HOW TO USE SERVER OF SERVERS Example SOS Casefile This example deals with a EnSight Gold dataset that has been partitioned into 3 portions, each running on a different machine. The machines are named joe, sally, and bill. The data is not in the same location on all machines. Note that the optional data_path line is used on two of the servers, but not the third. FORMAT type: master_server gold SERVERS number of servers: 3 #Server 1 machine id: joe executable: ensight102.server data_path: /usr/people/john/data casefile: portion_1.case #Server 2 is a Windows machine (notice .bat extension) machine id: sally executable: ensight102_server.bat data_path: D:\john\data casefile: portion_2.case #Server 3 machine id: bill executable: ensight102.server casefile: /scratch/temp/john/portion_3.case If we name this example sos casefile - “all.sos”, and we run it on yet another machine - one named george, you would want the data distributed as follows: On george: On joe (in /usr/people/john/data): On sally (in /scratch/sally/john/data): On bill (in /scratch/temp/john): all.sos portion_1.case, and all files referenced by it. portion_2.case, and all files referenced by it. portion_3.case, and all file referenced by it. By starting EnSight with the -sos command line option (which will autoconnect using ensight102.sos instead of ensight102.server), or by manually running ensight102.sos in place of ensight102.server, and providing all.sos as the casefile to read in the Data Reader dialog - EnSight will actually start three servers and compute the respective portions on them in parallel. So, one could do the following (after preparing the all.sos file): On “george”, run the client and the sos by invoking the ensight102 script in a shell window (non-windows) or Command Prompt window (windows), like: george>> ensight102 -sos Or one could run the client on the “myclient” machine, telnet (or equivalent) into the “george” machine and run the sos there, by using the following commands: If “myclient” is a non-windows machine: In a window on “myclient”: In a window that is telneted into the “george” machine: myclient>> ensight102.client -cm If “george: is a non-windows machine: george>> ensight102.sos -c myclient If “george is a windows machine: george>> ensight102_sos -c myclient : If “myclient” is a windows machine: In a Command Prompt window on “myclient”: myclient>> ensight102_client -cm In a Command Prompt window that is telneted into the “george” machine: If “george: is a non-windows machine: george>> ensight102.sos -c myclient Page 66 HOW TO USE SERVER OF SERVERS If “george is a windows machine: george>> ensight102_sos -c myclient In either case, you would enter the all.sos command as the file to read in the Data Reader dialog once EnSight is up and connected. And the servers on “joe”, “sally”, and “bill” would be started and used automatically. ENVIRONMENT Variables The following Environment variables will directly affect the SOS performance, see How To Setup for Parallel Computation. ENSIGHT10_MAX_THREADS ENSIGHT10_MAX_SOSTHREADS Additionally, rather than specifying whether unstructured ghost processing and metric calculations will be done in an sos casefile, you can specify this via command-line argument (-use_ghosts and -use_metric), or via the following environment variables. Remember that the ghost processing and metric calculation is defaulted off. UNSTRUCT_AUTODISTRIBUTE_USE GHOSTS 1 UNSTRUCT_AUTODISTRIBUTE_USE_METRIC 1 will set ghost processing on. will set metric on. The environment variable settings will take precedence over the command line arguments. Optional NETWORK_INTERFACES section notes If the machine named george had more than one network interface (say it had its main one named george, but also had one named george2), we could add the section shown below to our casefile example: NETWORK_INTERFACES number of network interfaces: 2 network interface: george network interface: george2 This would cause machine joe to connect back to george, machine sally to connect back to george2, and machine bill to connect back to george. This is because the sos will cycle through its available network interfaces as it connects the servers. Remember that this is an optional section, and most users will probably not use it. Also, the contents of this section will be ignored if the -soshostname command line option is used. Example SOS Casefile for PLOT3D, Using structured auto_distribute This example shows a plot3d dataset (post.x and post.q) that has not been partitioned, but is on an nfs mounted disk available to each server machine. EnSight will distribute the data to the 3 servers defined. IO will not necessarily be great since each server will be reading from the same file, but execution will be enhanced by the partitioning. We will use the same machines used in the previous example. FORMAT type: master_server plot3d auto_distribute: on SERVERS number of servers: 3 #Server 1 machine id: joe executable: ensight102.server data_path: /scratch/data casefile: post.x resfile: post.q #Server 2 machine id: sally executable: ensight102.server data_path: /scratch/data casefile: post.x resfile: post.q #Server 3 Page 67 HOW TO USE SERVER OF SERVERS machine id: bill executable: ensight102.server data_path: /scratch/data casefile: post.x resfile: post.q Example SOS Casefile for EnSight Gold, Using unstructured auto_distribute This example shows an EnSight Gold dataset (trial.case) that has not been partitioned, but is on an nfs mounted disk available to each server machine. EnSight will distribute the data to the 3 servers defined. IO will not necessarily be great since each server will be reading from the same file, but execution will be enhanced by the partitioning. We will use the same machines used in the previous examples. FORMAT type: master_server gold auto_distribute: on do_ghosts: on buffer_size: 10000 want_metric: on SERVERS number of servers: 3 #Server 1 machine id: joe executable: ensight102.server data_path: /scratch/data/gold casefile: trial.case #Server 2 machine id: sally executable: ensight102.server data_path: /scratch/data/gold casefile: trial.case #Server 3 machine id: bill executable: ensight102.server data_path: /scratch/data/gold casefile: trial.case Special Case: If using auto_distribute (and thus each server will be accessing the same data files), and the servers will all be run on the same machine, then one can add the word “repeat” to the end of the “number of servers: num” line and then only define one set of Server info. For example: FORMAT type: master_server gold auto_distribute: on SERVERS number of servers: 3 repeat #Server 1 machine id: joe executable: ensight102.server data_path: /scratch/data/gold casefile: trial.case Structured Auto Distribute Note: If using structured auto_distribute, the default decomposition scheme is to do so in the i, j, or k direction that has the largest dimension. This may not always be the best direction for a given analysis. Thus, through the use of an environment variable, the user can set the axis to use. The chosen axis will be used unless the dimension in that direction will not allow for all servers to contain data (namely, as long as the dimension in the chosen direction is Page 68 HOW TO USE SERVER OF SERVERS greater than the total number of servers used). To use the this option, set the following to 0, 1, 2, or -1: setenv SAD_DECOMPOSE_AXIS 0 1 2 -1 (for the i axis) (for the j axis) (for the k axis) (to use the default largest dimension scheme, same as not setting the variable) PROBLEMS If you load your data using SOS and it does not run any faster, or it appears to be using more total memory than you thought, or you are missing geometry, then consider the following tips. 1. The Server of Server (SOS) Console will tell you where the output is logged. For example: Server output logged to file and should echo the servers that get started as follows: CvfLaunch is going to run: ( ensight102.server -c steve -ports 1110 -sosid 0 -auto_distribute -jm_url connect%3a%2f%2fsteve%3ftransport%3dsocket%26port%3d1110%26sockbufsize%3d2097152%26timeout%3d60%26nc onnections%3d4%26connect%5fdirection%3djoin ) >>/tmp/enssoamE7ZE 2>&1 & CvfLaunch is going to run: ( ensight102.server -c steve -ports 1110 -sosid 1 -auto_distribute -jm_url connect%3a%2f%2fsteve%3ftransport%3dsocket%26port%3d1110%26sockbufsize%3d2097152%26timeout%3d60%26nc onnections%3d4%26connect%5fdirection%3djoin ) >>/tmp/enssoamE7ZE 2>&1 & 2. Is all of your geometry showing? If not then some of the servers may not be reading their portion of the geometry correctly, or they may not have started properly, or they may be hung up and frozen. Check and make sure you have all of your server processes still running. 3. Each reader behaves differently. Some readers require that you enter an asterisk (*) to load multiple spatially decomposed files ( for example spcth* in the Data Reader dialog Data tab set name field). In the SOS Options tab of the data reader dialog, make sure you check the toggle to allow asterisks to be passed to the Servers if the filename has an asterisk, verify that your autodistribute pulldown choice is correct, and verify that you have chosen a valid resource file in the resource file field. Finally, each reader has a unique set of format options that may or may not impact SOS operation. Please look up individual reader functionality in the User Manual. 4. If you know how many elements are in a given part, then when you are running SOS do a Query>Show Information>Part and verify that it has the proper number of elements. You can also do a Query>Dataset to find the total number of elements. If it has a multiple number of elements equal to the number of servers, then you have the problem that all servers are loading all of the data. For example, with 4 Servers, your part has a multiple of four of all the element types. If you don’t remember how many elements you have, try loading your data without SOS, and write down how many elements you have, then repeat with SOS and compare. A multiple number of elements, can be an indication that you’ve chosen the external decompose option above and every Server thinks that it is supposed to be reading all of the data that it encounters. Another sign of this is that each server process still consumes the same amount of memory as a single server process without SOS. All servers are loading all of the data. Another sign of this problem is that SOS runs slower. All Servers are busy with all your data AND with communications. You may want to try Reader Decompose if the reader allows this option, or Auto Decompose to allow the Servers to decompose your data, and recount your number of elements. 5. The calculator includes a function, ServerNumber, that Calculates the server number. Simply select all your parts and calculate this value and color your geometry by ServerNumber. Now you can visualize what servers are responsible for what portion of the domain. If you color your geometry by ServerNumber variable, and the ServerNumber legend does not have the same range as the number of servers that you are using, then something is wrong. For example, with 4 servers, the ServerNumber legend should have a range of 1 to 4 and you should see colors on your geometry ranging from 1 to 4. If the range is from 1 to 1, then your servers may not have started up and you are just running client and server or Server number 1 has all of your data and servers 2-4 have none.. If the range is from 3 to 3, then Server number 3 has all of your data and servers number 1, 2, and 4 do not have data for some reason. If the range is from 1-4 (indicating that there are 4 Servers), but you only see your geometry colored all one color, then it may be that you are experiencing the problem discussed in item 2 above: each Server is loading all of the data and you have 4 times the geometry overlapping on the client display, and only the last color shows up. 6. EnSight does include the capability to trick client and server into thinking they are in SOS for isolating problems. Simply set the following environmental variables as follows: setenv AUTODISTRIBUTE_DEBUG_TOTAL_SERVERS 50 setenv AUTODISTRIBUTE_DEBUG_CURRENT_SERVER 13 setenv AUTODISTRIBUTE_DEBUG_N_OF_M 1 The first and second make the server think it is server 13 out of 50, and the last one turns this all on when set to 1. This will enable you to run EnSight in normal client and server mode, but the server will behave as if it is server 13 out of 50, thus allowing you to isolate problems and validate behavior, while only using memory of one server. Page 69 HOW TO USE SERVER OF SERVERS TEMPORAL DECOMPOSITION All of the previous discussion was spatial. This section will cover temporal decomposition. All formats should be able to use temporal decomposition as long as there is sufficient room on your servers so that each server can load the geometry and variables for one full timestep. Temporal decomposition is really just temporal caching of the timesteps before and after the current timestep. Each server reads one timestep and calculates all variables and creates all parts that you have created in your analysis on the current timestep. Therefore, changing timestep to the next (or previous) timestep occurs much more rapidly because the server that has responsibility that step has it precached does not need to do I/O nor calculations nor part creation, and must simply pass its data up to the client. Note that the caching is for timesteps right around the current timestep: five servers and the current timestep is 6, might mean that one server is responsible for timestep 6 and the others are responsible for timesteps 4, 5, 7, and 8. Changing to timestep 12 will not benefit from the cached timesteps, and will, in fact, slow EnSight down: all five servers now will load five new timesteps simultaneously: 10, 11, 12, 13, and 14. SEE ALSO How To Read Data How To Read User Defined How To Setup for Parallel Computation How To Use Resource Managament How To Use Root Level Server of Servers User Manual: Server-of-Server Casefile Format Page 70 HOW TO LOAD SPATIALLY DECOMPOSED CASE FILES Load Spatially Decomposed Case Files INTRODUCTION If one has multiple EnSight gold casefiles (each of which contain a spatially decomposed portion of the same model), they can be read using one or more servers (as long as the number of servers is less than or equal to the number of casefiles). In other words, when it is desired to read N casefiles with M servers (M<=N), an additional section can be added to the SOS casefile to accomplish this. Note that the following important restrictions/limitations will apply: 1. M (number of servers) must be less than or equal to N (number of casefiles). 2. Unstructured data only. (Note: a similar capability exists for structured data. See How to Use Block Continuation) 3. Auto distribute may not be specified in the SOS casefile. 4. None of the following can be specified in the partition casefiles: GEOMETRY measured: match: boundary: rigid_body: Vector_glyphs: BLOCK_CONTINUATION MATERIAL Note: that some of the restrictions (such as measured) may eventually be lifted. But currently all of the above are in effect. 5. All of the normal SOS requirements still apply. a) All parts must be present in all cases. (Empty parts are allowed) b) The same variables must exist in all cases. c) The same timesets must be used in all cases. Note: If the desired number of servers is equal to the number of casefiles, one can either use the procedure described in this How To, or could use the normal SOS procedures (see How To Use Server of Servers). BASIC OPERATION To postprocess your partitioned EnSight Gold unstructured data on fewer servers than casefiles, run SOS using an SOS casefile that has a MULTIPLE_CASEFILES section. Three possible methods are available for your convenience. They all accomplish the same thing in slightly different ways. So use whichever is easiest for your situation. Note: in using one of the 3 the methods below, one should determine something about how the data resides, or is available to EnSight. Namely, how will one need to specify the path to the data. Since the whole idea is that the number of servers may vary, and Ensight will determine which casefiles go to which servers, there are really only two possibilities for paths. A) There is a global path for all of the data. And thus each server needs to know this global path (which it will prepend to each casefile). B) Each casefile has its own path. And each server needs to know the path for each. Page 71 HOW TO LOAD SPATIALLY DECOMPOSED CASE FILES Available Section lines: Comments MULTIPLE_CASEFILES Required for all methods total number of cfiles: n Used for method 1 and 2 cfiles global path: global_path Optional, used for methods 1 and 2 cfiles: partition_1.case Used for method 1 partition_2.case . . partition_n.case cfiles pattern: partition_*.case Used for method 2 cfiles start number: # Used for method 2 cfiles increment: # Used for method 2 cfiles file: filename Used for method 3 Example Method 1 Specify the number of and the actual files in the sos casefile A) Using global path: MULTIPLE_CASEFILES total number of cfiles: 3 cfiles global path: /home/bjn/data cfiles: file1.case file_b.case bruce.case B) Using path per casefile: MULTIPLE_CASEFILES total number of cfiles: 3 cfiles: /home/bjn/data1/file1.case /home/bjn/data2/file_b.case /home/bjn/data3/bruce.case Method 2 Specify the number of, the pattern, and the start and increment A) Using global path: MULTIPLE_CASEFILES total number of cfiles: 3 cfiles global path: /home/bjn/data cfiles pattern: file**.case cfiles start number: 0 cfiles increment: 1 OR MULTIPLE_CASEFILES total number of cfiles: 3 cfiles pattern: /home/bjn/data/file**.case cfiles start number: 0 cfiles increment: 1 Page 72 HOW TO LOAD SPATIALLY DECOMPOSED CASE FILES B) Using path per casefile: Note: method 2 does not have a way to have a separate path for each casefile. Method 3 Similar to 1., but place the info in a separate file A) Using global path: MULTIPLE_CASEFILES cfiles file: all_together_cfiles.txt and in all_together_cfiles.txt, (first line contains number of, second line contains the optional global path, then filenames come 1 per line on the following lines). Like: 3 /home/bjn/data file1.case file_b.case bruce.case B) Using path per casefile: MULTIPLE_CASEFILES cfiles file: separated_cfiles.txt and in separated_cfiles.txt, (first line contains number of, second line must be the word “none” - indicating no global path specified, then filenames come 1 per line on the following lines). Like: 3 none /home/bjn/data1/file1.case /home/bjn/data2/file_b.case /home/bjn/data3/bruce.case Another Example An EnSight Gold unstructured transient geometry model with a couple of variables, in 4 partitions, like: bjn1.case bjn1.geo0000 bjn1.geo0001 bjn1.scalar0000 bjn1.scalar0001 bjn1.evector0000 bjn1.evector0001 bjn2.case bjn2.geo0000 bjn2.geo0001 bjn2.scalar0000 bjn2.scalar0001 bjn2.evector0000 bjn2.evector0001 bjn3.case bjn3.geo0000 bjn3.geo0001 bjn3.scalar0000 bjn3.scalar0001 bjn3.evector0000 bjn3.evector0001 bjn4.case bjn4.geo0000 bjn4.geo0001 bjn4.scalar0000 bjn4.scalar0001 bjn4.evector0000 bjn4.evector0001 Using Method 1: If they all reside in the same directory (/home/bjn), a method 1 SOS casefile that will use just 2 servers (perhaps named bjn_4x2.sos) should look like: FORMAT type: master_server gold MULTIPLE_CASEFILES total number of cfiles: 4 cfiles global path: /home/bjn cfiles: bjn1.case bjn2.case bjn3.case bjn4.case SERVERS number of servers: 2 repeat Page 73 HOW TO LOAD SPATIALLY DECOMPOSED CASE FILES machine id: executable: gun ensight102.server Using Method 2: If they all reside in the same directory (/home/bjn), a method 2 SOS casefile that will use just 2 servers should look like: FORMAT type: master_server gold MULTIPLE_CASEFILES total number of cfiles: 4 cfiles global path: /home/bjn cfiles pattern: bjn*.case cfiles start number: 1 cfiles increment: 1 SERVERS number of servers: 2 repeat machine id: gun executable: ensight102.server Using Method 3: For this one, lets change things and say that they reside in separate directories, like: /scratch/portion1 bjn1.case bjn1.geo0000 bjn1.geo0001 bjn1.scalar0000 bjn1.scalar0001 bjn1.evector0000 bjn1.evector0001 /scratch/portion2 bjn2.case bjn2.geo0000 bjn2.geo0001 bjn2.scalar0000 bjn2.scalar0001 bjn2.evector0000 bjn2.evector0001 /scratch/portion3 bjn3.case bjn3.geo0000 bjn3.geo0001 bjn3.scalar0000 bjn3.scalar0001 bjn3.evector0000 bjn3.evector0001 /scratch/portion4 bjn4.case bjn4.geo0000 bjn4.geo0001 bjn4.scalar0000 bjn4.scalar0001 bjn4.evector0000 bjn4.evector0001 the SOS casefile could look like: FORMAT type: master_server gold MULTIPLE_CASEFILES cfiles file: /scratch/bjn.txt SERVERS number of servers: 2 repeat machine id: gun executable: ensight102.server and the /scratch/bjn.txt file could look like: 4 none /scratch/portion1/bjn1.case /scratch/portion2/bjn2.case /scratch/portion3/bjn3.case /scratch/portion4/bjn4.case or could look like: (See the Other Notes below) 4 /scratch portion1/bjn1.case portion2/bjn2.case portion3/bjn3.case portion4/bjn4.case Page 74 HOW TO LOAD SPATIALLY DECOMPOSED CASE FILES OTHER NOTES: When your casefile data resides in separate directories below a parent, such as: /home/bjn /home/bjn/data1 /home/bjn/data2 /home/bjn/data3 it is valid to use the global path to specify the parent directory, and the individual files to give the path on down. Such as: cfiles global path: /home/bjn cfiles: data1/file1.case data2/file_b.case data3/bruce.case This will result internally as the same thing as if you had done: cfiles: /home/bjn/data1/file1.case /home/bjn/data2/file_b.case /home/bjn/data3/bruce.case APPENDED_CASEFILES Variation: If you desire to use all casefiles on one server, you can obviously do so with the above option by using the SOS with one server. However, there is a variation on this option that can be used without using the SOS. It can be used with a client and server alone. It is very similar to the MULTIPLE_CASEFILES option in an SOS casefile, except that it is placed in the first regular casefile of the series - the one that you will read. It uses APPENDED_CASEFILES as the section header, and lists just the additional casefiles (not the one that this is placed in). So instead of using the SOS with an SOS casefile like: FORMAT type: master_server gold MULTIPLE_CASEFILES total number of cfiles: 4 cfiles global path: /home/bjn cfiles: bjn1.case bjn2.case bjn3.case bjn4.case SERVERS number of servers: 1 machine id: gun executable: ensight102.server You could place the following in bjn1.case: FORMAT type: ensight gold GEOMETRY model: bjn1.geo VARIABLE scalar per node: scalar bjn1.scl APPENDED_CASEFILES total number of cfiles: 3 cfiles global path: /home/bjn cfiles: bjn2.case bjn3.case bjn4.case Note that all current limitations for the MULTIPLE_CASEFILES option (which were enumerated above) also apply to the APPENDED_CASEFILES option. The two options cannot be used in combination. It is an either or situation. Page 75 HOW TO LOAD SPATIALLY DECOMPOSED CASE FILES SEE ALSO How To Read Data How To Setup for Parallel Computation How To Use Resource Management User Manual: Server-of-Server Casefile Format Page 76 HOW TO READ USER DEFINED Read User Defined INTRODUCTION EnSight provides a mechanism for users to write their own readers and have the code automatically link and execute at run-time (using a shared library).This capability is documented in the EnSight Interface Manual. As indicated in that manual, sample readers, as well as the code for several actual readers are provided below the following directory: $CEI_HOME/ensight102/src/readers/. In subdirectories underneath, there may exist other README files that contain additional information on using existing user defined readers. Also, as explained in that manual, be aware that a udr_checker.c file is provided in $CEI_HOME/ensight102/src/ readers/checker directory. This can be used to debug your User-defined reader before using it with EnSight. OTHER NOTES When starting EnSight (ensight102 or ensight102.server), you can use the command line option “-readerdbg” to echo user defined reader loading status. This will allow you to see what readers are actually being loaded. Set the environment variable ENSIGHT10_READER to point to the path where additional user defined readers exist and then start up with the -readerdbg option described above to verify that you are loading the reader(s) of interest. SEE ALSO The EnSight Interface Manual, as well as: How To Read Data Page 77 HOW TO DO STRUCTURED EXTRACTION Do Structured Extraction INTRODUCTION When loading structured parts (normally by right clicking on a part in the Parts list that has not yet been loaded), there is some flexibility in what is actually extracted. If the model contains iblanking, then you have control over which iblanking domain to use, namely Inside, Outside (blanked out), or All (which ignores the iblanking). If no iblanking in the model, the domain is All by default. You can do things like extracting all or portions of zones at original or coarser resolutions or doing the extractions on single or multiple zones. BASIC OPERATION When extracting the domain parts, whether iblanked or not, some (but definitely not all combinations) of the options include: Extracting a complete zone at original resolution, 1. Right click on the desired zone, and click Load Part. Optionally you can change the iblank domain, choose the element representation, and provide a part description. 2. Hit the Load as new part button. The part will be created and shown in the graphics window. In the example below, it is shown in border representation mode. Page 78 HOW TO DO STRUCTURED EXTRACTION Extracting a complete zone at coarser resolution, 1. Right click on the desired zone, and click Load Part. Optionally you can change the iblank domain, choose the element representation, and provide a part description. 2. Modify the Step values. These should be positive integer values. A step of two means to deal with every other plane, a step of four means every fourth plane, etc. 3. Hit the Load as new part button. The part will be created and shown in the graphics window. In the example below, it is shown in border representation mode. Note that it is considerably coarser than the previous because step values of 2, 4, and 5 were used in the ijk directions respectively. Page 79 HOW TO DO STRUCTURED EXTRACTION Extracting portions of a zone, 1. Right click on the desired zone, and click Load Part. Optionally you can change the iblank domain, choose the element representation, and provide a part description. 2. Modify the From and To values. These can be anything between the ranges shown in the Min and Max columns. By default they will be the entire range, but you can modify them. 3. Hit the Load as new part button. The part will be created and shown in the graphics window. In the example below, it is shown in border representation mode. Note that you now get a portion instead of the whole. Note also that we got original resolution because we set step values back to one. The step values can be other than one, and your portion will be at the coarser resolution. Page 80 HOW TO DO STRUCTURED EXTRACTION Extracting the same portions over multiple parts, 1. Select the structured zones desired. Optionally you can change the domain 2. Modify the From and To values. These can be anything between the ranges shown in the Min and Max columns (which will now be the min and max of all parts selected). By default the From and To will be the entire range, but you can modify them. Additionally, “-1” is a valid entry, indicating the last plane. Minus numbers are ways to specify the plane from the max back toward the min, thus -2 equals the next to last plane. (Note: Zero is treated the same as -1) 3. Hit the Load as new part button. In this example, 4 parts will be created, and they will each be the full extent IK plane at J = 1 for each of the four zones. Note that the IK ranges can actually vary per part because the max is specified, but each zone may be less than the max. In our example, we then changed From and To to be “0”, thus extracting the last plane in each zone. Note the image below. The image at the right includes complete zones that were extracted, but shown in feature angle representation so you get the feel of the complete zone. Page 81 HOW TO DO STRUCTURED EXTRACTION Note: Prior to EnSight10, one could also extract multiple planes within the same zone while loading the part, through the use of a delta column. This has been discontinued, but the same effect can be achieved by using the delta field within an ijk clip. SEE ALSO How To Read Data User Manual: Using Node Ranges: Page 82 HOW TO USE RESOURCE MANAGEMENT Use Resource Management INTRODUCTION Resources are used to specify which computers are used for running the various EnSight components, specifically the Server (ensight102.server), the SOS (ensight102.sos), the CollabHub (ensight102.collabhub), and the distributed renderers (ensight102.client). If you are running a single client and server on a single computer, you may skip this document. Resources are an alternative way to specify these computers compared to SOS case files, PRDIST files, Connection Settings, and command line options. While these other ways are still valid and take precedence for backwards compatibility, resources greatly simplify specifying computers in a dynamic network environment. For example, SOS Case files and PRDIST files no longer need to be edited to reflect the current node allocation from cluster batch schedulers. Resources coupled with native reader support in the SOS even make SOS Case files unnecessary. Resources can be specified via command line arguments and environment variables. Resources can be specified multiple times; precedence rules determine which resources ultimately get used. This allows sites to specify defaults while allowing those to be overridden. NOTE: While resources can still be specified according to this document, the entire resource management support is moving to the newer technology called “cei-shell”. BASIC OPERATION Resource Files Resources can be specified via a resource file. Here is an example of a resource file: #!CEIResourceFile 1.0 SOS: host: localhost SERVER: prologue: “setup_job” epilogue: “cleanup_job” host: server1 host: server2 host: server3 host: server4 COLLABHUB: host: pc0 RENDERER: prologue: “setenv DISPLAY :0.0” # epilogue: host: pc1 host: pc2 host: pc2 Resource files must begin with the ‘#!CEIResourceFile 1.0’ line. Afterwards, they may have up to four optional sections: SOS, SERVER, COLLABHUB, and RENDERER. Each of the four sections contains one or more ‘host: hostname’ lines. These lines specify which computers to use for the corresponding section. ‘hostname’ must be an Internet/intranet routable host name or IP address. A given host name may appear on multiple lines within a section or in different sections. If it appears multiple times within a section, then that host will run multiple instances of the corresponding EnSight component if needed. Additionally, each section may have an optional ‘prologue: cmd’ line and/or an optional ‘epilogue: cmd’ line. These specify a command to execute on each host before and after the corresponding EnSight component. Note that the cmd string must be quoted, and may include appropriate job backgrounding symbols (e.g. ‘&’). At version 2.0, the resource file can accept an optional ‘shell:’ line, like: #!CEIResourceFile 2.0 SOS: host: bunker shell: "/usr/local/bin/ssh" Page 83 HOW TO USE RESOURCE MANAGEMENT Note the new version number (2.0) and that the shell line string must be double quoted. How to specify resources Resources can be specified via resource files, environment variables, and command line options. Precedence rules determine which resources will be used. Basically, the last occurrence of a resource section (e.g. SERVER) will be used in its entirety. For example, if multiple SERVER resource sections are found, only one will be used as determined by the precedence rules. Since the EnSight Client, SOS, and CollabHub start other EnSight processes, they can use resources. The EnSight Server and distributed renderers do not start other EnSight processes that require resources. While many ways exist to specify resources, in practice only one or two will be used given the particular user’s computational environment. Client Resources The EnSight client supports the following ways for specifying resources: 1. the ENSIGHT10_RES environment variable; 2. the ENSIGHT10_SERVER_HOSTS environment variable; 3. the ENSIGHT10_RENDERER_HOSTS environment variable; 4. the ‘-use_lsf_for_servers’ command line option; 5. the ‘-use_lsf_for_renderers’ command line option; 6. the ‘-use_pbs_for_servers’ command line option; 7. the ‘-use_pbs_for_renderers’ command line option; 8. the ‘-sosres file_name’ command line option; 9. the ‘-chres file_name’ command line option; and 10.the ‘-res file_name’ command line option. If multiple resources are specified to the client, then they will be evaluated in the order indicated above with the later methods taking higher precedence for a given section. The ENSIGHT10_RES environment variable specifies a resource file name that the client reads. ENSIGHT10_SERVER_HOSTS and ENSIGHT10_RENDERER_HOSTS specify quoted strings of space delimited host names (e.g. “host1 host2 host1 host3”) to be used for EnSight servers and distributed renderers, respectively. The host names are used in the order they occur. A host name may occur multiple times. If either the ‘-use_lsf_for_servers’ or ‘-use_lsf_for_renderers’ command line options are specified, then the client will evaluate the environment variable LSB_MCPU_HOSTS for the resources. The environment variable specifies a quoted string such as “host1 5 host2 4 host3 1” which indicates 5 CPUs should be used on host1, 4 CPUs should be used on host2, and 1 CPU should be used on host3. The hosts will be used in a round-robin fashion. If either of the ‘-use_pbs_for_servers’ or ‘-use_pbs_for_renderers’ command line options are specified, then the client will evaluate the environment variable PBS_NODEFILE for the resources. The environment variable specifies a filename in which the file contains list of line delimited host names that were allocated by the PBS scheduler. The ‘-sosres file_name’ command line option specifies the pathname to a resource file. This file name is passed to the SOS and processed by it; thus the file name must be accessible and readable by the ensight102.sos process. If multiple ‘-sosres’ options are specified, only the last will be used. The ‘-chres file_name’ command line option specifies the pathname to a resource file. This file name is passed to the CollabHub and processed by it; thus the file name must be accessible and readable by the ensight102.collabhub process. If multiple ‘-chres’ options are specified, only the last will be used. The ‘-res file_name’ command line option specifies the pathname to a resource file. This command line option can be specified multiple times. This might be useful when generating resource files dynamically: a single file might specify only a particular type of resource (e.g. SERVER or RENDERER). The last occurrence of a particular section takes precedence when multiple ‘-res’ options are given. Finally, a resource file may be selected in the File->Open dialog for the SOS to use. Page 84 HOW TO USE RESOURCE MANAGEMENT SOS Resources The EnSight SOS supports the following ways for specifying resources: 1. 2. 3. 4. 5. 6. 7. 8. resources gathered and sent from the client; the ‘-sosres file_name’ command line option; the ENSIGHT10_RES environment variable; the ENSIGHT10_SERVER_HOSTS environment variable; the ‘-use_lsf_for_servers’ command line option; the ‘-use_pbs_for_servers’ command line option; the ‘-res file_name’ command line option; and, a resource file specified via the File->Open dialog. If multiple resources are specified to the SOS, then they will be evaluated in the order indicated above with the later methods taking higher precedence for a given section. However, the SOS only uses SERVER section resources; the other sections are ignored. The ‘-sosres file_name’ command line option specifies the pathname to a resource file. If multiple ‘-sosres’ options are specified, only the last will be used. The ENSIGHT10_RES environment variable specifies a resource file name that the SOS reads. ENSIGHT10_SERVER_HOSTS specifies a quoted string of space delimited host names (e.g. “host1 host2 host1 host3”) to be used for EnSight servers. If the ‘-use_lsf_for_servers’ command line option is specified, then the SOS will evaluate the environment variable LSB_MCPU_HOSTS for the resources. The environment variable specifies a quoted string such as “host1 5 host2 4 host3 1” which indicates 5 CPUs should be used on host1, 4 CPUs should be used on host2, and 1 CPU should be used on host3. The hosts will be used in a round-robin fashion. If the ‘-use_pbs_for_servers’ command line option is specified, then the SOS will evaluate the environment variable PBS_NODEFILE for the resources. The environment variable specifies a filename in which the file contains list of line delimited host names that were allocated by the PBS scheduler. The ‘-res file_name’ command line option specifies the pathname to a resource file. This command line option can be specified multiple times. The last occurrence of a particular section takes precedence when multiple ‘-res’ options are given. Finally, a resource file may be selected in the File->Open dialog for the SOS to use. CollabHub Resources The EnSight CollabHub supports the following ways for specifying resources: 1. 2. 3. 4. 5. 6. 7. resources gathered and sent from the client; the ‘-chres file_name’ command line option; the ENSIGHT10_RES environment variable; the ENSIGHT10_RENDERER_HOSTS environment variable; the ‘-use_lsf_for_renderers‘ command line option; the ‘-use_pbs_for_renderers’ command line option; and, the ‘-res file_name’ command line option. If multiple resources are specified to the CollabHub, then they will be evaluated in the order indicated above with the later methods taking higher precedence for a given section. However, the CollabHub only uses RENDERER section resources; the other sections are ignored. The ‘-chres file_name’ command line option specifies the pathname to a resource file. If multiple ‘-chres’ options are specified, only the last will be used. The ENSIGHT10_RES environment variable specifies a resource file name that the CollabHub reads. ENSIGHT10_RENDERER_HOSTS specifies a quoted string of space delimited host names (e.g. “host1 host2 host1 host3”) to be used for EnSight distributed renderers. If the ‘-use_lsf_for_renderers‘ command line option is specified, then the CollabHub will evaluate the environment variable LSB_MCPU_HOSTS for the resources. The environment variable specifies a quoted string such Page 85 HOW TO USE RESOURCE MANAGEMENT as “host1 5 host2 4 host3 1” which indicates 5 CPUs should be used on host1, 4 CPUs should be used on host2, and 1 CPU should be used on host3. The hosts will be used in a round-robin fashion. If the ‘-use_pbs_for_renderers’ command line option is specified, then the CollabHub will evaluate the environment variable PBS_NODEFILE for the resources. The environment variable specifies a filename in which the file contains list of line delimited host names that were allocated by the PBS scheduler. The ‘-res file_name’ command line option specifies the pathname to a resource file. This command line option can be specified multiple times. The last occurrence of a particular section takes precedence when multiple ‘-res’ options are given. When using distributed rendering, any hosts specified via a prdist file are used instead of those given by RENDERER resources. Additionally, any prdist file specified directly to the collabhub, will override one specified to the client. A Client/Server Example Resources are not used to specify where a server runs when it is part of a normal client/server session. The default server connection in the Connection Setting dialog determines on which computer the server runs unless the Client command line option ‘-c connection_name’ is specified. A Simple SOS Example The SOS can read any of the supported file formats in addition to the SOS Case file format. When a SOS Case file is not used, then the number of EnSight Servers used is equal to the number of hosts specified in the SERVER resource section. 1. The following resource file ‘my_hosts.res’ is created: #!CEIResourceFile 1.0 SOS: host: borg SERVER: host: drone1 host: drone2 host: drone3 host: drone1 2. EnSight is started with this command line: ensight102 -res my_hosts.res -sos The EnSight Client will automatically check out a gold key and will run on the local workstation, the SOS (ensight102.sos) will be automatically started on computer ‘borg’ and will connect back to the client. Borg will need to recognize the name of the computer that the client is running on. 3. In the File->Open dialog the LS-Dyna file ‘d3plot’ is selected and the ‘Load All’ button is clicked. The SOS will start four EnSight Servers on computers ‘drone1’, ‘drone2’, ‘drone3’, and ‘drone1’ (presumably, ‘drone1’ might be a SMP). The ‘drone’ computers need to recognize the hostname borg in order to connect back to the sos running on this computer. Each of the servers will read 1/4 of the data set since the ‘Auto Distribute’ flag (on the SOS tab of the File->Open dialog) is on by default for the LS-Dyna reader. Another SOS Example 1. EnSight is started with this command line: ensight102 2. The Case->Connection Settings dialog is opened. On the ‘SOS’ tab, an entry for host ‘borg’ is created. For that entry, ‘Executable:’ is set to the name of command file ‘my_sos’, ‘Use default rsh cmd’ is deselected, and ‘Alt rsh cmd:’ is set to ‘ssh’. The entry is saved and EnSight is terminated. 3. The following resource file ‘my_hosts.res’ is created: Page 86 HOW TO USE RESOURCE MANAGEMENT #!CEIResourceFile 1.0 SOS: host: borg SERVER: host: drone1 host: drone2 host: drone3 host: drone1 4. On computer borg (assuming it is running Unix or Linux), the file ‘my_sos’ is created: #!/bin/csh setenv ENSIGHT10_SERVER_HOSTS ‘cat $PBS_NODEFILE‘ ensight102.sos $* The file must be in the user’s default path and must be executable. 5. EnSight is started with this command line: ensight102 -res my_hosts.res -sos The EnSight Client will check out an hpc (formerly gold) license key and run on the local workstation, the command file ‘my_sos’ will run on computer ‘borg’ which must be able to connect back to the local workstation by hostname. The client will start up ‘my_sos’ via ssh. ‘my_sos’ sets the environment variable ENSIGHT10_SERVER_HOSTS to be the contents of the file specified by the environment variable PBS_NODEFILE (OpenPBS’ dynamic list of allocated nodes). 6. In the File->Open dialog the LS-Dyna file ‘d3plot’ is selected and the ‘Load All’ button is clicked. The SOS will start EnSight Servers on computers specified in file $PBS_NODEFILE. Hosts specified in the SERVER section of my_hosts.res are ignored since ENSIGHT10_SERVER_HOSTS takes precedence. Each of the servers will read 1/N of the data set since the ‘Auto Distribute’ flag (on the SOS tab of the File>Open dialog) is on by default for the LS-Dyna reader. A SOS Case File Example When a SOS Case file is used with resources, it needs to be modified otherwise the resources will be ignored for the EnSight Servers. This is done for backwards compatibility. 1. The file SOS case file ‘big_data.sos’ is modified. Two lines are added to the FORMAT section: ‘use_resources: on’ and ‘auto_distribute: on’. The ‘casefile: ‘ line for each server is brought to the beginning of each subsection. FORMAT type: master_server LS-DYNA3D use_resources: on auto_distribute: on SERVERS number of servers: 2 #Server 1 #--------casefile: d3plot machine id: executable: ensight102.server directory: /tmp login id: data_path: /tmp #Server 2 #--------casefile: d3plot machine id: executable: ensight102.server directory: /tmp login id: Page 87 HOW TO USE RESOURCE MANAGEMENT data_path: /tmp Note that the ‘casefile:’ line must appear before the other lines for that server when using resources. 2. The following resource file ‘my_hosts.res’ is created: #!CEIResourceFile 1.0 SOS: host: borg SERVER: host: drone1 host: drone2 host: drone3 host: drone1 2. EnSight is started with this command line: ensight102 -res my_hosts.res -sos The EnSight Client will run on the local workstation, the SOS (ensight102.sos) will run on computer ‘borg’. 3. In the File->Open dialog the SOS Case file ‘big_data.sos’ is selected and the ‘Load All’ button is clicked. The SOS will start two EnSight Servers on computers ‘drone1’ and ‘drone2’. Only two servers are used since two ‘casefile: ‘ lines occur in the SOS Case file. The ‘number of servers: 2’ line is ignored as are the ‘machine id:’ lines. Each of the servers will read half of the data set due to the line ‘auto_distribute: on’ in ‘big_data.sos’. Another SOS Case File Example 1. The file SOS case file ‘big_data.sos’ is modified. Two lines are added to the FORMAT section: ‘use_resources: on’ and ‘auto_distribute: on’. The ‘number of servers:’ line is modified. One server subsection is specified. FORMAT type: master_server LS-DYNA3D use_resources: on auto_distribute: on SERVERS number of servers: #Server 1 #--------casefile: machine id: executable: directory: login id: data_path: 4 repeat d3plot ensight102.server /tmp /tmp 2. The following resource file ‘my_hosts.res’ is created: #!CEIResourceFile 1.0 SOS: host: borg SERVER: host: drone1 host: drone2 host: drone3 host: drone1 Page 88 HOW TO USE RESOURCE MANAGEMENT 2. EnSight is started with this command line: ensight102 -res my_hosts.res -sos The EnSight Client will run on the local workstation, the SOS (ensight102.sos) will run on computer ‘borg’. 3. In the File->Open dialog the SOS Case file ‘big_data.sos’ is selected and the ‘Load All’ button is clicked. The SOS will start four EnSight Servers on computers ‘drone1’, ‘drone2’, ‘drone3’, and ‘drone1’. Since the ‘number of servers:’ line has the word ‘repeat’, the servers specified in the SERVERS resource is used to determine the number of servers used and their host names. All server subsections after the first in ‘big_data.sos’ are ignored due to ‘number of servers: 4 repeat’. Each of the servers will read 1/4 of the data set since the ‘Auto Distribute’ flag (on the SOS tab of the File>Open dialog) is on by default for the LS-Dyna reader. A PRDIST Example 1. The following resource file ‘my_hosts.res’ is created: #!CEIResourceFile 1.0 SOS: host: borg SERVER: host: drone1 host: drone2 host: drone3 host: drone1 COLLABHUB: host: curly RENDERER: prologue: “xhost +” host: larry host: moe 2. The following prdist resource file ‘my_conf_with_res.prdist’ is also created: #ParallelRender EnSight 1.0 router pc client 3. EnSight is started with this command line: ensight102 -res my_hosts.res -prdist my_config_with_res.prdist The EnSight Client will run on the local workstation, the SOS (ensight102.sos) will run on computer ‘borg’. The EnSight CollabHub will run on computer ‘curly’. Two distributed renderers will start on hosts ‘larry’ and ‘moe’. The my_conf_with_res.prdist file here specifies both "router" and "client" followed by blank names which indicate to use the 'my_hosts.res' file. The "pc" option indicates to use parallel compositing which removes the from the composited display NOTE: if "pc" is not specified, then a will wrap the composited display - which is a testing and debug mode. In addition, no display sync will be used during interactive transformations, producing a lag effect which is quite annoying. 4. In the File->Open dialog the LS-Dyna file ‘d3plot’ is selected and the ‘Load All’ button is clicked. The SOS will start four EnSight Servers on computers ‘drone1’, ‘drone2’, ‘drone3’, and ‘drone1’ (presumably, ‘drone1’ might be a SMP). Page 89 HOW TO USE RESOURCE MANAGEMENT Each of the servers will read 1/4 of the data set since the ‘Auto Distribute’ flag (on the SOS tab of the File>Open dialog) is on by default for the LS-Dyna reader. Note that a prdist file can be specified as an option to the ‘-prdist’ command line option. However, if the defaults are adequate or overridden with command line options, then a prdist file is no longer needed. Furthermore, specifying the command line option ‘-prdist’ automatically implies the command line option ‘-sos’; previous versions required the user to specify it. Chapter 11 Parallel Compositing of the User Manual for prdist file documentation, including default values and manual connect support. OTHER NOTES Chapter 8 Resource File Format of the User Manual for details on the resource file syntax. See the EnSight User’s Guide for details on relevant SOS Case file modifications as they pertain to resources. Also, see that section regarding details on which file formats support auto . Note that not all Case files (i.e. non-gold) can be auto distributed. The default SOS and server entries in the Connections Setting dialog will be used as the template for SOS and server computers not specifically listed in the dialog. This is useful for specifying defaults such as to use ‘ssh’ in place of ‘rsh’ or to specify a default path. SEE ALSO How To Read Data How To Read User Defined How To Setup for Parallel Computation User Manual: Resource File Format Parallel Compositing Page 90 HOW TO USE ROOT LEVEL SERVER OF SERVERS Use Root Level Server of Servers INTRODUCTION EnSight 10.2, using an hpc (formerly gold) license key has the capability of using multiple EnSight Servers to process a dataset in an efficient distributed manner by using what's called Server-of-Servers (SOS for short). See How To Use Server of Servers for details. The SOS process acts as a router between the EnSight Client and one or more EnSight Servers. It broadcasts commands from the Client to the multiple Servers and gathers and aggregates response data from the Servers to send back to the Client. If the dataset size is sufficiently large, a single SOS may become a bottleneck. In such situations, multiple SOS processes coordinated by a parent, or root level, SOS may be warranted to increase scalability. EnSight 10.2 adds the ability to use multiple SOS processes to distribute the load, and adds a single Root Level SOS (RLSOS) that communicates between the EnSight Client and multiple SOS processes. Each of the additional SOS processes in turn communicates with one or more Servers (see Figure 1). Root Level SOS (RLSOS) enables EnSight to scale to much larger problem sizes. Just as the EnSight SOS acts as router for multiple EnSight Servers, the RLSOS acts as a router for multiple EnSight SOSes. In theory, the RLSOS should provide the same degree of scalability for multiple SOSes as a single SOS provides for multiple Servers. It is anticipated, but not yet tested, that the RLSOS could enable EnSight to scale into the tens of thousands of EnSight Servers. To take advantage of this potential, the data set must be sufficiently large to keep all Servers busy and to warrant the overhead of the additional communication. It is anticipated that data sets should be on the order of millions of elements/nodes per Server to obtain reasonable scalable performance.. Client RLSOS SOS Server SOS Server Server Server Server Server Figure 1 Simple RLSOS Connectivity BASIC OPERATION Start Up Starting EnSight RLSOS requires the use of CEIShell to launch all processes and properly configure them. Please review the CEIShell documentation for configuration instructions. Typically, someone at a site configures one or more CEIShell networks for the site while most EnSight users simply use these locally configured CEIShell networks. Page 91 HOW TO USE ROOT LEVEL SERVER OF SERVERS End-users typically access the CEIShell networks and launch EnSight via the -based program ‘ceistart102’ (see Figure 2 below for an example configuration). Figure 2 Simple RLSOS Configuration In terms of configuring a CEIShell network for use with RLSOS and optionally EnSight HPC+, the concepts are exactly the same as with configuring any CEIShell network. The sole exceptions are specifying the CEIShell “role” tags “RLSOS” and multiple “SOS” roles to the appropriate CEIShells. Figure 1 shows a typical CEIShell network layout. One CEIShell has the role “RLSOS”, one or more child CEIShells have the role “SOS”, and each of the SOS CEIShells have one or more child CEIShells with the role “SOS_SERVERS”. In the example represented by the figure, EnSight will start and use via this CEIShell network one RLSOS, two SOSes, and six Servers. If EnSight HPC+ is to be used with RLSOS, then the computer executing the RLSOS must be able to open a network connection to the computer(s) running the EnSight CollabHub as well as the EnSight master Client. Additionally, the EnSight HPC+ Clients must be able to open network connections to the EnSight CollabHub and master Client. A future version of EnSight and CEIShell may provide for network tunneling via CEIShell. Operation To the end-user of EnSight, once RLSOS is running, there is no other difference from using RLSOS compared to using EnSight with just SOS -- all user interaction is the same as it is with SOS use. Limitations Currently, the only known limitation when using RLSOS concerns the use of legacy EnSight SOS Case files (not normal Case files). If a legacy SOS Case file is used, then it must not contain ‘machine id:’ nor ‘executable:’ lines. Additionally, the ‘number of servers:’ in the SOS Case file must match the total number of EnSight Servers started by the CEIShell network. Lastly, the underlying data files specified in the SOS Case file must be accessible by all Servers since it is not known apriori which Server will read which data file. PROBLEMS Start up issues As with any CEIShell use, if there is a problem launching EnSight, be sure to see if the CEIShell network is starting correctly before invoking EnSight. Typically, the person who set up CEIShell for a site can determine this. If a CEIShell network is running, use the command ‘ceishell31 -cmd show_net’ to display the running network, hosts running the CEIShells, and the various CEIShell roles assigned to each CEIShell. This command is executed on the same computer running the CEIShell that has the ‘-app’ option. See the CEIShell documentation for further details. In terms of RLSOS specifically, one CEIShell must have the role “RLSOS”. One or more CEIShells one level below Page 92 HOW TO USE ROOT LEVEL SERVER OF SERVERS this CEIShell must have the role “SOS”. Finally, CEIShells below these CEIShells must have the role “SOS_SERVERS” (see Figure 1). While EnSight HPC+ may be used with RLSOS, it still has limitations affecting how the DRClients and CollabHub connect back to the Master Client and RLSOS. While CEIShell is used to launch the DRClients and CollabHub, the DRClients and CollabHub do NOT use CEIShell for establishing network communication to the Master Client nor RLSOS. This can lead to problems especially if firewalls or restrictive routers are used or when hosts have multiple network interfaces with varying hostnames. CEI Support can advise. Output Due to the potential of running thousands to tens of thousands of EnSight Servers, output from the Servers (or DRClients) can be overwhelming. More importantly, this magnitude of output can actually throttle overall performance. To remedy this problem, CEIShell was enhanced for use with EnSight RLSOS to address this issue. CEIShell adds a command line option ‘-app_output_buffering true|false’ that controls output buffering for any processes started by the CEIShell. If CEIShell output buffering is turned on, output from its child processes (e.g. the EnSight Server) is buffered until the process exits or until an error is detected in the output. Should an error be detected in the output, the buffer will be released for display. Furthermore, once the buffer is release, no additional buffering occurs until the process terminates. The example CEIShell network configurations provided with ceistart102 use this option to provide output buffering in a reasonable way along with three selectable levels. The user can choose to turn off all output buffering; this means that all output from EnSight processes is displayed. Turning on output buffering means that no output from EnSight processes is displayed (except for error conditions). The third option ‘default’ shows all output from the EnSight RLSOS and CollabHub processes but buffers the output from the Servers, DRClients, and child SOS processes. This option tends to give reasonable feedback without adversely affecting performance. Turning output buffering ‘off’ may be useful for debugging purposes but the user should be mindful that the amount of output can be exceedingly large. Also note that -app_output_buffering option is independent from the ‘-v #’ option which affects the amount of verbosity from the EnSight components (Client, Server, SOS, etc.). For maximum output, use ‘-app_output_buffering false -v 3’. For minimum output, use ‘-app_output_buffering true -v 0’. For any questions or problems with using CEIShell and/or RLSOS, please contact CEI Support (support@ceisoftware.com). SEE ALSO How To Read Data How To Read User Defined How To Setup for Parallel Computation How To Use Resource Managament How To Use Server of Servers User Manual: Server-of-Server Casefile Format Page 93 HOW TO SAVE OR RESTORE AN ARCHIVE Save or Output Save or Restore an Archive INTRODUCTION EnSight command files are useful for restoring the system to a state reached in a previous session. However, restoring a long session dealing with large files can take a long time. Fortunately, EnSight provides an archiving mechanism that saves only the current state of the system, rather than the entire history of a session. This capability is useful not only for large data files with several active variables, but also for saving a standard starting point for sessions. In the initial session, geometry can be loaded, variables activated, a good viewpoint selected, and an archive written. Subsequent sessions take advantage of this investment by merely loading the archive (which can be done as you start EnSight from the command line). The client and server each write separate binary files containing the complete current state of the respective processes. Since these files are binary, they can be quickly written and restored. Note that an archive only contains information resident in either client or server memory at the time of the archive. No information is available for variables that were inactive or time steps other than the current. For this reason, you should never remove the original dataset and attempt to use the archive as a substitute (unless you know what you’re doing). BASIC OPERATION An EnSight archive consists of three files: 1. The Archive Information File. This file provides pointers to the client and server archive files as well as additional information required to load the archive. An example is given in the Advanced Usage section below. 2. The Client Archive file. This is the client’s binary dump file. 3. The Server Archive file. This is the server’s binary dump file. (Note that for Server-of Servers, there will be an SOS archive file and then a server archive file per server) Although each file has a default location, you can override the default during the archiving process. Saving an Archive 1. Close all open EnSight windows except the main window. 2. Select File > Save > Full Backup... to open the Save Full Backup Archive dialog. 2. If desired, enter a new name for the Archive Information file. You can set the directory for the Archive Information File by clicking the Archive Information File... button to open a standard File Selection dialog. 3. If desired, select a directory for the client’s binary dump file by either entering the directory in the Client Directory field or clicking the Client Directory... button to open a standard File Selection dialog. 4. If desired, select a directory for the server’s binary dump file by either entering the directory in the Server Directory field or clicking the Server Directory... button to open a standard File Selection dialog. 5. Click Okay. Page 94 HOW TO SAVE OR RESTORE AN ARCHIVE You also have the option of saving an archive as you exit EnSight. 1. Select File > Quit... to open the Quit Confirmation dialog. 2. Click the “Save full backup archive to:” toggle, and either enter a new name for the Archive information file or browse to the desired location/ file by clicking the Browse: button. 3. If you browsed to the file, click Save once you have selected or entered the desired filename. This will place the filename in the Quit confirmation dialog. 3. Click Quit to save the archive and exit. Page 95 HOW TO SAVE OR RESTORE AN ARCHIVE Restoring an Archive You can restore an archive either as part of EnSight startup or during an active session. To load an archive on startup: 1. Use the “-ar archive_info_file” option when you start EnSight. For example, % ensight102 -ar load.ar where load.ar is an Archive Information file saved in a previous session. To restore an archive during an active session: 1. Select File > Restore > Full Backup... to open the File Selection dialog. 2. Select the desired Archive Information file and click Okay. 3. If the original connection (when the archive was saved) was manual, you will need to manually restart the server. ADVANCED USAGE There are times when you may want to modify the contents of the Archive Information file. If you wish to use the archive on a different machine or change the location of the binary dump files, you can simply edit the file with a text editor. The following example shows the contents: Date saved Path to client’s binary file comment Case internal number Case name Connect type (auto or manual) Server host machine Server executable Server data directory Alternate server login ID Path to server’s binary file Wed Apr 2 15:31:51 1997 client ./ensight0402_153151.clientbkup # server for Case ‘Case 1’. **Warning Don’t Modify The Internal Number**. case_internal_number 0 case_name Case 1 case_connect_type auto case_connect_machine indigo2 case_connect_executable /usr/local/bin/ensight/server/ensight.server case_connect_directory /usr/people/joe/data case_connect_login_id server ./ensight_c1_0402_153151.serverbkup Note that there will be a section for all the case_ variables for each current case in the EnSight session. See How To Load Multiple Datasets for more information on cases. OTHER NOTES Important note! Archives are typically not upwardly compatible with new major – and some minor – releases of EnSight. For this reason, the complete current command file is also saved as part of the client’s binary dump. If you attempt to restore an archive and EnSight determines that the archive is not compatible with the current release, the command file will be restored to a default location, and you can get back to your state by playing that command file. SEE ALSO User Manual: Saving and Restoring a Full backup Page 96 HOW TO RECORD AND PLAY COMMAND FILES Record and Play Command Files INTRODUCTION Most powerful software systems have a built-in language that provides additional levels of power and functionality to complement and enhance a graphical user interface. EnSight is no exception. Any action that you can perform with the mouse or keyboard has a counterpart in the EnSight command language. A sequence of commands can be saved during a session to automate repetitive or tedious tasks. Command files can be automatically executed on EnSight startup to initialize the system to a desired state. Execution of command files can also be bound to keyboard keys for user-defined macros. BASIC OPERATION During an EnSight session, all actions are recorded and saved to a file known as the default command file. This file name typically starts with “ensight_” and is saved in /usr/tmp on UNIX systems or C:\Documents and Settings\\Local Settings\temp on Windows systems (unless you have redefined your TMPDIR environment variable). The default command file can be saved (and renamed) when exiting EnSight. Recording Commands To record a series of commands: 1. Select File > Command... to open the Command dialog. 2. Toggle the Record button on. 3. A File Selection dialog opens. Select or enter the desired file to save commands to and click Save. 4. When you wish to stop recording, toggle the Record button off. Note: As long as the record filename stays the same, the record button may be toggled on and off at any time, appending more commands to the file. When a new record file is selected, any existing commands in that file will be overwritten. Page 97 HOW TO RECORD AND PLAY COMMAND FILES Playing a Command File To replay a command file: 1. Select File > Command... to open the Command dialog. 2. Click on the Browse button for load field. 3. A File Selection dialog opens. Select the desired command file and click Save. The command file will be loaded and the commands to be executed will be shown in black below the green current line indicator in the History window. 4. Toggle the Play button on. As commands are executed, they will be shown in gray above the current line. You can control command execution by pressing the VCR style buttons to: stop, start, and single step playback . Once playback is stopped, you can use the “Skip” button to skip commands. Playback speed can be controlled using the “Speed” slider. Page 98 HOW TO RECORD AND PLAY COMMAND FILES Playing a Command File on Startup You can execute a command file as part of EnSight startup using the “-p command_file” option when you start EnSight. For example, % ensight102 -p redo.enc where redo.enc is a command file saved in a previous session. ADVANCED USAGE Command files are simple ASCII text and can be edited with any text editor. To easily determine the command for a given action, open the Command dialog and watch the list above the current line as you perform various operations. Keep in mind that the successful execution of some commands depends on the proper state existing at the time of execution. For example, creating a part when the parent part (as referenced by the part number) does not exist will cause an error. Command files can be nested: if you have a file that performs a certain task, you can “call” that command file from another file with the “play: filename” command. When a play: command is executed, the command file being played will be expanded in the History window, in a different color below the current line. Check the "Expand playfiles" box to expand all played files ahead of time. When played files are nested, their commands will be shown in red, yellow, green, blue and black respectively. An “exit:” command will cause EnSight to quit. An “interrupt:” command will cause the command file to pause execution and open the command dialog. You can save the command file for the current session when you exit EnSight, or you can use File > Save > Command from this session... to save the commands up to that point Command language can be used to generate macros. See How To Define and Use Macros. In addition to command files and macros, you also access the python interface through this dialog. This is explained in detail in the Interface Manual. (see Chapter 7.1, Python EnSight module interface) OTHER NOTES Command files provide an excellent method of documenting problems or potential bugs encountered during your use of EnSight. The command file can be transmitted to CEI electronically to help determine the nature of the problem. SEE ALSO How To Define and Use Macros User Manual: Command Files Interface Manual: Python EnSight module interface Page 99 HOW TO RECORD AND PLAY COMMAND FILES Page 100 HOW TO PRINT/SAVE AN IMAGE Print/Save an Image INTRODUCTION The image displayed in the Graphics Window can be saved to disk or printed in a variety of formats. Note JPEG, TIFF, RGB (SGI), XPM, PNG, and Postscript store single images in each file, and Apple QuickTime, EnVideo, MPEG1, MPEG4, AVI, Macromedia Flash Video, Macromedia Flash and Animated GIF all support video streams. See below for Saving Animations BASIC OPERATION Basic Still Image Operation 1. Select File > Export > Image.... 2. Select Set Format... to choose the desired output format and format options. (See Changing the Save File Format below) 3. Set the base filename to save the image to disk. The Prefix select... option will allow a standard file save dialog to be used to fill in this field. 4. Set various options: The 'Convert to Default Print Color' option will invert the color of the display. For example, the background can be changed from black to white. The 'Show Plotters Only' option will print only the plots in the display. See the shortcut section below to save an individual plot to a file. 5. Select any advanced options. The 'Advanced' turndown opens the following options: Raytrace the scene. Retracing is an advanced rendering technique in computer graphics, where simulation of the light transport is performed between the image pixels, objects in the scene, and the light sources. This technique is capable of generating high realism images, but at a much higher cost than that of typical rasterization-based techniques. Raytracing is suitable for rendering a wide variety of optical effects, such as reflection, refraction, soft, shadows, etc. Ensight offers a built-in raytracing renderer entitled Enray. EnSight also offer both immediate and external (postpone to a specified data/time) raytracing. Window size: The 'Normal' option picks a window the same size as the current window. 'Full' picks a full screen window. Other options select various NTSC and DVD standards. The 'User defined' option allows the user to select any size output image. Note: there are no limits to the size of the image that can be rendered. Some formats cannot handle extremely large images. EnSight may need to render the scene in multiple passes to render at larger sizes, which can slow rendering down. Render to offscreen buffer: EnSight can use off-screen OpenGL 'p-buffers' on graphics cards that support them. This avoids artifacts that can show up with on-screen rendering. Save multiple images: This option causes EnSight to save MTM files based on detached displays. Number of passes: sets the amount of multi-pass anti-aliasing to use: higher is better quality. Stereo: The current scene can be rendered in stereo, even if the target system is not capable of displaying it. 'Current' is the default and picks stereo or mono display, depending on the current display mode. Mono and Interleaved select mono or traditional dual-image stereo. The remaining options allow for the saving of anaglyph stereo images (seen through red/ cyan or other glasses). Screen tiling: if these are set to values other than 1, the image will be saved as an MTM file. The numbers specify the number of tiles in X and Y that the saved image will be subdivided into. 7. Select OK (or Print) to save and/or print the image. Page 101 HOW TO PRINT/SAVE AN IMAGE SHORTCUT 1. To print or save the graphics window, rightclick on the main viewport. In the pop up menu, choose “Send image to” and then send it to the clipboard, to EnVe the video editor, to your printer, or to a File. The file option will pop up a browser to name the file and then save it in the png format. 2. To save just a single plot, right-click on the plot origin. If you have selected the plot correctly then the first line of the pop up menu will read Plotter: Name of the Plotter. In the pop up menu choose “Save plot to file”. This will pop up a browser to name the file and give you the option for a white background. When you click OK, All other items on the screen will become temporarily invisible, and the plot will be made full screen and saved at the pixel resolution of your graphics screen in the png format. Page 102 HOW TO PRINT/SAVE AN IMAGE Saving Animations The current keyframe, flipbook, animated trace, or solution time animation can be saved to disk by following these steps: 1) Use the record button to bring up the Save animation dialog 2) Select the format of the file to save (See Changing the Save File Format below) 3) Set the base filename for the image. The 'Prefix select…' option will allow a standard file save dialog to be used to fill this field in. 4) For various types of animations (flipbooks, solution times and animated traces), select if these will be animated during the saving operation and if they should be reset to their initial values before beginning the save operation. 5) Set the number of frames of the animation to save 6) Select any advanced options. The 'Advanced' toggle brings up the following options. These are described in detail in the Image file saving section. 7) Selecting 'Ok' will begin recording the animation. Progress is displayed in the information text in the main window. The recording can be aborted by pressing the 'a' key while it is progressing. For more information, see EnSight’s keyframe animation and Flipbook animation facilities. Page 103 HOW TO PRINT/SAVE AN IMAGE Changing the Save File Format This dialog is presented to the user when any of the 'Set Format...' buttons are clicked. It allows for options according to a specific file format. The subsequent operations will utilize this format. The basic dialog is shown here. The options specific to the selected format are displayed on the right side of the dialog. Pressing the 'Ok' button selects the new format. The file formats are actually provided via plug-in modules known as UDILs. It is possible for users to provide their own formats, but the options for ones shipped with EnSight are documented here. Common options There are a number of common options used by many (but not all) of the formats. These are at the top of the dialog on the right and include: · Color/Black and White: Selects between RGB and Grayscale output · Saturation Factor: Set the saturation factor for color images. Full saturation is 1.0, no saturation (i.e. white) is 0.0. · Framerate: Most animation formats allow for the rate of the frames (in frames per second, fps) to be set for the animation to be recorded. Generally, the default is 30fps. Options for PostScript Format The PostScript format handles primitives as sampled images (pixel data). Move/Draw and encapsulated PostScript are no longer available as output. Portrait or Landscape output orientation may be selected. The page can be scaled by an arbitrary page scale factor. Page 104 HOW TO PRINT/SAVE AN IMAGE Options for Microsoft AVI Format Note: AVI files are a Microsoft standard format for movies, audio, icons, and other data types and are based on the 'RIFF' core file format. The options for this format are a little different for Unix and 32bit Windows. For Unix and Windows 64, the only Compression options are 'MJPEG', 'RAW' and 'MPEG4'. The only other option is the ability to set the maximum bitrate for the MJPEG4 compression scheme. On Win32, the system installed AVI codecs will be listed as compression options, along with options to specify the rate of keyframing, a general quality factor (0-100) and the desired bit-rate in kilobits/second. Uncompressed AVI files can be quite large for even small animations. You can compress these files on your Windows PC using the EnVe utility. It is capable of reading an AVI file (or any other animation file written by EnSight) and translating it to another format, including recompressing any AVI files. The AVI file format can have problems porting from platform to platform as the compression schemes are not always supported on all platforms. The MJPEG scheme is fairly well supported (Windows users need to install the latest DirectX runtime for it) and the RAW format has size limitation for 640x480 on some platforms. In general, the Indeo Video formats (e.g. IV41) and cvid are fairly portable and can be played by Apple's QuickTime player as well. Options for Windows BMP Format There are no special options (other than the Common options) for this format. Page 105 HOW TO PRINT/SAVE AN IMAGE Options for EnVideo Format This format has the advantage of being one of the few that natively supports stereo image streams. It also has a number lossless compression options and is recommended by CEI for archival/original animation output. EVO files can be converted to any other supported format using the EnVe tool without loss of quality. This cannot be said for other formats. There are four compression options: Raw - lossless, no compression, very large files. RLE - lossless, run-length encoded imagery. GZ - lossless, uses the 'zlib' compression scheme, good balance for machines with faster processors. JPEG - lossy compression that uses the 'quality' option (0-100). Best compression ratio, but sacrifices some quality. Options for GIF Format This format is intended for simple, low-quality output for Web pages. Most browsers will automatically playback .gif animations without the need of any plug-in modules. The format is limited to 256color images, so the quality of the images is poor, especially for smooth shaded images. The compression ratio can be quite high. Options include: Number of times to loop: sets the number of times the animation should loop before stopping Interlaced video: optimizes for slow web connection incremental display Transparent values: The R,G,B values (0-255) of a pixel color that should be set to "transparent" in the image. For example, setting these to (0,0,0) will cause all black pixels in the animation to be made transparent on playback. -1 values select that no pixel is transparent. Page 106 HOW TO PRINT/SAVE AN IMAGE Options for JPEG Format This is a very portable, but lossy compressed format. The only option is a notional "Quality" setting that controls the compression rate (0-100). Options for MPEG Format MPEG1 is a very portable but lossy standard for animations. Two options exist for MPEG. The specific sub-type of MPEG (1/2/4) can be selected as well as a target bitrate in kilobits per second. Page 107 HOW TO PRINT/SAVE AN IMAGE Options for PNG Format The PNG format is a lossless image format supported by many platforms and most web browsers. There is an option to have the background be Transparent, and the option for the method for compression - which trades off computational complexity for overall compression rates. Options for PPM Format The PPM format is a common lossless Unix image format that includes full color pixmaps (PPM), grayscale images (PGM) and bitmaps (PBM). The options allow for the selection of Binary or ASCII forms of these files. Page 108 HOW TO PRINT/SAVE AN IMAGE Options for Quicktime Format This is a popular animation format on the Apple Macintosh computers and Windows systems. The player can be downloaded as part of the iTunes package from www.quicktime.com. EnSight does not support all the codecs that QuickTime does, only the MPEG4-based compression. The bitrate option selects the target stream rate in kilobits per second. There is a compression method option, but the only possible value at this time is MPEG4. Options for SGI RGB Format There are no special options (other than the Common options) for this format. Options for LLNL SM Format This format was developed by Lawrence Livermore National Labs specifically for support of large, tiled displays with dynamic pan/zoom playback. Players for the format include xmovie and blockbuster (blockbuster.sourceforge.net). The format is internally tiled and includes multiple resolutions of the animation in the same file. Options include: Compression: Raw, GZ, JPEG and RLE Similar to the CEI EVO format Quality: JPEG quality setting Tilesize: the size of the edge of one tile. 256 uses 256x256 tiles, while 0 specifies no tiling Resolutions: the number of lower resolution movies to include. If the original animation is 640x480 and the number of resolutions is 2, the file will contain animations at: 640x480, 320x240 and 160x120. Page 109 HOW TO PRINT/SAVE AN IMAGE Options for TIFF Format Tiff is a very portable, lossless image file format. The format has one option and that is the compression method. All the supported methods are lossless. Options for XPM Format This format is popular on Unix platforms and is generally used for icons, but can be used for any image. The transparent options allow for the specification of R,G,B values (0-255) of a pixel color that should be set to "transparent" in the image. For example, setting these to (0,0,0) will cause all black pixels in the image to be made transparent. -1 values select that no pixel is transparent. ADVANCED USAGE There are also some excellent public domain (i.e. free) tools for manipulating images. ImageMagick is a public domain, X-windows based program for displaying both images and animations (loaded as sequences of images) on a wide variety of platforms. Visit the Web site http://www.wizards.dupont.com/cristy/ImageMagick.html for more information. One of the most popular, cross platform tools is the GIMP. This tool has nearly the full functionality of Photoshop and can read/write all the image formats EnSight can. It is often installed by default on Linux platforms, but OSX, Windows and other platforms are supported as well: www.gimp.org. Page 110 HOW TO PRINT/SAVE AN IMAGE OTHER NOTES 1. The file is saved or printed from the EnSight client machine - not the server. 2. The printer command should not include the file name. For example, if you normally print with "lpr -Plaser1 file.ps" then enter "lpr -Plaser1" in the To Printer Using Command field. 3. If you toggle on Convert to default print colors, all viewport background colors are changed to white and any object (part, viewport border, annotation, etc.) currently colored pure white (RGB = 1,1,1) will be changed to black. Print Quality Control - Available in Print Dialog of Windows Version Note the pulldown allowing print quality to be changed. Increases here can greatly improve the resulting printed image, but will cause a slowdown in printing time. SEE ALSO User Manual: Saving Graphic Images Page 111 HOW TO SAVE GEOMETRIC ENTITIES Save Geometric Entities INTRODUCTION EnSight has the exporting geometric data and variable values in various formats. Several are provided by EnSight (such as Brick of Values, Case (EnSight Gold), VRML, Flatfile, etc.). EnSight also allows the user to create their own writer as a dynamic shared library that is loaded at runtime. BASIC OPERATION Saving Parts in EnSight Gold or VRML Formats 1. Select the Part(s) that you wish to export in the main part list. 2. Select File > Export > Geometric Entities... 3. Be sure the desired output format is selected. 4. Follow the instructions given. 5. Enter a file root name. 6. If the dataset is transient, specify the beginning, ending, and step values. For EnSight Gold only: 7. Toggle to save as binary files or not. 8. If the dataset is transient you can choose to save the multiple timesteps in one file (one file per variable). If you choose this option, you can also specify the maximum file size. 9. Click Ok. Writers have access only to the geometry of selected parts and each of their active variables. For all writers except VRML, only parts located on the server can be saved. This includes all original model parts, as well as many of the created parts (such as 2D-clips, Elevated Surfaces, Developed Surfaces, and Isosurfaces). The VRML writer saves all the visible parts on the client in their current visible state except for Parts which have limit fringes set to transparent. The VRML file will be saved on the client. Output in the EnSight formats is intended to provide a method to save both model and created parts (with active variables) for subsequent reuse with EnSight. VRML output is intended for export to other systems. Most World Wide Web browsers come with either built-in or plug-in support for VRML file viewing. There are some important differences in how EnSight saves parts according to format chosen. Case (EnSight Gold) VRML Which parts are saved? All parts currently selected in the Main Parts List (except those indicated below) All visible parts Saved from where? EnSight server EnSight client Which parts cannot be saved? Any client-based parts: contours, vector arrows, particle traces, profiles. Page 112 HOW TO SAVE GEOMETRIC ENTITIES Saving Data in Brick of Values Format 1. Select the 3D Part(s) (only 3D) to export 2. Select File > Export > Geometric Entities... 3. Be sure Brick of Values is selected as the Format type. 4. Follow the instructions given. 5. Select the desired variable. 6. If the variable is a vector, select the component desired. 7. Select the sampling resolution. 8. Select the sampling format, Brick of Bytes or Brick of Floats. 9. Enter a file root name. 10. Click OK. Brick of Bytes and Brick of Floats is intended to give you an interface mechanism to volume rendering codes for your 3D Part(s). When you click the Okay button the selected 3D parts are discritized to the resolution indicated using the box tool as the bounds and orientation (x/y/z resolution refers to the x/y/z directions for the box tool). For Brick of Bytes (BoB) format a value of 0 is reserved for undefined (i.e., the discritized point found no variable information). The value of 1 is tied to all variable values less than or equal to the minimum palette value tied to the variable chosen while 255 is tied to all values greater to or equal to the maximum palette value. For Brick of Floats (BoF) format undefined values are assigned the undefined value indicated in dialog. Both BoB and BoF files are written out without any metadata - only the values for the discritized points is written. The order of the data is according to the following pseudo code: num_values = 0 for(z=0; z Export > Geometric Entities... 2. Be sure the desired output format is selected. 3. Follow the instructions given. 4. If the writer accepts parameters, enter any desired ones in the Parameter(s) field. 5. Enter a file root name. 6. Toggle to save as binary files or not. 7. If the dataset is transient, specify the beginning, ending, and step values. 7. If the dataset is transient you can choose to save the multiple timesteps in one file (one file per variable). If you choose this option, you can also specify the maximum file size. 8. Click Okay. The user-defined writers can call the routines of an EnSight API to retrieve, for example, nodal coordinates, node ids, element ids of parts selected in the Parts window, to be passed by value to be used, manipulated and/or written out in any format desired. The User-defined writer dialog includes a Parameter field that allows the passing of text into the writer from the. This text could contain extra options which the writer understands. Several example writers (including source code header files, Makefile and the corresponding shared library) are included to demonstrate this capability. The Case (Gold) Lite writer is included to demonstrate how to exercise most of the API and output a subset of the Case (Gold) format. Complex numbers and custom Gold format are not supported with this writer. The Case (Gold) writer ignores the Parameter field. While the writer is not compiled, the source code of this writer, the required header files, and the Makefile are included. The Flatfile user-defined writer is designed to demonstrate the output of selected part nodal data (coordinates & IDs) as well as active variable values (scalar and/or vector only) in a comma delimited format easily imported into other applications. If any of the keywords ‘ANSYS’ or ‘force’ or ‘body’ is entered into the Parameter field, then Flatfile will output an ANSYS body force file. The STL user-defined writer is designed to write out the border geometry in the form of triangular 2D elements of the selected part(s) at the beginning timestep. The end time and the step time are ignored. The STL format does not support multiple parts in a single binary file, but does support multiple parts in a single ASCII file. Therefore, if multiple parts are selected and ascii is checked, the STL writer outputs an ascii file with the border of each of the parts. If multiple parts are selected and binary is checked, the STL writer outputs a binary file containing a single border of the multiple parts. The STL writer only saves the beginning timestep and ignores the End Timestep and Step By fields. The STL writer ignores the Parameter field. Page 114 HOW TO SAVE GEOMETRIC ENTITIES There are some important differences in how EnSight saves parts according to format chosen. User Defined Writers (UDW) Which parts are available to the UDW? All parts currently selected in the Main Parts List (except those indicated below) Where are the available parts located? EnSight server Which parts are unavailable to the UDW? Any client-based part: contours, vector arrows, particle traces, profiles More user-defined writers may be distributed with EnSight in the future. ADVANCED USAGE Created Parts Created parts are saved as changing connectivity. One situation where this might become important is if you choose to save some very large model parts that happen to be static and some created parts that are changing connectivity parts together into one case gold file. All of the parts must be saved as changing connectivity (because the changing geometry attribute is global). Thus you will find that the combined geometry file for all parts is saved for every timestep, even though the large static model parts don’t really change. Also when this saved file is reloaded, every model part is reconstructed at every timestep as if it were changing connectivity, greatly increasing the disk space, the I/O, and the geometry reassembly, and limiting functionality (e.g. cannot interpolate between the timesteps). A better solution to this situation is to save the changing connectivity created parts separately as a case gold file, and then the model parts as a separate case gold file and then load them as two separate cases into EnSight. Rigid Body Transformations Present Since EnSight does something special with the model timeset when rigid body information is read (via the rigid_body option in the casefile, or from a user-defined reader with rigid_body reading capability), you need to be aware of a few important issues. EnSight assumes that the rigid body timeset encompasses the normal geometry timeset, and it replaces the normal geometry timeset with the rigid body timeset - thus the following occurs when using this option. 1. If any created parts are in the list to be saved, EnSight will save as true changing coordinates. Namely, a geometry file containing the coordinates for each part will be saved at each time. Upon re-reading this model, you will be able to duplicate all actions, but it will be done as a true changing coordinate model. In other words, the original rigid_body file nature will not be duplicated. 2. If the original model had static geometry and rigid body file information - and you do not have any created parts in the list to be saved - saving will preserve the single static geometry and rigid_body file nature of the model. However, if the original model had changing geometry, or if variables have been activated - the number of geometry/variable files saved will be according to the rigid body timeset. This timeset often has many more steps than the original timesets - so be wise about the number of steps you write. It is often important to use the “Step by” option to control this. 3. Because of the things mentioned in 1 and 2 above - if you want to use the save geometric entities option in EnSight to “translate” a rigid body model from a different format into the EnSight format, you may want to consider the following process. First, read in the model without the rigid body transformations, activate the desired variables, and save the model. Second, read in the model with the rigid body transformations, do not activate any variables, and save the model (with a different name). Edit the Casefile of the first model to use the model: and rigid_body: lines of the second casefile instead of the first casefile. SEE ALSO User Manual: Saving Geometric Entities Readme file is $CEI_HOME/ensight102/src/writers/README.txt Page 115 HOW TO SAVE/RESTORE CONTEXT Save/Restore Context INTRODUCTION EnSight context files can be used to duplicate the current EnSight state with the same or a different, but similar, dataset. The context file works best if the dataset it is being applied to contains the same variable names and parts, but can also be used when this is not the case. BASIC OPERATION An EnSight context consists of a set of files: the context file itself as well as associated palette, view, and keyframe animation files. The names of the associated files will be that of the context file with a standard extension. Saving a Context 1. Select File > Save > Context... to open the Save Current Context dialog. 2. Toggle Save Current Case Only or Save All Cases. 3. Enter a name for the Context File. You can set the directory for the Context File by clicking the Select File... button to open a standard File Selection dialog. 4. Click Okay. Restoring a Context Three options: 1) Start EnSight and restore a context as described below. This will recreate the parts of the original dataset and restore them to their saved condition. 2) Start EnSight, read a new dataset, cancel the part loader without creating parts, and restore a context as described below. This will create the parts of the new dataset (mapping as directed) and restore the context of the original dataset. 3) Start EnSight, read a new dataset, create the desired parts, and restore a context as described below. This will do the mapping (as directed) of parts and restore the context of the original dataset. 1. Select File > Restore > Context... 2. Select the case to restore the context to. Note: If the context file contains information for multiple cases, ignores the selection 3. Enter or select the desired context file 4. Click OK. Page 116 HOW TO SAVE/RESTORE CONTEXT OTHER NOTES The same part names (and variable names) do not have to exist in the new case. If this situation arises, a pop-up dialog will appear where you will be asked to match the part names (or variable names) from the context file with the parts (or variables) from the new case. This dialog is not available in batch mode. Therefore, you can’t use a context file that needs matching in batch mode. If the number of parts between the two datasets match, then no mapping of parts occurs and the parts will end up renamed to match the original case. When restoring context files with multiple cases, the needed cases will be started, if needed, according to the connection scheme of the current run of EnSight. Flipbook animations are not restored using the context file because it is unknown at the time the context file is created what state existed when the flipbook was saved. If data is not read before restoring the context file, the data that was used when the context file was saved will be loaded. Context files use EnSight’s command language and other state files (such as palette, view, and keyframe animation) to recreate the parts, variables, and view state. SEE ALSO User Manual: File Menu Functions Page 117 HOW TO SAVE SCENARIO Save Scenario INTRODUCTION Scenario files are used by CEI’s viewer products which are capable of viewing all geometry (such as parts, annotation, plots, etc.) that EnSight can display, including flipbook, keyframe, and particle trace animations. A “scenario” defines all visible entities you wish to view with EnVision or Reveal and includes any saved views and notes that you want to make available to the viewer user. BASIC OPERATION 1. Create the display you want to share with the EnVision or Reveal user. 2. Select File > Export > Scenario... to open the Save Scenario dialog. 3. Select Single File to save a scenario file only, or Project to save the scenario, jpg image file, and EnSight context file. 4. Choose EnVision(.evsn) or Reveal (.csf) format. 5. Enter a name for the Scenario file/directory. Click the Browse... button to open a standard File Selection dialog. 6. Select whether all, visible or selected parts will be included. 7. Select the Time/Animation Options tab and select the flipbook, keyframe, transient and/or particle trace animations. Available options depends on output format chosen under the File tab. 8. Save the scenario. Page 118 HOW TO SAVE SCENARIO ADVANCED USAGE After the scenario has been saved, you may add additional views, as well as notes. 9. To Save additional views, click the Views tab. 10. Manipulate the view as desired. 11. Name the view. 12. Click Save current view button. You can repeat steps 10 through 12 as desired. 13. To save notes, click the Notes tab. 14. Enter a subject for the note. 15. Type in the text of the note. 16. Click Save note button. You can repeat steps 14 through 16 as desired. Page 119 HOW TO SAVE SCENARIO 17. Variables can be saved in the scenario file, under the Variables tab. Any variables not already used by the parts being saved, will show up here. Select any desired. Those variables already being used, will show up here, and will be saved. OTHER NOTES The Reveal format (.csf) as of EnSight 10.2 is on life support only and will be phased out entirely by the next major release. The Reveal code is not distributed with EnSight. EnVision and Reveal are geometry viewers only. As such they are not capable of creating any new variables nor parts. In addition, EnVision Standard does not support changing timesteps - consider the flipbook capability instead. However, EnVision Pro can change timesteps (assuming transient data has been saved to the scenario file). Note: Users without an EnSight license may download EnVision separately as a free product. SEE ALSO User Manual: Scenario Files Page 120 HOW TO SAVE/RESTORE SESSION Save/Restore Session INTRODUCTION EnSight session file is a single file used to restore an EnSight state. When a session file is restored, the current case(s) are deleted, and new case(s) from the session file are loaded and restored to the saved state. BASIC OPERATION Saving a Session 1. Select File > Save > Session... to open the Save Session dialog. 2. Toggle ‘Pack Data’ if you wish to include contents from listed directories (including the data itself) in the session file (for portability). 3. Click ‘Save’ button to open a file save browser and name the session file (use .ens suffix) and click ‘Save’. Restoring a Session Three options: 1) The 'Welcome to EnSight' screen on startup displays your most recent Sessions. Just double click on the desired session to load the data and restore it. 2) Mac and Windows users can double click any EnSight session file (ending in .ens) and the file will restore. 3) Any time during your EnSight session you can browse for a session file from the EnSight main menu as follows: File > Restore > Session.... and just located the session file using the standard file access window. OTHER NOTES If you already have data loaded and restore a session, EnSight will delete all the cases, start anew and then restore the session. If you are restoring a session file containing information for multiple cases, then all of the cases will be restored. When restoring session files with multiple cases, the needed cases will be started, if needed, according to the connection scheme of the current run of EnSight. Flipbook animations are not restored using the session file because it is unknown at the time the session file is created what state existed when the flipbook was saved. All Session files are machine and operating system independent. However the data file(s) used in a non-packed session file must remain in same directory in order to find the data file(s). In contrast, Packed Session files include all the data files therefore can be moved to a different directory. The tradeoff is that Packed Session files can become quite large. Also, the restoring platform must include all the data readers necessary to read the data format(s) contained in the session. SEE ALSO User Manual: File Menu Functions Page 121 HOW TO ROTATE, ZOOM, TRANSLATE, SCALE Manipulate Viewing Parameters Rotate, Zoom, Translate, Scale INTRODUCTION EnSight provides visual only (only the visual elements on the client are changed) global transformations (rotation, translation, and zooming) to permit user manipulation of all parts simultaneously in the Graphics Window. The transformations can either be performed interactively with the mouse, or precisely by entering explicit values. The mouse buttons can be user-programmed to perform different transformations. BASIC OPERATION The Graphics window transforms icon on the Tools Icon Bar controls the operation of the left mouse button (by default) in the Graphics Window: To rotate: 1. Click the rotate icon. 2. Move the mouse pointer into the Graphics Window. 3. Click and hold the left mouse button and: • move the mouse left and right to rotate about the screen Y (vertical) axis, or • move the mouse up and down to rotate about the screen X (horizontal) axis, or • hold down the Control key and move the mouse left and right to rotate about the screen Z axis. 4. Press the F1, F2 or F3 keys for 45 degree rotation about the X, Y, or Z axis, respectively. Hold the Control key down for 45 degree rotation. (Note: cursor must be in the EnSight window for F keys to work) 5. To put the geometry in free rotation mode, put the cursor in the EnSight graphics window Press the F4 key, and left click in the graphics window and drag the mouse to set the view in motion and then let the left mouse button up. The geometry will continue to freely rotate according to the speed of your drag. Press F4 to stop the free rotation. To translate: 1. Click the translate icon (or use the middle mouse button in steps 2 and 3 (default)). 2. Move the mouse pointer into the Graphics Window. 3. Click and hold the left mouse button and: • move the mouse left and right to translate in the screen X (horizontal) direction, or • move the mouse up and down to translate about the screen Y (vertical) direction, or • hold down the Control key and move the mouse left and right to translate in the screen Z direction. Note that you can open the Transformation Editor dialog and the Reset Tools and Viewport(s) dialog here as well. Fit the geometry to the viewport To zoom: 1. Click the zoom icon (or use the middle mouse button in steps 2 through 5 (default)). 2. Move the mouse pointer into the Graphics Window. 3. Click and hold the left mouse button. 4. Drag down to zoom in or drag up to zoom out. 5. Hold down the Control key and move the mouse to pan. To rubber-band zoom: 1. Click the rubber-band zoom icon. 2. Move the mouse pointer into the Graphics Window and position it at one corner of the desired viewing region. 3. Click and hold the left mouse button. 4. Drag to include the desired viewing region. An outline of the region will appear as you drag. To rubber-band zoom using the selection tool: 1. Click the Selection Tool Rubber-band Positioning icon. 2. Move the mouse pointer into the Graphics Window and position it approximately at one corner of the desired viewing region. 3. Click and hold the left mouse button. 4. Drag to include the desired viewing region. An outline of the region will appear as you drag. 5. Manipulate the tool as desired, by clicking at the center and dragging to a new position or clicking on any corner and resizing. (Note that the aspect ratio will be preserved as indicated by the dotted lines within the tool.) 6. Click the zoom (magnifying glass) indicator at the top left of the tool. Page 122 HOW TO ROTATE, ZOOM, TRANSLATE, SCALE The Graphics window view orientation icon can be used to quickly view the scene from the global axes directions. Press +X to view the scene from the positive X axis (looking toward the origin). The +Y, +Z, -X, -Y, -Z buttons are similar. It also provides quick access to the Views manager that will allow you to save and restore your own custom views. Note that you also have the + and - axes buttons available in the Views Manager. To save your own custom views: 1. Orient the scene as desired. 2. Click the New button. And the view will be shown. 3. Repeat steps 1. and 2. until you have all the views you desire. 4. Click the Save views... button, and specify the folder in the dialog that comes up. This will save all of the views you defined. To restore your custom views: 1. Click the Restore views... button, and specify the folder containing your views. This will restore them to the dialog. To apply any views in the dialog, simply left click on them. Note that zooming actually changes the location of EnSight’s virtual “camera” or “look-from” point. Zooming in moves the camera closer to the object; zooming out moves it farther away. The look-from/look-at points can also be edited explicitly. If you have multiple viewports visible, each one can be manipulated independently. To transform in a different viewport, place the mouse pointer within the bounds of that viewport before you click the left mouse button. You can reset transformation parameters (as well as tool and frame transforms) by clicking the Reset.... See How To Reset Tools and Viewports for more information. The Fit button is useful in causing the currently visible parts to be centered and zoomed to fit within the selected viewport. Page 123 HOW TO ROTATE, ZOOM, TRANSLATE, SCALE ADVANCED USAGE All EnSight transformations can be controlled precisely by specifying explicit transforms in the Transformations Editor dialog. To open the dialog, click the Tools Icon Bar -> Graphics window transforms icon -> Transformations editor... The slider performs the requested transformation (based on the selected transformation action) in the selected viewport(s). Select the desired transformation action. Slider to specify transform. Set (by clicking within the desired region) the viewport that the transform applies to. To interactively perform transformations on multiple viewports, Control click on multiple viewports, then toggle on. Specify axis to which the transform applies Increment controls the step size for the slider end arrows. Enter explicit values in the Increment field (and press return) to transform by a precise amount. Limit controls the sensitivity and limit of the slider action. If you have defined cameras, you can tie selected viewports to particular cameras. You can also perform scaling in any or all dimensions (to, for example, magnify subtle differences in a surface). Although you cannot perform the scaling operation with the mouse, you can scale using the Transformations dialog. Click the Scale icon in the Transformation Action area and specify the scaling as described above. You can copy the transformations from one viewport to another. First select the viewport you wish to copy, select Editor Function->Copy Transformation State, then select the viewport(s) you wish to modify and select Editor Function->Paste Transformation State. OTHER NOTES By default, EnSight uses the left mouse button for performing the selected transformations. You can, however, program the transformation action attached to each mouse button. See Customize Mouse Button Actions for more information. The transformation operations described here also apply to frame transformations. If additional frames have been created and if operating on frames, then any transform will apply to the currently selected frame. See Create and Manipulate Frames for more information. Pressing the F5, F6, or F7 keys while the mouse is within the EnSight graphics window or desktop area will transform the scene to show a standard right, top, or front view, respectively. Pressing the F8 key will return the scene to that which existed prior to F5, F6, or F7 being pressed. Further, holding the Control key down while pressing F5, F6, or F7 will store the current view to the selected Fx button. Pressing F9 while the mouse is in the Graphics Window or the desktop area will zoom the display to full screen. Press F9 again to return to the normal display. Page 124 HOW TO ROTATE, ZOOM, TRANSLATE, SCALE OTHER OPTIONS FOR PART TRANSLATION, ROTATION AND/OR SCALING All of the above transformations are visual only and are much like moving the position of a camera or visually changing the geometry only. That is, they occur only on the client and don’t change the actual geometry values in EnSight. There are several other different methods for transforming coordinates described below as follows. If you want to “deep” scale model parts with a scale factor or translate using a variable with “server-side” scaling and displacement (where the actual coordinates are changed, both visually AND calculational) then look for Adjust Part Coordinates under Model Parts. This is different from the rotate, zoom, and translate in that it is part by part and the modification will be reflected in calculations, for example, calculated length, area, and volume will change. If you want to displace by a vector, for example a Displacement Variable Vector, then click on the displacement icon at the top. The resulting displacement is updated each timestep using the chosen vector variable and can be visual only (on the client) or computational (on the server) and can be scaled (see How To Display Displacements). This is different from the rotate, zoom, and translate in that coordinates are changed using a scalable vector and they can be changed visually on the client or for use in deep on the server and used in further calculations. If you want to scale, translate, or rotate a number of parts visually only consider grouping them and doing a group transform. Also if you have coincident geometry in two parts and need to offset them slightly from each other use a group transform (see Part Group Visual Transformations). This differs from rotate, zoom, and translate in that you can do it only for a select group and not for all parts globally. This method is very similar to Frames discussed below except it operates on a group. If you need to define the rotation or translation of a part over time at a deep (computational) level, then consider rigid body translations (see EnSight Rigid Body File Format). This is different from rotate, zoom, and translate in that you can defined precise translations and rotations over time, and they are deep on the server for use in computations. If you need precise control of the visual (client only) rotation and translation of parts separately for animation purposes, consider attaching a separate coordinate frame to each part and manipulating them separately (see How To Create and Manipulate Frames). This is different from rotate, zoom and translate in that you can do these transformations on a part by part basis rather than globally. SEE ALSO Other viewing operations: How To Set LookFrom/LookAt How To Set Z Clipping How To Create and Manipulate Frames How To Reset Tools and Viewports How To Use the Selection Tool Page 125 HOW TO SET DRAWING MODE Set Drawing Mode INTRODUCTION EnSight provides two basic drawing styles for graphics objects: line or shaded. Line mode draws only the line segments of an object – regardless of the whether the lines are polygon edges or not. Shaded mode displays all objects consisting of polygons (e.g. element or cell faces) as solid filled regions with light source shading enabled. These drawing styles can be enhanced by enabling hidden-line mode. If the current mode is line, hidden-line will eliminate all those lines that would be invisible if the object were a solid surface. If the current mode is shaded, hidden-line mode will draw lines overlaying face edges. In shaded mode, hidden-line overlays are particularly useful for visualizing computational grids. The setting of line or shaded mode is a global toggle. You can also set the mode on a per part basis so that some parts are displayed as lines and others as shaded surfaces. Each viewport also provides individual controls so that the drawing mode can differ from viewport to viewport. Line mode Shaded mode Hidden-line mode Hidden-line overlay mode BASIC OPERATION : The global toggles for shaded and hidden-line mode are available from the Tools Icon Bar. You can also enable these modes by selecting View > Shaded or View > Hidden Line. Page 126 HOW TO SET DRAWING MODE To use the global Tools Icon Bar toggles 1. Click the Shaded toggle to switch from line to shaded mode (or vice-versa). Line Shaded 2. Click the Hidden Line toggle to enable or disable hidden-line mode. If the current mode is Shaded when you toggle on Hidden Line, the Hidden Line Overlay dialog is displayed. This dialog allows you to specify a color for the overlay edges. If Specify Line Overlay Color is not enabled, overlay color will be set to the native color of each part. If it is enabled, the color can be specified either by entering red, green, blue color values, or by clicking the Mix... button and picking a color with the standard Color Selector dialog. Unhidden Hidden The per-part toggles for shaded and hidden-line mode are available in the Quick Action Icon Bar when part(s) are selected in the Part List. 1. Select Part in the Part List. Line Shaded 2. Click the Shaded toggle to switch from line to shaded (or vice-versa). 3. Click the Hidden Line toggle to enable or disable hidden-line mode. Unhidden Hidden Note that enabling shaded mode for a part has no effect unless the global shading toggle is also enabled (on the Tools Icon Bar or under the View menu). The same is true for hidden-line: unless the global hidden-line toggle is enabled, the part will be drawn without hidden lines. Page 127 HOW TO SET DRAWING MODE ADVANCED USAGE Drawing modes can also be set on a per-viewport basis. As with per-part settings, these toggles require that the corresponding global toggle is also set to have any effect. 1. Double click (or right-click -> Edit...) the desired viewport in Viewport list panel. This will open the Viewport Feature Panel. 2. Open the Viewport turndown if it isn’t already open. 3. Click the Shaded button to disable shading in the current viewport. 4. Click the Hidden Line button to disable hidden-line in the current viewport. Page 128 HOW TO SET DRAWING MODE OTHER NOTES When a part is drawn in shaded mode (with or without hidden-line overlay) the surface is displayed with light source shading enabled. EnSight uses two pre-defined light sources: one at the look-from point (the camera) and one on the opposite side of the model (for back-lighting). The location of one of the light sources can be changed, see How To Control Lighting. In computer graphics, the appearance of a shaded surface is governed by a lighting model controlled by various parameters. In EnSight, these parameters are part of the part’s and can be changed on a per-part basis. See How To Set for more information. SEE ALSO How To Control Lighting User Manual: Global Shaded, Global Hidden Line Page 129 HOW TO SET GLOBAL VIEWING PARAMETERS Set Global Viewing Parameters INTRODUCTION EnSight provides various modes that control global viewing behavior. Three of these modes are discussed here: perspective/orthographic projection, bounding box display modes, and static lighting. EnSight can display viewports in either perspective or orthographic projection. A perspective projection is how we normally view the world: objects that are farther away appear smaller. An orthographic projection removes this effect: objects appear the same size regardless of distance. The projection setting can be specified on a per-viewport basis. By default EnSight draws every point, line, and polygon for every visible part each time the Graphics Window updates. For very large models (or slow graphics hardware), this behavior leads to unresponsive manipulations since the update lags behind the corresponding mouse motion. Fortunately, EnSight provides other display modes that improve responsiveness. Fast Display mode displays all visible parts in a reduced fashion during interactive manipulation. This can be a bounding box representation, a point cloud representation, a reduced polygon representation, an invisible representation, or if using immediate mode - a percentage of each part’s elements. When the mouse button is released, parts are drawn normally. The Fast Display mode can also be set such that the bounding display is used until the mode is changed - even when the mouse is released. (Edit->Preferences... Performance - Static Fast Display) Surface shading operations are expensive for very large models. Since the shading is dependent on the orientation of the model with respect to the light sources, the surface colors must be recalculated each time the model moves. Static lighting mode precalculates surface colors for a given orientation and then uses these colors during subsequent transformations, resulting in improved interactive response. BASIC OPERATION Perspective/Orthographic Projection The projection mode can be toggled either from a menu (View > Perspective) or in the Viewport editor. To set the projection from the Viewport editor: 1. Double click (or right click->Edit...) the desired viewport in the Viewport list panel. This will bring up the Viewport Feature Panel. 2. Open the View turndown if it isn’t already open. 3. Click the Perspective button to toggle the projection type in the current viewport. Note that a viewport will only display a perspective projection if the global toggle (as set with View > Perspective) is on as well. Page 130 HOW TO SET GLOBAL VIEWING PARAMETERS Fast Display Mode The global Fast Display Mode can be set either from a menu (View > Fast Display > ) or by the Fast Display toggle on the Tools Icon Bar. To change between the Dynamic or Static operation of this mode, go to Edit>Preferences... Performance. To change the part representation for Fast Display Mode: 1. Select the part(s) in the part list. 2. Click the Fast Display Representation pulldown icon. 3. Select the desired fast display mode. Select Off to return to standard display mode. Note, if not using immediate mode, this Sparse Model option will not be available here. Note that this can also be done in the General section of the Part Feature Panel. Page 131 HOW TO SET GLOBAL VIEWING PARAMETERS ADVANCED USAGE If using immediate mode, and you desire to use the Sparse Model option for Fast Display, you can control the percentage of the model that is displayed. See Fast Display Mode. This mode is intended for large models. It generally will not be pleasing (nor should it be needed) for small models. SEE ALSO User Manual: Fast Display Rep. Page 132 HOW TO SET Z CLIPPING Set Z Clipping INTRODUCTION As you apply zoom transformations in EnSight, you may have noticed that the model begins to progressively disappear as you move close to the model. This happens when the visible model parts intersect the front Z clipping planes. The Z-clip planes (which are always perpendicular to your line of sight) are specified as distances from the look-from point (the camera position). The Z clipping plane positions can be set by the user and can be used to remove unneeded geometry from the display. Each viewport has its own set of Z clipping planes. By default, the Zclip planes adjust (float) with the model - thus stay out of the way if possible. BASIC OPERATION The initial position of the Z clipping planes is set based on the Z (depth) extent of the visible geometry – plus quite a bit extra to leave room for transformations. The plane positions can only be set via the Transformation Editor dialog. 1. Click the graphics window transform icon on the Tools Icon Bar and select Transformation editor... 2. Select Editor Function -> Z-clip The graphics display shows the relative positions of the front and back clipping planes (left and right vertical red lines) to the Z extent of all currently visible objects (white box). If the Float Z-clip Planes With Transform option is on, you can specify the minimum Z value that the Front clip plane can float to. 2. Toggle the Float Z-Clip Planes option on to have the Z-clip planes automatically adjust. OR Toggle the option off to manually adjust the Z-clip plane locations. If the Float Z-Clip option is off, you can edit the plane positions either by dragging the red lines or by entering explicit values in the Front and Back text fields. Recall that the values represent the distance from the look-from point to the plane. 3. Place the mouse pointer over the desired plane marker and click the left mouse button. 4. Drag the marker left or right to the desired location. The Graphics Window will update as the marker is moved. – OR – 3. Enter explicit values in the Front and/or Back text fields and press return. If the markers become difficult to manipulate due to changes, click the Redraw Z-Clip Area Above button to rescale the markers. Page 133 HOW TO SET Z CLIPPING Each viewport maintains its own independent Z clipping planes. The operation described above will change the planes for the current viewport (as set by clicking in the desired viewport in the Graphics Window). Note that clicking the Reinitialize transforms icon on the Tools Icon Bar will reset the Z clipping planes of the current viewport based on the Z extent of all objects currently visible in that viewport You can also reset by clicking the Graphics window transforms icon and clicking Reset... to open the Reset Tools and Viewports dialog. Then click the Reinitialize button. OTHER NOTES EnSight uses your workstation’s graphics hardware to implement Z clipping. The same hardware is used for Zbuffering – determining which objects are visible based on Z (depth) values. The Z buffer typically provides 24 bits of resolution. EnSight attempts to make the best use of this limited resolution by setting the front and back clipping planes reasonably close together. If the planes are too far apart, relative Z resolution is reduced and the hardware may not be able to accurately determine surface visibility. If you see artifacts like this, move the clipping planes closer together. EnSight also provides an additional clipping plane: the auxiliary clipping plane. Unlike the Z clipping planes which are always perpendicular to your line of sight, the auxiliary clipping plane can be placed at any location in any orientation. The Plane Tool specifies the location of the auxiliary clipping plane. By default, all geometry on the negative Z side of the Plane Tool is removed. However, you can specify auxiliary clipping on a per part basis – some parts are clipped while others are not. See How To Set Auxiliary Clipping for more information. SEE ALSO How To Define and Change Viewports, How To Set Auxiliary Clipping Page 134 HOW TO SET LOOKFROM / LOOKAT Set LookFrom / LookAt INTRODUCTION In addition to providing control over model manipulations, EnSight also provides control over the virtual camera used to view the scene in the Graphics Window while in Global Transform Mode. If a viewport is being viewed through a camera, this section is not applicable. The two control parameters are the look-from point (the position of the camera) and the look-at point (a point on the camera’s line-of-sight vector). The Global Axis is positioned at the look-at point and is always in the center of the Graphics Window. Initially, the look-at point is set to the geometric center of all visible objects and the look-from point is set to a point on the positive Z axis such that all visible objects fit in the Graphics Window (as shown in the top image below). The white axis triad is the Global Axis and can be displayed by selecting View > Axis triad visibility > Global. The bottom image shows the view after the look-from point has been repositioned between the X and Z axes. The diagrams to the right of each image show a top-down schematic of each viewing case. x z x z BASIC OPERATION The look-from, look-at points are controlled via the Transformation Editor dialog. 1. Click the Graphics window transforms icon on the Tools Icon Bar, and select Transformation editor... 2. Select Editor Function > Look At/Look From. Viewer Area for interactive manipulation Viewer Area plane toggles Text fields for entering numeric values Text field for moving look-from by setting an explicit distance Page 135 HOW TO SET LOOKFROM / LOOKAT The Transformation Editor dialog provides two methods for setting the look-at and look-from points. Numeric values can be entered directly into the X,Y,Z Look At, Look From text fields (remember to press return). You can also enter a value in the Distance field to explicitly move the look-from point a certain distance away from the look-at point. Alternately, the Viewer Area can be used to interactively manipulate the points. The presentation of the Viewer Area depends on the which plane toggle is set: X-Y (view from the positive Z axis), Y-Z (view from the positive X axis), or X-Z (view from the positive Y axis – the default). In each case, the gray box represents the extent of all visible parts. The intersection of the two red lines is the look-from point. The opposite end of the long red line is the look-at point (which is initially near the center of the gray box). The example below shows the X-Z Plane presentation, the others behave analogously. To change the look-from point: 1. Place the mouse pointer over the intersection of the two red lines. To change the look-at point: 1. Place the mouse pointer over the free end-point of the long red line. 2. Click and drag to the desired location. Note that the Graphics Window updates as the look-from point is moved. 2. Click and drag to the desired location. Note that the Graphics Window updates as the look-from point is moved. During your manipulation, the display in the View Area may become difficult to use. Click the “Redraw Viewer Area Above” button to rescale the display. The Viewer Area Control Lock pull-down menu effects interactive operation in the Viewer Area as follows: None No constraints are placed on movement of either the look-from point or the look-at point. Distance Movement of the look-from (look-at) point is restricted to a circle whose radius is the current Distance value and whose center is the look-at (look-from) point. Together The movement of both points is locked such that movements applied to one are applied to the other. You can easily reset the look-from and look-at points such that all currently visible parts are displayed. Click the Graphics window transforms icon and Click Reset... to open the Reset Tools and Viewports dialog. Click the Reinitialize button to reset the currently selected viewports. OTHER NOTES You can also set the look-at point by picking an object with the mouse in the Graphics Window: 1. Click Reinitialize in the Reset Tools and Viewport(s) dialog to clear all global transformations. 2. Click the Pick icon on the Tools Icon Bar. 3. Select Pick Look/At Point from the Pick Pull-down icon. 4. Move the mouse into the Graphics Window. Place the mouse pointer over the point you wish to set to the look-at point and press the ‘p’ key (or whatever mouse button you have set for “Selected Pick Action” in Edit > Preferences > Mouse and Keyboard). Page 136 HOW TO SET LOOKFROM / LOOKAT Other camera parameters, such as the camera up direction and the field-of-view angle can be set in the dialog found in the Transform Editor, Editor Function> Camera. SEE ALSO How To Define and Change Viewports. How To View a Viewport Through a Camera Page 137 HOW TO SET AUXILIARY CLIPPING Set Auxiliary Clipping INTRODUCTION Unlike standard Z clipping where the front and back planes are always perpendicular to your line of sight, auxiliary clipping lets you clip parts against a plane with arbitrary position and orientation. In addition, the auxiliary clip attribute can be set on a per-part basis. This permits selective clipping to reveal objects of interest. EnSight’s Plane Tool is used to provide the location for auxiliary clips. As the Plane Tool is manipulated (either interactively with the mouse or via the Transformations dialog), the display in the Graphics Window updates to reflect the new location of the plane. BASIC OPERATION Auxiliary clipping can be globally enabled by selecting it in the View menu: The Plane Tool will become visible and all objects on the negative Z side of the plane will be clipped (assuming the plane currently intersects some visible part). You can now manipulate the Plane Tool to achieve the desired display effect (see How To Use the Plane Tool for details). Note that Auxiliary Clipping always uses the infinite extent of the plane specified by the Plane Tool – there is no way to restrict it to the rectangular bounds of the tool. Each part has an attribute that controls whether it is clipped by the Auxiliary Clipping plane or not. To toggle this setting: 1. Select the desired part (see How To Select Parts). 2. Click the Auxiliary Clipping toggle. Off On (This attribute can also be toggled in the Feature Panel for the part. See How to Set for more information.) Page 138 HOW TO SET AUXILIARY CLIPPING SEE ALSO How To Use the Plane Tool, How To Set Z Clipping. User Manual: Part Auxiliary Clipping, Global Auxiliary Clipping Page 139 HOW TO DEFINE AND CHANGE VIEWPORTS Define and Change Viewports INTRODUCTION EnSight provides up to sixteen user-defined viewports in the Graphics Window. Each viewport is a rectangular region of the screen (with or without a border) displaying some or all of the currently visible parts. Each viewport can be transformed (e.g. rotated or zoomed), sized, and positioned independently. Viewports have several display including background and border color. Viewports provide a very flexible environment for data display. This article is divided into the following sections: Create a New Viewport Select Viewports Move and Resize Viewports Set Viewport Background Color or Image Set Viewport Display Selected Parts in Viewports Set Case Visibility Per Viewport Perform Transformations in Viewports Reset Viewport Transformations Delete Viewports BASIC OPERATION Viewport areas on the Desktop Viewport Quick Action Icons Viewports Panel Page 140 HOW TO DEFINE AND CHANGE VIEWPORTS Create a New Viewport On startup, EnSight creates a single viewport that fills the Graphics Window. To create a new viewport: 1. Click Viewports tab and select a viewport in the list panel to make Viewport Quick Action Icons available. You can alternatively click in the background of one of the viewports. 2. Click the New Viewport icon. OR 2. Click the Viewports Layout pull-down icon to select any of the standard viewport layouts. Note: you can also right click in the viewport list and select New. Select Viewports When you create a new viewport, it automatically becomes the currently selected viewport. Any action to change viewport always operates on the currently selected viewport(s). To select viewports: 1. Click Viewports tab and select the desired viewport(s) in the Viewports list panel. You can alternatively click in the background of the desired viewport. Note: that the typical multiple selection techniques can be used. Control click to append additional viewports to the selection. Shift click to select a range of viewports. Note that the selected viewport is also changed in other modes (such as View) any time you perform some action in a viewport (such as rotation). There is however, no visual feedback of this change unless or until you have the Viewport list visible. Page 141 HOW TO DEFINE AND CHANGE VIEWPORTS Move and Resize Viewports Viewports can be easily moved and resized. You can either reposition a viewport with the mouse in the Graphics Window, or precisely by entering exact values. To move or resize a viewport: 1. Get the move and resize hotpoints to appear by clicking in the background or hovering the mouse over the border of the desired viewport. 2. To move a viewport, click and hold on the move hotpoint as you drag the viewport to the desired location. 3. To resize a viewport, click and hold on the resize hotpoint as you drag the corner to the desired location. To precisely reposition a viewport: 5. Click the Selected viewport(s) position icon to open the Create/edit Viewports dialog. Alternatively you can double click (or right click and select Edit...) on the viewport in the list. Then open the Location Attributed area. 6. Enter new values in the Origin X,Y, Width, or Height fields (and press return). You can alternatively use the sliders to change the Width and Height. The origin (at 0,0) is the lower left corner of the Graphics Window. Note that the values are normalized to the width and height of the default viewport (i.e. the Graphics Window). 7. To quickly or to automatically arrange a number of viewports right-click on the viewport and choose Viewports>Manually arrange which will prompt you to create a single large viewport and a grid arrangement of the remaining viewports. Right click and choose Viewports>Automatically arrange to have your viewports quickly automatically arranged in a pre-defined fashion. EnSight permits overlapping viewports. You can control the ordering (from front to back): Click the Pop viewport(s) forward icon to bring the selected viewports to the top. Click the Push viewport(s) back icon to send the selected viewports to the bottom. Note: Viewport 0 is always displayed first, thus it cannot be pushed or popped with these icons. Page 142 HOW TO DEFINE AND CHANGE VIEWPORTS Set Viewport Background Color or Image Viewport background colors can be constant, blended, or inherited from the default viewport. To set viewport background color: 1. Click Viewports tab and select a viewport in the list to bring up the Viewport Quick Action icons. You can alternatively click in the background of one of the viewports. 2. Select the desired viewport(s) by any of the methods described above. 3. Click the Selected viewport(s) background color icon to open the Create/edit Viewports dialog, in the Background section. The Type pull-down controls the type of background coloring used. There are four types: Constant, blended, inherit, and image. Constant A constant color will be used for the entire background. To set a constant color: 4. Select Constant from the Type pull-down. 5. Either enter values in the RGB color fields (and press return OR click the Mix Color... button to open the Color Selector dialog. 6. The viewport should be refreshed automatically, but if not you can click Refresh viewport. Page 143 HOW TO DEFINE AND CHANGE VIEWPORTS Blended Up to 5 horizontal level colors can be specified with interpolation between levels. To set a blended background: 1. Select Blended from the Type pull-down. 2. Enter the desired number of levels in the # of Levels field (and press return). Up to five levels are supported. 3. To edit a color, first select it by clicking on the number label in the Viewport Color window. As shown, level 1 is currently selected. Alternately, you can enter a value in the Edit Level field or click the up/down arrows. 4. Change the selected color by either entering new values in the RGB fields (and pressing return) or clicking the Mix Color... button to open the Color Selector dialog. 5. You can also change the relative vertical position of a level by either clicking on the level number with the left mouse button and dragging up or down OR by entering a new value in the Position field (and pressing return). 6. Click Refresh viewport, if needed. Inherit The selected viewports inherit the background type and color from the default viewport. To set an inherited background: 1. Select Inherit from the Type pull-down. 2. Click Refresh Viewport, if needed. Image The image specified will be used as the background for the selected viewports. To set an image background: 1. Select Image from the Type pull-down. 2. Enter the filename for the background image to use or click the Select... button and navigate to it. Note, that the image must be a format that is recognized, but most common image formats are. 2. Click Refresh Viewport, if needed. Page 144 HOW TO DEFINE AND CHANGE VIEWPORTS Set Viewport Viewports can be displayed with a variety of options: 1. Click Viewports tab and select a viewport in the list to bring up the Viewport Quick Action icons. You can alternatively click in the background of one of the viewports. 2. Select the desired viewport(s) by any of the methods described above. 3. Set the desired attribute as described below: On Click the Selected viewport(s) visibility icon to toggle display of the selected viewports on or off. Off Click the Selected viewport(s) border icon to open the Border section of the Create/edit Viewports dialog. Click the Visible toggle to display a border. Enter values in the RGB fields (and press return) or click the Mix... button to open a Color Selector dialog. Click the Select viewport(s) special icon to open the View section of the Create/edit Viewports dialog. Each viewport has its own toggles for perspective, hidden surface, and hidden line drawing styles. These controls will toggle the respective attribute for the selected viewports. See How To Set Drawing Style and/or How To Set Global Viewing for more information. In addition, a viewport can be 3D or 2D in nature. If the viewport is designated as 2D, only planar parts may be displayed in the viewport and transformations will become 2D limited. A viewport can be set such that it will track a node number, a part centroid, or one of the part min or max values. Thus as a model changes in time, the viewport will stay centered on that location. See How To Do Viewport Tracking for more information. Page 145 HOW TO DEFINE AND CHANGE VIEWPORTS Display Selected Parts in Viewports Part visibility can be a set on a per-viewport basis such that some parts are visible in some viewports but not in others. To set part visibility per viewport: 1. Select the desired part(s) in the Main Parts list. 2. Click the Visibility per viewport icon. The Part Viewport Visibility dialog displays a schematic of the current viewports. The part is currently visible in the green viewports but invisible in the black viewports. 3. Click in a green viewport to disable display of the selected part(s) in that viewport OR click in a black viewport to enable display of the selected part(s) in that viewport. Note that a similar interface for setting this attribute appears in the General section of the Create/edit Parts dialog. Set Case Visibility Per Viewport If you have multiple cases in your session of EnSight, you can set viewport visibility for all parts associated with a case. This makes it easy to display one case per viewport. To set case visibility per viewport: 1. Select the desired case from the Case menu (Case > casename). 2. Select Case > Viewport Visibility to open the Case visible in viewport(s)? dialog. 3. Click in a green viewport to disable display of the selected case in that viewport OR click in a red viewport to enable display of the case in that viewport. Page 146 HOW TO DEFINE AND CHANGE VIEWPORTS Perform Transformations in Viewports You can transform objects in a user-created viewport as easily as in the default viewport (See How To Rotate, Zoom, Translate, Scale for details). For precise viewport transformations, you can use the Transformations Editor on a per viewport basis: 1. Click the Graphics window transforms icon, then select Transformation editor... 2. To perform precise transformations in a viewport, click the desired viewport in the Which viewport(s) window and perform the transformation. To select more than one viewport, simultaneously hold down the control key and click on additional viewports. Note that this action will change the currently selected viewport(s). Page 147 HOW TO DEFINE AND CHANGE VIEWPORTS Reset Viewport Transformations The transformations for one or more viewports can be reset at any time in the Reset Tools and Viewport(s) dialog. 1. Click the Graphics window transforms icon, then select Reset... 2. Select the viewport(s) on which the reset will act. 3. Click on the appropriate button to perform the reset action desired. You can reset the selected action only, all rotates translates and scales at once, or do a complete reinitialization of the viewport. Page 148 HOW TO DEFINE AND CHANGE VIEWPORTS Setting/Changing Viewport Part Bounds Part bounds can be displayed within a viewport. This is useful for understanding the size of the model domain. 1. To turn on part bounds globally, toggle the Bounds visibility under the View menu. This will display the bounds around the parts in the viewports. 2. To control the of these bounds, click the Selected viewport(s) part bounds icon. Which will open the Bounds section of the Viewports Feature Panel (see next page). Page 149 HOW TO DEFINE AND CHANGE VIEWPORTS 3. Select General or the Axis specific tabs. 4. Modify any desired. Including the visibility toggle if you don’t desire to see the bounds in the selected viewports. Delete Viewports A created viewport can be deleted at any time: 1. Right click on the desired viewport in the Viewport list panel and select Delete. OR, if multiple desired: 1. Select the desired viewports in the list by any of the typical methods. (Hold down the control key to select multiple viewports) 3. Right click on the selection and choose Delete. Page 150 HOW TO DEFINE AND CHANGE VIEWPORTS Other Notes Border visibility and color, and lighting for the viewports can also be controlled in the Create/edit Viewports dialog. You can interactively transform multiple viewports simultaneously by selecting the viewports you want to link together and turning on the Link Interactive Transforms toggle in the Transformation Editor dialog. Those viewports that are highlighted in green will now transform together for any transformations performed in the Transformation dialog. Linking does not apply to transformations performed by the mouse in the graphics window. You can copy the transformations from one viewport to another. First select the viewport you wish to copy, then select Editor Function->Copy Transformation State. Next select the viewport(s) you wish to modify and select Editor Function->Paste Transformation State. SEE ALSO How To Rotate, Zoom, Translate, Scale, How To Control Lighting User Manual: Viewports List Panel Page 151 HOW TO SET LIGHT SOURCES Set Light Sources INTRODUCTION The surfaces of parts are rendered using surface properties (such as color and highlight properties) interacting with one or more light sources. But default there is a directional light located along the line of sight. This “at the viewer” light source can’t be modified, i.e., it is always a directional light pointing in the camera view direction. However, you can turn it off or adjust it’s color or light intensity. In addition to this first light source, there can be up to seven additional lights of various types and positions. These lights are taken into account in the graphics window and for ray traced images. There are various reasons to define additional light sources. However, the primary and most common use is to define lights for the ray tracer, such that shadows and reflectivity can be shown in the scene. Here is a scene showing the image produced in the graphics window. It has a single default light source, i.e., the light is at the camera position shining in the camera view direction. If we ray trace this, you get the following image: As you can see, you have no shadows in the scene because the light and viewer directions are coaligned. Page 152 HOW TO SET LIGHT SOURCES If we introduce two more directional light sources at locations and in the directions shown in this image: And now ray trace the scene, we get the following image: As you can see, we now have shadows, better reflections, and better lighting in the tread part of the tire. However, the chrome is also fully saturated in some areas of the wheel. We might consider using a less intense light for one or more of the lights to make this a better image. Page 153 HOW TO SET LIGHT SOURCES BASIC OPERATION 1. Bring up the Light Source Editor by selecting “Lighting...” from the View pulldown. Light source 1 is the default light in the scene. 2. To modify it’s light intensity, move the slider or enter a value (0 to 1) in the light intensity field. Page 154 HOW TO SET LIGHT SOURCES 3. To activate a new light source, toggle it’s “Active” toggle. 4. The Type can be set to one of: Directional - the light is located at infinity and points in the direction (or towards the point) defined. There is no light attenuation for this light type. Point - the light shines in all directions and is located at the point specified. This light type has light attenuation and uses the distance from the light source to the ray end as the light radius. Spot - the light shines in the direction (or towards the point) defined. This light type has light attenuation and uses the distance from the light source to the ray end as the light radius. This light type also has a spot angle as well as a falloff angle which defines how “blurry” the light cone will be. 5. The easiest way to modify the light source location or light source direction is either: a) Move the mouse over the light glyph hot points, which is one of: (i) the light location, (ii) the mid point of the ray, or (iii) the light ray end location. Then click and drag the location. b) Or use one of the many tools to specify the cursor tool location. Once the cursor tool is in location, use the “Get cursor tool” button to define the light or ray end locations. 6. If you want to move the light origin or light ray end location along the ray direction, you can toggle on the lock icon. Once the icon is locked, you can grab any of the three hot points for the light glyph with the mouse in the graphics window and adjust by (i) moving the light location, which will move the light location along the ray direction, or by (ii) moving the ray end location, which will move the ray end along the ray direction, or by (iii) moving the mid point, which will move the light location and ray end together. ADVANCED USAGE You have the option to cast shadows from a light source when producing ray traced images. Toggle on “Casts shadows for raytracing” in the Light Source Editor. SEE ALSO How To Use Raytrace Rendering How To Use the Cursor (Point) Tool Page 155 HOW TO DISPLAY REMOTELY Display Remotely INTRODUCTION EnSight does not support the running of the client on one machine and setting the system display environment back to a different machine. Not all of the features of OpenGL are supported on all platforms in this mode which can conflict with EnSight’s graphics. It is intended that you actually run the client from the console of the client machine. If you run the client on a remote machine and display back, you will see the following warning displayed on the console machine: -------------------------------------------------------------------------Warning: EnSight has detected indirect OpenGL rendering. This could be caused by remote display using X11, by an incorrect setting of the DISPLAY environment variable, or by a bad driver installation. When running using indirect OpenGL, you will notice a performance degradation and loss of some rendering features. If you are running over a network we strongly recommend that you install EnSight directly on the client machine. EnSight is a client/server application, and you can run the EnSight server on your remote machine. -------------------------------------------------------------------------One way is to run the client on your local machine with a manual connection: ensight102.client -cm (Linux) ensight102_client -cm (Windows) and on the remote machine: ensight102.server -c clienthostname (Linux) ensight102_server -c clienthostname (Windows) Another way is to run your client and to tell it to open a connection on a remote machine (default is ssh) as follows ensight102.client -c remotehostname (Linux) ensight102_client -c remotehostname (Windows) Running one or multiple servers remotely incurs no cost as only the EnSight client requires a license key. And, of course the various VR combinations of display are valid. SEE ALSO How To Use Server of Servers How To Setup for Parallel Rendering Page 156 HOW TO SAVE & RESTORE VIEWING PARAMETERS Save & Restore Viewing Parameters INTRODUCTION EnSight’s viewports provide a great deal of flexibility in how objects are displayed in the Graphics Window. Given the complicated transformations that can be performed, it is imperative that users be able to save and restore accumulated viewport transforms. BASIC OPERATION Copying Viewing Parameters from one Viewport to another. This is most easily done by using right click operations. 1. In the Viewports list panel, right click the viewport which contains the desired view. 2. Select Copy Transform. 3. In the Viewports list, right click the viewport which is to receive the view. 4. Select Paste Transform. Page 157 HOW TO SAVE & RESTORE VIEWING PARAMETERS Saving Viewing Parameters to a file Click the Graphics window transforms icon in the Transformations Control area of the Tools Icon Bar and select Transformation editor... to open the Transformations dialog. 1. Select the viewports you want to save. Click within a viewport to select it. Hold down the control key as you click to select additional viewports. Or select them similarly in the Viewport list. 2. Select Save View... from the File menu. 3. Select a directory and enter a file name in the file browser and click OK. EnSight provides a maximum of 16 viewports: the main viewport (which you cannot change) and 15 additional viewports. When EnSight saves one or more viewports, it also includes the viewport number (which is equal to the creation order) as a tag. When you request that one or more viewports be restored, EnSight looks in the saved file and searches for tag numbers corresponding to the currently selected viewports. If it finds a match, it restores that viewport. If there is no match for a selected viewport, it is left unchanged. Restoring Viewing Parameters Click the Graphics window transforms icon in the Transformations Control area of the Tools Icon Bar and select Transformation editor... to open the Transformations dialog. 1. Select the viewports you want to restore. 2. Select Restore View... from the File menu. Select a file name in the file browser and click OK. What is Saved Only global and local (frame) transformations are stored in a view parameters file. No information is stored for viewport, look-from/look-at points, or Z clipping. Other Notes By default, the F5, F6, or F7 buttons restore a standard right, top, or front view (respectively) of the selected viewport. However, by holding down the Control key while pressing one of these keys, the current view will be saved to that key. Subsequent pressing of that key will restore the saved view. Only Global transforms are saved / restored by these operations, not Frame transforms. SEE ALSO How to Define and Change Viewports, How to Create and Manipulate Frames. Page 158 HOW TO CREATE AND MANIPULATE FRAMES Create and Manipulate Frames INTRODUCTION A coordinate frame can be created for calculator functions or for parts. The two calculator functions VectorCylProjection and VectorRectProjection use a Frame to designate the projection coordinate system. The remaining use of frames is for parts. By default, all parts are assigned to the same frame of reference. You can, however, create additional coordinate frames and assign parts to them. These frames (and the parts assigned to them) can be manipulated (rotated, translated, scaled) independently of other frames. Some examples of frame usage: 1. You wish to create a copy of a part and display a different variable on the copy. When you create the copy, a new frame is automatically created and the copy is assigned to it. The new frame can be translated away from the original to visualize both variables simultaneously. 2. You wish to create an animation of parts moving independently (e.g. for an exploding view or to “open” a closed object with a “hinged door”). Each dynamic part is assigned to a new frame. During keyframe animation, the frames are manipulated independently to achieve the desired motion. 3. You have a dataset with rotational periodicity but the symmetry axis is not aligned with a major axis. A new frame is created and positioned such that one of its axes is aligned with the symmetry axis. 4. You have a dataset that makes correct positioning of EnSight tools difficult, e.g. a duct not aligned with a major axis. Create a new frame and align one of the axes with the duct. Since tool positions are always specified with respect to the current frame, you can now use the Transformation Editor to accurately position tools along the axis of the duct. In addition to position and orientation, frames have a number of display such as visibility, line width, and color. You can also specify the length of each axis separately and display a series of evenly spaced labels to use as a 3D measuring tool. Frames are a powerful but complex feature of EnSight. Understanding the basics of frames is essential for proper use. This article is divided into the following sections: Introduction Create a New Frame Select Frames Assign Parts to Frames Move and Rotate Frames Reset Frame Transform Set Frame Determine What Frame a Part is Assigned To Delete Frames Page 159 HOW TO CREATE AND MANIPULATE FRAMES BASIC OPERATION Introduction On startup, EnSight creates a default frame – frame 0 – located at 0,0,0 of the right-handed “world” or model coordinate system and aligned with the X, Y, Z axes. All parts (model and newly created) are assigned to frame 0 initially. Frame 0 is special in that it cannot be repositioned or deleted. Note: Frame operations are reserved for the expert user. By default, the Frame Feature Icon is not enabled. To enable it, go to Window>Toolbars, and toggle Frames on. Alternatively, one can right click on the head of the List Panel section, and toggle Frames on. After which, the Frames List Panel will be available, default Coord. frame 0 is listed, and the operations described below can be performed. Frames are selected either by clicking a visible frame axis triad in the Graphics Window (implying that the frame triad had to previously been set to be visible) or by selecting the desired frame in the Frames list panel. Any frame operation (such as setting) acts on the currently selected frame(s). Page 160 HOW TO CREATE AND MANIPULATE FRAMES The EnSight positioning tools (Cursor, Line, Plane, and Quadric tools) are always positioned with respect to the currently selected frame. If more than one frame is selected, frame 0 is the reference frame for tools. If you have tools visible, you will notice them changing position as the selected frame is changed. EnSight implements computational periodicity (such as rotational symmetry) as an attribute of frames. If a frame has symmetry enabled, all parts assigned to the frame will be duplicated as specified by the particular type of symmetry. A frame axis triad consists of three lines representing the X, Y, and Z orientation vectors plus labels. Selected frames are highlighted in the Frames list. EnSight does not support hierarchical frames: you cannot assign a frame to another frame to implement nested transformations. All frames are embedded in the same world coordinate system (i.e. frame 0). Create a New Frame In general, you have to explicitly create new frames. However, EnSight will automatically create a new frame each time you create a copy of a part and assign the copy to the frame. To create a frame: 1. Decide if you want the new frame to be set to the default 0,0,0 position (same as the model coordinates), or whether you would like to have it centered on some selected part(s). If the former, make sure no parts are selected in the Parts list. If the latter, select the desired part(s) in the Parts list. 2. Either select an existing frame in the Frames list panel and hit the New Frame icon. OR Right click on an existing frame in the Frames list panel, and select New. The new frame also becomes the currently selected frame. Page 161 HOW TO CREATE AND MANIPULATE FRAMES Select Frames There are two ways to select frames. You can select frames in the Frames list panel, or click on the frame axis triad in the Graphics Window (if the triad is visible). To select frames using the Frames list: 1. Click the Frames tab, to show the Frames list panel, if it is not already shown. 2. Select the desired frames in the list. You can use standard techniques, such as shift-click to extend a selection or controlclick to add to the list (or de-select an item if already selected). To select frames in the Graphics Window: Note that this implies that the frame triad(s) are already visible. If they are not, you will need to do your first selection using the Frames list as described above. Then make the frame triad(s) visible by toggling on the Axis visibility icon. You can now: 1. Position the mouse pointer over the frame axis triad (the lines – not the XYZ labels) and click the left mouse button. You can extend a selection of frames by holding down the Control key as you click on frames. Assign Parts to Frames To assign a part to a frame: 1. Select the desired part(s) in the Main Parts list. 2. Select the desired frame (as described above). 4. Click the Assign selected part(s) to selected frame icon to assign the part(s) to the frame. OR Right click on the desired frame and select Assign to, then Selected Part. Note that you can easily assign all parts to a frame using the latter method A message is printed to the EnSight Message Window (found under the Information display icon), confirming the assignment. Page 162 HOW TO CREATE AND MANIPULATE FRAMES Move and Rotate Frames You transform a frame (and all parts assigned to it) when you perform any transformation while in Frame Transform mode. Frame Transform mode is set by default. You toggle between it and Frame definition mode for the selected frame(s) using the Transform/ Define frame(s) icon on the Quick Action Icon Bar. Define Mode Transform Mode or in the Create/edit Frames dialog. IMPORTANT: Generally one should only use the Define mode while first creating and orienting the frame. Thus before any parts are assigned to it. Thereafter one should ensure that he is using Transform mode. If you do this, you will avoid error and confusion in the use of frames. Page 163 HOW TO CREATE AND MANIPULATE FRAMES To transform in Frame Transform mode: 1. Select the desired frame(s) (as described above). 2. Ensure that the Transform/Define frame(s) icon is set to the Transform mode. This can alternatively be done in the Create/edit Frames dialog, where radio buttons show the state. 3. Perform the desired transformation either interactively (using the Transformations Control icons and the mouse in the Graphics Window) or via the Transform Actions in the General section in the Create/edit Frames dialog. See How To Rotate, Zoom, Translate, and Scale for more information. Frame transforms are implemented as a transformation applied with respect to the frame’s position and orientation. At times you will need to modify the position and orientation of the frame independent of the parts assigned to it. This is done while in Frame Definition mode. You have been shown how to enter Frame Definition mode above. Important! You cannot change the frame definition if you have performed any frame transformations (if you attempt to do so, a dialog will remind you). Any frame definition must be applied prior to a frame transformation. If you have already made frame transforms you can clear them by returning to frame transform mode and using the Reset Tools and Viewports dialog (click Reset... to open). Page 164 HOW TO CREATE AND MANIPULATE FRAMES To transform the Frame Definition: 1. Select the desired frame(s) (as described above). 2. Ensure that the Transform/Define frame(s) icon is set to the Define mode. This can alternatively be done in the Create/edit Frames dialog, where radio buttons show the state. 3. Perform the desired transformation either interactively (with the mouse in the Graphics Window) or via the Transform Actions in the General section in the Create/edit Frames dialog. To translate the frame interactively, move the mouse pointer into the Graphics Window and click and drag the left mouse button. To rotate the frame interactively, click and hold the left mouse button on one of the frame axes and drag the mouse. Clicking on the X axis will rotate the frame about its Y axis. Clicking on the Y axis will rotate the frame about its X axis. Clicking the Z axis will rotate about both X and Y. (Use the Transform Action in the General section to rotate about the Z axis only.) Page 165 HOW TO CREATE AND MANIPULATE FRAMES You can also edit the frame’s definition explicitly using the Transformation Editor dialog: 1. Click the Frame Location icon. This opens the Create/edit Frames dialog in Frame Definition mode. 2. Select the desired frame(s). 4. If desired, enter new value(s) in the XYZ fields to change the frame’s origin (remember to press return). 5. If desired, enter new value(s) for the orientation vectors (remember to press return). Note that the orientation vectors are normalized afresh when you press return. Reset Frame Transform The frame transform can be reset back to the default position and orientation by using the Reset Tools and Viewports dialog. To clear the frame transform: 1. Select the desired frame(s) (as described above). 2. Make sure the Transform/Definition Icon is set to transform 3. Click the Reset... button in the Transformation Control area to open the Reset Tools and Viewports dialog. 4. In the Reset Tools and Viewports dialog, click the desired button: Reset By Selected Transform Only: clear only the transformation component currently selected (e.g. rotate or translate) in the Transformation Control area Reset Rotate/Translate/Scale: clear all transformation components See How To Reset Tools and Viewports for more information. Page 166 HOW TO CREATE AND MANIPULATE FRAMES Set Frame Frames can be displayed with a variety of options: 1. Select the desired frame(s) (as described above). 2. Set the desired attribute as described below: Off Click the Axis Visibility Toggle to toggle display of the axis triad of selected frames on or off. On Click (opens the Color Selector) to set the color for the axis triad of selected frames. Click the Frame Line Width pull-down to set the line width for the axis triad of selected frames. Click the Axis icon to set axis (described below). Click Computational symmetry icon to set translational, rotational, or mirror symmetry (described below) To adjust the length of the frame axes, enter new values in the X, Y, and Z Length fields and press return. To display a series of evenly spaced labels along an axis (showing distance from the axis origin), toggle on the applicable Label button, enter the desired number of labels in the # of field, and press return. To choose the type of computational symmetry (translatational, rotational, mirror). Once the type is chosen, appropriate controls will open for that type. If your data is not Case Gold format then you can interactively chose to use a Periodic File. If it is Case Gold then you must enter the matchfile name in the Case file Page 167 HOW TO CREATE AND MANIPULATE FRAMES Determine What Frame a Part is Assigned To You can determine what frame a part is assigned to (and change it) by opening the Parts Feature Editor: 1. Open Create/edit Parts by double clicking on the desired part. or Right click on the part in the Parts list, and select Edit... 3. Open the General turndown. The part’s current frame number is shown in the Ref. Frame field. You can reassign a part to a different frame by entering a new value and pressing return. Delete Frames Selected frames can be deleted. Note that a frame cannot be deleted if any parts are currently assigned to it. All parts assigned to the frame must be assigned to other frames prior to deletion. 1. Select the desired frame(s) (as described above). 2. Right click on your selection and choose Delete. SEE ALSO How To Set Symmetry, How To Rotate, Zoom, Translate, and Scale, How To Reset Tools and Viewports User Manual: Frames List Panel Page 168 HOW TO RESET TOOLS AND VIEWPORTS Reset Tools and Viewports INTRODUCTION EnSight provides support for complex transformations of various entities (e.g. the scene, tools, frames). It is often necessary to clear all or part of the transformation associated with an entity; the Reset Tools and Viewports dialog provides this capability. BASIC OPERATION To clear global transformations or tool positions: 1. Click the Graphics windows transform icon in the Transformation Control area of the Tools Icon Bar and select Reset... to open the Reset Tools and Viewports dialog. 2. Perform the desired operation as described below. 3. Click Close. Transformations will only be reset for the current viewport(s). Click in a viewport to select it (turns green). Control-click to extend the selection or de-select a selected item. Click the applicable button to reset the corresponding tool. Toggle selects whether tool is reset based on the global XYZ space or reset based only on the selected viewport. Click to clear only the transformation component currently selected in the Transformation Control area (e.g. Rotate or Translate). Click to clear all transformations as well as reset the camera look-from/look-at points so that all currently visible parts are centered in the selected viewport(s). This also resets the center of transform to the geometric center of the visible parts. Click to clear all transformations in the selected viewport(s). Note that zoom is not a scene transformation and is not cleared. Zoom is implemented by moving the look-from point (the camera position). To clear zoom, click Reinitialize. Page 169 HOW TO RESET TOOLS AND VIEWPORTS ADVANCED USAGE The Reset Tools and Viewports dialog is also used to clear Frame transformations. See How To Create and Manipulate Frames for more information on frames and frame transforms. To clear frame transformations: 1. Select the desired frame(s) in the Frame list. 2. Click the Graphics windows transform icon in the Transformation Control area and select Reset... to open the Reset Tools and Viewports dialog. 3. Perform the desired operation as described below. 4. Click Close. Frame transformations will only be reset for the current viewport(s). Click in a viewport to select it. Control-click to extend the selection or de-select a selected item. Click to clear only the frame transformation component currently selected in the Transformation Control area (e.g. Rotate or Translate) for the selected frame(s) in the selected viewport(s). Click to clear all frame transformations for the selected frame(s) in the selected viewport(s). SEE ALSO How To Rotate, Zoom, Translate, Scale, How To Define and Change Viewports, How To Create and Manipulate Frames Page 170 HOW TO USE THE COLOR SELECTOR Use the Color Selector INTRODUCTION Several operations in EnSight require that you select a color. The Color Selector dialog is used throughout the user interface to provide a powerful and easy-to-use color selection mechanism. BASIC OPERATION The selector operates using one of two basic color models: RGB or HSV. The RGB color model specifies color by the percentage of red, green, and blue and closely mimics the way computers deal with color. The HVS color model specifies colors as percentages of hue (the actual color with red equal to both 0.0 and 1.0, green equal to 0.33, and blue equal to 0.66), saturation (the “amount” of color, where 0.0 is white and 1.0 is full), and the value (the brightness, where 0.0 is black and 1.0 is full). The HSV model is often more intuitive for mixing custom colors. The dialog provides three basic methods of selecting colors: 1. By picking one of the predefined colors from the grid of color cells. 2. By grabbing the marker in the color cube and moving it with the mouse. 3. By entering values for HSV (or RGB, depending on mode) directly in the fields and pressing return. Color square always displays the current color selection. When you have selected a color, click the OK button to have the selected color applied to the object being edited (e.g. part, color map level, text, etc.). Specify Custom Colors If you have colors that you use frequently that are not represented in the color grid, you can save them to one of the Custom colors grids by clicking Add to Custom Colors button. Your custom colors are automatically saved for future sessions. To set custom colors: The color information is saved in EnSight defaults directory (located at %HOMEDRIVE%%HOMEPATH%\(username)\.ensight102 commonly located at C:\Users\username\.ensight102 on Vista and Win7, C:\Documents and Settings\yourusername\.ensight102 on older Windows, and ~/.ensight102 on Linux, and in ~/Library/Application Support/EnSight102 on the Mac) with the following filename: ensight.colpal.default. SEE ALSO User Manual: Quick Color Widget Panel, Part Color/Surface Property Icon Page 171 HOW TO ENABLE STEREO VIEWING Enable Stereo Viewing INTRODUCTION EnSight supports active stereo display on workstations with quad-buffered OpenGL stereo capability, in addition to passive (polarized) stereo support for detached displays (see How To Setup Parallel Rendering). Active stereo works by rapidly displaying alternating left and right eye views on the screen. An emitter (which sits on top of your display monitor) sends an infrared signal to special glasses worn by the viewer(s). The glasses contain liquid crystal shutters that alternately open and close the left and right eye lenses in response to the signal from the emitter in sync with the monitor display. The update frequency is such that the viewer effectively fuses the left and right views into a single stereo image. Stereo is useful for viewing any type of visually complex geometry. It is especially helpful for visualizing amorphous objects such as animating particle traces, trace ribbons, or discrete particles. It has also been noted that management and customers are typically quite impressed by stereo display. BASIC OPERATION In EnSight, stereo display is enabled by pressing the F12 key on your keyboard. Pressing the F12 key again will return to normal display. The stereo separation angle can be controlled by pressing the F10 and F11 keys. F10 decreases the angle and F11 increases the angle. Pressing Ctrl-F12 will swap the left and right eyes in order to correct for stereo displays which have the left and right eyes reversed. When EnSight is configured to use a detached display (see How To Setup Parallel Rendering), these commands affect only the detached display. The window remains monoscopic. The stereo model used by EnSight to generate stereo imagery is one of two physical cameras. These cameras are located some distance from the screen and they are some distance apart. We render the right and left eye views using those two cameras. This will look (completely) correct, if your eyes are located at these two camera points. Unfortunately, we are not head-tracking in the case of desktop stereo, so it is very difficult to be perfectly aligned. Fortunately, the brain is very adept at compensating for the differences in projection and can tolerate an amazing level of inaccuracy in the projections (witness the fixed projection at your local 3D theater). However, as geometry gets closer and closer to the eye, the compensation tends to fail. It also tends to fail when geometry near the border of the screen gets clipped. In those cases, the brain refuses to 'fuse' the imagery into a single 3D image. To compensate for this, EnSight allows you to vary the eye separation. You can use the function keys (F10 and F11) to adjust the stereo separation, or, you can adjust the number directly. Or you can use a tool included in the EnSight tools as shown further below. The command: ensight.objs.core.STEREO_SEPARATION = 5.0 either in the Python command window or the command language command window (File>Command) or even in a command file (.enc file) or python file (.py file) adjusts the current value. These numbers are not in units of any specific distance (we would need to know the screen DPI for that) and are larger for eyes closer together and smaller for when they are further apart. Think of them as the distance the viewer is away from the screen, given a fixed intraocular distance. Thus, head position is implied. It is directly in the center of the imagery, as some distance back from the screen. Double click on the tools icon, and in the tools dialog, Open the Utilities folder, double click the Stereo tool to enable stereo and set eye separation Configuring your display On most platforms the display is not initialized by default in a mode which enables stereo viewing. In general quadbuffered stereo requires a refresh rate of 96Hz or higher. On some monitors it may be necessary to decrease the Page 172 HOW TO ENABLE STEREO VIEWING display resolution in order to accommodate this higher refresh rate. Check your monitor documentation before attempting to change the refresh rate. There is a utility distributed with EnSight which can be used to determine if your display has stereo capability. Run ‘cei_apex31_glinfo’ from a command line and look for OpenGL visuals with a ‘y’ the column ‘st’ or ‘stro’. If none exist, then the current display parameters do not allow for stereo viewing. Below are example instructions for various platform configurations which have been tested and confirmed to work with EnSight. When in doubt, refer to your system documentation for OpenGL as well as the X server (Unix) or video adapter device driver (Windows). Linux Professional graphics cards generally support stereo OpenGL under Linux. Documentation is included with the drivers, which may be downloaded from the card vendors web sites. MS Windows Configuration of stereo under Microsoft Windows is dependent upon the graphics card driver which is installed. Right-click on the background and choose “Properties” to open to Display Properties dialog. Look for a tab which such as “OpenGL Properties” or “Advanced” and search for a stereo option. In many cases there is a toggle button for enabling stereo display. The nVidia stereo-enabled graphics cards have a number of ‘gotchas’. Firsts, when you upgrade your graphics card software driver from the manufacturer’s web site, your stereo may no longer work because it may be turned off as a result of the upgrade. And you may turn on stereo in the driver and find that the stereo test app works, but EnSight still fails. This is because the nVidia test app uses DirectX, but EnSight uses OpenGL. So while the nVidia test app is working in stereo because you have turned on DirectX stereo, EnSight may not be working because OpenGL is still turned off. In nVidia, the critical setting that allows OpenGL stereo is not under the “Stereoscopic 3D” settings, but is rather under “Manage 3D Settings”. Set “Stereo Enable” to “On”. You will usually need to restart the machine in order for changes to take effect. If stereo still does not work, try changing the display resolution, as stereo may not be available at higher resolutions. Also, if you lowered the refresh rate below 120 Hz, put it back to 120 Hz. Page 173 HOW TO PICK CENTER OF TRANSFORMATION Pick Center of Transformation INTRODUCTION EnSight allows you to define the model center of transformation as well as useful options for orienting the model. FAST OPERATION Simply right click on a part in the graphics window and choose Set Center of Transform and the center of transform will be set to the selected part at the location of your cursor. BASIC OPERATION 1. Click the Pick button on the Tools Icon Bar. 2. Toggle on Pick Center of Transformation. 3. Position the mouse cursor on your model at the desired location for the center of transformation. 4. Press the “p-key” (or the default, middle mouse button click, or whatever mouse button you have set for “Selected Pick Action” in Edit > Preferences > Mouse and Keyboard). Your model will now rotate about the position on the model that you just picked. You can also set or change the exact location of the center of transform by using the Transformation Editor. 1. Click Graphics window transforms icon and select the Transformation editor... 2. Under “Editor Function”, select “Center of Transform”. 3. Set of modify the x,y,z coordinate location of the center of transform in the dialog which comes up. Note: clicking on the ‘Fit’ icon or the Reinitialize transforms icon will reset the center of transform to the geometric center of the visible parts. Page 174 HOW TO PICK CENTER OF TRANSFORMATION ADVANCED A number of other useful options exist for setting both the center of transformation and the orientation to locations of interest. The first is to simply right click on a part location in the graphics window, and choose one of the following options. When this option is chosen, the center of global transformation is positioned at the mouse location on the part. When this option is chosen, the mouse location on the part is centered in the graphics window and the center of transform is set to this mouse location on the part. When this option is chosen, the mouse location on the part is centered in the graphics window and then rotated so the surface normal is parallel to the screen normal. The center of transform is also set to this mouse location on the part. When one of these options is chosen, and the part is colored by a variable, the location of the variable minimum or maximum on this part is centered in the graphics window and the center of global transformation is positioned at this part location. The second set of options are useful if you wish to repeatedly redefine the Center of transform, or to repeatedly Center, or repeatedly perform a Center plus direction; These involve redefining the Pick operation. Then you can repeatedly execute the pick operation on a location on a part in the graphics window. When this Pick operation is chosen and the Pick operation is performed, the center of global transformation is positioned at the Picked point. When this Pick operation is chosen and then the Pick option is performed, the Picked point is centered in the graphics window and the center of transform is set to the Picked point. When this Pick operation is chosen and the Pick operation is performed, the Picked point is centered in the graphics window and then rotated so the surface normal is parallel to the screen normal. The center of transform is also set to the Picked point The third option for setting the center of transform is done using the maximum or the minimum value of a variable in the variable list. Right click on a variable and do one of the following: Page 175 HOW TO PICK CENTER OF TRANSFORMATION When one of these options is chosen, the location of the variable minimum on the selected or all part(s), respectively, is centered in the graphics window and the center of global transformation is positioned at this location. When one of these options is chosen, the location of the variable maximum on the selected or all part(s), respectively, is centered in the graphics window and the center of global transformation is positioned at this location. Page 176 HOW TO SET MODEL AXIS/EXTENT BOUNDS Set Model Axis/Extent Bounds INTRODUCTION EnSight provides model axes and extent bounds to help in orienting your model. BASIC OPERATION Model Directional Triad The model axes help maintain awareness of the principal directions of the reference frame of the model. This is especially helpful during model transformations. It is on by default, but can be toggled on/off by: View > Axis triad visibility > Model Page 177 HOW TO SET MODEL AXIS/EXTENT BOUNDS Model Extent Bounds The model extent bounds also help maintain dimensional information pertaining to the extents of the model. View > Bounds visibility to display the model extents To control the various associated with the model extents: 1. Double click on the desired viewport in the Viewports list panel. 2. Open the Bounds turndown. 3. Modify the various general and/or Axis specific as desired. SEE ALSO User Manual: Part Bounds Attributes Page 178 HOW TO DO VIEWPORT TRACKING Do Viewport Tracking INTRODUCTION EnSight provides the capability to “track” a particular location on the model parts displayed in a viewport. Tracking means that the viewport will be caused to center on the chosen location as time is changed. This is particularly useful for models with changing geometry or applied displacements - allowing one to stay focused on the moving bodies during an animation. BASIC OPERATION Viewports can be displayed with a variety of options: 1. Double click on the desired viewport, (or select the desired viewport(s) and right click -> Edit... 2. Open the View if needed. 3. Select the Tracking option desired, 5. And supply the node or part id appropriately. 6. Change time step, load a transient flipbook, or the like and note that the viewport will stay centered on the location chosen. SEE ALSO How To Define and Change Viewports User Manual: Viewports List Panel Page 179 HOW TO VIEW A VIEWPORT THROUGH A CAMERA View a Viewport Through a Camera INTRODUCTION Global transform mode defines a viewing position and then allows you to transform (translate and rotate) the scene. Camera mode behaves a little differently. In this mode the scene remains as defined and does not move. Instead the scene is viewed through a camera which can be positioned at any location and oriented to look in a specific direction and have a specified "tilt". A viewport can either be in Global transform mode (default) or it can be defined to be viewed through the camera. Local transforms are valid in either mode. In order to view a viewport through a camera (a) the camera position and orientation must be defined, and (b) the viewport must be tied to a camera. BASIC OPERATION Any viewport can be viewed through a camera by 1. From the Transformation icon on the Tools Icon Bar, click Transformation editor... 2. In the resulting Transformation editor (Global Transform) select the viewport you want to view through a camera 3. Select the camera from the Tie viewport(s) to camera pulldown. When set to None the camera model is not used and the Global transformation model is active. If a viewport is being viewed through a camera the interactive transformations (when you click and drag the mouse buttons in the viewport) affect the camera position and orientation. By default the visibility of the cameras are off. There are eight total cameras available that can be manipulated. By default they are positioned at the +/- XYZ axis locations plus two more cameras showing a view of -1 -1 -1 and 1 -1 -1. To position/orient a camera interactively: 1. If you click-drag for a transform in a viewport being tracked by a camera the camera will transform OR 1. In viewports that are not being viewed through a camera you will see a camera icon (if camera visibility is on). You can click-drag the center of the camera to drag the camera to a new position. Clicking/dragging the axis of the camera rotate the camera. OR 1. You can set the Pick option on the tool ribbon to position/orient the camera 2. Place the mouse pointer over the desired location on a part in any of the viewports in the graphics window and press the 'p' key (or whatever mouse button you have set for the "Selected Pick Action" in Edit->Preferences->Mouse and Keyboard). Depending on which pick action was chosen the camera will be positioned or oriented according to the pick. You may pick a spline control point for the Camera origin in which case the camera will position and orient itself according to the spline. Page 180 HOW TO VIEW A VIEWPORT THROUGH A CAMERA To turn on camera visibility: 1. Open the Transformation Editor as described in previous section. 2. Select Editor function > Camera 3. Select the camera(s) you want to turn visible 4. Turn on the Visible toggle. To position/orient a camera interactively from the Camera Transformation editor 1. If the Origin is set to XYZ then the camera is located at the X, Y, Z locations shown here If the Origin is set to Spline then the camera origin will be located on the defined spline If the Origin is set to Node then the camera origin will be located at a specified node id. 2. The camera orientation is controlled by the Camera Z direction and the Camera Up vector. If the Focus is set to Node or XYZ then the Z vector is defined by the Node/XYZ location. To set other camera: 1. The view angle controls the field of view through the camera. A small value simulates a telephoto lens while a large value simulates a wide angle lens 2. The Size sets the size of the camera glyph. Use the up/down arrows to increase/decrease the glyph size by a factor of 2. ADVANCED USAGE 1. If the camera origin is on a spline, zoom operations will move the camera along the spline 2. If the origin or Focus is set to a node number the camera will update if the node changes position. SEE ALSO How To Use the Spline Tool Page 181 HOW TO MANAGE VIEWS Manage Views INTRODUCTION EnSight provides a capability to save and restore viewing parameters for the data model and all viewports. Collectively, this state is known as a View. This dialog portrays Views graphically as buttons with a small picture ("thumbnail") of the currently displayed data rendered with the underlying viewing parameters of that View. With the Views Manager the user can create, save, restore, and apply viewing parameters in a simple point-and-click interaction. BASIC OPERATION The Views Manager dialog is displayed by right clicking on the EnSight graphics area background and choosing View>Create New View OR by selecting the 'Views…' icon on the Tools Icon Bar OR in the main menu Windows>Views Manager... The dialog will look similar to that shown here. (Initially, the Views Manager will not contain any thumbnails of Views.) Click on the ‘New’ Button (or right-click on an empty area of the User Defined Views and select ‘New’) to create a new view using the current orientation and viewing parameters in the main graphics window. The 'Save views' button will display a file browser in which the user can select a directory. The manager will then write each View into a separate EnSight view file (named sequentially 'view0', 'view1', 'view2'...) A maximum of 16 Views can be used. The button 'Restore views' will display a file browser. Select a directory which contains EnSight View files and click the ‘Choose’ button. Any Views found in that directory will be loaded and displayed as a thumbnail button with the currently loaded data. Note that the 'Restore views' button will only look for views created by EnSight 8.2.1(e) or newer. Older Views must be loaded individually via the right-click menu explained later. Note: when restoring, the file browser has a toggle button “Use stored images for thumbnails’ which when set causes the originally stored image in the view to be displayed on the thumbnail instead of the currently loaded image. This can be useful if the current image takes a long time to render. Page 182 HOW TO MANAGE VIEWS Clicking on a standard view will put the main graphics window in that view. It does not create a view in the User Defined Views. Clicking a thumbnail button with the left mouse button will apply that View to the EnSight graphics window. Clicking the mouse's right button will display one of two pop-up menus. If the right mouse button is clicked on top of a thumbnail image, then the menu to the right will be displayed. Clicking the mouse’s right button in the background of the thumbnail drawing area will display this menu. The menu options perform the following actions: Apply Performs the same action as clicking the left mouse button on the selected thumbnail button. Add as keyframe (20) Adds a keyframe with this view with 20 Sub-Frames. Edit keyframe count Pops up a window to query enter number of SubFrames, then adds a keyframe with this view. Replace Replaces the thumbnail button's viewing parameters and image with the currently displayed state of the EnSight graphics window. Update image Replaces the thumbnail button's image with the button's viewing parameters while using the currently loaded data. Delete Deletes the selected thumbnail button and associated viewing parameters. Note that if the View is associated with an EnSight View file, the file will not be deleted. Save as... Displays a file browser where the user can specify both a directory and an alternative file name for the View. New Creates a new View button using the currently displayed model data and all viewports. Update all images Performs the same action as 'Update image' but for all thumbnail buttons. Delete all Performs the same action as 'Delete' but for all thumbnail buttons Restore... Displays a file browser where the user can select an EnSight View file to load. Note that this option allows the user to load all versions of View files. SEE ALSO See the User Manual: Window Functions Page 183 HOW TO USE THE CURSOR (POINT) TOOL Manipulate Tools Use the Cursor (Point) Tool INTRODUCTION EnSight provides a 3D point specification tool called the “Cursor” tool. When visible, the Cursor appears as a 3D cross colored red (X axis), green (Y axis), and blue (Z axis). The Cursor tool is used to supply EnSight with point information, for example to specify the location for a query or the starting point for a particle trace. BASIC OPERATION In many cases, the Cursor tool will automatically turn on when performing some function that requires it. You can also turn the tool on and off manually by toggling the Cursor entry in the Tools menu or by clicking the Cursor toggle on the Tools Icon Bar. The Cursor tool can be placed in three ways: interactively through direct manipulation with the mouse, by positioning the mouse pointer over a part and pressing the ‘p’ key, or precisely positioned by typing coordinates into a dialog. To position the Cursor with the mouse: 1. Place the mouse pointer over the center of the tool. Note that the mouse cursor will change when over the center of the cursor tool. 2. Click (and hold) the left mouse button. 3. Drag the Cursor to the desired location. 4. Release the mouse button. (Undo/Redo button at the bottom of screen can be used to undo/redo the tool transformation) Cursor translation is restricted to the plane perpendicular to your line of sight. If you need to move the cursor in another plane, rotate the model such that the desired translation plane is perpendicular to your new line of sight. (Note that the Cursor may not exactly track the location of the mouse pointer.) To position the Cursor on a part with the ‘p’ key: 1. Turn on the Cursor tool as specified above. Then Click the Pick button on the tool ribbon. 2. Select “Pick cursor tool location” from the pop-up menu. 3. Place the mouse pointer over the desired location on a part in the graphics window and press the ‘p’ key (or whatever mouse button you have set for the “Selected Pick Action” in Edit > Preferences > Mouse and Keyboard). The middle mouse button is usually defaulted to perform the pick action as well. Page 184 HOW TO USE THE CURSOR (POINT) TOOL To set the Cursor by specifying coordinates: 1. Open the Transformation Editor dialog by clicking Tool location editor... from the Tool Locations settings icon. 2. If the Transformation Editor is not set to Cursor Tool, set it by Editor function-> Tools. 3. Enter the desired coordinates into the X, Y, and Z type-ins and hit return. You can also move the Cursor by setting the desired axis of translation in the About Axis field and manipulating the slider bar. In this case, the values in the “Scale Settings” section control the sensitivity and limit of the slider action. Note that you can also use this dialog to view (rather than set) the position of the Cursor since the X,Y,Z numeric values always update to reflect the current location. If you are positioning the Cursor interactively with the mouse, the values will update when the mouse button is released. Shortcut While Part Quick Action icons are available (indicating that one is dealing with parts), right click on the cursor tool. You can hide the tool (make it invisible), edit it (open the Transformation Editor), or use the tool to quickly do something such as query a variable over time, or emit a particle streamline trace. ADVANCED USAGE After a model has been loaded, the initial location of the Cursor is set to the “look-at” point – the geometric center of all visible geometry. The coordinates of the Cursor are specified with respect to the default frame: frame 0. However, if you have created additional frames, you can position the Cursor relative to the origin of a different frame. This is accomplished by selecting the desired frame in the “Which Frame” list in the Transformation Editor dialog. You can easily reset the position of the Cursor tool to the default. See How To Reset Tools and Viewports for more information. Positioning a 3D tool with a 2D device (the mouse) can be difficult. Multiple viewports are sometimes helpful in positioning tools since you can see the tool simultaneously from multiple vantage points. SEE ALSO Other tools: Line, Plane, Box, Cylinder, Sphere, Cone, Surface of Revolution. See the How To article on Frames for additional information on how frames effect tools. User Manual: Tools Menu Functions Page 185 HOW TO USE THE LINE TOOL Use the Line Tool INTRODUCTION EnSight provides a 3D linear specification tool called the “Line” tool. When visible, the Line tool appears as a (typically white) line with an axis system at the center point and an arrow head on one end. The Line tool is used to supply EnSight with a linear specification, for example to specify the location for a line clip or a “rake” for a particle trace. BASIC OPERATION In many cases, the Line tool will automatically turn on when performing some function that requires it. You can also turn the tool on and off manually by toggling the Line entry in the Tools menu or by clicking the Line toggle on the Tools Icon Bar. The Line tool can be placed or manipulated in three ways: interactively through direct manipulation of tool “hotpoints” with the mouse, by positioning the mouse pointer over a part and typing the ‘p’ key, or precisely positioned by typing coordinates into a dialog and/or rotating the tool about its axis. With surface normal options the line remains normal. To move the Line with the mouse: 1. Place the mouse pointer over the center of the tool. 2. Click (and hold) the left mouse button. 3. Drag the Line to the desired location. 4. Release the mouse button. To stretch the Line with the mouse: 1. Place the mouse pointer over one of the Line endpoints. 2. Click (and hold) the left mouse button. 3. Drag the endpoint to the desired location. 4. Release the mouse button. To rotate the line with the mouse: 1. Place the mouse over the end of one of the tool axes. 2. Click (and hold) the left mouse button. 3. Drag the axis endpoint until the line has rotated as desired. 4. Release the mouse button. Note selecting the X axis endpoint will rotate about the Y axis, selecting the Y axis endpoint will rotate about the X axis, and selecting the Z axis endpoint will rotate in a general fashion about the centerpoint. Note that the mouse pointer will change when it is over a hotpoint. (Undo/Redo button can be used to undo/redo the tool transformation) Line moving and stretching is restricted to the plane perpendicular to your line of sight. If you need to move the Line in another plane, rotate the model such that the desired translation plane is perpendicular to your new line of sight. (Note that the Line will not exactly track the location of the mouse pointer.) Page 186 HOW TO USE THE LINE TOOL To position the Line on a part with the ‘p’ key: 1. Click the Pick button on the Tools Icon Bar. 2. Select “Pick line tool location” from the pop-up menu. (Then pick either by 2 points or 2nodes.) 3. In the Graphics Window, place the mouse pointer on a part over the desired location for the first Line endpoint and press the ‘p’ key (or whatever mouse button you have set for the “Selected Pick Action” in Edit > Preferences > Mouse and Keyboard). The middle mouse button is usually defaulted to perform the pick action as well 4. Move the mouse pointer to the desired location for the second Line endpoint and again press the ‘p’ or middle mouse key/button. When “Using 2 points” the endpoints will be place at the pick location. When “Using 2 nodes”, the endpoints will be placed at the nearest node and the ids of those nodes will be saved, such that the line tool will continue to be attached to these nodes - even if they move. To set the Line by specifying coordinates: 1. Open the Transformation Editor dialog by clicking Tool location editor... from the Tool Locations settings icon.. 2. If the Transformation Editor is not set to Line Tool, set it by Editor function-> Tools.. 3. Enter the desired coordinates for the endpoints into the X, Y, and Z fields and press return. 3. Alternatively, you can enter the node ids for two nodes in the model. This has the effect of keeping the line tool tied to the two nodes - even if they move over time. Note the Length field - which is discussed in Advanced Usage below. Rotation, translation or scaling of the tool can also be accomplished by selecting the appropriate transform action icon and the desired axis, and then manipulating the slider. In this case, the values in the “Scale Settings” section control the sensitivity and limit of the slider action. Note that you can also use this dialog to view (rather than set) the position of the Line since the X,Y,Z numeric values always update to reflect the current location. If you are positioning the Line interactively with the mouse, the values will update when the mouse button is released. Page 187 HOW TO USE THE LINE TOOL Shortcut Right click on a part in the graphics window and choose Place Tool, and then choose to place the line tool normal to a surface, or tangential to a surface at the location of the mouse pointer. Right click on center selection point of the line tool (while Part Quick Action icons are available indicating that parts can be edited),. You can do quick x or y rotates, hide the tool, or open the transformation editor. You can also use this right click to quickly create a line clip, query a variable, or do a particle streamline trace with the line tool as the emitter. ADVANCED USAGE After a model has been loaded, the initial location of the Line center is set to the “look-at” point – the geometric center of all visible geometry and parallel to the X axis. The coordinates of the Line are specified with respect to the default frame: frame 0. However, if you have created additional frames, you can position the Line relative to the origin of a different frame. This is accomplished by selecting the desired frame in the “Which Frame” list in the Transformation Editor dialog. You can easily reset the position and orientation of the Line tool to the default. See How To Reset Tools and Viewports for more information. Positioning a 3D tool with a 2D device (the mouse) can be difficult. Multiple viewports are sometimes helpful in positioning tools since you can see the tool simultaneously from multiple vantage points. To find the distance between two nodes that have IDs, you can use the calculator function Dist2Nodes. However, to find the distance between two nodes on different parts, or between two nodes if one or both don’t have IDs, use the line tool. Use the Pick Line Tool Location-> Using 2 nodes option as shown above, then move the cursor near the first node location, hit ‘p’ key, move to the second node location and hit the ‘p’ key, then open up the transformation editor and in the transformation editor menu, Edit>Tools>Line you’ll find the length of the line tool which is the distance between those two points. SEE ALSO Other tools: Cursor, Plane, Box, Cylinder, Sphere, Cone, Surface of Revolution. See the How To article on Frames for additional information on how frames effect tools. User Manual: Tools Menu Functions Page 188 HOW TO USE THE PLANE TOOL Use the Plane Tool INTRODUCTION EnSight provides a plane specification tool called the “Plane” tool. When visible, the Plane tool appears as a (typically white) rectangular region with an axis located at the center point. The Plane can also have a semitransparent “filled” center that enhances visibility of the region. The Plane tool is used to supply EnSight with a planar specification, for example to specify the location for a planar clip or a “net” for a particle trace. BASIC OPERATION In many cases, the Plane tool will automatically turn on when performing some function that requires it. You can also turn the tool on and off manually by toggling the Plane entry in the Tools menu (e.g. Tools > Plane) or by clicking the Plane toggle on the Tools Icon Bar. The Plane tool can be placed in three ways: interactively through direct manipulation of tool “hotpoints” with the mouse, by positioning the mouse pointer over a part and typing the ‘p’ key, or precisely positioned by typing coordinates into a dialog. To move the Plane with the mouse: 1. Place the mouse pointer over the center of the tool. 2. Click (and hold) the left mouse button. 3. Drag the Plane to the desired location. 4. Release the mouse button. To stretch (or scale) the Plane about the plane’s center with the mouse: 1. Place the mouse pointer over any of the corners. 2. Click (and hold) the left mouse button. 3. Drag the corner to the desired location. 4. Release the mouse button. Z Y X To rubber-band a corner of the plane tool (while the opposite corner stays fixed), do the same as above, but hold the Ctrl key down as you click and drag a corner. To rotate the Plane tool with the mouse: 1. Place the mouse pointer over one of the axis labels (X, Y, or Z). 2. Click and drag to the desired orientation. Grabbing the X (Y) label will rotate around the plane’s Y (X) axis. Grabbing the Z label enables free rotation about the Plane’s center point. Note that the mouse pointer will change when it is over a hotpoint. (Undo/Redo button at the bottom of screen can be used to undo/redo the tool transformation) Plane moving is restricted to the plane perpendicular to your line of sight. If you need to move the Plane in another plane, rotate the model such that the desired translation plane is perpendicular to your new line of sight. (Note that the Plane will not exactly track the location of the mouse pointer.) Page 189 HOW TO USE THE PLANE TOOL To position the Plane on a part (by specifying three points) with the ‘p’ key: 1. Turn on the Plane tool as noted above. Then Click the Pick button on the tool ribbon. 2. Select “Pick plane tool location > Using 3 points” from the pop-up menu. 3. In the Graphics Window, place the mouse pointer on a part and press the ‘p’ key (or whatever mouse button you have set for the “Selected Pick Action” in Edit > Preferences > Mouse and Keyboard). 4. Repeat two more times. Note that you are not specifying corner points – just three unique points. You can also position the Plane Tool by picking three nodes (this differs from the above where 3 points in space are used - in that the node ids of the three closest nodes are found and saved). The Plane orientation will be changed such that it lies in the plane of the three nodes chosen, and will continue to lie in the plane of these three nodes, even if they change location. To position the Plane (by specifying three nodes): 1. Turn on the Plane tool as noted above, then click the Pick button on the tool ribbon. 2. Select “Pick plane tool location > Using 3 nodes” from the pop-up menu. 3. In the Graphics Window, place the mouse pointer on a part, near a desired node and press the ‘p’ key (or whatever mouse button you have set for the “Selected Pick Action” in Edit > Preferences > Mouse and Keyboard). 4. Repeat two more times. Note that you are not specifying corner points – just three unique nodes. If you open the Transformation Editor, it should open in Plane Tool mode assuming you just performed the operations above. If not, change the Editor function to Tools->Plane. You can see the id of the three nodes that you have chosen. Page 190 HOW TO USE THE PLANE TOOL You can also position the Plane Tool by tracing out a line on the screen. The Plane orientation will be changed such that it is both parallel to the specified line and perpendicular to the screen. To position the Plane (by specifying a line): 1. Turn on the Plane tool as indicated earlier, then Click the Pick button on the tool ribbon. 2. Select “Pick plane tool location > Using 2 points” from the pop-up menu. 3. Move the mouse pointer into the Graphics Window and press the ‘p’ key. Place the pointer over the desired starting point. Click and hold the left mouse button as you trace out the desired line. 4. Release the mouse button. You can also position the Plane Tool by picking an origin, then a point out on the normal. This takes two picking operations to accomplish. To position the Plane (by picking origin, then point on normal): 1. Turn on the Plane tool as indicated earlier, then Click the Pick button on the tool ribbon. 2. Select “Pick plane tool location > Origin” from the pop-up menu. 3. Move the mouse pointer into the Graphics Window and place the pointer over the desired origin of the plane tool - then press the ‘p’ key. 4. Select “Pick plane tool location > Normal” from the pop-up menu. 5. Place the pointer over a point along the normal vector (from the origin of the plane tool) - then press the ‘p’ key. Page 191 HOW TO USE THE PLANE TOOL To set the Plane by specifying parameters exactly: 1. Turn on the Plane tool, then open the Transformation Editor from the tools ribbon. 2. If necessary, set the editor to Plane mode by Editor Function > Tools > Plane. 3. Enter the desired coordinates for the origin, the components of the normal vector, and the x and y size, and press return. – OR – 3. Enter the id of three nodes and press return. – OR – 3. Enter the plane equation parameters (Ax + By + Cz = D) and press return. – OR – 3. Enter the desired coordinates for three corner points into the X, Y, and Z fields and press return. You can also rotate, translate, or scale the Plane by selecting the desired transform action, setting the desired axis and manipulating the slider bar. In this case, the values in the “Scale Settings” section control the sensitivity and limit of the slider action. Note that you can also use this dialog to view (rather than set) the position of the Plane since the X,Y,Z numeric values always update to reflect the current location. If you are positioning the Plane interactively with the mouse, the values will update when the mouse button is released. The Undo/Redo button at the bottom of screen can be used to undo/redo the tool transformation. Shortcut If you right click on center selection point of the line tool you can do quick x or y rotates, increase or decrease the size of the tool, hide the tool, or open the transformation editor. You can also use this right click to quickly create a plane clip, or do a particle streamline trace with the plane tool as the emitter. ADVANCED USAGE After a model has been loaded, the initial location of the Plane center is set to the “look-at” point – the geometric center of all visible geometry and parallel to the X-Y plane. The coordinates of the Plane are specified with respect to the default frame: frame 0. However, if you have created additional frames, you can position the Plane relative to the Page 192 HOW TO USE THE PLANE TOOL origin of a different frame. This is accomplished by selecting the desired frame in the “Which Frame” list in the Transformation Editor dialog. You can easily reset the position and orientation of the Plane tool to the default. See How To Reset Tools and Viewports for more information. By default the plane tool will be displayed in line mode. You can display the tool as a transparent plane by changing the setting for Edit > Preferences... View - Plane Tool Filled. Positioning a 3D tool with a 2D device (the mouse) can be difficult. Multiple viewports are sometimes helpful in positioning tools since you can see the tool simultaneously from multiple vantage points. SEE ALSO Other tools: Cursor, Line, Box, Cylinder, Sphere, Cone, Surface of Revolution. See the How To article on Frames for additional information on how frames effect tools. The Plane Tool is also used to specify the location of the clip plane for Auxiliary Clipping. User Manual: Tools Menu Functions Page 193 HOW TO USE THE BOX TOOL Use the Box Tool INTRODUCTION EnSight provides a hexahedron shaped specification tool called the “Box” tool. When visible, the Box tool appears as a (typically white) wireframe box icon with a triad at one corner. The Box tool is used to supply EnSight with a 3D volume specification, for example to specify the location for a box clip or cut. BASIC OPERATION In many cases, the Box tool will automatically turn on when performing some function that requires it. You can also turn the tool on and off manually by toggling Tools > Box. The Box tool can be placed in two ways: interactively through direct manipulation of tool “hotpoints” with the mouse or precisely positioned by typing coordinates into a dialog. To move the Box Tool with the mouse: 1. Place the mouse pointer over the origin corner of the tool. 2. Click (and hold) the left mouse button. 3. Drag the Box to the desired location. 4. Release the mouse button. To stretch the Box Tool with the mouse: 1. Place the mouse pointer over any of the corner points (except the origin). 2. Click (and hold) the left mouse button. 3. Drag the endpoint to produce the desired stretched size. 4. Release the mouse button. To rotate the Box Tool with the mouse: 1. Place the mouse pointer over the center of the x, y, or z edge (not at the endpoints). 2. Click and drag to rotate. Note: Selection of the X axis edge will rotate the box about the Y axis edge. Selection of the Y axis edge will rotate about the X axis edge. Selection about the Z axis edge will rotate about the origin. Note that the mouse pointer will change when it is over a hotpoint (if you are in Part or Frame mode). (Undo/Redo button at the bottom of screen can be used to undo/redo the tool transformation) Box tool moving and stretching is in 3 space. (Note the Box may not exactly track the location of the mouse pointer.) Page 194 HOW TO USE THE BOX TOOL To set the Box Tool by specifying coordinates: 1. Open the Transformation Editor dialog by clicking on the Tools icon then selecting the Tool location editor.... option. 2. If the dialog is not set for Box tool (look at the title of the dialog) then switch the dialog to the Box tool by Editor Function > Tools > Box. 3. To place and size, enter the desired coordinates for the Origin corner and the length in each of the directions, and press return. 4. To orient, enter the components of the orthogonal axis orientation vectors You can also rotate, translate or stretch the Box Tool by selecting the desired Transform Action, setting the desired axis, and then manipulating the slider bar. For these tool actions, the values in the “Scale Settings” section control the sensitivity and limit of the slider action. Note that you can also use this dialog to view (rather than set) the position of the Box Tool since the numeric values always update to reflect the current location, size, and orientation. If you are positioning the Box Tool interactively with the mouse, the values will update when the mouse button is released. Shortcut While Part Quick Action icons are available (indicating that parts can be edited), right click on center selection point of the Box tool. You can do quick hide the tool, or open the transformation editor. ADVANCED USAGE After a model has been loaded, the initial location of the Box Tool is centered about the “look-at” point – the geometric center of all visible geometry - and is aligned with the model axis system. The coordinates of the Box are specified with respect to the default frame: frame 0. However, if you have created additional frames, you can position the Box Tool relative to the origin of a different frame. This is accomplished by selecting the desired frame in the “Which Frame” list in the Transformation Editor dialog. You can easily reset the position and orientation of the Box tool to the default. See How To Reset Tools and Viewports for more information. Positioning a 3D tool with a 2D device (the mouse) can be difficult. Multiple viewports are sometimes helpful in positioning tools since you can see the tool simultaneously from multiple vantage points. Page 195 HOW TO USE THE BOX TOOL SEE ALSO Other tools: Cursor, Line, Plane, Cylinder, Sphere, Cone, Surface of Revolution. See the How To article on Frames for additional information on how frames effect tools. User Manual: Tools Menu Functions Page 196 HOW TO USE THE CYLINDER TOOL Use the Cylinder Tool INTRODUCTION EnSight provides a cylindrical specification tool called the “Cylinder” tool. When visible, the Cylinder tool appears as a (typically white) cylinder icon with a line running down the central axis. An axis triad will be at the center of the central axis line. The Cylinder tool is used to supply EnSight with a cylindrical specification, for example to specify the location for a cylinder clip or cut. BASIC OPERATION In many cases, the Cylinder tool will automatically turn on when performing some function that requires it. You can also turn the tool on and off manually by toggling Tools > Quadric > Cylinder. The Cylinder tool can be placed in two ways: interactively through direct manipulation of tool “hotpoints” with the mouse or precisely positioned by typing coordinates into a dialog. To move the Cylinder with the mouse: 1. Place the mouse pointer over the center of the tool. 2. Click (and hold) the left mouse button. 3. Drag the Cylinder to the desired location. 4. Release the mouse button. To stretch the Cylinder with the mouse: 1. Place the mouse pointer over either of the center line’s endpoints. 2. Click (and hold) the left mouse button. 3. Drag the endpoint to the desired location. 4. Release the mouse button. To change the Cylinder radius with the mouse: 1. Place the mouse pointer over the center ring. 2. Click and drag to the desired radius. 3. Release the mouse button. To rotate the Cylinder with the mouse: 1. Place the mouse pointer over the end of one of the central axes. 2. Click and drag until desired rotation is accomplished. 3. Release the mouse button. Note: Selecting the x axis will rotate about the Y axis. Selecting the y axis will rotate about the X axis. Selecting the z axis will rotate in general about the axis origin. Note that the mouse pointer will change when it is over a hotpoint (if in Part or Frame mode). (Undo/Redo button at the bottom of screen can be used to undo/redo the tool transformation) Page 197 HOW TO USE THE CYLINDER TOOL Cylinder moving and stretching with the mouse is restricted to the plane perpendicular to your line of sight. If you need to move the Cylinder in another plane, either rotate the model such that the desired translation plane is perpendicular to your new line of sight or use the other modes for manipulating the tool. (Note that the Cylinder will not exactly track the location of the mouse pointer.) To set the Cylinder by specifying coordinates: 1. Open the Transformation Editor dialog by clicking Tool location editor... from the Tool Locations settings icon. 2. Select Editor Function > Tools > Cylinder if the panel is not set to Cylinder Tool. 3. Enter the desired coordinates for the Origin (location of the center point), the Axis (direction vector), and the Radius and press return. You can also rotate, translate, or scale the Cylinder by setting the desired transform action and axis and manipulating the slider bar. In this case, the values in the “Scale Settings” section control the sensitivity and limit of the slider action. Note that you can also use this dialog to view (rather than set) the position of the Cylinder since the numeric values always update to reflect the current location. If you are positioning the Cylinder interactively with the mouse, the values will update when the mouse button is released. ADVANCED USAGE After a model has been loaded, the initial location of the Cylinder center is set to the “look-at” point – the geometric center of all visible geometry and aligned with the X axis. The coordinates of the Cylinder are specified with respect to the default frame: frame 0. However, if you have created additional frames, you can position the Cylinder relative to the origin of a different frame. This is accomplished by selecting the desired frame in the “Which Frame” list in the Transformation Editor dialog. You can easily reset the position and orientation of the Cylinder tool to the default. See How To Reset Tools and Viewports for more information. Positioning a 3D tool with a 2D device (the mouse) can be difficult. Multiple viewports are sometimes helpful in positioning tools since you can see the tool simultaneously from multiple vantage points. SEE ALSO Other tools: Cursor, Line, Plane, Box, Sphere, Cone, Surface of Revolution. See the How To article on Frames for additional information on how frames effect tools. User Manual: Tools Menu Functions Page 198 HOW TO USE THE SPHERE TOOL Use the Sphere Tool INTRODUCTION EnSight provides a spherical specification tool called the “Sphere” tool. When visible, the Sphere tool appears as a (typically white) sphere icon with a line running down the central axis. An axis triad will be at the center of the central axis line. The Sphere tool is used to supply EnSight with a spherical specification, for example to specify the location for a sphere clip or cut. BASIC OPERATION In many cases, the Sphere tool will automatically turn on when performing some function that requires it. You can also turn the tool on and off manually by toggling Tools > Quadric > Sphere. The Sphere tool can be placed in two ways: interactively through direct manipulation of tool “hotpoints” with the mouse or precisely positioned by typing coordinates into a dialog. To move the Sphere with the mouse: 1. Place the mouse pointer over the center of the tool. 2. Click (and hold) the left mouse button. 3. Drag the Sphere to the desired location. 4. Release the mouse button. To stretch the Sphere with the mouse: 1. Place the mouse pointer over either of the center line’s endpoints. 2. Click (and hold) the left mouse button. 3. Drag the endpoint to the desired location. 4. Release the mouse button. To rotate the sphere with the mouse: 1. Place the mouse pointer over the end of one of the central axes. 2. Click and drag until desired rotation is accomplished. 3. Release the mouse button. Note: Selecting the x axis will rotate about the Y axis. Selecting the y axis will rotate about the X axis. Selecting the z axis will rotate in general about the axis origin. Note that the mouse pointer will change when it is over a hotpoint. (Undo/Redo button at the bottom of screen can be used to undo/redo the tool transformation) Sphere moving and stretching is restricted to the plane perpendicular to your line of sight. If you need to move the Sphere in another plane, either rotate the model such that the desired translation plane is perpendicular to your new line of sight or use the other modes for manipulating the tool. (Note that the Sphere will not exactly track the location of the mouse pointer.) Page 199 HOW TO USE THE SPHERE TOOL To set the Sphere by specifying coordinates: 1. Open the Transformation Editor dialog by clicking Tool location editor... from the Tool Locations settings icon. 2. Select Editor Function > Tools > Sphere if the panel is not set to Sphere tool. 3. Enter the desired coordinates for the Origin (location of the center point), the Axis (direction vector), and/or the Radius. if you are going to create a developed surface from a spherical clip, you need to be aware of how the spherical axis orientation affects this operation. (See How To Create a Developed Surface) You can also rotate, translate or scale the Sphere by setting the desired transform action and axis and manipulating the slider bar. In this case, the values in the “Scale Settings” section control the sensitivity and limit of the slider action. Note that you can also use this dialog to view (rather than set) the position of the Sphere since the numeric values always update to reflect the current location. If you are positioning the Sphere interactively with the mouse, the values will update when the mouse button is released. ADVANCED USAGE After a model has been loaded, the initial location of the Sphere center is set to the “look-at” point – the geometric center of all visible geometry and aligned with the X axis. The coordinates of the Sphere are specified with respect to the default frame: frame 0. However, if you have created additional frames, you can position the Sphere relative to the origin of a different frame. This is accomplished by selecting the desired frame in the “Which Frame” list in the Transformation Editor dialog. You can easily reset the position and orientation of the Sphere tool to the default. See How To Reset Tools and Viewports for more information. Positioning a 3D tool with a 2D device (the mouse) can be difficult. Multiple viewports are sometimes helpful in positioning tools since you can see the tool simultaneously from multiple vantage points. SEE ALSO Other tools: Cursor, Line, Plane, Box, Cylinder, Cone, Surface of Revolution. See the How To article on Frames for additional information on how frames effect tools. User Manual: Tools Menu Functions Page 200 HOW TO USE THE CONE TOOL Use the Cone Tool INTRODUCTION EnSight provides a conical specification tool called the “Cone” tool. When visible, the Cone tool appears as a (typically white) cone icon with a line running down the center axis. The Cone tool is used to supply EnSight with a conical specification, for example to specify the location for a conical clip or cut. BASIC OPERATION In many cases, the Cone tool will automatically turn on when performing some function that requires it. You can also turn the tool on and off manually by toggling Tools > Quadric > Cone. The Cone tool can be placed in two ways: interactively through direct manipulation of tool “hotpoints” with the mouse or precisely positioned by typing coordinates into a dialog. To move the Cone with the mouse: 1. Place the mouse pointer over the center of the tool. 2. Click (and hold) the left mouse button. 3. Drag the Cone to the desired location. 4. Release the mouse button. To stretch the Cone with the mouse: 1. Place the mouse pointer over either of the center line’s endpoints. 2. Click (and hold) the left mouse button. 3. Drag the endpoint to the desired location. 4. Release the mouse button. To change the Cone radius with the mouse: 1. Place the mouse pointer over the base ring. 2. Click and drag to the desired radius. To rotate the Cone with the mouse: 1. Place the mouse pointer over the end of one of the central axes. 2. Click and drag until desired rotation is accomplished. 3. Release the mouse button. Note: Selecting the x axis will rotate about the Y axis. Selecting the y axis will rotate about the X axis. Selecting the z axis will rotate in general about the axis origin. Note that the mouse pointer will change when it is over a hotpoint. (Undo/Redo button at the bottom of screen can be used to undo/redo the tool transformation) Cone moving and stretching is restricted to the plane perpendicular to your line of sight. If you need to move the Cone in another plane, either rotate the model such that the desired translation plane is perpendicular to your new line of sight or use the other modes for manipulating the tool. (Note that the Cone will not exactly track the location of the mouse pointer.) Page 201 HOW TO USE THE CONE TOOL To set the Cone by specifying coordinates: 1. Open the Transformation Editor dialog by clicking Tool location editor... from the Tool Locations settings icon. 2. Select Editor Function > Tools > Cone if the panel is not set to Cone tool. 3. Enter the desired coordinates for the Origin (location of the cone tip), the Axis (direction vector), and the conical half angle (in degrees) and press return. You can also rotate, translate or scale the Cone by setting the desired transform action and axis and manipulating the slider bar. In this case, the values in the “Scale Settings” section control the sensitivity and limit of the slider action. Note that you can also use this dialog to view (rather than set) the position of the Cone since the numeric values always update to reflect the current location. If you are positioning the Cone interactively with the mouse, the values will update when the mouse button is released. The clip/cut from the cone tool will extend infinitely from the tip outwards unless you choose Extent>Finite in the pulldown. ADVANCED USAGE After a model has been loaded, the initial location of the Cone center is set to the “look-at” point – the geometric center of all visible geometry and aligned with the X axis. The coordinates of the Cone are specified with respect to the default frame: frame 0. However, if you have created additional frames, you can position the Cone relative to the origin of a different frame. This is accomplished by selecting the desired frame in the “Which Frame” list in the Transformation Editor dialog. You can easily reset the position and orientation of the Cone tool to the default. See How To Reset Tools and Viewports for more information. Positioning a 3D tool with a 2D device (the mouse) can be difficult. Multiple viewports are sometimes helpful in positioning tools since you can see the tool simultaneously from multiple vantage points. SEE ALSO Other tools: Cursor, Line, Plane, Box, Cylinder, Sphere, Surface of Revolution. See the How To article on Frames for additional information on how frames effect tools. User Manual: Tools Menu Functions Page 202 HOW TO USE SURFACE OF REVOLUTION TOOL Use Surface of Revolution Tool INTRODUCTION EnSight provides a surface of revolution specification tool called the “Revolution” tool. When visible, the Revolution tool appears as a (typically white) icon with a line running down the center axis. By default, the distance of five planar points from the central axis defines the profile curve of the revolution surface (although you can add points up to a maximum of ten). The Revolution tool is used to supply EnSight with a surface of revolution specification, for example to specify the location for a revolution clip or cut. BASIC OPERATION In many cases, the Revolution tool will automatically turn on when performing some function that requires it. You can also turn the tool on and off manually by toggling Tools > Quadric > Revolution. The Revolution tool can be placed in two ways: interactively through direct manipulation of tool “hotpoints” with the mouse or precisely positioned by typing coordinates into a dialog. To move the Revolution tool with the mouse: 1. Place the mouse pointer over the center of the tool. 2. Click (and hold) the left mouse button. 3. Drag the tool to the desired location. 4. Release the mouse button. To reorient the Revolution tool with the mouse: 1. Place the mouse pointer over either of the center line’s endpoints. 2. Click (and hold) the left mouse button. 3. Drag the endpoint to achieve the desired orientation. 4. Release the mouse button. To rotate the Revolution tool with the mouse: 1. Place the mouse pointer over the end of one of the central axes. 2. Click and drag until desired rotation is accomplished. 3. Release the mouse button. Note: Selecting the x axis will rotate about the Y axis. Selecting the y axis will rotate about the X axis. Selecting the z axis will rotate in general about the axis origin. Note that the mouse pointer will change when it is over a hotpoint. (Undo/Redo button at the bottom of screen can be used to undo/redo the tool transformation) Revolution tool moving and stretching is restricted to the plane perpendicular to your line of sight. If you need to move the Revolution tool in another plane, either rotate the model such that the desired translation plane is perpendicular to your new line of sight or use the other modes to manipulate the tool. (Note that the Revolution tool will not exactly track the location of the mouse pointer.) Page 203 HOW TO USE SURFACE OF REVOLUTION TOOL To set the Revolution tool by specifying coordinates: 1. Open the Transformation Editor dialog by clicking Tool location editor... from the Tool Locations settings icon. 2. If the dialog is not set to Revolution Tool, Select Editor Function > Tools > Revolution. The dialog displays the profile curve as a series of connected line segments with stars positioned at the curve points. You can edit the curve by clicking and dragging the points or by manually entering distance-radius pairs. You can also add or delete points. As you make changes, the tool in the graphics window updates interactively. To edit points with the mouse: 1. Click on the point and drag to the desired location. To add points (up to a maximum of 10): 1. Click Add Point. 2. Move the mouse pointer into the curve window and click the left mouse button in the location of the desired new point. Clicking Delete Point will remove the currently selected point. To manually edit a point: 1. Click the point (to select it) in the curve window or click the desired point in either the Distance or Radius lists. 2. The distance and radius of the selected point are shown in the text fields below each list. 3. Edit the point’s distance and/or radius value and press return. To edit the position or orientation: 1. Enter the desired coordinates for the Origin (location of the axis center point) or Axis (direction vector) and press return. You can also rotate, translate, and scale the Revolution tool by setting the desired transform action and axis and manipulating the slider bar. In this case, the values in the “Scale Settings” section control the sensitivity and limit of the slider action. Note that you can also use this dialog to view (rather than set) the position of the Revolution tool since the numeric values always update to reflect the current location. If you are positioning the Revolution tool interactively with the mouse, the values will update when the mouse button is released. Page 204 HOW TO USE SURFACE OF REVOLUTION TOOL ADVANCED USAGE After a model has been loaded, the initial location of the Revolution tool center is set to the “look-at” point – the geometric center of all visible geometry and aligned with the X axis. The coordinates of the Revolution tool are specified with respect to the default frame: frame 0. However, if you have created additional frames, you can position the Revolution tool relative to the origin of a different frame. This is accomplished by selecting the desired frame in the “Which Frame” list in the Transformations dialog. You can easily reset the position and orientation of the Revolution tool to the default. See How To Reset Tools and Viewports for more information. Positioning a 3D tool with a 2D device (the mouse) can be difficult. Multiple viewports are sometimes helpful in positioning tools since you can see the tool simultaneously from multiple vantage points. SEE ALSO Other tools: Cursor, Line, Plane, Box, Cylinder, Sphere, Cone. See the How To article on Frames for additional information on how frames effect tools. Page 205 HOW TO USE THE SELECTION TOOL Use the Selection Tool INTRODUCTION EnSight provides a 2D screen selection tool called the “Selection” tool or “Region Selector”. It is different than most of the other tools - in that it is not used to create other parts. It is basically used for selection purposes. For example, it can be used to select a screen region to zoom in to. It can be used in the part selection process. And it can be used for the element blanking operation. BASIC OPERATION Zoom to Region To use the selection tool to perform a zoom operation: 1. Turn on the Selection Tool via the icon on the Tools Icon Bar. You manipulate the tool by: - clicking and dragging on any corner to rubberband the tool. - clicking and dragging on the center of the tool to move it. Note: the dotted box indicates the aspect ratio of the graphics window and is used for zoom operations. 2. Click the Zoom symbol, at the upper left of the tool, to cause the zoom to occur. Note: the Undo button is useful if you want to undo the last transformation. Page 206 HOW TO USE THE SELECTION TOOL Element Blanking The selection tool can be used in the element blanking operation.: 1. Select the part(s) on which to do element blanking. 2. Click on the Selection tool icon to turn on the tool. 3. Position the tool as desired. 4. Click on the element blanking symbol at the upper left of the tool. Note, in order for this to work, the Element blanking allowed toggle needs to be on (the default). To undo the blanking, click the Clear or Clear all parts button. Results in the following: Page 207 HOW TO USE THE SELECTION TOOL Part Selection To use the tool in the part selection process: 1. Turn on the selection tool and manipulate its location/size until it overlaps the parts you whish to select. 2. Right click the selection tool and “Select Parts” Note that the selected parts will now be highlighted in the parts list. SEE ALSO How To Do Element Blanking How To Rotate, Zoom, Translate, Scale User Manual: Tools Menu Functions Page 208 HOW TO USE THE SPLINE TOOL Use the Spline Tool INTRODUCTION Splines can be used for (a) the path of a camera, (b) the path of a clip plane, and (c) the input to a distance vs. variable query. Splines can be defined and edited as well as saved and restored from disk. Further, the splines have such as visibility, line width, and color in order to more easily select and manipulate them. The splines are defined as piece-wise cubic. The spline is thus always guaranteed to pass through the control points which you define. The definition of the control points can come from a part (such as a particle trace perhaps), be picked in the graphics window, be input via x/y/z coordinates, or from the position of the cursor tool. BASIC OPERATION There are several ways to define a spline and its control points: To create a spline via picking on surfaces: 1. Click the Pick button on the Tools Icon Bar 2. Select "Pick spline control point" from the pop-up menu and select the required option. 3. In the Graphics Window, place the mouse pointer on a part near a desired location and press the "p" key (or whatever mouse button you have set for the "Selected Pick Action" in Edit>Preferences->Mouse and Keyboard). A spline control point marker will appear where you pressed the "p" key (if you chose “Using surface pick” or at the center of the part if you chose “At center of picked part”). If more than one control point has been created you will also see the spline being constructed. Page 209 HOW TO USE THE SPLINE TOOL To create a spline via the Transformation editor dialog 1. Open the Transformation Editor dialog from the Tools Icon Bar by selecting “Transformation editor...” from the transform icon pulldown. 2. Select Editor Function > Tools > Spline 3. Select New to create a new spline and if you wish, rename it by editing the Description 4. If you want to create control points from all of the coordinates of a 1D part, select the part in the part list and then select Create from selected part(s). OR 4. If you know the exact location for the control point select New (at cursor) then edit the X/Y/Z fields to reflect the correct control point location. OR 4. Select an existing control point in the Points list. Select the Copy button. Then select the line in the Points list after which you want to insert a new point and select the Paste button. To edit the control points of a spline: 1. Move the mouse pointer to a control point you wish to move in the Graphics Window. Click and drag the control point. OR 1. Select the point from the Points list and edit it via the XY/Z fields OR 1. Select the point(s) you wish to edit and select the Offset.. button 2. In the resulting pop-up enter a delta x/y/z value to add to all of the selected points. Control point(s) can be deleted by: 1. Select one or more points in the Points list 2. Select the Delete button To edit the spline 1. The Visible toggle will turn the spline on/off in all viewports (there are no per-viewport controls) 2. You may choose to show the control points. If visible then the size of the control point glyph is controlled here. 3. Adjust the Line width and Color here 4. Invert the spline (to use it in reverse). 5. Load from file (see Spline Control Point File Format) Page 210 HOW TO USE THE SPLINE TOOL ADVANCED USAGE The spline by definition starts at the first control point (spline value of 0.) and ends at the last control point (spline value of 1). If the spline is used for camera, clip plane path, or distance vs. variable query the direction along the spline is always in the positive direction. If you wish to use the spline in reverse you simply Invert the spline. SEE ALSO Create Clip Splines Page 211 HOW TO USE BATCH Use Batch Miscellaneous INTRODUCTION EnSight can be run three ways. 1. First it can be run interactively by entering values into the various input fields and/or clicking on various icons in the graphical user interface (GUI). Each of the user actions, such as reading data, creating parts, and saving images and movies, is sequentially stored in EnSight in the form of journaling commands. The user can save these commands into a command file (.enc file). 2. The second way to run EnSight is to start run the command file saved in #1. This can be done from the command line such as (the last parameter is the name of the file you saved): ensight102 -p file.enc or you can play the command file from within EnSight by choosing File>Command from the top menu, then click the play button and select the file.enc file you wish to execute. EnSight will perform the actions (reading data, creating parts, saving images and movies) in your current EnSight session, sequentially in the order journaled in the command file. If specified, the same images and movies that were generated interactively will be rewritten in the folder specified in the command file. 3.The third way to run EnSight is to execute the commands in the command file without a GUI and without a graphics screen, i.e., running in “batch”. All of the actions still happen in EnSight (without a GUI and without visible graphics) and images and movies appear in the folder exactly as specified in the command file. In fact, to be useful, the command file must save something that you can later take a look at. The command to execute EnSight in batch is: ensight102 -batch -p file.enc Which will execute the graphics using the hardware graphics resources if available. Please see the Basic Operation section on instructions on how to run in software rendering mode. When you interact with EnSight, commands are generated for each action. To see these commands, do a File>Command as shown in the image to the right. The command window dialog will pop up and the Execution Tab will be active and the latest commands will show up in the command window. File>Save>Commands from the Session will save all the commands from the start of EnSight. Or, click on the Record Toggle and start saving commands to a command file. All subsequent commands are saved to the designated command file. Page 212 HOW TO USE BATCH BASIC OPERATION Keep in mind that command files are created by interactively executing EnSight and then saving the command language to a file. To apply your commands to a new dataset, you would edit the command file in a text editor and change the name of the input dataset and the output files (such as images) and then execute the modified command file in batch. Command language is not flexible: it does not allow programming or looping or decision making. It is, however, possible to convert the command language file to a Python file to add programming constructs if necessary. Command language processing does not always handle errors gracefully. Usually the command file processing will simply stop when an error is found. But it is possible to issue commands to EnSight that can cause terminal errors. d Example Suppose you have 5 similar solver runs. Suppose that you wish to do the same postprocessing to each dataset and run them overnight and show up in the morning and look at images and movies. The first step is to create the command file. Load one of the solver runs into an interactive session of EnSight and create the visuals and outputs you desire. Then save the commands to a file. Next, make four copies of the command file and edit each one for input and output files. Now run each of your jobs in batch as described above. Note that if your batch job is expected to run overnight on your remote Linux system you might consider using the linux nohup command. If you don’t have computing resources to handle all the jobs simultaneously then submit them sequentially. If you are on a shared resource and licenses are limited, your EnSight batch process will fail if it is unable to acquire a license token. To work around this, consider using one of the following EnSight startup modifiers: -token_try_again, token_wait_for, or -token_wait_until which will allow your batch EnSight processes to wait for an available EnSight license token to become available (see Command Line Start-up Options). Direct OpenGL, bypass X-Server If the your machine has X-server issues (e.g. problems starting up the X-server) or issues with the DISPLAY environmental variable, and you have an nVidia graphics card with driver 358.16 or later, and are on Linux, you can start EnSight up with the -egl option. EnSight will use embedded OpenGL (which bypasses the X-server and makes direct calls to the graphics card, which must be present) as follows. ensight102 -egl -batch -p file.py In a multi-GPU system the first GPU will be used by default. To choose a GPU, set the environment variable CEI_EGL_GPU to a value between 0 and the number of GPUs minus 1. Software Rendering If the batch machine has inadequate or lacks a graphics card you can execute EnSight in a software mode which will utilize the CPU to generate the graphics. The execution will be significantly slower but assuming you save only a few images may have little impact on the overall run time. To use software rendering in batch, run EnSight with a -X as follows: ensight102 -X -batch -p file.enc Alternatively -glsw is interpreted the same as -X Page 213 HOW TO USE BATCH Advanced Concepts Image Size There are two resolutions you need to keep in mind when setting up a batch run of EnSight. First is the window size when you are running EnSight. Second is the size of any images that you save. In order for the images saved in your batch run to capture the same imagery it is important that the image be the same aspect ratio (width vs. height) as the image generated when you created the command file interactively in EnSight. Lacking the same aspect ratio it is possible that the images saved in batch mode may cut off some portion of your scene. When saving an image in EnSight you can specify the “Window Size”. If this is set to “Current View” the image will be saved at the current resolution of the graphics window. By default, the “current” window size when you execute in batch mode is 1280x720 (width x height). The “current” window size when you execute EnSight interactively is variable, i.e., the window can be resized. See below for instructions on determining the current window size and aspect ratio. The “current” window size in batch can be specified by setting the size on the start line such as: ensight102 -batch 1024 768 -p file.enc It it much better to save images by specifying the resolution of the images, i.e., either setting the “Window Size” to a user defined size or using one of the predetermined resolutions such as “HD 1080p”. This prevents the issue of trying to match the window size and forcing the user to both (a) know the resolution, and (b) specify it on the start line. If you set “Window size” to Current view you must specify the resolution when you start EnSight in batch mode if you are going to match the images you saved interactively. The resolution is not required to be the same, but keeping the aspect ratio is important. It is better to save images using an option other than Current view. If you wish to know what the current resolution and aspect ratio you can pull up a user defined tool as follows: To precisely control the graphics screen size during your interactive session, 1. Click on the tool box icon at the top, 2. Open the utilities folder, and double click on the Resize rendering window tool, 3. Adjust or note the window size and aspect ratio. Page 214 HOW TO USE BATCH Python EnSight can also run EnSight Python scripts in batch exactly the same as command files. ensight102 -p file.py EnSight Python has all of the advantages of the Python programming language (variables, looping, if/then, and a number of python modules) as well as the capabilities of the EnSight journaling language in the ensight Python module. For example, instead of editing five command files, which are custom edited for each solution dataset, you can create a single EnSight python file which loops through a list of the dataset filenames and executes the desired commands and auto creates the output image and animations. LIMITATIONS EnSight cannot be run in batch mode using context files (.ctx). Batch mode can only be run using command files (.enc) or EnSight Python files (.py). However, a command file may restore a context file. SEE ALSO Record and Play Command Files Python EnSight module interface Command Line Start-up Options Page 215 HOW TO USE BATCH Page 216 HOW TO USE KEYBOARD SHORTCUTS Use Keyboard Shortcuts INTRODUCTION EnSight has a number of keyboard shortcuts that are documented in the User Manual and in this Manual. But they are scattered all over the Manuals. This is a consolidation of all the commands in one reference location. Note below that the alphanumeric keys are capitalized for emphasis, but that the actual key is the lower case key. You do not need to press the shift key when it says ‘P’. Simply press the ‘p’ key. BASIC OPERATION Macros (default - can be edited by users) Advanced users of EnSight often find themselves performing repetitive tasks. EnSight’s macro facility lets you save a sequence of commands and then assign a keyboard key to those commands such that they are executed when the key is pressed. Macros are useful in full screen mode. Note: macros only work when the mouse cursor is in the graphics window. (see How to Define and Use Macros). V - toggle selected part visibility S - toggle global part highlighting Contextual keyboard keys A - Press the ‘a’ key to cancel saving an animation (“abort”) P - The pick key. Manually change what you are picking using the pick mode pulldown. The default is to pick a part. Simply hover over a part and press the ‘p’ key and the part will be selected. Or, choose another pick mode. Change the mode to Pick cursor tool location, and move the mouse over a location on a part and press the ‘p’ key and the cursor will appear at that location on the part. When Interactive Probe Query is set to ‘Surface pick’, the ‘p’ key will override the selected pick mode and will place the query probe on the surface of a part. If Interactive Probe Query is not set to ‘Surface pick’ then the ‘p’ key will use the pick mode. Part tagging Use this shortcut to quickly select parts. See the Advanced section of How to Select Parts Alt-# (where # is any number from 0-9) - tag selected parts Ctrl-# - select parts tagged with this number Keyboard Ctrl-Mouse combinations For the mac, these use the command button. Ctrl-Left button - Rotation about the screen Z-axis Ctrl-Middle click (or Right+Left buttons) - Zoom Page 217 HOW TO USE KEYBOARD SHORTCUTS Ctrl-Right button - Pan Changing the view See How to Rotate, Zoom, Translate, Scale for details on these shortcuts. F1 - Rotate about screen X-axis by 45 degrees F2 - Rotate about screen Y-axis by 45 degrees F3 - Rotate about screen Z-axis by 45 degrees Ctrl-F1/F2/F3 - Rotates -45 degrees F4 - Spin the graphics window - with mouse motion F5 - Front view F6 - Side view F7 - Top view F8 - Return to previous view before F5/F6/F7 was pressed F9 - Full screen (F9 or Esc to go back) Ctrl-F5/F6/F7 - Save current view to this key 3D stereo commands If you have a stereo graphics card and are running EnSight in stereo mode, there are some function key shortcuts that are helpful. For more information see How to Enable Stereo Viewing. F10 - Increase stereo separation angle F11 - Decrease stereo separation angle F12 - Toggle 3D stereo on/off Ctrl-F12 - Swap 3D stereo left/right eyes Menu Shortcuts (seen in top menu) You can see this shortcuts in the menu drop downs. For example, see the File>Save menu has a Ctrl-S beside the command, showing the shortcut. Some of the more useful menu short cuts are as follows. Ctrl-O - Open results dialog Ctrl-P - Print image dialog Ctrl-Q - Quit EnSight Ctrl-S - Save Session file Ctrl-Shift-S - Save commands from this session Ctrl-C - Copy image to clipboard Ctrl-F - Open the Feature Edit Dialog Page 218 HOW TO USE RIGID BODY MOTION Use Rigid Body Motion INTRODUCTION If the geometry is not static then it must be updated every timestep. EnSight geometry can be updated either by updating the entire geometry (the coordinates and the connectivity) every timestep, OR by updating only the coordinates (connectivity is unchanged) every timestep. For either type of geometry, updating it every timestep by reading the data from disk is time consuming. However, if the motion of the geometry can be characterized as rigid body motion (where a single rotational axis, a single rotational angle, and a single translation describe the motion of the entire part, with no connectivity changes) then the entire update of the coordinates can occur using CPU and memory, which can be orders of magnitude faster than reading the coordinate updates from disk. Further, since the orientation and location of every point on the geometry is an equation that is a function of time, the delta time resolution can be as fine as needed for detailed calculations or as coarse as allowed for visualization. EnSight implements rigid body motion on the EnSight Server on a per part basis in both Case Gold format and using the EnSight User Defined Reader API. When rigid body motion is applied to a part, the part is then considered transient geometry with it’s own timeline. Case Gold implements rigid body through two rigid body files, one of which is referenced directly and the other indirectly from the .case file. For formats that have a custom reader, the User Defined Reader API has it’s own routines for informing the Server and supplying the rigid body parameters. The implementation and the use will be discussed below. DETAILS Case Gold EnSight Case Gold uses two files for the rigid body implementation. The EnSight Case Gold file references a file called the EnSight Rigid Body Rotation File (.erb) that contains per-part scaling, offsets, initial rotation as well as the Euler Parameter file (.eet) filename (see EnSight Rigid Body File Format for details and for examples). The Euler Parameter file contains center of gravity transformations as well as Euler parameters which fully describe the Euler Rotation and Translation rigid body motion (see Euler Parameter File Format for details and for an examples). Basically, at each timestep, each part is first translated then rotated using the offset and initial rotations found in the EnSight Rigid Body File, then it is rotated according to the Euler angles about the Euler axis and finally it is translated according to the translation parameters. User Defined Reader If the part by part rigid body transformation data exists within your solver data file, then simply read it in and supply them to the appropriate EnSight user defined routines (see Quick Index of 2.0 Library Routines). USERD_rigidbody_existence - Turns on the rigid body feature USERD_rigidbody_values - Called part by part to get the initial translation and rotation parameters, as well as the Euler rotation parameters and the final translation values. It is expected that these values are available from the solver data file or that they can be calculated in the reader from the rigid body transforms found in the solver data file. USAGE Conversion If your rigid body parameters do not match our Euler implementation then you will need to convert your format. This can be done by converting your data files to our EnSight Rigid Body File format and our Euler Parameter File format if you are using Case Gold. Or it can occur inside your reader if you are using a custom reader. Page 219 HOW TO USE RIGID BODY MOTION Example Rigid Body Tool Use the EnSight Rigid body motion tool if you have data in the form of a Case Gold file and part(s) undergoing simple rigid body rotational motion and/or you need an example of the EnSight Rigid Body File (.erb) and Euler Parameter File (.eet) formats. This tool prompts you for rotational input values and will create the two rigid body motion files (.erb and .eet), and a new case file by adding the .erb and .eet filenames to the case file. It then reloads your model using this new case file to demonstrate the rigid body motion. 1. Click on the Tool icon at the top of the EnSight Tools 2. In the Visualize folder, double click the Rigid body motion tool. 3. Fill in the GUI, taking special note that the speed is in rotations per minute and the time is in seconds. EXAMPLE IMPLEMENTATIONS STL & OP2 Both the EnSight STL and Nastran OP2 formats, in addition to reading the native formats directly (.stl and .op2, respectively), each include the ability to read a customized variant case file that contains a list of native format files and the associated EnSight Euler format filename. The STL reader calls this an exec file (.xct), see the STL Reader section for details. The Nastran OP2 calls this case file a MOP file (.mop). This "executive file" (.stl or .mop) allows either reader to handle multiple native files simultaneously, as well as optionally allowing them to be transformed by one or more rigid body Euler files. Note that the rigid body transformations in the Euler file must be created outside the STL format, and outside of the Nastran solver. Abaqus ODB analytical rigid surfaces Abaqus has a concept of rigid surfaces that do not have elements and are modeled only analytically as extruded or rotated surfaces (plates or cylinders) that move as rigid, non deformable bodies over time according to transformations in the .odb data file. The Abaqus ODB reader creates these rigid entities first as lines using EnSight line elements in the User Defined Reader API (which can be extruded in a separate operation in EnSight into surfaces). These lines will translate and rotate according to the parameters in the odb file. The user can then manually use the EnSight Extrude option or can use a python tool included with EnSight to properly extrude these line parts into cylindrical or planar surfaces according to their design (for details, see the ABAQUS reader section). Fluent and Star Export Case Gold For data with part(s) rotating at a steady state, both Fluent and Star export this data as a steady state geometry with an assigned rotational rate value. Their native postprocessors, which are aware of this, can then reproduce the transient orientation of the fan at any given time. A pseudo transient state is created from steady state files. This Page 220 HOW TO USE RIGID BODY MOTION allows the geometry to be written out only once, but the transient orientation of the fan can be reproduced at any arbitrary level of fineness of time in the native post-processor. Unfortunately, when users export their data from the solver into EnSight Case Gold, this native awareness is lost. The pseudo transient state does not exist to update the fan's transient orientation in time. Thus you can have effects like streamline traces which impact the non-moving fan and just stop. Some effort is required to reproduce the effects of the native solver postprocessor in this case. Basically, rigid body can be used. EnSight Rigid Body and Euler Parameter files must be created and referenced in an updated Case Gold file, and the pathline trace option should be used instead of streamline traces. If your solution has been solved in an implicitly rotating reference frame, and you want to either visualize the motion, or correctly produce particle traces through the domain, then you will need to utilize both EnSight Case Gold Format files, as well as utilizing the Rigid Body Tool (Click on the toolbox icon at the top and open Visualize -- > Rigid Body Motion). This will generate both of the two rigid body files as well as modify the case file to reference the new information. Two critical decisions you must make when running the tool are a) number of steps, and b) total time to rotate. The number of steps chosen should be small enough to reflect the courant number of the grid + velocity so that the change between timesteps maintains reasonable changes in grid location and velocity values so that continuous pathline integration is numerically accurate. Choosing too small of a timestep will slow the calculation and animation time, while too large of a timestep will result in errors in pathline calculation. Models with either higher rotational speeds, finer grids, or higher velocity regions should be setup with small timesteps. The Total Time should be chosen so that you have rotated one repeatable sector, given the rotational speed (fixed, and specified), and the number of steps. Since the rotation is cyclical, only one repeatable increment in fan rotation is necessary, and then EnSight can cyclically repeat that increment N number of times as below, to allow the relatively low speed upstream flow sufficient number of fan blade cycles to reach to the relatively high speed fan blade and pass through successfully.. To repeat a time series for N cycles: 1. Click on the more button on the time controls 2. Change the number of cycles VARIABLES Vector variables are rotated and translated with the geometry through time using the rigid body transformations. There can be an exception to this rule for vector variables created in the EnSight calculator which are based purely on scalar variables with no geometric influence. Known predefined functions in the calculator with this attribute, such as MakeVect, are actually handled correctly. But if a user defines his own vector using the match capabilities of the calculator, it may not be transformed. PERIODICITY AND RIGID BODY MOTION COMBINED When a model part is originally loaded, any rigid body transforms defined for that part’s geometry are applied. When a model vector variable is first activated, the appropriate vector transforms for periodicity, and rigid body, are applied. When periodicity is first turned on, the new instances get their geometry and vector variables transformed at that time. Commonly, neither or only one of these types of transformations will be defined and used in a model at the same time. When that is the case, there is no issue with the order that the transformations are applied in EnSight. However, when both types of transformations (periodic and rigid body) are defined, the order they are applied becomes important. There is an example of such below. Page 221 HOW TO USE RIGID BODY MOTION The default order of application is periodic then rigid body - which is good for when rigid body is used to move any or all of the parts throughout time. If one instead needs to have a rigidbody then periodic order - which is good for when rigidbody is used to assemble a model from different orientations or coordinate systems, then you can specify the order via one of the following methods. Case Gold Simply add the “do_first” designator to the end of the rigid_body line in the GEOMETRY section of the casefile as follows (See EnSight Gold Casefile Format ). FORMAT type: ensight gold GEOMETRY model: rbv.geo rigid_body: rbv.erb . . . User Defined Reader do_first For other readers then simply set the environment variable ENSIGHT_DO_RB_FIRST . On Linux, setenv ENSIGHT_DO_RB_FIRST 1 Note, that the order specified will be honored when time is changed and the model geometry and vector variables are updated. Namely, for default (periodic then rigidbody) order: 1st Any changing geometry will be loaded from the file or reader. 2nd Any model variables will be loaded from the files or reader. 3rd The periodic transformations will be applied to model geometry and model vector vars. 4th The rigidbody transformations will be applied to model geometry and vector variables. 5th Created parts and created variables will be recreated according to the dependency tree. If you explicitly specify the rigidbody to be first, by one of the methods described above, the process is the same except that the 3rd and 4th steps are reversed. Page 222 HOW TO USE RIGID BODY MOTION Illustration Given a square in the xy plane as shown below, with a rigid body transformation defined as 90 degree rotation about the y axis. And a periodic transform defined as 90 degree rotation about the z axis (3 instances): 1. Shown is the initial square geometry. 2. Shown is the geometry with only the rigid body transformation described above. 3. Shown below is the geometry with only the periodic transformation applied. 4. Shown below is the geometry with periodic then rigid body (default order). 5. Shown below is the geometry with rigid body first, then periodic. ADVANCED If you have static geometry that moves in a rigid body fashion, then rigid body motion will greatly speed up the updating of the geometry. It has not yet been mentioned, but if you have transient geometry, you can also implement EnSight rigid body motion. You will lose the speed-up because the transient geometry still needs to update coordinates and/or connectivity using disk reads, but this is still possible. SEE ALSO Page 223 HOW TO SELECT FILES Select Files INTRODUCTION Many operations in EnSight (such as loading data) require that you specify a file. EnSight uses a standard file open dialog that lets you quickly search through directories to find the desired file. BASIC OPERATION By default, the File Open dialog opens with the directory from which the EnSight client was started as the current directory. The following shows the basic components of the File Open dialog: The Look in pulldown displays the current directory. Note that the parent of the current directory is shown ending with “..” (standard UNIX nomenclature). To change to a directory, double-click it. Standard up, and listing icons can be used. The File type pulldown controls the listing of files in the Files list. You can filter what is shown based on the selection here The Files list displays the list of subdirectories and files contained in the current directory (possibly modified by the wildcard in the File type filter field). To make a file the current Selection, click it. To accept a file and close the dialog, double-click it. The File field contains the full path name of the file currently selected in the Files list. This is the file that will be chosen if OK is clicked. Change the selection either by clicking a file in the Files list or editing the field directly. Pressing return will accept the Selection and close the dialog. Click to accept the current Selection and close the dialog. Click to cancel the selection and close the dialog. Page 224 HOW TO USE ENSIGHT WITH WORKBENCH Use EnSight with Workbench INTRODUCTION EnSight can be run as a stand-alone application, or as a component from within ANSYS Workbench. This document describes the use of EnSight from within the WorkBench environment. It covers activating the EnSight WorkBench Extension, linking EnSight to WorkBench solutions and using EnSight to open the WorkBench solution. This document assumes that Ansys Workbench has been installed on your Windows or Linux machine and that you wish to use EnSight within this framework. It does not attempt to teach WorkBench, nor EnSight usage. Quick Startup Simple Example EnSight Session within ANSYS Workbench Detailed view of the EnSight ANSYS Workbench Interface File locations within WorkBench EnSight Differences within ANSYS WorkBench EnSight Limitations within ANSYS WorkBench Advanced Usage: Design Point Session Using EnSight QUICK STARTUP Launch WorkBench To launch ANSYS Workbench on Windows, click the Start menu, then select All Programs > ANSYS 19.0 > Workbench 19.0. To launch ANSYS Workbench on Linux, open a command line interface, type the path to “runwb2” (for example, “/ansys_inc/v190/Framework/bin/Linux64/runwb2”), then press Enter. The ANSYS Workbench interface has a Toolbox list on the left side to make it easy to choose the tool set that will enable you to solve particular types of problems. Tools are chosen from the Toolbox list and dragged onto the Project Schematic in order to use them. Tools are then linked together in a workflow to accomplish tasks. Supporting features such as Properties and Messages provide orienting information. These features and the status indicators in the system cells guide you through the completion of your workflow. In order to see EnSight in the Toolbox, the EnSight WorkBench extension must be activated. Activating EnSight as a WorkBench Extension If the EnSight extension is not in the list of Component Systems in the Toolbox Workspace, choose, from the WorkBench top menu, Extensions>Manage Extensions... which will pop up the Extensions Manager dialog (see below). Toggle on the EnSight Extension, and then right click on EnSight and choose Load as Default (as shown below). This will load the EnSight application extension when you start up WorkBench in the future. Page 225 HOW TO USE ENSIGHT WITH WORKBENCH Linking EnSight to WorkBench solutions To link the EnSight Extension to a solution result, drag the EnSight extension from the Component Systems list onto the Project Schematic. A red, square landing pad will appear in the WorkBench Project Schematic space to give you guidance. Now drag the Solution onto the Results under EnSight to link the Solver Solution to EnSight’s Results. Once the link is created, right click on the EnSight Results and choose Update. Page 226 HOW TO USE ENSIGHT WITH WORKBENCH Using EnSight to open WorkBench solution(s) The EnSight Results will show a check box when they are properly updated. Now double-click on the EnSight Results or Right-click > Edit... which will startup EnSight and load the Solution data for interactive use. Page 227 HOW TO USE ENSIGHT WITH WORKBENCH SIMPLE EXAMPLE ENSIGHT SESSION WITHIN ANSYS WORKBENCH This walkthrough loads a simple, sample ANSYS Workbench analysis (creating the analysis is beyond the scope of this document) and then adds the ANSYS EnSight extension and attaches the mechanical and fluid analysis workflow to EnSight and then opens the solutions using EnSight. This example uses the EnSight FLUENT Direct Reader to load the Fluent fluid flow analysis and the EnSight ANSYS Reader to load the Ansys Mechanical analysis results, in order to demonstrate, step by step, an EnSight WorkBench workflow using multiple, simultaneous, heterogeneous solutions. 1. Now, Launch WorkBench, then open a project containing both fluid and structural solutions. 2. If you have not already done this, Activating EnSight as a WorkBench Extension must be done here so that you can see EnSight in the Toolbox. Then, restart WorkBench. 3. Upon restarting WorkBench, you should see the EnSight extension under the Component Systems pulldown in the Toolbox Workspace on the left side. Page 228 HOW TO USE ENSIGHT WITH WORKBENCH 4. Load the WorkBench project using File>Open. Now drag the EnSight extension from the Component Systems list onto the Project Schematic. A red, square landing pad will appear in the WorkBench Project Schematic space to give you guidance. 5. Now an EnSight system is established in your Project Schematic and ready to be linked up. Page 229 HOW TO USE ENSIGHT WITH WORKBENCH 6. Now drag the Fluid Flow Solution on to the Results under EnSight to link the Solver output to EnSight’s input. 7. Now, EnSight is linked to the solution. Right click on the green arrows in the EnSight Results to update the link. Important: Any time your result has the double arrows, then it needs to be updated. A check box means your results are current. Updating EnSight Results prepares the data to be loaded. Page 230 HOW TO USE ENSIGHT WITH WORKBENCH 8. The EnSight results will show a check box when they are properly updated. Now double-click on the EnSight Results or Right-click > Edit... which will startup EnSight and load the Solver Solution for interactive use. 9. The EnSight session will start up with only the Fluent solution loaded as shown below. Note that only the Fluent results were linked up to EnSight, so only the Fluent results are loaded. This portion of the manual assumes that you know how to use EnSight from here. If not, from the top menu of EnSight, Help> Getting Started Manual. Page 231 HOW TO USE ENSIGHT WITH WORKBENCH 10. Within EnSight’s menu, File>Quit to exit EnSight. Now, back in the WorkBench environment, in the Project Schematic area, let’s also add the structural solution to the EnSight process. Drag the structural solution onto the EnSight results section as shown below. 11. Note that you now have two links into the EnSight results section, as shown below but EnSight’s Results show the double arrow indicating they need to be updated. Double arrows indicate that this needs updating Page 232 HOW TO USE ENSIGHT WITH WORKBENCH 12. Now, with the new link, again, notice that there is no longer a check box on the EnSight results. We need to update the EnSight results. On the EnSight Results, Right-click > Update. 13. Now let’s open EnSight and load the Fluid Solution and the Structural Solution. Right-click > Edit or double-click on the EnSight Results section as shown below to start up EnSight and load the solution data: Page 233 HOW TO USE ENSIGHT WITH WORKBENCH 14. EnSight now opens with both Fluid and Structural solution results (see Load Multiple Datasets (Cases)). 15. Now, set the EnSight properties in the WorkBench Properties View to enable the Beta feature in EnSight to see Units (units are labels only, more details are discussed later in the Properties View). To adjust EnSight properties, select the EnSight Results (click on the EnSight Results) and in the top menu, View>Properties. Toggle on Advanced EnSight Features; now adjust the EnSight Advanced properties (shown below) as described. Close the properties view by right-clicking on the Title Bar, and choosing Close. If EnSight is running, quit EnSight and then double click on the EnSight Results to reload the Solution with EnSight using the Beta features that you have toggled on. Page 234 HOW TO USE ENSIGHT WITH WORKBENCH 1. Select EnSight Results 2. From the top menu, View>Properies 3. Toggle on Advanced EnSight Features to expose other toggles. Toggle on Enable Beta Features. Page 235 HOW TO USE ENSIGHT WITH WORKBENCH 16. Color by variables from each of the two solutions simultaneously. This is the view below (with units shown in the legend titles), that you will see if you have enabled Beta features. If you don’t see units in the legend bar, go back to step 15 and then make sure you have quit and restarted EnSight after you enable the Beta features. 17. Quit EnSight when you are done with your simultaneous postprocessing of the two solutions. 18. Consider saving your updated Workbench project, and then exit Workbench. Important Saving a WorkBench project enables you to re-open the project on the machine that originally created it. To make the project available on another machine, you need to use File > Archive to create a project archive. To open the project on a different machine, run File > Restore Archive on that machine. Page 236 HOW TO USE ENSIGHT WITH WORKBENCH DETAILED VIEW OF THE ENSIGHT ANSYS WORKBENCH INTERFACE The previous section stepped through a sample analysis and provided a broad overview of using EnSight within the WorkBench workflow. What follows is a more detailed look at the WorkBench GUI as it relates to EnSight. Some of the content is repeated for the advanced WorkBench user who skips the sample analysis and wants to dive into the details. Reminder, if the EnSight extension is not shown in the list of Component Systems in the Toolbox Workspace then it must be loaded as a WorkBench extension as follows. Choose, from the WorkBench menu, Extensions>Manage Extensions... which will pop up the Extensions Manager dialog. Toggle on the EnSight Extension, and then right click on EnSight and choose Load as Default. Now, quit WorkBench. Restart WorkBench and verify that EnSight appears in the Toolbox under the Component Systems pulldown. Page 237 HOW TO USE ENSIGHT WITH WORKBENCH After choosing to Load as Default, the EnSight as a WorkBench extension, and then restarting WorkBench, you should now see EnSight in the Component Systems pulldown in the Toolbox Workspace as follows: Now let’s look at the WorkBench GUI in more detail. Shown below are the components of WorkBench. WorkBench has a top-level Menu Bar, and a lower Status Bar and one or more Project Tabs. Each Project Tab has a Toolbar, with a number of Workspace Views, some of which are shown below: the Toolbox Workspace, Properties View, Files View and the Project Schematic Workspace. The Project Schematic is where Systems from the ToolBox are assembled together into a Workflow. Some of this will be discussed in this section as it pertains to EnSight. Menu Bar Status Bar Workspace Tab(s) Project Schematic Toolbar Toolbox Files View Properties System Page 238 HOW TO USE ENSIGHT WITH WORKBENCH Views You control which views are displayed by choosing View from the top menu and choosing the view you want to display. Note that the Toolbox and the Project Schematic are displayed by default. For the following View, first select a cell, then choose one of the following other views from the top level View Menu, and the workspace corresponding to the selected cell will appear: Toolbox Customization, Files View, Properties View, Messages View, Progress View, Sidebar Help View. If you minimize a view (on the Title Bar, Right-click>Minimize), it appears as a tab in the View Bar and the check box is cleared from the View menu. For more details on workspaces and tabs, see Tabs within Workbench in the Workbench User's Guide and Views within Tabs in the Workbench User's Guide. Now, let’s look at several Workspaces and Views. 1. Select the EnSight Results, 2. From the top menu bar, View>Files 3. Pops up the dockable/undockable Files Workspace. Page 239 HOW TO USE ENSIGHT WITH WORKBENCH Toolbox Workspace The list on the left is the Toolbox; by default viewing is toggled on for the Toolbox. The Toolbox contains four pulldowns containing systems available to you: Analysis Systems, Component Systems, Custom Systems, and Design Exploration, which are discussed below. 1. Analysis Systems The Analysis Systems pulldown contains applications that transform input and solve particular types of problems, often resulting in transformed output. These systems can be thought of as of the kind of solution that is desired packaged with the Solver. For example Eigenvalue Buckling system is a modeling, a meshing, a modal frequency buckling analysis and a visualization process packaged with Ansys Mechanical. Similarly, the Fluid Flow (Fluent) system contains tools for creating the geometry, performing the meshing, setting up the solver, using the solver to derive the solution, and viewing the fluid flow results. 2. Component Systems The Component Systems pulldown contains extensions that are loaded into WorkBench that also solve particular types of problems similar to the Analysis Systems. In particular, you will see the EnSight Extension under this pulldown. EnSight is available to input solution results and to interactively Analyze, Visualize and Communicate these solution results and create postprocessing output such as tables, movies, images, or data files. Page 240 HOW TO USE ENSIGHT WITH WORKBENCH 3. Custom Systems The Custom Systems pulldown contains customized applications that combine multiple analysis systems. For example, the FSI: Fluid Flow (Fluent) > Static Structural system combines ANSYS Fluent and the Mechanical application to perform a Fluid Structure Interaction (FSI) analysis. 4. Design Exploration The Design Exploration pulldown contains systems that enable you to see how changes to parameters affect the performance of the system. Note: Which systems are shown in the Toolbox depends on the licenses that exist on your system. You can hide systems by enabling View > Toolbox Customization and clearing the check box beside the name of the system you want to hide. To begin using a system, drag it into the Project Schematic area. Project Schematic Workspace The Project Schematic enables you to manage the process of your work flow; by default viewing of the Project Schematic is on. It keeps track of your files and shows the actions available as you work on a project. At each step you can select the operations that process or modify the case you are solving. When you move a system from the Component Systems toolbox to the Project Schematic, you will see a system similar to the following: System Coordinates System Type Cell State System Name Each white cell represents a step in solving a problem. Right-click the cell to see what options are available for you to complete a step. For example, you would select Edit in the example above on an EnSight Results cell to launch EnSight and load solution data, or Properties to open the EnSight Properties table to enable optional EnSight capabilities. Load Results using EnSight Toggle on Advanced EnSight Features to expose other options. Page 241 HOW TO USE ENSIGHT WITH WORKBENCH Toolbox Customization View>Toolbox Customization will view the Tool Customization Workspace in a tabular form, as shown below. This allows you to customize the Physics, Solver Type and Analysis Type of the particular application or extension according to your workflow needs as shown below. Right-click>Minimize on the Toolbox Customization title bar, to reduce the workspace table down to a tab below the Toolbox list. Right-Click>Close to close the Toolbox Customization workspace. Page 242 HOW TO USE ENSIGHT WITH WORKBENCH Files View The Files view (View>Files) shows the files that are in the selected cell of a given System. The project files are updated constantly, and any “save” operation from a component will save all files associated with the project. ANSYS Workbench associates data with system cells. This data may be stored in different ways, including as part of the ANSYS Workbench project file or as separate files.When files are generated, they appear in the Files view. This view can be used to identify which files are associated with each cell. On the title bar, Right-click>Minimize or Right-click>Close to minimize this file Workspace to a tab or to close it, respectively. Important Although the Files View reveals the data files that make up a project, you should not attempt to manipulate these files directly, as project data management will proceed unaware of your changes and with unpredictable results. Page 243 HOW TO USE ENSIGHT WITH WORKBENCH Properties View The Properties view is a table whose entries describe the status of a system. These entries vary between system cells and are affected by the status of the cell. Some entries in the Properties area are changeable; others are for information only. To display the Properties for a particular cell, right-click the cell and select Properties, or click on the cell to select it, and in the top menu, View>Properties. Note, once the Properties view is open, simply selecting another cell in the Project Schematic will display its properties. Right click on the Toolbar and choose Close to close the window, or minimize to reduce it to a tab. EnSight Example For example to adjust EnSight properties, select the EnSight Results (click on the EnSight Results) and in the top menu, View>Properties. Toggle on the Advanced EnSight Features toggle to see the available properties and their settings. The Use Software Rendering toggle is available in the rare instance that EnSight is unable to adjust its rendering mode due to graphics incompatibilities; toggle this on to force EnSight to use internal software rendering in order to manually bypass hardware or software graphics card rendering problems. The Enable Beta Features toggle exposes two features under development: units labeling (for details, see EnSight Limitations within ANSYS WorkBench) and the Nexus report interface. 1. Select EnSight Results Toggle 2. From the top menu, View>Properies 3. Toggle on Advanced EnSight Features to expose other toggles. Messages View The Messages view shows the messages to the user. For example, click on the EnSight Results in the Project Schematic to select it, and in the top menu, View>Messages. On the title bar, Right-click>Close to Close the Message view workspace. Page 244 HOW TO USE ENSIGHT WITH WORKBENCH Progress View The Progress view shows the progress to the user. For example, click on the EnSight Results in the Project Schematic to select it, and in the top menu, View>Progress. On the title bar, Right-click>Close to Close the Message view workspace. Sidebar Help View In the top menu, View>Sidebar Help. Click on this link. In addition to having a visual layout that guides you through completing your project, you can also access Sidebar Help by pressing F1 while the mouse focus is anywhere on ANSYS Workbench. Sidebar Help is a dynamically generated set of links to information appropriate for helping you with questions you have about any of the tools and systems you currently have open. Shortcuts (Context Menu Options) You can access commonly used commands by right-clicking in most areas of ANSYS Workbench. These commands are described in Context Menus in the Workbench User's Guide. Page 245 HOW TO USE ENSIGHT WITH WORKBENCH FILE LOCATIONS WITHIN WORKBENCH EnSight has default locations for file operations within the ANSYS Workbench environment. To view a file within your OS, simply select the Results cell of interest, View>Files to see the Files View, and then Right-click>Open Containing Folder . Warning: Do not move WorkBench files around! ENSIGHT DIFFERENCES WITHIN ANSYS WORKBENCH Note that EnSight behaves somewhat differently in a WorkBench session than when run stand-alone. Many of these changes are largely cosmetic, but that can be confusing initially. • The default part colors are different. EnSight in WorkBench utilizes a more muted color palette with an improved default lighting configuration. • The mouse button graphics view manipulations have been modified to align better with the other Ansys application defaults. Specifically, the middle mouse is used to manipulate the view (with control and shift modifiers), the left mouse is used to select entities and the right mouse is used to bring up context sensitive menus. • All interactive operations in an EnSight WorkBench session are saved in an EnSight context file automatically. When you reopen EnSight, this context file will be used to restore the session to its last saved state. Whenever EnSight is closed, the context file is updated. You will not be prompted to save the EnSight state when exiting EnSight when it is launched from WorkBench. • The default license manager for EnSight, when run from within an Ansys installation (including via WorkBench) is the Ansys license manager. EnSight will use a SLiM license if an appropriate license cannot be obtained from the Ansys license manager. ENSIGHT LIMITATIONS WITHIN ANSYS WORKBENCH There are several EnSight limitations within the WorkBench environment. • When launched from WorkBench, EnSight always opens using an EnSight Standard license; you cannot do parallel processing from within Workbench. • Workbench cannot effectively use the EnSight native, Case Gold data format due to Workbench limitations in the handling of large numbers of files. • Care must be taken when using EnSight Python and command language files from within WorkBench. The WorkBench interface relies on specific ordering of cases in the EnSight session and any Python or command language operations that modify case attributes (e.g. names, etc) will conflict with WorkBench conventions. • EnSight cannot be run in script-driven, batch mode using Workbench. WorkBench will evaluate design points in batch mode if an EnSight session is not open, but there is no mechanism to run a specific script in batch mode. • Currently in EnSight units are labels only. EnSight-standalone displays units by default. In contrast, EnSight within the WorkBench environment does not display units by default. Display of units is a EnSight WorkBench Property controlled by the Enable Beta Features toggle, which is off within the WorkBench environment by default. This is because EnSight lacks a mechanism to convert common variables to common unit systems prior to display. Thus, it is possible when using EnSight through WorkBench to view “temperature” related variables (with different names) from different data sources (e.g. Fluent and Mechanical) in different units (e.g. K, C). The individual variables will be properly labeled with ‘K’ and ‘C’ denoting that the variables are in different unit systems. It was decided to limit the units exposure as a beta feature until this shortcoming is addressed. • When using design point parameter in the current release, WorkBench is not automatically made aware of any EnSight constants that are created/activated. The list of design point parameters is updated when the EnSight task ‘Enable Design Point Parameters’ property changes state. Thus, if you have a running EnSight session and use the calculator to create a new constant that you wish to appear in the current WorkBench design point variables, one may need to uncheck and recheck the “Enable Design Point Parameters” property. • The current EnSight session state is explicitly linked to the collection of solutions marked as inputs into the EnSight Results task in WorkBench. If one changes the inputs (e.g. adds an additional solution or removes one), the state of the EnSight session will be reset to the default (the EnSight context file will be reset). It is strongly recommended Page 246 HOW TO USE ENSIGHT WITH WORKBENCH that users configure all of the inputs to the EnSight Results task before setting up the visualization in EnSIght that they would like to be retained. Page 247 HOW TO USE ENSIGHT WITH WORKBENCH ADVANCED USAGE: DESIGN POINT SESSION USING ENSIGHT This example will take you step by step through a WorkBench Design Points EnSight example session. You might, for example, use Design Points if you wanted to optimize a design based on some figures of merit. This section assumes you have successfully worked through the previous simple, example session: Simple Example EnSight Session within ANSYS Workbench so some intermediate steps will be skipped in the interest of brevity. 1. Load a WorkBench dataset, drag the EnSight system from the WorkBench Toolbox onto the Project Schematic and link the Solver Solution to the EnSight Results cell. Right click the EnSight Results and choose Update if your EnSight Results cell has arrows rather than a check mark. If the update takes a while, in order to see the progress, from the WorkBench top menu, View>Progress. You should see the following. Page 248 HOW TO USE ENSIGHT WITH WORKBENCH 2. Now double-click EnSight Results to start up an interactive EnSight session. Do something and calculate a Case Constant that you wish to use as a design value. In this EnSight example, we have created a new part, a radial clip and calculated the Spatial Mean of the Velocity vector magnitude. 3. Now we want to import the EnSight Case Constant into WorkBench as a Design Point. On the EnSight Results Right-click>Properties. Page 249 HOW TO USE ENSIGHT WITH WORKBENCH 4. In the resulting dialog, Toggle on, the Enable Design Point Parameters. 5. Now you will notice that you need to update the EnSight Results: Right-click>Update. From the top menu, View>Progress to see the progress of the update, if it takes a while. Page 250 HOW TO USE ENSIGHT WITH WORKBENCH 6. Once the EnSight Results are updated, now, on the Parameter Set, Right-click>Edit 8. Now you will see that you are in the Parameter Set tab rather than the Project Tab. The Outline of All Parameters table below. Now do a View>Table and see the Table of Design points shown below. Notice the constant calculated in EnSight on the Radial Clip Plane part in EnSight, SpaMeanVelMag has been imported into WorkBench as a Design Point. Note you are in the Parameter Set View EnSight variable shows up in the Parameters, and as a WorkBench Design Point Page 251 HOW TO USE ENSIGHT WITH WORKBENCH 8. In the Table of Design Points, Toggle on one of the Retain toggles for DP2. Now right click on the row and choose Set as Current. This will make DP 2 as the current Design Point. Now to update to Design Point 2 as the input, to solve the flow and to use EnSight to Calculate the Spatial Mean of the Velocity Magnitude on the Radial Clip, Rightclick> Update Selected Design Points. Choose View>Progress to see what is happening 9. Now take a closer look at your updated Table of Design Points. Two of the SpaMeanVmag EnSight Constants / WorkBench Design Points (see P7 Results in Column H below) are have been calculated. You now can see that Design point 0 has a higher average velocity at the EnSight Radial clip part. Page 252 HOW TO USE ENSIGHT WITH WORKBENCH 10. Notice the cells in the Table of Design Points that are White. These are editable. The columns that are gray are the Design Point output from the Solver or from EnSight; they are not editable. They are the input values for the Solver. Edit the diameter of DP2, part in1 and change it to 2. Notice that the corresponding Design Points now need updating. Right-click>Update Selected Design Points on row 5. Now the solver re-runs with the new value for the in1 diameter, and then the solution data is fed to EnSight to create a radial clip and calculate the average velocity magnitude. 9. When the update of DP2 is finished, click on the EnSight Window and notice the increased diameter of part in1, the input part.. Page 253 HOW TO USE ENSIGHT WITH WORKBENCH 10. Now, update all design points. Note that EnSight does not launch multiple EnSight processes. It works through each of the design points one by one using one EnSight process and one EnSight license. This may take a while depending on your number of design points: View>Progress. 11. Now look at your Table of Design Points. It is fully populated. Now you can decide which Spatial Mean of the Velocity magnitude satisfies your criteria and answer your hypothetical design problem: DP1 has the maximum value. 12. Exit WorkBench. Page 254 HOW TO USE ENSIGHT WITH WORKBENCH SEE ALSO Sample interactive demonstration sessions using EnSight: Simple Demonstration Flow Visualization Example: Unstructured Mesh Structural Mechanics Example EnSight Further Reading EnSight Overview Print/Save an Image Save/Restore Context Page 255 HOW TO INTRODUCTION TO PART CREATION Visualize Data Introduction to Part Creation INTRODUCTION Much of the strength of EnSight derives from its flexible and powerful part creation mechanism. Since virtually every task you perform in EnSight will involve some form of part manipulation, it is vital to understand these concepts. In EnSight, a part is a named collection of elements (or cells) and associated nodes. The nodes may have zero or more variables (such as pressure or stress) currently defined at the node positions. All components of a part share the same set of (such as color or line width). Parts are either built during the loading process (based on your computational mesh and associated surfaces) or created during an EnSight session. Parts created during loading are called model parts. Model parts can also be created during an EnSight session by performing a copy on other model parts or performing a load operation on the part. All other parts are created during an EnSight session and are called created or derived parts. Created parts are built using one or more other parts as the parent parts. The created parts are said to depend on the parent parts. If one or more of the parent parts change, all parts depending on those parent parts are automatically recalculated and redisplayed to reflect the change. As an example, consider the following case. A clipping plane is created through some 3D computational domain and a contour is created on the clipping plane. The contour’s parent is the clipping plane, and the clipping plane’s parent is the 3D domain. If the 3D domain is changed (e.g. the time step changes), the clipping plane will first be recalculated, followed by the contour. In this way, part coherence is maintained. This article is divided into the following sections: The Parts List Creating Parts Part Types Part Where Parts Are Created and Maintained Part Operations Hints and Tips The Parts List Both model parts as well as all derived parts are displayed as items in the Parts List. There are several ways that the Parts list can be displayed, the default looks something like: Case number (important when multiple datasets have been loaded) P indicates Parent of currently selected part Part numbers Currently selected part Part description Part being edited in the Feature Panel is marked with a pencil icon If you right click on any of the columns of the Parts list you can Customize which columns of data will be shown in the list. In the resulting pop-up dialog you can select from either the left or right columns and use the left/right arrow buttons to add or remove the column to the Parts list. You can also change the order of the columns in the Parts list by selecting the attribute in the right panel and using the up/down arrows to change the order. Save will keep the settings for the next time you run EnSight while OK will apply the changes but not save them. Page 256 HOW TO INTRODUCTION TO PART CREATION The part list can be resized by grabbing the boundary between the panels (the mouse cursor will change to show a resize handle if you’re in the right spot) You can also grab the Parts panel by the title bar and drag the entire panel out from its user interface dock location. There are several ways to easily select multiple parts. If you wish to select all parts in a Case (which is really just a group) you select the blue Case line in the Parts list. You can also perform part selection operations via the right click pulldown menu. There are a number of right click capabilities for a part. The right click works in both the Parts list as well as in the graphics window. Shown at right is that you can perform various Part selection operations. You delete a part by either utilizing the right click pulldown, or you can select the part and hit the Delete keyboard button in either the Parts list or in the graphics window. You can create part groupings by selecting one or more parts and creating a group from the right click pulldown. Once a part group has been created you can drag and drop parts into/out of the group. Page 257 HOW TO INTRODUCTION TO PART CREATION Also, Items in the Parts List can be selected using standard selection methods: To ... Do this ... Details ... Select an item Select (or single-click) Place the mouse pointer over the item and click the left mouse button. The item is highlighted to reflect the “selected” state. Extend a (possibly long) contiguous selection Shift-click Select the first item. Place the mouse pointer over the last item in the list to be selected. Press the shift key and click the left mouse button. This action will extend a selection to include all those items sequentially listed between the first selection and this one. Extend a non-contiguous selection Control-click Place the mouse pointer over the item. Press the control key and click the left mouse button. This action will extend a selection by adding the new item, but not those in-between any previously selected items. De-select an item Control-click Place the mouse pointer over the selected item. Press the control key and click the left mouse button. This action will de-select the item. Edit the part via the Feature Panel area for parts Double-click Place the mouse pointer over the item and click the left mouse button twice in rapid succession. Creating Parts The mechanism for creating derived parts is largely the same regardless of part type: 1. In the Parts List, select the part(s) to use as parents. 2. Select the desired creation feature. This can be done via the Feature Icon Bar if the required creation feature is visible or can be selected via the Create pulldown from the main interface or from the right click on the part (either in the Parts list or in the graphics window). Any one of these will bring up the Feature Panel for the part type in question in create mode. 3. Set any desired in the Feature Panel. 4. Click the “Create with selected parts” button to create the part. There are also right click methods to create parts. These go through the same steps as above but may make some assumptions to quickly create a part. The example below shows Isosurface part creation: 3. Select the variable to use. 1. Select the parent part(s). 4. Select an appropriate isovalue. (Often there is a sensible default) 2. Select the Isosurface Feature Icon. 5. Click “Create with selected parts”. Page 258 HOW TO INTRODUCTION TO PART CREATION Part Types The following table provides information on the available part types in EnSight: Part Type Symbol Feature Icon Description Clip 2 A surface or line resulting from a clip of parts using an IJK, XYZ, or RTZ surface of the parts; or a clip of other parts using the Line, Plane, Box, Cylinder, Sphere, Cone, or Surface of Revolution tool; or a clip of other parts by revolving an existing 1D part. Contour C Lines of constant value on 2D elements. Developed Surface D A planar surface derived by unrolling a surface of revolution (e.g. unrolling a clip created with the Cylinder tool). Elevated Surface E A part created by scaling a 2D part (in the direction of the local surface normal) based on the value of a variable. Isosurface I A surface of constant value through 3D elements. Model M An original part (i.e.loaded from a disk file) or created through some operation (e.g. copy or extract) on a model part. Particle Trace T A part consisting of the paths taken by one or more massless particles as integrated through a vector (typically velocity) field. Profile P Plot of a variable along a line (the 2D counterpart to an elevated surface). Vector Arrow V A part consisting of a set of arrows showing direction and magnitude of a vector variable. Subset S A part created by node and/or element label range(s) from model part(s). Tensor Glyph G A part consisting of tensor glyphs showing direction and relative magnitude of the eigenvectors of a tensor variable. Material Part A A part created according to the intersection of or domains of material values. Vortex Core X A part consisting of line segments down the center of flow vortices. Shock Surface/ Region K A part consisting of the surface or volume elements where shock is higher than a threshold. Separation/ Attachment Line L A part consisting of line segments on a surface where flow separation and attachment is occurring. Page 259 HOW TO INTRODUCTION TO PART CREATION Part Operations EnSight provides several powerful part operators. These operations are accessible from the Edit > Part submenu or from right click on a part. Copy The copy operation creates a dependent copy of another part. The part is created on the client and is not known to the server. The new part has its own set of (except for representation), but shares geometric and variable data with the original. One of the best reasons to create a copy is to show multiple variables on one part at the same time in a side-by-side configuration. The copies can be moved independently since each new copy is automatically assigned a new frame. See How To Copy a Part for more information. Clone This operation will create a new part identical to the one(s) being cloned. They are not dependent on the part cloned for model parts but are dependent on the same parent parts in the case of created parts. See Clone a Part for more information. Group This operation will collapse the selected parts into a new “umbrella” part. Grouping is most often used to combine a series of parts into a single entity for ease in handling. No new part is created only a hierarchy in the Parts list. The operation is reversible through the Ungroup command. See How To Group Parts for more information. Delete The delete operation completely removes not only the currently selected parts, but also any parts derived from the selected parts. See How To Delete a Part for more information. Extract The extract operation is closely tied to part representations. Extract creates a new dependent part using only the geometry of the current representation of the part. For example, if the current representation of a part consisting of 3D elements is Border, the result of extraction will be a part consisting of all unshared 2D elements (the surface). Extract is most often used to reduce the amount of information for a part (e.g. for faster display or for geometry output) or to create a surface shell part – perhaps for subsequent cutting – of a 3D computational domain. See How To Extract Part Representations for more information. Merge Merge creates one new dependent part from one or more selected parts. The original parts are unchanged. If only a single part is selected for the operation, merge will create a “true” copy of the part (as opposed to the “shallow” copy that the Copy operation creates). Merging is most often used to combine a series of parts into a single part for ease in handling (such as attribute setting). See How To Merge Parts for more information. Part All parts have numerous that control behavior and display. Although many can be controlled either through the Part Quick Access Icons or the right mouse button options, complete access is provided by the Feature Panel. Part and the Feature Panel are covered in detail in How To Set . Page 260 HOW TO INTRODUCTION TO PART CREATION Where Parts Are Created and Maintained Part creation occurs on either the EnSight client or the server. Since the data that is available on the client and server are different, it is useful to understand where parts are created and where the data is stored. For example, you can only perform a query operation for parts that are stored on the server. The following table provides this information for each part type: Part Type Where Created Data on Server? Data on Client? Clip server yes depending on representation Contour client no yes Developed Surface server yes depending on representation Discrete Particle N/A yes depending on representation Elevated Surface server yes depending on representation Isosurface server yes depending on representation N/A yes depending on representation Particle Trace server no yes Profile client no yes Vector Arrow client no yes Subset server yes depending on representation Tensor Glyph client no yes Vortex Core server yes depending on representation Shock Surface/Region server yes depending on representation Separation/Attachment Line server yes depending on representation Material server yes depending on representation Model In the last column, “depending on representation” means the current visual representation for the part. For example, if the part’s visual representation is “Not Loaded”, then no data is currently present on the client. Hints and Tips With some datasets that contain many parts, it is important to maintain the connection between a part as displayed in the Graphics Window and the corresponding item in the Parts List. EnSight shows the selected parts as highlighted. To toggle this feature on or off, click on the Highlight Selected Parts toggle. You can rapidly cycle through items in the Parts List using the up/down arrow keys on your keyboard. Select any item in the list and then press the up arrow (to move to previous entries) or down arrow (to move to subsequent entries). This is particularly helpful when used in conjunction with the Part(s) Selected Highlighting (as described above) to quickly locate a part of interest. You can select parts in the Parts List using a single left click on the part in the graphics window. This should work unless your single-click settings has been changed from the default Pick Part. To change it back to Pick Part, Edit>Preferences and click on Mouse and Keyboard. You can also select parts in the Graphics Window by picking using the ‘p’ key. Select Pick Part from the Pick pull-down. In the Graphics Window, place the mouse pointer over any portion of the desired part and press the ‘p’ key. If you hold down the control key at the same time, the part is added to the list of currently selected parts. Page 261 HOW TO INTRODUCTION TO PART CREATION A quick way to create parts using the default settings is to right click on a part in the graphics window. A pulldown selection will appear that will give you the option to create a Contour, Isosurface or Vector Arrow part using the default settings using the parent as the part you right clicked. Selected parts can be written to disk and loaded in a future session. Select File > Save > Geometric Entities ... You have the option of saving either in EnSight format, VRML format, STL format, or other user-defined formats. See How To Save Geometric Entities for more information. SEE ALSO User Manual: Features, Parts Page 262 HOW TO CREATE AUXILIARY GEOMETRY Create Auxiliary Geometry INTRODUCTION Auxiliary geometry can serve as reference geometry to augment visual settings for parts. It can be used for things like mapping textures upon, or to cast shadows from model part(s) upon. Auxiliary geometry quickly bounds your specified part(s), and is interactively extended about the vicinity of the part(s). Shadow of the shuttle is being cast on auxiliary geometry part. BASIC OPERATION 1. Select the parent part(s) in the part list 2. Select Create->Auxiliary geometry... 3. Select the Geometry type box. Currently ‘Box’ is the only option but it is a pulldown because more may be added in the future. 4. Choose which wall(s) of the box to show. 5. Click “Create with selected parts”. Note you can click on each of the the walls and drag it to a desired location. Page 263 HOW TO CREATE AUXILIARY GEOMETRY ADVANCED USAGE Other options can be specified to fine tune the geometry. 1. Show the bounding box outline of the auxiliary geometry. 2. Produce double-sided walls to resolve corner issues for ray-traced images. 3. Control surface normal direction. OTHER NOTES Auxiliary geometry can be used in conjunction with directional lighting and ray traced images to display cast shadows of the specified parts. SEE ALSO User Manual: Auxiliary Geometry How To Set LIght Sources How To Use Raytrace Rendering Page 264 HOW TO CREATE AUXILIARY GEOMETRY Page 265 HOW TO CREATE CONTOURS Create Contours INTRODUCTION A contour is a line of constant value on a two-dimensional (though not necessarily planar) surface. The region on one side of the line is larger than the isovalue; the region on the other side is less than the isovalue. EnSight creates contour lines in groups where the isovalues either correspond to the levels in the palette defined for the contour variable, or a user specified range and. The contour lines can also be labeled with the corresponding palette value. BASIC OPERATION 2. Click the Contours icon. 1. Select the parent part. 3. Select the variable to use. 4. Click the Create with selected parts button. Page 266 HOW TO CREATE CONTOURS The Contour Feature Panel lets you set the number of contour levels (and sublevels) as well as attach labels to the contour lines. Contour lines can be synced to the palette levels or can be chosen manually. If you want contour lines for each level of the palette: In the parts list, double-click the contour part you wish to edit. 1. Select Advanced. 2. Select the Variable. And the component or magnitude if a vector. 3. Toggle on Sync To Palette. 4. Select the number of sublevels desired (if any). And make sure Visible toggles are set as desired. See How To Edit Color Maps for how to set the color palette levels. Page 267 HOW TO CREATE CONTOURS If you want to set the contour line ranges: In the parts list, double-click the contour part you wish to edit. 1. Select Advanced. 2. Select the Variable. And the component or magnitude if a vector. 3. Toggle off Sync To Palette. 4. Specify the Min and Max Range. 5. Specify the method for the Range. 6. Specify the number of Levels and sublevels. Page 268 HOW TO CREATE CONTOURS If you want to place labels on the contour lines: In the parts list, double-click the contour part you wish to edit. 1. Select Advanced. 2. Auto labels will create a label on each main contour loop with a spacing as specified. Custom labels: Right-clicking 3. Toggle on or off the visibility of the custom created contour labels. 4. Custom labels can be created by right clicking on a contour loop and choosing Label>Add to Add a label. 5. You can also remove any label by right mouse clicking on the label and choosing the Label>"Delete this one" option. Label formatting 6. You can control the label orientation, format (linear, log, or quadratic), size, and Page 269 HOW TO CREATE CONTOURS Shortcut Right click on a part in the Parts list or in the graphics window. In the resulting pulldown, choose Contour. A window will pop up to choose a variable. This then automatically creates a contour part with the default settings using the selected variable and using the rightclicked part as the parent part. ADVANCED USAGE When Sync To Palette is specified, the levels of the variable palette are used as the contour levels. You must edit the palette using the Feature Panel for Variables to modify the number of levels, etc. See How To Edit Color Maps for guidance. OTHER NOTES The default behavior is to color the contour part by the creation variable. If you toggle this off, the contour part will not be colored by a variable automatically, but will be white. Unlike most part creation operators, contours are created from the client’s representation of the part – not the server’s. If the parent part of the contour consists of one-dimensional elements or has no client-side visual representation at all, the resulting contour will be empty. This would be the case if the parent part was currently displayed as feature angle, border representation, or not loaded. The 3D border, 2D full representation is typically used for contour part parents. See How to Change Visual Representation for more information. SEE ALSO Introduction to Part Creation, How To Edit Color Maps. User Manual: Contour Parts Page 270 HOW TO CREATE ISOSURFACES Create Isosurfaces INTRODUCTION An isosurface is a surface of constant value in a three-dimensional field. It is the 3D counterpart to the contour loop: the region on one side of the isosurface has values greater than the isovalue; the region on the other side has values less than the isovalue. In EnSight, an isosurface can be generated from a scalar variable, a component or magnitude of a vector variable, or a component of the model coordinates. An isosurface of a scalar or vector variable is typically a complex surface reflecting the of the underlying variable. Isosurfaces of coordinates, however, are typically regular geometric shapes such as planes, cylinders, cones or spheres. BASIC OPERATION 1. Select the parent part. 2. Click the Isosurface Feature icon. 3. Select the variable to use. 4. Select an appropriate isovalue. (the default will be a mid-range value) 5. Click “Create with selected parts” Shortcut Right click on a part in the graphics window. In the resulting pulldown, choose Isosurface. A window will pop up to choose a variable. This then automatically creates an isosurface part with the default settings using the selected variable and using the right-clicked part as the parent part. Page 271 HOW TO CREATE ISOSURFACES ADVANCED USAGE Interactive Isosurfaces You can have EnSight automatically generate and display isosurfaces as you adjust a slider with the mouse. 1. Set the Interactive mode to Manual. 2. Adjust the slider to the desired location. You can also set the Interactive mode to Auto and EnSight will automatically sweep from Range Min to Max with step size equal to Increment. Shortcut In the graphics window, left click on the isosurface and you will see a green handle appear. Drag the handle to change the value of the isosurface and see a printout on the screen of the actual value as you drag the isosurface. Isosurface Animation A range of isosurfaces can be automatically generated and viewed in a flipbook. Flipbooks provide on-screen animation of various dynamic events and (in the default setting) permit graphic manipulation (e.g. rotation or zoom) while the animation runs. 1. Double click on the Isosurface part. 2. Click on the Advanced button. 3. In the Creation section, set the Animation Delta to an appropriate value. For each page (frame) of the flipbook, this value will be added to the current value to yield the new isovalue. Page 272 HOW TO CREATE ISOSURFACES 4. Click the Flipbook icon. 5. Choose Create Data. 6. Set the number of pages to an appropriate value. 7. Click Load. 8. When loading is complete use the controls to play the flipbook Alternatively you can put the isosurface in interactive manual mode, and then click on the flipbook icon, click on the more detail icon, choose Load Type Create Data, then click on the Start button, move the isosurface, then click on the stop button and choose your number of pages and click Load. Creating Multiple Offset Isosurfaces: You can have EnSight create multiple isosurfaces at a specified delta value. The results is a group of isosurfaces: 1. Select the parent part. 2. Click the Isosurface Feature icon. 3. Select the variable to use. 4. Select an appropriate isovalue. (the default will be a mid-range value) 5. Set the number of surfaces and the delta between them. Note that you can only change the number of surfaces at creation. 6. Click “Create with selected parts” Isovolume Creation An isovolume is a volume whose constituents (e.g. nodes and elements) are constrained to a constant interval range in a scalar field. In EnSight, you can constrain the isovolume to ranges less than an interval minimum, greater than an Page 273 HOW TO CREATE ISOSURFACES interval maximum, or between the interval minimum and maximum. 1. In the Isosurface Feature Panel, toggle on Advanced 2. Choose a variable. 3. Set the type to Isovolume. 4. Set the Min and Max. 5. Set the Constraint to Band to constrain the isovolume within an appropriate Min and Max range of the scalar variable. Min will create an isovolume constrained to be <= o the value given while Max will create an isovolume >= to the value given. 6. “Create with selected parts” OTHER NOTES Effective display of more than two nested isosurfaces is difficult. Set transparency on the outermost isosurface(s) to reveal the inner surfaces. To avoid confusion, don’t try to display isosurfaces of more than one variable simultaneously, or multiple isosurfaces of the same variable colored by different variables. SEE ALSO How-To Create a Flipbook Animation, How-To Create a Keyframe Animation User Manual: Isosurface Parts Page 274 HOW TO CREATE PARTICLE TRACES Create Particle Traces INTRODUCTION Streamline and Pathline Traces: A particle trace represents the path a particle would take if released in a flow field. From an initial seed point (the emitter), a path is formed by integrating through the velocity field over time. The path is therefore everywhere parallel to the flow. For models with rotational periodic geometry, streamlines and pathlines can exit a symmetry face and reenter the corresponding symmetry face and continue. Traces calculated using a single time step in a flow field are called streamlines. The path calculated using a transient flowfield that is updated as the calculation proceeds is known as a pathline. EnSight provides a great deal of control over emitter definition and trace appearance: • Emitters can be defined using one of the built-in tools (Cursor, Line, or Plane) or by clicking on any surface in the Graphics Window. The nodes of an arbitrary part can be used as an emitter, or the emitter time and locations can be read from a file (see EnSight Particle Emitter File Format in the Chapter 11 of the User Manual). • The streamline path can be generated in the positive, negative, or positive and negative time directions. • Traces can be restricted to lie on any surface to search for flow topology and separation features. • For transient cases, an emitter can have a delta time that controls the periodic release of additional particles into the dynamic flow. • Emitters can be interactive: as you move the emitter with the mouse, the associated traces automatically recalculate and redisplay (This option is not available for surface-restricted Particle traces, traces emitted from a Part, in Server of Server mode, or for Pathlines). • Trace paths can be displayed as lines, ribbons, tubes, or as square tubes, where ribbon or tube twist follows the local flow rotation around the path. • Right-click on an individual trace and select “Hide this trace emission” to hide it and select “Show all trace emissions” to reset the traces to visible. This is useful for making uninteresting traces invisible while retaining the interesting ones. • If the particle trace part is colored by a constant color: then the following options are available: - Right-click and select "Set trace emission to random colors" to assign a random color automatically to each emission of the particle trace part. This is useful for distinguishing between traces. - Right click on an individual trace and select "Set trace emission to constant color..." to assign a color to the individual emission selected. The standard color widget will appear to allow you to select a color. - To reset the color of the trace colors back to a uniform color, simply color the traces by a constant. • Particle traces can be easily animated to provide intuitive comprehension of the flow field. Complete control over all aspects of the animating tracers is provided, including length, speed, and release interval for multiple pulses. Node Tracks: Another form of trace that is available in EnSight is entitled node tracking. This trace is constructed by connecting the locations of nodes through time. It is useful for changing geometry or transient displacement models (including measured particles) which have node ids. Min/Max Variable Tracks: A further type of trace that is available is a min or max variable track. This trace is constructed by connecting the min or max of a chosen variable (for the selected parts) though time. Thus, on transient models one can follow where the min or max variable location occurs. Both the node tracking and the min/max variable tracking options are like a connect-the-dots through time trace. Page 275 HOW TO CREATE PARTICLE TRACES BASIC OPERATION To trace particles through a steady-state flow field (streamline): 2. Click the Particle Traces icon. 1. Select the flow field mesh part(s) to trace through. 3. Select the vector variable to use. 4. Select Streamline as the type. 5. Select the desired emitter. If the emitter is a tool (Cursor, Line, Plane), position the tool at the desired emitter location. If the chosen emitter is Part, then enter the part number in the Part ID field and press return. 6. Click to set the trace direction: +: forwards in time (positive velocity direction) from the emission point(s) -: backwards in time (negative velocity direction) from the emission point(s) towards the entering flow boundary (Streamlines only) +/-: both forwards and backwards (Streamlines only) 7. Click Create with selected parts buttons. The particle traces will be created from the desired emitter. Their maximum time duration is controlled via the Total Time Limit found under the Emitter Information when Advanced is chosen instead of Simple. Page 276 HOW TO CREATE PARTICLE TRACES The following are the available Emit From options. Note that traces will only be generated for those emitter points that actually lie within an element of the selected flow field part(s). Cursor A single trace will be emitted from the Cursor tool. Line Multiple traces will be emitted from evenly spaced points along the Line tool. Enter the desired number of traces in the # Points field and press return. Plane Multiple traces will be emitted from evenly spaced points in a grid pattern over the Plane tool. Enter the desired number of traces in the X and Y direction (with respect to the Plane tool’s axis) in the # Points X/Y fields and press return. The total number of traces will be the product of X and Y. Part One trace will be emitted from the number of nodes of the part you specify. This number of nodes will be randomly selected. Enter the Part ID number (from the Main Parts list) of the part you wish to use as an emitter, and the number of nodes. Limitation: if you create a particle trace from a Part ID, you cannot later change the ID nor can you change the emitter type to something else (such as Cursor). File Traces will be emitted from the locations, and at the times, specified in an EnSight Particle Emitter file. See EnSight Particle Emitter File Format in Chapter 11 of the User Manual. Shortcut . To quickly create a particle trace: 1. Select the parent part(s). 2. Right click on a tool (cursor, line or plane). 3. and choose Particle Trace. If you have no parts selected then a dialog will pop up to ask you to select part(s). If there are more than one vector variables, then a pop up will ask you to choose your vector variable. This will create streamline trace(s) using default settings and the tool as the emitter Page 277 HOW TO CREATE PARTICLE TRACES The complete set of particle trace can be edited in the Create/edit dialog for Traces, when in Advanced mode. For example, the emitter can be changed under the Emitter Information in the Creation section: Toggle on to have start time be the current time, otherwise specify the start time (Streamlines only). Set the total amount of time a trace will last (it may terminate for other reasons as well). An intelligent default will be set for you. Solution time at which to begin pathline trace (Pathlines only). Delta emission time for pathlines. If not zero, a new set of traces will be emitted at S, S+D, S+2D, etc. into the changing flow field (where S is the Start time and D is the delta value). Used to create streaklines or smoke traces. Animated streaklines are one of the most powerful methods for visualizing transient flow (Pathlines only) Display Traces as Ribbons, Tubes or Square Tubes, and control Arrowheads Streamline and Pathline Particle paths can be displayed as lines, ribbons, tubes or square tubes, where ribbon or tube twist follows the local flow rotation. To enable ribbon or tube display, and change trace arrowheads: 1. Double-click the desired particle trace part in the Parts list (or right click on it in the list or in the graphics window and select Edit...). This will open the Create/edit Parts dialog. If necessary, toggle on Advanced mode, and open the Creation section. 2. Set Show As to Ribbon, Tubes or Square Tubes. 3. If desired, change the default ribbon or tube width and press return. 4. Select the Arrowhead representation desired. (Cone, Normal, or Triangles) 5. Set the number of arrowheads to display along a trace. 6. Set the arrowhead size. Note that node tracks and min/max variable tracks can only be displayed as lines. Trace arrowheads can be used for tracks, but this must be done from the Particle Trace Feature Panel. Animate Particles Any type of particle trace can be animated. See How To Animate Particle Traces for more information. Page 278 HOW TO CREATE PARTICLE TRACES Individual emission visibility and color Each individual particle trace visibility status and color can be controlled via a right mouse button selection of the particle trace in the graphics window. Note that coloring individual traces only works if the trace part is a constant color. 1. Right click on an individual trace to see the following menu: 2. If the particle trace part is colored by a constant color (this won’t work if the particle trace is colored by a variable). a. Select "Set trace emission to constant color..." to choose a color to set the selected emission. The standard color widget will appear to allow you to select a color. b. Select "Set trace emission to random colors" and EnSight will automatically assign a random color to each emission of the particle trace part. c. To clear the per trace color simply color the part by a constant color (see Change Color) 3. Each individual trace can be turned invisible by selecting "Hide this trace emission" 4. Reset all traces to visible using "Show all trace emissions" Page 279 HOW TO CREATE PARTICLE TRACES Pick a Surface to Trace a Particle Rather than emit from a tool or a part, you can also interactively pick points on a surface in the Graphics Window to define emitter locations. To do this: 2. Click the Particle Traces icon. 1. Select the flow field mesh part to trace through. 3. Toggle on Pick Surface 4. Click Create. And the following dialog will appear: 5. Do as instructed, move the mouse into the Graphics Window and click the left mouse button when the cursor is over the desired location. The clicked point must be found within some element of the selected 3D part to result in a trace. 6. You can click to create as many point emitters as you like. When done, move the mouse out of the Graphics Window. 7. Click off Pick Surface. Note that you can also specify a rake (line) or net (plane) emitter by picking on a surface. Just set the emitter to Line or Plane prior to clicking Create. Then follow in the instructions in the pop-up window. Page 280 HOW TO CREATE PARTICLE TRACES Trace Surface-Restricted Particles EnSight can trace particles such that they are constrained to lie on a (not necessarily planar) 2D surface – even if the velocity is zero at the surface. The trace is calculated by projecting a short distance off the surface into the 3D flow field and using the velocity value found there. Both the projection distance (variable offset) and a display offset are user definable and are in the surface normal direction. Surface-restricted trace emitters are defined by mouse action in the Graphics Window. When you click and drag over the desired surface, the emitter is defined by projecting the mouse path onto the surface. To trace surface-restricted particle traces: 1. Select the desired surface part(s) in the Parts list. This should be the surface you wish to trace on. 2. Click the Particle Traces icon. 3. Set the desired vector variable to use for tracing. 4. Select the desired emitter type (Cursor, Line, or Plane). Note that the applicable tool will not actually be used in this operation (a pick action will be used). 5. Toggle on the Surface Restricted button. Note that all subsequent tracing will be assumed to be surface restricted until this is toggled off. 6. If the Emit From is set to Line or Plane, enter the desired number of points (Line) or X and Y points (Plane). 7. Click the Create button. 8. Move the mouse pointer into the Graphics Window and: for a Cursor emitter: click the left mouse button on the desired location. for a Line emitter: click and hold the left mouse button on one endpoint of the desired line. Drag to the other endpoint (a white line will provide feedback). for a Plane emitter: click and hold the left mouse button on one corner of the desired region. Drag to the opposite corner (a white rectangle will provide feedback). 9. You can continue to specify emitters of the selected type as long as the mouse pointer remains in the Graphics Window. When the pointer exits the window, the trace part will be created. 10. When done, toggle off both Surface Restricted, and then Pick Surface. Note that in Advanced mode, you have control over the various other of the trace - including variable offset, display offset, trace direction, etc. Page 281 HOW TO CREATE PARTICLE TRACES Interactive Particle Tracing If a particle trace was created from one of the tool emitters (Cursor, Line, or Plane) and the trace is a streamline trace, the emitter can be made interactive. When interactive, the tool that created the particle trace part can be moved with the mouse. As the tool is moved, new particle traces are automatically recalculated and redisplayed (This option is not available for surface-restricted Particle traces, traces emitted from a Part, in Server of Server mode, or to Pathlines). To trace interactively: 1. Either create a particle trace part as described above (based on a tool) or double-click an existing particle trace part to open the Parts Feature Panel, and turndown the Creation . 2. Toggle on Interactive Emitter. If the tool that originally defined the emitter is not visible, it will be turned on by this operation. 3. Move the mouse into the Graphics Window and manipulate the tool as desired. See the article on the applicable tool for information on tool manipulation (Cursor, Line, or Plane). 4. When done, toggle off Interactive Emitters. Trace Pathlines EnSight provides complete control over transient particle tracing. Both the start time and the stop time can be specified. In addition, you can specify a delta value for an emitter that will cause additional particles to be emitted into the flow at regular intervals. This type of pathline is also called a streakline or smoke trace. You create a pathline trace by setting the Type to Pathline (rather than Streamline) prior to clicking Create. By default, the pathlines will start at the first time step of your simulation and terminate at the last step (unless stopped earlier). You can change these defaults within the Emitter Information in the Creation section of the Create/edit dialog as described above. Edit Emitter Complete control over all creation attributes is found in the Advanced mode of the Create/edit Parts dialog for particle trace parts. There are many ways to get to these, some are: 1. Double click on the desired Particle trace part in the Parts list or select the desired Particle trace part in the Parts list and click the Particle traces icon. or right click on the desired Particle trace part in the Parts list and select Edit... or select Create->Particle traces..., then select the desired Particle trace part in the Parts list. Page 282 HOW TO CREATE PARTICLE TRACES 2. Make sure you are in Advanced mode. Set the desired flow field variable Trace type Set interactive emitter Number of points (If Line or Plane emitter) Line or ribbon display Toggle on Surface Restricted tracing Set surface restricted variable and display offsets. Number of arrowheads along the trace. Set ribbon width Set Emitter direction Toggle on surface picking for emitter definition Set Arrowhead size. Emission tool for currently selected emitter List of the emitters belonging to the selected trace part Set to emit at current time, or set emission time. Set emitter total time Add Emit: add a new emitter to the selected part based on the current. Delete Emit: delete the selected emitter. Set Total Time to the default. Set emission start and delta Page 283 HOW TO CREATE PARTICLE TRACES Massed Particle Traces Ensight also provides massed particle traces via the Advanced mode in the Feature Panel for Traces. 1. Open the Parts Feature Panel for the desired particle trace part by one of the several methods shown above. 2. Click the Massed Particle toggle to reveal the massed particle parameters. 3. Modify the massed particle parameters according to your dataset. Each term in the momentum balance equation has a separate tab containing the parameters which pertain. 4. Toggle on Use massed particles. The selected particle trace part will update to a massed particle trace(s) taking into consideration the parameters you specified. For the theory used in massed particle traces, see the User Manual: Particle Trace Parts Page 284 HOW TO CREATE PARTICLE TRACES Periodic Particle Traces Ensight also provides a special option for rotational periodic geometry. Both streamlines and pathlines, which exit a symmetry face of a part, can re-enter the part at the corresponding symmetry face and continue. As will be illustrated below, one must first specify the correct symmetry for the periodic geometric parts, and toggle on the periodic option. See below for an example model of the flow field and surfaces of an axial blade with angled inlet – periodic faces are set as non-visual and, the top view has the original and all of the remaining 40 instances, while the bottom view has the original as well as four instances as shown below. 1. Select the periodic field parts that share the same symmetry attributes. In this case, the field part is the Blade Region. 2. Place your emitter tool in the original instance prior to making instances. You cannot emit within in the symmetry instances as they are graphical only! 3. Click the Visual Symmetry icon to open up the Part Visual Symmetry dialog. 4. Choose rotational symmetry, the axis of rotation (here X), set the number of instances for full 360 degree rotation (in this case 41). Note in this case each slice is 360/41 degrees. 5. Toggle to show the original instance, and the number of instances to show (in this case shown below, show 4). If you show the original instance, then 40 will show the entire 360 rotation. If not showing the original instance then 41 will show all (see the image to the right). Page 285 HOW TO CREATE PARTICLE TRACES 6. Click on the Particle Traces icon, to open the Create Traces dialog. And click the Advanced toggle – to open the full dialog. 7. Set your desired options as explained in other sections of this How To (streamline or pathline, emit from, etc.). 8. Toggle on “Compute using periodicity”. Note this will use the information from the parent visual symmetry dialog. 9. Click the Create with selected parts button. If you only have one instance of the parent flow field part showing, streamlines will be shown entering and exiting the flow field part and can be confusing. It is helpful to display several instances in the visual symmetry dialog. 10. With the newly created particle trace part selected, click on the visual symmetry icon 11. In the resulting Part Visual Symmetry dialog, choose rotational symmetry. Show the same number of instances of the particle trace part as the parent flow field part. Turning on Visual Periodic Symmetry with multiple parent instances will give you a sense of the flow between the instances as shown below. Page 286 HOW TO CREATE PARTICLE TRACES Node Tracks Ensight provides the capability to track the location of node(s) through time. As one would expect, node ids are required, and this only makes sense for nodes that change location over time - whether by changing geometry or by transient displacement. Measured particle parts are often a particularly good choice for this option. 1. Select the part(s) containing the nodes you wish to track in the Part list. 2. Click on the Particle Traces Icon 3. Set Type to Node track. 4. Optionally you can modify the begin and end times to use for the track. The default will be all time steps. 5. Specify the particular node id you wish to track, or do “ALL”. You can use the ‘Use ALL nodes” button to select all if you have modified the field. Min/Max Variable Tracks Ensight provides the capability to track the location of the minimum or maximum of a chosen variable through time. This of course only makes sense for transient models. 1. Select the part(s) containing the variable, for which you wish to track the min or max. 2. Set Type to Variable min. track (Or Variable max. track) 3. Select the desired variable. 4. Optionally you can modify the begin and end times to use for the track. The default will be all time steps. Page 287 HOW TO CREATE PARTICLE TRACES Surface Flow Visualization Ensight provides the capability to visualize the flow over a surface part, similar to tufts in a wind tunnel. This visualization is not interactive, nor is it animated; it is a graphical texture of the flow tufts calculated on the part surface using surface velocity (or velocity in the flow just above the surface) using the Line Integral Convolution algorithm. It is designed to provide a uniform visualization of the flow of a vector over a surface. This will update when time is changed for transient data. See Surface Flow Display for details. Page 288 HOW TO CREATE PARTICLE TRACES ADVANCED Reverse Pathlines From time to time we have users that wish to trace pathlines backward in time. This can be accomplished fairly easily using the EnSight casefile format. (Note, if your data is in a different format, you can use File->Export->Geometric Entities to convert it into casefile format). 1. Reverse the order for the timeset files, by using a negative filename increment. Example: TIME time set: filename start number: filename increment: time values: 1 1 1 0.0 2.0 4.0 6.0 8.0 change to: TIME time set: filename start number: filename increment: time values: 1 5 -1 0.0 2.0 4.0 6.0 8.0 2. Create a vector variable that is the negative of the normal vector field. Simply use the variable calculator to create a new vector variable (neg_vector = - vector). 3. Create pathlines using the neg_vector variable. Limiting Pathlines If your geometry is much larger than your region of interest, you can try setting the total time limit value in the particle trace dialog (with the Advanced toggle turned on). This will stop traces after a given time and avoid wasted computational time outside your region of interest. You can estimate the total time as follows. Determine the total distance of your region of interest, and divide it by an average velocity to get a time (making sure all units are consistent in this calculation and within EnSight. Then try the run with a few pathlines. If you have significant recirculation within sections of your flow, this method will stop particles long before they exit your region of interest. In this case, you may want to consider using spatial limits on your flowfield. If your geometry is much larger than your region of interest and temporal limits stop some of the traces too soon, then you can set spatial limits for your particle trace. There are two ways to limit the volume in which your pathline is traced. The first is to create a new part of limited volume and use this part as the trace parent; you can do this by using the box tool to define the region of interest and do an interior cut of your model volume (and then select the cut part as your parent part for your pathline trace). The trace will stop when it reaches the box tool volume limits. The second is to set six environmental variables before you start up EnSight to limit the x, y, or z max and/or min: ENSIGHT10_MIN_TRACE_X, ENSIGHT10_MAX_TRACE_X, ENSIGHT10_MIN_TRACE_Y, ENSIGHT10_MAX_TRACE_Y, ENSIGHT10_MIN_TRACE_Z, or ENSIGHT10_MAX_TRACE_Z. The trace will stop when it falls outside the bounds set by the environmental variables. The downside of using the box tool is that it costs memory to create a new part (which can be substantial on a large dataset). The downside of setting environmental variables is that you must do this before you start EnSight. OTHER NOTES Particle trace calculation can be expensive for large or transient datasets and/or a large number of particles. Be careful when you initiate a trace operation – there is currently no way to abort it. If you are calculating pathlines, you should specify as many particles as possible at one time. Much of the pathline execution time is in reading the transient data from disk and this operation has to be performed regardless of how many traces were specified. The EnSight particle trace algorithm integrates the vector flow field over time using a 4th-order Runge-Kutta method Page 289 HOW TO CREATE PARTICLE TRACES with a time varying integration step. Several of the integration parameters can be changed by the user. See Particle Trace Parts in the User Manual for more information. If you have trace data for other types of particles (e.g. for multi-phase flow simulations) you can use the discrete/ measured data facility to load the particle path positions and animate them over time. SEE ALSO How To Animate Particle Traces User Manual: Particle Trace Parts Page 290 HOW TO CREATE PARTICLE TRACES Page 291 HOW TO CREATE CLIPS Create Clips INTRODUCTION EnSight provides a powerful set of clipping operators. See the following How To articles for more information: Create Line Clips Clip lines are linear clips through 2D or 3D models (using the Line Tool) with samples taken at evenly spaced intervals (grid), or at intersections of element boundaries of the parent parts (mesh). Clip line values can be visualized using profiles or queried and sent to a plotter. Create Plane Clips A clipping plane is a planar slice through a 3D mesh using the Plane Tool. EnSight’s clipping operation can take arbitrary cuts through either structured or unstructured meshes. The clip can be infinite in extent (at least to the bounds of the parts it is created from) or restricted to the bounds of the Plane tool. The nodes of the resulting clipping plane can be based on the topology and resolution of the underlying mesh or sampled on a regular grid. You can also create a clip that contains all the elements that intersect the plane value via the crinkly domain specification. These clips help view the integrity of the mesh at these values. Create Box Clips A Box clip is a 3D volumetric hexahedral-shaped clip or cut. This clip uses the box tool (which can be manipulated anywhere in space), and the result can be the surface intersection of the box tool walls and the model, the volume portion of the model inside the tool, the volume portion of the model outside the tool, or the crinkly surface elements of the intersection. Be aware that due to the algorithm used, this clip can (and most often does) have chamfered edges, the size of which depends on the coarseness of the model elements. Create Quadric Clips In addition to standard clipping planes, EnSight also provides clipping against quadric shapes. These clips use the corresponding quadric tool (Cylinder, Sphere, Cone, Surface of Revolution) to specify the location of the clip. You can also create a clip that contains all the elements that intersect the quadric value via the crinkly domain specification. These clips help view the integrity of the mesh at these values. Create IJK Clips An IJK clip is a 1D or 2D slice through a structured mesh. The resulting clip is a 1D line or 2D surface where one dimension (e.g. I) is held fixed while the other one or two dimensions (e.g. J and K) vary. The minimum and maximum range of the free dimensions can be set by the user, as well as the step size. IJK clips can be interactively animated throughout the range of the fixed dimension by manipulating a slider. Although planar clips can still be created through structured meshes, it is often preferable to create IJK clips since they are faster to calculate and use less memory. In addition, IJK clips are often more intuitive for the user (who typically built the mesh). Create XYZ Clips An XYZ clip is a 1D or 2D slice through a 2D or 3D mesh (structured or unstructured). The resulting clip is a 1D or 2D mesh slice where one of the dimensions (e.g. X) is held constant (or fixed) while the other two dimensions (e.g. Y and Z) vary in reference to the local frame of the mesh. XYZ clips can be interactively animated throughout the range of the fixed dimension by manipulating a slider. The minimum, maximum, and step size of the range of the fixed dimension can be set by the user. Although plane clips can still be created through meshes, it is often preferable to create XYZ clips since they are constrained to the local frame of the meshed part. To quickly create an XYZ clip, simply right-click on a part and choose Clip and then choose the direction. Create RTZ Clips An RTZ clip is a 1D or 2D slice through 2D or 3D meshes (structured or unstructured). The resulting clip is a 1D or 2D mesh slice where one of the dimensions (e.g. R,”radial component”) is held constant (or fixed) while the other one or two dimensions (e.g. T, ”theta component” and Z, “z axis component”) vary in reference to the local frame of the mesh. RTZ clips can be interactively animated throughout the range of the fixed dimension by manipulating a slider. The minimum, maximum, and step size of the range of the interactive fixed dimension can be set by the user. To quickly create an RTZ clip, simply right-click on a part and choose Clip and then choose the direction. Revolution Tool Clips A Revolution Tool clip can be made using the surface of revolution tool. It can be the surface created by the intersection of the surface of revolution tool and the model, the elements intersected by the surface of revolution tool (crinkly), or the volume of the inside and/or the outside domain swept by the revolution tool. This clip cannot be interactively manipulated. Revolve 1D Part Clips A Revolution of 1D Part clip can be made using a 1D part and a user specified axis. It can be the surface created by the intersection of the 1D part about the axis and the model, the elements intersected by the 1D part about the axis(crinkly), or the volume of the inside and/or the outside domain swept by the 1D part about the axis. This clip is always infinite. This clip does not have interactive manipulation capability, with a slider or by dragging the tool with the mouse. However, if the 1D part is capable of being moved, you can move it and the revolution clip will update. Create Clip Splines Spline clips will sample a defined spline on evenly spaced intervals along the spline. Values along a spline clip can be visualized using profiles or queried and sent to a plotter, or used in subsequent computations such as computations of a line integral. Create General Quadric Clips A general quadric clip AX2+BY2+CZ2+DXY+EYZ+FXZ+GX+HY+IZ=J can be created. This is only available from the Clip Feature Panel. Page 292 HOW TO CREATE CLIP LINES Create Clip Lines INTRODUCTION In addition to standard clipping planes, EnSight also provides one dimensional clipping. Clip lines are linear clips through 2D or 3D models with either samples taken at evenly spaced intervals (grid) or true intersections at the faces of the parent part’s elements (mesh). Values along a clip line can be visualized using profiles or queried and sent to a plotter. BASIC OPERATION 1. Select the parent part. 2. Click the Clip icon. 3. Select Line from the Use Tool pull-down. 4. Select Mesh or Grid type. 5. If Mesh, select Finite or Infinite If Grid, set the number of evenly spaced points on the line 6. Position the Line tool as desired (see How To Use the Line Tool). 7. Click “Create with selected parts” 8. Click on the Advanced toggle to see more options Note: To quickly create a line clip, right click on the line tool and choose Clip. This will create a line clip using the default settings. Page 293 HOW TO CREATE CLIP LINES ADVANCED USAGE Like the other clipping tools in EnSight, clip lines can be interactive: as you drag, rotate, or stretch the Line tool with the mouse, the clip line is automatically recalculated and re-displayed. If a query has been created from the clip line, the plotted curve will automatically re-display as well. To perform interactive line clips: 1. Double-click the desired clip line part in the parts list. 2. Toggle on Interactive Tool in the Feature Panel. 3. Move the mouse into the Graphics Window. Click on one of the Line tool hotpoints (either endpoint or center axis origin or axes) and drag the tool to the desired location. Note that the line tool itself will be made invisible while moving the tool interactively, so as not to obscure the clip. It will reappear when the mouse is released. . A line clip can be specified by identifying two nodes as points on the line. This requires that node ids be available and that the Feature Panel be in advanced mode. The effect of this method is that the line clip remains tied to the two nodes, even if their location moves over time. OTHER NOTES It is sometimes useful to display just the nodes of a line clip. Click Node, elements and line pulldown lower in the Create/edit Parts dialog in the advanced mode and you can change the display such that only nodes (not lines or elements) are displayed. The nodes can be dots, crosses, or spheres. If displayed as crosses or spheres, the size (radius) can be constant or scaled by the value of a variable. See How to Set for more information. Page 294 HOW TO CREATE CLIP LINES Clip of a 2D part using the line tool A Clip of a 2D part using a line tool that is perpendicular to the 2D part surface will give you an empty part. The reason is as follows. In the past, EnSight would sometimes fail to clip a 2D part due to numerical tolerance errors when the line tool wasn’t numerically exactly on the surface. To work around this numerical issue, the line tool is now projected onto the 2D part, which results in a line clip projected onto the surface except for a perpendicular line tool. For example, suppose you have a geometry shown below with the line tool positioned as indicated. If you create a clip using the line tool, you will get the following line clip, which is a projection of the line tool onto the surface of the part. Note that the clip is at one of the infinitely many possible projection planes through the line tool. If you want to control the projection plane, clip with the plane tool rather than doing a line clip. The algorithm used to decide which projection plane to use may not be to your liking, and you may wish to only have the points where the line tool intersects the part. To do this, set an environmental variable which will give the point intersection of the line tool and redo the clip that results in a clip part with two points, as shown below. setenv ENSIGHT_2D_MESH_LINECLIP_POINT_OPTION 1 SEE ALSO Introduction to Part Creation How To Use the Line Tool Page 295 HOW TO CREATE CLIP LINES How to Create Profile Plots How to Query/Plot. Other clips: How to Create Clip Planes How to Create Quadric Clips How to Create Box Clips How to Create IJK Clips How to Create XYZ Clips How to Create RTZ Clips. User Manual: Clip Parts Page 296 HOW TO CREATE CLIP PLANES Create Clip Planes INTRODUCTION A clipping plane is a planar slice through a 3D mesh. EnSight’s clipping operation can take arbitrary cuts through either structured or unstructured meshes. The clip can be based on EnSight’s plane tool, and as such can be infinite in extent (at least to the bounds of the parts it is created from) or restricted to the bounds of the Plane tool. The nodes of the resulting clipping plane can be based on the topology and resolution of the underlying mesh or sampled on a regular grid according to the plane tool. A clip can also be created by specifying the node id of three nodes. When node ids are used, the plane will be infinite in extent and will stay tied to those three nodes - even if they move in a changing geometry model. Besides creating the intersection of a plane through a domain, which is the normal mode for clipping, a clipping plane can also be used to create parts which are what would result from a cut of its parent domain into “front” (inside) and or “back” (outside) parts. These parts contain valid elements of the same order as the original domain parts. Like other clip tools, clipping planes can be interactively manipulated with the mouse providing a powerful volume visualization capability. Clipping planes can also be automatically animated to display results throughout a region of space or over time. BASIC OPERATION 1. Select the parent part(s). 2. Click the Clip icon. 3. Select Plane from the Tool pull-down. 4. Position the Plane tool as desired (see How To Use the Plane Tool). Note: Multiple plane clips with a delta in the normal direction can be created easily by setting these values. 5. Click “Create with selected parts” Note: To quickly create a plane clip, right click on the plane tool and choose Clip. This will create a plane clip using the default settings. Page 297 HOW TO CREATE CLIP PLANES Interactive Clipping Planes Like the other clipping tools in EnSight, intersection clip planes (based on the plane tool) can be interactive: as you drag the Plane tool with the mouse, the clipping plane is automatically recalculated and re-displayed. To perform interactive plane clips: 1. Double-click the desired clip plane part in the parts list. 2. Toggle on Interactive Tool in the Feature Panel. 3. Move the mouse into the Graphics Window. Click on one of the Plane tool hotpoints (centerpoint or axis labels) and drag the tool to the desired location. 4. Click on the advanced toggle for more options ADVANCED USAGE Using 3 Node Ids You can specify three nodes on a plane (using their node ids) and clip in an infinite manner. This method of producing a plane clip has the added benefit that the plane will stay tied to those three nodes even if it is a changing geometry model. This method requires the use of the Clips Feature panel 1. Select the parent part in the Parts list. 2. Click on the Clip icon to bring up the Feature Panel. 3. Click on the Advanced toggle. 3. Enter the id for three nodes that lie on the desired plane. 4. Click “Create with selected parts” Page 298 HOW TO CREATE CLIP PLANES Attaching a Plane Clip to a Spline A Clip created with the Plane tool may be attached to a defined spline. 1. Create a spline (How To Use the Spline Tool) 2. Now, create a clip plane as previously indicated then open the Advanced section. 3. Attach the plane clip to a spline by selecting the desired spline from the pulldown in the Clip Plane Feature Panel. 4. Adjust the plane clip location (0 to 1) via the Value input field or the slider. Grid Clips and Finite Clips By default, clipping planes (based on the plane tool) are calculated based on the resolution and topology of the underlying mesh (parent part(s)). Clipping planes can also be calculated using a regular sampling of the mesh. Such a clip is called a grid clip and is typically used for clipping unstructured meshes where element volumes vary widely. Creating vector arrows on a grid clip typically yields a more useful visualization than on a standard mesh clip. By default, clipping planes extend to the bounds of the parent part. A clipping plane can also be restricted to the bounds of the Plane tool. To change an existing clipping plane to a grid clip or to have finite extent: 1. Double-click the desired clipping plane part in the Parts list. 2. To change to a grid clip, select Grid from the Plane Type pull-down. 3. To change to a finite-extent clipping plane, select Finite from the Plane Extents pull-down. Page 299 HOW TO CREATE CLIP PLANES Clipping Plane Animation Although you can interactively sweep a clipping plane (based on the plane tool) through a volume, it is sometimes desirable to have EnSight automatically calculate a series of clipping planes for you. These can then be replayed (as fast as your graphics hardware will permit) using EnSight’s Flipbook Animation facility. The flipbook can animate a series of clipping planes using a starting and ending position for the Plane tool. You can also use the Keyframe Animation facility to animate clipping planes. For a description of calculating a series of clipping planes with the Flipbook, see How To Create a Flipbook Animation. For more information on keyframing, see How to Create a Keyframe Animation. Cutting with Planes A plane can be used to create parts which are the result of a cut of its parent domain into “front” (inside) and or “back” (outside) parts. These parts contain valid elements of the same order as the original domain parts. For example, a plane front cut of a 3D cube model part will include all of the 3D elements in front of the plane tool. Cutting can be used to slice away portions of a model that are not needed or to create animation effects such as “opening” closed regions to view the interior. Note that the parent part is made invisible so that you can see your cut part. 1. Select the desired parent parts in the Parts list. 2. Click the Clip icon. 3. Select the Plane Tool. 4. Set the Domain to Inside, Outside, or In/Out (both inside and outside). 5. Hit the Create button. The parent part will be made invisible and your cut part will appear. Crinkly Plane Clips You can also check the integrity of your mesh by clipping with a crinkly intersection. Specifying a Crinkly Domain results in a part composed of all the mesh elements that intersect the plane tool. 1. Change the Domain to Crinkly. OTHER NOTES If you have a clip defined by three node ids and you attempt to use the interactive mode (which makes no sense for the 3 node option), the interactive movement of the clip will occur according to the plane tool - but will go back to the 3 node representation when you release the mouse button. Use clipping planes to create planar clips through arbitrary meshes. If you have a structured mesh (such as those in PLOT3D format), you may wish to use IJK clips instead. An IJK clip displays a “plane” of constant I, J, or K. An interactive IJK clip will sweep through the range of (for example) I displaying the JK plane at each I value. See How Page 300 HOW TO CREATE CLIP PLANES to Create IJK Clips for more information. SEE ALSO Introduction to Part Creation How To Use the Plane Tool How To Create a Flipbook Animation. Other clips: How To Create Clip Lines How To Create IJK Clips How To Create Quadric Clips How To Create XYZ Clips How To Create RTZ Clips How To Create Box Clips. How To Use the Spline Tool User Manual: Clip Parts Page 301 HOW TO CREATE BOX CLIPS Create Box Clips INTRODUCTION A Box clip is a 3D volumetric hexahedral-shaped clip or cut. This clip uses the box tool (which can be manipulated anywhere in space), and the result can be the surface intersection of the box tool walls and the model, the volume portion of the model inside the tool, the volume portion of the model outside the tool, or the crinkly surface elements of the intersection. Be aware that due to the algorithm used, this clip can (and most often does) have chamfered edges, the size of which depends on the coarseness of the model elements. BASIC OPERATION 1. Select the parent part(s) in the part list 2. Click the Clip Icon 3. Select Box tool. 4. Position the Box Tool as desired. Toggle advanced to enter precise box tool coordinates. 5. Click “Create with selected parts”. SEE ALSO Introduction to Part Creation How To Use Box Tool Other clips: How to Create Clip Lines How to Create Clip Planes How to Create Quadric Clips How to Create IJK Clips How to Create XYZ Clips How to Create RTZ Clips. User Manual: Clip Parts Page 302 HOW TO CREATE QUADRIC CLIPS Create Quadric Clips INTRODUCTION In addition to standard clipping planes, EnSight also provides clipping against quadric shapes. These clips use the corresponding quadric tool Cylinder, Sphere, Cone, Surface of Revolution) to specify the location of the clip. As with clip planes, these tools can also be used to perform cut operations, creating parts which are the “inside” or “outside” of the parent domain. As with intersection clip planes, quadric clips can be changed interactively by manipulating the corresponding tool with the mouse. BASIC OPERATION 1. Select the parent part(s) in the EnSight Part list. 2. Click the Clip icon. 3. Select the desired quadric tool from the Tool pulldown. 6. Click “Create with selected parts” at the bottom of the dialog. 4. Select Finite or Infinite clip extents 5. Position the tool as desired (see the How to for the applicable tool). Toggle advanced to enter precise tool coordinates. ADVANCED USAGE Like the other clipping tools in EnSight, intersection quadric clips (except those created with the revolution tool) can be interactive: as you drag the applicable tool with the mouse, the clip is automatically recalculated and redisplayed. To perform interactive quadric clips: 1. Double-click the desired quadric clip part in the Parts list. 2. Toggle on Interactive Tool in the Feature Panel. 3. Move the mouse into the Graphics Window. Click on one of the tool hotpoints (see the How to for the applicable tool) and drag the tool to the desired location. Page 303 HOW TO CREATE QUADRIC CLIPS Cutting with Quadric Tools A quadric tool can be used to create parts which are the result of a cut of its parent domain into “inside” and or “outside” parts. These parts contain valid elements of the same order as the original domain parts. 1. Select the desired parent parts in the Parts list. 2. Click the Clip feature icon. 3. Select the desired Quadric Tool. 4. Set the Domain to Inside, Outside, or In/Out (both inside and outside). 5. Click “Create with selected parts” at the bottom of the dialog. Crinkly Quadric Clips You can check the integrity of your mesh by clipping with a crinkly intersection. Specifying a Crinkly Domain results in a part composed of all the elements of the mesh that intersect the quadric tool. 4. Change the Domain to Crinkly and clip is automatically updated. SEE ALSO Introduction to Part Creation How To Use the {Cylinder, Sphere, Cone, Surface of Revolution} Tool. Other clips: How to Create Clip Planes How to Create Clip Lines How to Create IJK Clips How to Create XYZ Clips How to Create RTZ Clips How to Create Box Clips. User Manual: Clip Parts Page 304 HOW TO CREATE IJK CLIPS Create IJK Clips INTRODUCTION An IJK clip is a 1D or 2D slice through a structured mesh. The resulting clip is a 1D line or 2D surface where one dimension (e.g. I) is held fixed while the other one or two dimensions (e.g. J and K) vary. The minimum and maximum range of the free dimensions can be set by the user, as well as the step size. IJK clips can be animated throughout the range of the fixed dimension by manipulating a slider. Although planar clips can still be created through structured meshes, it is often preferable to create IJK clips since they are faster to calculate and use less memory. In addition, IJK clips are often more intuitive for the user (who typically built the mesh). BASIC OPERATION 1. Select the parent part(s) in the EnSight main part list. 2. Click on the clip icon. 3. Set Tool to IJK. 4. Select the desired fixed dimension from the Mesh Slice pulldown. 5. Enter the value for the fixed dimension in the Value text field and press return. 6. Click “Create with selected parts”. 7. If you desire to modify values for the Min, Max, and Step for all dimensions, toggle Advanced and the dialog will expand to allow detailed editing. Note that you can change the fixed dimension of an IJK clip at any time (with the Mesh Slice pulldown). Page 305 HOW TO CREATE IJK CLIPS ADVANCED USAGE Interactive IJK Clipping You can interactively sweep through the range of the fixed dimension by adjusting a slider with the mouse. 1. Double-click the desired IJK clip part in the Parts list. 2. Change Interactive to Manual, to enable sweeping. 3. Adjust the slider with the mouse. Changing IJK Step Refinement You can modify block-structured model parts to any level of IJK step refinement with proper updating of all dependent parts and variables. 1. Double-click on a model part. This will bring up the Model Parts Feature Panel. Note that his is no longer a clip dialog. 3. Simply enter values into the From, To, and Step fields based on their Min and Max limits to update the refinement of the respective I, J, and/ or K mesh component directions. When you press return or move to a new field, the part is updated. All dependent parts and variables will also be updated. Clipping Plane Animation Although you can interactively sweep an IJK clip through a mesh, it is sometimes desirable to have EnSight automatically calculate a series of IJK clips for you. These can then be replayed (as fast as your graphics hardware will permit) using EnSight’s Flipbook Animation facility. See How To Create a Flipbook Animation for more information. Page 306 HOW TO CREATE IJK CLIPS SEE ALSO Introduction to Part Creation How To Create a Flipbook Animation. Other clips: How to Create Clip Lines How to Create Clip Planes How to Create Quadric Clips How to Create XYZ Clips How to Create RTZ Clips How to Create Box Clips. User Manual: Clip Parts Page 307 HOW TO CREATE XYZ CLIPS Create XYZ Clips INTRODUCTION An XYZ clip is a 1D or 2D slice through 2D or 3D meshes (structured or unstructured). The resulting clip is a 1D or 2D mesh slice where one of the dimensions (e.g. X) is held constant (or fixed) while the other one or two dimensions (e.g. Y and Z) vary in reference to the local frame of the mesh. XYZ clips can be interactively animated throughout the range of the fixed dimension by manipulating a slider. The minimum, maximum, and step size of the range of the interactive fixed dimension can be set by the user. BASIC OPERATION 1. Select the parent part(s) in the Parts list.. 2. Click the Clip icon. 3. Select XYZ from the Tool pulldown. 4. Select the desired fixed dimension from the Mesh Slice pulldown. 5. Enter the value for the fixed dimension in the Value text field and press return. 6. Click the “Create with selected parts” button. Note: Multiple slices with a delta in the normal direction can be created easily by setting these values. Note that you can change the fixed dimension of an XYZ clip at any time (with the Mesh Slice pulldown). Shortcut Right click on a part in the graphics window. In the resulting pulldown, choose Clip and in the further pulldown, choose X, Y, or Z. This then automatically creates an X, Y, or Z clip part with the default settings using the rightclicked part as the parent part and location indicated by the right click. Page 308 HOW TO CREATE XYZ CLIPS ADVANCED USAGE Interactive XYZ Clipping You can interactively sweep through the range of the fixed dimension by adjusting a slider with the mouse. 1. Double-click the desired XYZ clip part in the Parts list. 2. Change Interactive to Manual to enable sweeping. 3. If desired, enter values for the Min, Max, and Step to override the defaults. 4. Adjust the slider with the mouse. Crinkly XYZ Clipping You can check the integrity of your mesh by clipping with a crinkly intersection. Specifying a crinkly domain results in a part composed of all the elements that intersect the mesh slice value. 1. Change the Domain to Crinkly Clipping Plane Animation Although you can interactively sweep an XYZ clip through a mesh, it is sometimes desirable to have EnSight automatically calculate a series of XYZ clips for you. These can then be replayed (as fast as your graphics hardware will permit) using EnSight’s Flipbook Animation facility. See How To Create a Flipbook Animation for more information. SEE ALSO Introduction to Part Creation How To Create a Flipbook Animation Other clips: How to Create Clip Lines How to Create Clip Planes How to Create Quadric Clips How to Create IJK Clips How to Create RTZ Clips How to Create Box Clips. User Manual: Clip Parts Page 309 HOW TO CREATE RTZ CLIPS Create RTZ Clips INTRODUCTION An RTZ clip is a 1D or 2D slice through 2D or 3D meshes (structured or unstructured). The resulting clip is a 1D or 2D mesh slice where one of the dimensions (e.g. R,”radial component”) is held constant (or fixed) while the other one or two dimensions (e.g. T, ”theta component” and Z, “z axis component”) vary in reference to the local frame of the mesh. RTZ clips can be interactively animated throughout the range of the fixed dimension by manipulating a slider. The minimum, maximum, and step size of the range of the interactive fixed dimension can be set by the user. BASIC OPERATION 1. Select the parent part. 2. Click the Clip icon. 3. Select RTZ from the Tool pulldown 4. Select the desired fixed dimension of the slice (R, T, or Z). 5. Select the Axis that describes the cylindrical length. 6. Enter the value for the slice (the value of R, T, or Z), or leave MID-RANGE and press return. 7. Create using selected parts or select parts to use. Note that you can change the fixed dimension of an RTZ clip at any time (with the Slice pulldown). If you change the numeric value, remember to press return for the change to take effect. ADVANCED USAGE Interactive RTZ Clipping You can interactively sweep through the range of the fixed dimension by adjusting a slider with the mouse. 1. Double-click the desired RTZ clip part in the main parts list. 2. Change Interactive to Manual to enable sweeping. 3. Adjust the slider with the mouse. 4. If desired, enter values for the Min, Max, and Increment to override the defaults. Page 310 HOW TO CREATE RTZ CLIPS Crinkly RTZ Clipping You can check the integrity of your mesh by clipping with a crinkly intersection. Specifying a crinkly domain results in a part composed of all the elements that intersect the mesh slice value. Crinkly clipping cannot be done interactively. 1. Change the Domain to Crinkly Clipping Plane Animation Although you can interactively sweep an RTZ clip through a mesh, it is sometimes desirable to have EnSight automatically calculate a series of RTZ clips for you. These can then be replayed (as fast as your graphics hardware will permit) using EnSight’s Flipbook Animation facility. See How To Create a Flipbook Animation for more information. OTHER NOTES Inside, Outside, and In/Out cutting are disabled for this clipping type because it has no meaning for T. And if you desire this effect for Z or R, you can use a plane clip or cylindrical clip instead. SEE ALSO Introduction to Part Creation How To Create a Flipbook Animation Other clips: How to Create Clip Lines How to Create Clip Planes How to Create Quadric Clips How to Create IJK Clips How to Create XYZ Clips How to Create Box Clips. User Manual: Clip Parts Page 311 HOW TO CREATE REVOLUTION TOOL CLIPS Create Revolution Tool Clips INTRODUCTION A Revolution Tool clip can be made using the surface of revolution tool. It can be the surface created by the intersection of the surface of revolution tool and the model, the elements intersected by the surface of revolution tool (crinkly), or the volume of the inside and/or the outside domain swept by the revolution tool. This clip does not have interactive manipulation capability, with a slider or by dragging the tool with the mouse. However, the tool can be manipulated and the clip updated. BASIC OPERATION 1. Place the Surface of Revolution Tool at the desired location. See How To Use the Surface of Revolution Tool. 2. Select the parent part from the EnSight main part list. 3. Click the Clip icon. 4. Select Revolution Tool from the Use Tool pulldown. 5. Select the desired Domain. 6. Select extents 7. Create using selected parts. Note that you can manipulate the Surface of Revolution tool and update your clip by clicking Apply Tool Change. You can also change the domain, and the clip will change. SEE ALSO Introduction to Part Creation Other clips: How to Create Clip Lines How to Create Clip Planes How to Create Quadric Clips How to Create XYZ Clips How to Create RTZ Clips How to Create Box Clips How to Create IJK Clips How to Create Revolution of 1D Part Clips. User Manual: Clip Parts Page 312 HOW TO CREATE REVOLUTION OF 1D PART Create Revolution of 1D Part Clips INTRODUCTION A Revolution of 1D Part clip can be made using a 1D part and a user specified axis. It can be the surface created by the intersection of the 1D part about the axis and the model, the elements intersected by the 1D part about the axis(crinkly), or the volume of the inside and/or the outside domain swept by the 1D part about the axis. This clip is always infinite. This clip does not have interactive manipulation capability, with a slider or by dragging the tool with the mouse. However, if the 1D part is capable of being moved, you can move it and the revolution clip will update. BASIC OPERATION 1. Select the parent part(s) in the main EnSight part list. 2. Click the Clip Icon. 3. Select Revolve 1D Part from the Tool pulldown. 4. Enter the 1D part to use. 5. Select the desired Domain. 6. Set the desired origin and axis of the revolution. 7. Click create. Note that you can manipulate the 1D part or the origin and axis and the clip will update. You can also change the domain, and the clip will change. SEE ALSO Introduction to Part Creation Other clips: How to Create Clip Lines How to Create Clip Planes How to Create Quadric Clips How to Create XYZ Clips How to Create RTZ Clips How to Create Box Clips How to Create IJK Clips How to Create Revolution Tool Clips. User Manual: Clip Parts Page 313 HOW TO CREATE GENERAL QUADRIC CLIPS Create General Quadric Clips INTRODUCTION Clicking on the Clips Icon brings up the Clips Feature Panel, the Creation section of which offers access to a General quadric clip type. It is possible to create a 3D Quadric clip using the General Quadric option by directly specifying the coefficients of a general quadric equation. These coefficient values represent the general equation of a Quadric surface. They can be changed by modifying the coefficient values. No tool exists corresponding to this equation. AX2+BY2+CZ2+DXY+EYZ+FXZ+GX+HY+IZ=J BASIC OPERATION 1. Click the Clip Feature Icon. 2. Select the parent part(s) in the Parts list. 3. Choose the General Quadric Tool. 4. Choose the desired Domain (Intersect, Crinkly, Inside, Outside, or In/Out) 5. Edit the coefficients. 3. Click the Create button. Note: The Animation Delta is not available for general quadric clips. SEE ALSO Introduction to Part Creation Other clips: How to Create Clip Lines How to Create Clip Planes How to Create Quadric Clips How to Create XYZ Clips How to Create RTZ Clips How to Create Box Clips How to Create IJK Clips How to Create Revolution Tool Clips. User Manual: Clip Parts Page 314 HOW TO CREATE CLIP SPLINES Create Clip Splines INTRODUCTION In addition to clipping along a line, EnSight also provides clipping along a defined spline. Spline clips will query the 2D or 3D parent parts at samples taken along the spline at evenly spaced intervals. Values along a spline clip can be visualized using profiles, queried and sent to a plotter, or used in further computations (for example a line integral). BASIC OPERATION 1. Select the parent part. 2. Click the Clip icon. 3. Select Spline from the Tool pull-down. 4. Select the desired Spline (to create a Spline see How To Use the Spline Tool) 5. Set the number of evenly spaced points on the line 6. Create using selected parts. Note: To adjust the clip you can grab the spline knot points and adjust. The clip will update. OTHER NOTES It is sometimes useful to display just the nodes of a spline clip. Using the Feature Panel you can change the display such that only nodes (not lines) are displayed. The nodes can be shown as dots, crosses, or spheres. If displayed as crosses or spheres, the size (radius) can be constant or scaled by the value of a variable. See How to Set for more information. SEE ALSO Introduction to Part Creation How To Use the Spline Tool How to Create Profile Plots How to Query/Plot. Other clips: How to Create Clip Planes How to Create Clip Lines How to Create Quadric Clips How to Create Box Clips How to Create IJK Clips How to Create XYZ Clips How to Create RTZ Clips. User Manual: Clip Parts Page 315 HOW TO CREATE VECTOR ARROWS Create Vector Arrows INTRODUCTION Vector arrows display the direction and magnitude of a vector at discrete locations in a model. Although vector magnitude can be visualized with other methods (e.g. color), important directional information is provided by the arrows. Vector arrows have numerous including length scale, tip style and size, projection, origin location, and display filters based on vector magnitude. BASIC OPERATION 2. Click the Vector Arrows icon. 1. Select the parent. part. 3. Select the vector variable to use. 4. Leave it Default to load a suitable Scale Factor and change it later as desired. 5. Create 6. Select the desired density (0.0 to 1.0). The density of the arrows will vary from no arrows (0.0) to arrows at every location (1.0). At intermediate densities the arrows are placed randomly with no user control of their locations. 7. More options are available by clicking on the Advanced toggle Instant Arrows Shortcut To quickly create vector arrows on a part, right click in the part list or in the graphics area and choose Vector Arrows 1. User will be presented with a list of vector variables and then vector arrows will be instantly created on the part using all the defaults. 2. If only one vector variable is in the dataset, then vector arrows will be created using that variable on the selected part. 3. Vector arrows are then colored by the vector. Page 316 HOW TO CREATE VECTOR ARROWS Advanced Vector Arrow Other vector arrow control the type of arrow, the location of the arrow origin, and arrow filtering options. 1. To change vector arrow at any time, simply double-click the desired vector arrow part in the parts list. 2. Click on the Advanced Toggle 3. Select the desired type from the Type pulldown. Choices are: Rectilinear Standard vector arrows: shaft points in local vector direction with length equal to vector magnitude scaled by Scale Factor Value. Rect. Fixed Same as Rectilinear except that length is set by Scale Factor value independent of vector magnitude. Curved Arrow shaft is the path of a particle trace in the local flow field. Scale Factor becomes “Time” and controls the duration (stopping criteria) for each trace. WARNING! This can take a great deal of time for large numbers of vector arrows and/or long Time values! 4. Select the desired arrow Location of the origin. Choices are: Node Arrows originate from each node of the parent part(s). Vertices Arrows originate only from those nodes that are also vertices of the parent part(s). Element Center Arrows originate from the geometric center of all elements of the parent part(s). 5. Select the desired filter type from the Filter pulldown. 6. Select the desired tip shape. None No tip (default). Cone Solid cone shape Normal Single wedge. Good for 2D problems. Plane of the wedge is based on the relative magnitudes of the components. Two intersecting triangles. Good for 2D/3D problems. Choices are: None No filtering – all vector arrows appear. Low Display only those arrows with magnitude above the value in the Low text field. Band Display only those arrows with magnitude below Low and above High (opposite of Low/High). High Display only those arrows with magnitude below the value in the High text field. Low/High Display only those arrows with magnitude between Low and High (opposite of Band). 7. Set the desired display offset. Triangles Tipped End of the shaft colored in a different color. Good where other shapes yield too much visual clutter. Note: this is rarely necessary because by default, Display offset is set automatically using the graphics hardware. The display offset moves the vector arrows a short distance away from the surface on which they are defined (typically for hardcopy or animation purposes) in the direction of the surface normal. This is used when a tangential projection is used and the arrows are coincident with the parent part’s surface. Note that a negative offset may be appropriate (depending on orientation). You must turn off the hardware display offset in Preferences in order to manually set it here. To turn if off, Edit>Preferences, View. 8. Select the desired projection component. Choices are modified by the Projection component field. Scale the x, y, and/or z in the Projection component field. Values less than 1 diminish the contribution, more than 1 exaggerate the contribution. Zero means that the component is not considered and confine arrows to the plane perpendicular to this component. If you choose Tangential or Normal, and turn ON the Color by Projection Toggle then the part will be colored by the Tangential or Normal All Display arrows in the vector direction. Tangential Display component parallel to surface element. Normal Display component normal to surface element. Page 317 HOW TO CREATE VECTOR ARROWS OTHER NOTES Vector arrows can be animated by animating the parent part (e.g. a clip plane) over space or time using flipbook or keyframe animation. See How To Create a Flipbook Animation or How to Create a Keyframe Animation for more information. If vector arrows are created on a clip through an unstructured mesh, the resulting arrows can be difficult to visualize if the resolution of the underlying mesh varies substantially or is highly irregular. One solution is to create the vector arrows on a grid clip rather than the default mesh clip. See How to Create Clip Planes for more information. Unlike most part creation operators, vector arrows are created from the client’s representation of the part – not the server’s. For example, if you have a clip plane that is displayed using a feature-angle or border representation, only those elements comprising the reduced display will yield vector arrows – even though all elements of the clip plane reside on the server. See How to Change Visual Representation for more information. Vector arrows with a tangential projection can sometimes by occluded by the surface on which the arrows are defined. To solve this problem, use the Display Offset field to add a small displacement to move the arrows away from the surface in the direction of the surface normal. This is most useful for presentation (e.g. hardcopy or animation) output. SEE ALSO Introduction to Part Creation. User Manual: Vector Arrow Parts Page 318 HOW TO CREATE ELEVATED SURFACES Create Elevated Surfaces INTRODUCTION An Elevated Surface is a 2D surface scaled (in the local surface normal direction of the parent) based on a variable value. Elevated surfaces resemble topographic maps and are useful for accentuating relative differences in the value of a variable. An Offset Surface uses a rigid-body translated origin part translated within a 3D parent part, to create a new part using the geometry of the origin part, while getting variable information from the parent part. In other words, an Offset Part results from using a translated origin part to clip a 3D volume parent part. BASIC OPERATION Elevated Surface 1. Select the parent part. 2. In the top EnSight menu, Create > Elevated Surfaces. 3. Select the variable. 4. Select Surface type Elevated. 5. If desired, enter an appropriate scale factor (or leave it DEFAULT). 6. If desired, enter an Offset value. The Offset allows you to “shift” the elevated surface away from the parent, but does not affect the shape. 7. If desired, toggle Surface or Sidewalls off. The Surface is the actual elevated surface. Sidewalls stretch from the border of the parent to the border of the Surface to enclose the created part. 8. Create using selected parts Offset Surface An offset surface can be thought of as clip of a 3D field using a 2D part translated into the field. 1. Do items 1-3 above. 2. Change Surface type pulldown to Offset. 3. Choose the surface normal translation OR vector direction and scale. The rigid-body translation=offset_scale * offset_vector 4. Choose the origin part number which will be used to clip the parent part at a location specified by the surface normal or rigid-body translation in the offset vector direction. 5. Create using selected parts. SEE ALSO User Manual: Elevated Surface Parts Page 319 HOW TO CREATE ELEVATED SURFACES Page 320 HOW TO EXTRUDE PARTS Extrude Parts INTRODUCTION A part or parts can be “extruded” to the next higher ordered part using the Extrusion feature. Namely, a 1d line can become a plane, a 2D surface can become a volume, etc. This “extrusion” can occur in a rotational way (making the whole pie from a thin slice) such as would be needed for reconstruction of a model from an axi-symmetric slice. Or it can be done in a translational manner - as if the part were glued in place, but could be stretched in one direction. For rotation extrusions, you must define an origin and axis vector in the global coordinate system, about which the rotational extrusion will occur, as well as the number of slices and the total rotation angle to sweep through. For translation extrusions, you define a direction vector in the global coordinate system, as well as the number of slices and the total distance to stretch. BASIC OPERATION Rotational Extrusion: 1. Select the parent part in the part list. 2. In the top EnSight menu, Create > Extrude 3. Select Rotation type 4. Set the number of “slices” that will be created. 5. Set the total rotation to extrude. (Needs to be between -360 and 360) 6. Set the origin of the rotation axis 7. Set the components (direction cosines) of the rotation general axis. 8. Create This will cause a 2D slice to become a 3D volume. Page 321 HOW TO EXTRUDE PARTS Translational Extrusion: 1. and 2. as above 3. Select Translation type. 4. Set the number of slices in the translation direction. 5. Set the total translation distance. 6. Set the components of the direction vector. 7. Create And the slice will now become something like the following: Advanced: Click on the Advanced Toggle for more options SEE ALSO User Manual: Extruded Parts Page 322 HOW TO CREATE PROFILE PLOTS Create Profile Plots INTRODUCTION A profile plot is the 2D counterpart to an elevated surface: a projection away from a 1D part based on the value of a variable. Profile plots can be created on any 1D part: clip lines, contours, particle traces, or model parts consisting of 1D elements. BASIC OPERATION 1. Select the parent part in the Part list. 2. In the main menu, Create>Profiles 3. Name the new part. 4. Select the variable to use. 5. Select an appropriate Scale Factor (or leave as Default). 6. If desired, enter an Offset value. The Offset allows you to “shift” the profile away from the parent, but does not affect the shape. 7. If desired, adjust the orientation of the Plane tool. The Plane Tool is used to specify the orientation and direction of the profile plot. See below for details. 8. Create For each node of the parent part, the corresponding node on the profile curve is determined by adding the value of the Offset to the selected variable value and then multiplying the sum by the Scale Factor. The projectors of the profile are the lines that connect the nodes of the parent part to the nodes of the profile curve. The Plane tool is used to specify the orientation and direction of the projectors. The projectors are created parallel to the Plane tool projecting away from the center of the Plane tool (at least where the value of the selected variable plus the Offset is positive). Although the parent part of a profile plot must be 1D, the nodes that make up the part do not have to be linear. For curved parents, the projectors of the resulting profile plot are still parallel, but they do not all lie in the same plane. ADVANCED Click on the advanced toggle to see more scale options and plane tool orientation options. SEE ALSO User Manual: Profile Parts Page 323 HOW TO CREATE DEVELOPED (UNROLLED) SURFACES Create Developed (Unrolled) Surfaces INTRODUCTION EnSight provides several sophisticated tools for extracting computational surfaces from meshes. For model parts or clipped surfaces with a defined axis of rotation (such as those created with the quadric clipping tools), the surface can “developed” or unrolled onto a plane. All variables defined on the clip are properly interpolated onto to the developed surface. A clip can be developed based on curvilinear (radius, z), (theta, z), or (meridian, theta) coordinate projections. The “seam” of the clip can be specified interactively. A model part must have its seam, its longitudinal axis and origin defined appropriately in the Feature Detailed Editor (developed surface settings). To do this, right click on the part, choose ‘Edit’ and then pick the developed surface icon in the top of the window that pops up and define the entities appropriately. BASIC OPERATION To create a developed surface: 1. First, create the desired quadric clip (cylinder, sphere, or cone), or skip this step if your quadric model part already exists. 2. In the Part list, select the parent part for the developed surface (i.e. the part you created in step 1). 3. In the main menu, choose Create > Developed surfaces. 4. Select the desired projection type (see below for details on the types). 5. If applicable for the projection type (and desired) enter u,v scaling factors and press return). 6. To display and change the cutting seam, click the Show Cutting Seam button, and adjust the slider. 7. Create A part is developed by specifying one of three curvilinear mappings called developed projections. The projections are based on the curvilinear coordinates r (radius), z,  (theta), and m (meridian or longitude). These coordinates are defined relative to the local origin and axis of the tool that created the parent part (e.g. the Cylinder tool). The projections are (r,z), (, z), and (m, ). The u, v scale factors (only for (, z) or (m, ) projections) provide scaling for the coordinates in the listed order. For example, if the projection is (, z) then u scales  and v scales z. Toggle Advanced to edit seam origin and axis coordinates SEE ALSO How To Create Quadric Clips User Manual: Developed Surface Parts Page 324 HOW TO CREATE SUBSET PARTS Create Subset Parts INTRODUCTION A Subset Part can be created by specifying node and/or element label ranges of a model part. Subset Parts can only be created from model parts that have node and/or element labels. The Subset Part feature can be used to isolate specified nodal and element regions of interest in large data sets. BASIC OPERATION 1. First, click the Subset Parts Feature icon. 3. Now, for each parent model part, enter the part number of the desired parent part in the Add field, and press return. 2. Can’t find the icon in your Quick Action Icon Bar? Right click on the icon bar and choose Customize Feature Toolbar. Use the left right arrows to add the subset part icon, and the updown arrows to slide its location along the icon bar. 3. Select Elements (or Nodes) to Show. 4. Enter the element (or node) label range(s) in the Show List text field (ranges are separated by commas). OR Toggle on “Pick elements” and select elements using pick selection, which by default is the “p” keyboard key. OR Turn on the selection tool and place it where desired, then click “Add elements from selection tool” to pick all the elements within the tool. 5. Create to use selected parts in step 3. SEE ALSO How To Probe Interactively User Manual: Subset Parts Page 325 HOW TO CREATE TENSOR GLYPHS Create Tensor Glyphs INTRODUCTION Tensor glyphs display the direction of the eigenvectors for a tensor variable. Controls exist to show just the compressive or tensile eigenvectors, and to selectively show the minor, middle, or major vectors. Tensor glyphs have numerous including length scale, tips, color, and line width which can be used to indicate compression or tension. BASIC OPERATION 1. Select the parent parts. 2. Click Create -> Tensor glyphs... (By default there is not an icon for this option in the Feature Icon Bar.) 3. Select the tensor variable to use. 4. Select which eigenvectors to display. 5. Click Create. Page 326 HOW TO CREATE TENSOR GLYPHS Display The glyph’s to indicate tension or compression can be modified in several ways. Put the Tensor Glyph Feature Panel into Advanced mode to open the Tensor Display: 1. Select the desired tip shape from the Tip Shape pulldown. Tip Shape Choices: None No tip (default) Normal Single wedge. Good for 2D problems. Plane of the wedge is based on the relative magnitudes of the components. Triangles Two intersecting triangles. Good for 2D/3D problems. 2. The glyph can either be colored by the part color, or show a specified color for compressions and tension. 3. The glyph can either be shown with the line width attribute of the glyph, or show a different line width for tension and compression. OTHER NOTES Tensor glyphs can be animated by animating the parent part (e.g. a clip plane) over space or time using flipbook or keyframe animation. See How To Create Flipbook Animation or How to Create a Keyframe Animation for more information. Unlike most part creation operators, tensor glyphs are created from the client’s representation of the part - not the server’s. For example, if you have a clip plane that is displayed using a feature angle or border representation, only those elements comprising the reduced display will yield tensor glyphs - even though all elements of the clip plane reside on the server. See How to Change Visual Representation for more information. SEE ALSO Introduction to Part Creation. User Manual: Tensor Glyph Parts Page 327 HOW TO DISPLAY DISPLACEMENTS Display Displacements INTRODUCTION In structural mechanics simulations, a common output variable is a set of vectors representing the movement or displacement of geometry. Each displacement vector specifies a translation of a node from its original position (an offset). EnSight can display and animate these displacements to help visualize the relative motion of geometry. In many cases, the magnitude of the actual displacements is extremely small relative to the size of the model. EnSight provides a displacement factor to scale the vectors and exaggerate the displacement. For Model Parts Displacements can be applied deeply on the server (in which the displacement vector is actually added to the coordinates) or on the client (in which the graphical entities on the client are displaced visually only using the graphics card). Server-side applied displacements (Displace computationally toggle ON, default) will apply the displacement on the server coordinate prior to a calculation or operation. Client-side (Displace computationally toggle OFF) displacement occurs after calculations and operations. Thus, for example, toggle on the Displace computationally toggle to see the calculated volume change, and toggle this off to see the volume remain unchanged. And, for example, if you wish to make a cutaway down the centerline of your model then show the cutaway displaced, turn off Displace Computationally, make your cut, and then pick your variable to use in displacement, so that your cut occurs before the displacement. For Created Parts Created parts can only be visually displaced. A part created using a parent model part that has been computationally displaced on the server will apply the displaced coordinates to the parent then create the part. This created part will show up with part displacements turned off, yet will be displaced because it used the changed coordinates of the parent when it was created. Warning: if you then turn on visual displacements on this newly created part, then it becomes twice displaced: once from the changed model part coordinates, and once from visual displacement on the client. And a part created using a parent model part that has been visually displaced will use the original, undisplaced coordinates to create the part. This created part will also show up with part displacements turned of and will not be displaced because it used the original, undisplaced coordinates of the parent when it was created. if you then turn on visual displacements on this newly created part, then it becomes once displaced: once from visual displacement on the client. A simple summary of cutting a model part is as follows. Cutting a visually displaced part does a cut then move. Cutting a computationally displaced model part does a move then a cut. So if you create a plane cutaway on a model part that is computationally displaced, the cutaway will appear to grow through the fixed plane as more of it displaces through the plane because it is using the displaced coordinates prior to making the cutaway. If you create a plane cutaway on a model part that is only visually displaced, the displaced cutaway part will remain of fixed size and not move. If you turn on visual displacements, the cutaway will remain the same size and then start to move because the cutaway occurs on the undisplaced part and then that cutaway moves visually. Note: If you select parts that are heterogeneous (some model parts, some created parts), the dialog will always show the computational displacements unchecked and greyed out (unchangeable) so that the displacement is visual only. This is because created parts can only be visually displaced, and model parts can be either computationally or visually displaced so the dialog chooses the only possible displacement common to both: visual. Caution: A common mistake is to make cutaway part using undisplaced model parts and then to select all and turn on displacements. This will turn on visual displacements only. Other Warning: you cannot turn on displacement when using Rigid Body Motion. See How to Use Rigid Body Motion. Page 328 HOW TO DISPLAY DISPLACEMENTS BASIC OPERATION 1. Select the parent parts. 2. Click the Displacements icon. 3. Select the nodal variable to use. Limitation: can only use nodal vector variables. 4. If desired, enter a value for the Displacement Factor and press return. 5. For speed and memory, default is visual displacement only. If you desire to use the displacement in any calculations then toggle on Displace computationally, which will do server-side displacements. Note that your changes made are immediate. Specifying a displacement does not create a new part, it merely sets the displacement for the selected parts. Page 329 HOW TO DISPLAY DISPLACEMENTS Server Side Displacements Server side displacements have more detailed found in the Create/edit dialog. 1. First read in your model, build the desired parts, and activate the model variable (not computed variables) representing displacement. 2. Select the desired parts in the Parts list. 3. Right click on them and select Edit... 4. Set any desired entire geometry scale factor. Hit a carriage return. 5. Set the scale factor for any desired displacement variable. Hit a carriage return. 6. Set the nodal displacement model variable and any desired translation for each component. Hit a carriage return. Note that it is possible to displace in each component direction by a different variable and to translate by a single value in each direction. It is also possible to scale the entire geometry by a factor. Displacements applied in this manner actually modifies the geometry on the server (not just the visual representation on the client). Any queries or computations will reflect this modified geometry. For example an area or volume calculation will now use the displaced values. Page 330 HOW TO DISPLAY DISPLACEMENTS ADVANCED USAGE Vibrational analysis typically produces eigenvectors. EnSight can animate these vectors as mode shapes to visualize selected vibration modes (each represented by a different displacement vector). The EnSight Flipbook is used to build and load the animation. Once loaded, the animation can be replayed while still providing viewing control. To create a mode shape flipbook: 1. Be sure displacements are active and the Displacement Factor is set to a suitable value (as described above). 2. Click the Flipbook icon. 3. Select Mode Shapes from the Load Type pulldown. 4. Enter the desired number of Flipbook pages to create. 5. Click “Load”. 6. Once loading is complete it will automatically start running. The first page of the animation shows the full displacement (as it is shown in the Graphics Window without the Flipbook) while the last page shows full displacement in the opposite direction. Intermediate pages show displacements as driven by the cosine function. Note that you can create copies or extracts of parts and simultaneously display them with different mode shape variables or to show the initial static state along with the mode shape animation. SEE ALSO See How To Create a Flipbook Animation for more information on Flipbooks. User Manual: Flipbook Animation Page 331 HOW TO DISPLAY DISCRETE OR EXPERIMENTAL DATA Display Discrete or Experimental Data INTRODUCTION In addition to meshed data consisting of nodes and elements, EnSight also supports discrete or measured data. A measured dataset consists of a series of arbitrary points in space with no connectivity. Measured data can have associated variable data and can vary over time. Examples of measured data include fuel sprays, multi-phase flows, and experimental data. Measured data cannot be loaded by itself – you must also specify a regular geometric mesh. BASIC OPERATION Measured data is read into EnSight naturally via the casefile (for EnSight6 and Ensight Gold formats) or can be read with other mesh formats via the Format options tab in the Open... dialog, as shown below: 1. Select File > Open... to open the dialog for data file selection. 2. Find the directory containing the data (see How To Read Data for more information on using File Selection). 3. Click Advanced interface. 4. In the Data tab, select and set the needed information for the (meshed) geometry, including the Format, geometry file, and if applicable, the result file. 5. Open the Format options tab and select and set the measured result file. 9. Now you can continue the normal process of either Load all parts, or Select parts to load... Page 332 HOW TO DISPLAY DISCRETE OR EXPERIMENTAL DATA Measured data is represented as a single part. In the Main Parts list you should see a part named “Measured/ Particle” after loading. Measured data is represented as a set of unconnected nodes. You can use EnSight’s ability to display nodes in various ways to accentuate measured data visualization. To change node display: 1. Select the desired measured data part in the Parts list. 2. Click the Node representation icon Which opens the Part Node Rep dialog. Node Visibility will be on by default for measured data parts. 3. Select the desired node display type • Dot: nodes are displayed as points. • Cross: nodes are displayed as crosses and can be fixed sized (size set by the Scale value) or sized based on a Variable (and scaled by the Scale value). • Sphere: nodes are displayed as spheres and can be fixed sized (size set by the Scale value) or sized based on a Variable (and scaled by the Scale value). Sphere detail controlled by Detail value. 4. If applicable, set desired values for Scale, Detail, Size By, and Variable. OTHER NOTES The file formats for measured data and the measured results file are detailed in EnSight Gold Measured/Particle File Format. Transient measured data can be animated using either the flipbook or keyframe animation capability. You can load multiple measured datasets simultaneously by using EnSight’s cases capability. SEE ALSO User Manual: EnSight Gold Measured/Particle File Format Page 333 HOW TO CHANGE TIME STEPS Change Time Steps INTRODUCTION From its inception, EnSight has been used extensively to postprocess time-varying or transient data. In many cases, dynamic phenomena can only be understood through interactive exploration. One can easily change time with vcr-type controls in the Solution Time Player (which comes up by default for transient models). Further control for transient data time handling is provided in the Create/edit Transient Animation dialog, accessed via the Solution time icon. EnSight provides two ways to work with transient data. By default, time is presented as a series of discrete steps running from zero to the total number of steps minus one. However, you can also present time based on the actual simulation time values found in your results data. The presentation mode is controlled by the Units pulldown which will be shown below. shown below. The current time range is displayed in the Beg and End fields with the current time step shown in the Cur field. You can modify the time range controlled by the slider by editing the Beg and/or End fields (remember to press return). You can change the current time step by editing the Cur field (press return), manipulating the slider, or clicking the left/right vcr buttons. Setting the Beg to any number less than the min, and End to any number larger than the max will Reset Time Range to its full range. Time scaling and stepping (as manipulated through the slider bar and Beg, Cur, and End fields) can either be Discrete or Continuous. If scaling is Discrete, only your actual time steps as written in the results data can be visualized. In addition, the Beg, Cur, and End fields can only be set to integer values (if Units is set to Step and Scale Type is Discrete) or actual simulation times represented in your results data (if Units is set to Sim. Time). If scaling is Continuous, you can display results between your actual output time steps (all variable values are linearly interpolated between the two surrounding time steps). Note that if your mesh connectivity is changing over time you cannot display results continuously. When you load multiple cases it is possible that the composite master timeline is inappropriate. You can specify a master timeline from any one of the cases you have loaded and decide how the other cases will sync up to changes in time. You can even create your own master timeline. When you manipulate the slider or change the Cur field, EnSight will perform all tasks necessary to correctly display the new time step in the Graphics Window. Depending on the size of the dataset and the number of additional parts you have created, this may take a significant amount of time. If you wish to create an on-screen animation of your results, use the VCR run icon or go use the Flipbook facility. BASIC OPERATION To use the Solution Time Player (which comes up by default for transient models): To change one step lower. To play steps in reverse order. To stop a running play. To play steps in forward order. To change one step higher. The slider can also be used to manually change time. To control what happens when playing and the limit is reached. To stop when it reaches the limit. To cycle, starting at the first again. To reverse order and continue. (bounce back and forth) The Beg and End fields control the available time range (and also the range of the slider action). You can enter new values into the fields and press return. The Cur field sets the current time step. Either move the center slider or enter a new value in the field and press return. To open the Create/edit Transient Animation dialog for additional controls. (Same as hitting the Solution time icon). Page 334 HOW TO CHANGE TIME STEPS : You control more by opening the Create/edit Transient Animation dialog. Click either the Solution time icon or the ... button. Make changes as desired. Click to display time as annotation in the graphics window. Set Scale Type to Discrete or Continuous (see above for details). Set Units to Step or Sim. Time (see above for details). Set the number of time cycles in the time range. Click to view/modify timeset details (see Advanced Usage below). Set the step increment size for the slider arrows. Must be an integer if Scale Type is Discrete. If the Monitor for new time steps button is available, you may choose an update method for monitoring the availability of new time steps. This is only available if your data reader supports this feature (for more details see the advanced feature in User Manual 5.1 Solution Time Recording an Animation of your data: You can record the timesteps to images or animation formats by clicking the Record current graphics window animation icon to bring up the Save animation dialog. Set the transient data settings and set the number of frames to record (by default this will be the number of available time steps). Specify a file name The images or movie file will be created after you click the Ok icon. The options for this dialog are explained in How To Print/Save an Image Page 335 HOW TO CHANGE TIME STEPS ADVANCED USAGE Timeset Details EnSight allows geometry and variables to behave in a transient manner on different timelines, i.e., a variable called Temperature can be defined at t = 0., 3., and 6. while a variable called Pressure can be defined at t = 0., 2., and 5.5. The Timeset Details button will bring up the Timeset Details dialog which allows the user to view the various timelines as well as specify how the variables will behave when they are not defined. The EnSight case file defines the timesets (name and associated time values) and associates a timeset with each of the variables and geometry. By default the Solution Time player will show a composite of all of the timesteps that exist across all of the timesets. This can, however be changed to show just the time values associated with a particular timeset. In the Timeset Details dialog shown below, multiple timesets exists. Two timesets (from the Which Timeset(s) list) are selected and are thus shown in detail. The graphics for each timeset shows (a) the minimum and maximum overall time value, (b) green tick marks indicating the time values defined for the timeset, (c) the current time value (indicated with the long green line) associated with the timeset. (See Timeset Details... Tim sets Tab in UserManual 5.10 for more info.) The current solution time (as set in the Solution Time dialog. Select the timeline to be viewed. To modify all the timelines to behave the same way, select which range is to be modified, then select how they will be displayed. The timeset can either be shown having a time range over the total number of time values or can be shown according to the timeset’s range. By default the Solution Time dialog shows the composite timeline. This button will modify the Solution Time dialog’s Beg and End values to those of the selected timeset. Shows the time value being used at the current time. The timeset is used by the variables (or geometry) shown in this list. Toggle ON the Master timeline toggle, then click on the Update selected timeset button to use only the timesteps in this timeline When the current time (from the Solution Time dialog and indicated in the upper left corner of this dialog) is set to a value less than what is available for this timeline, use the Nearest value or make the variable Undefined. When the current time (from the Solution Time dialog and indicated in the upper left corner of this dialog) is set to a value that does not exist for this timeline, Interpolate between defined time values, use the Left, Right, or Nearest value, or make the variable Undefined. When the current time (from the Solution Time dialog and indicated in the upper left corner of this dialog) is set to a value greater than what is available for this timeline, use the Nearest value or make the variable Undefined. Page 336 HOW TO CHANGE TIME STEPS Master Timelines When multiple transient cases are loaded it is entirely possible that the number of time values as well as the time values themselves do not match up between the cases. By default EnSight creates a master timeline which is the composite timeline across all the cases, i.e., it finds all of the unique time values and places these on the master timeline. It is often desirable to define a master timeline. This can be done by either redefining the master timeline or by allowing the master timeline for any case to become the master timeline for EnSight and occupy the VCR controls for time. As soon as you read more than one case into EnSight the Solution Time dialog will show an extra section where you can control not only which timeline might become the VCR player controls but also indicate how the various cases will behave when time is changed. In the image shown here there are two cases. The first case has 21 timesteps and the second has 5 timesteps. The only time value that overlaps between the cases is the first with t=0. and thus the Master timeline has 25 timesteps. You can see that the current timestep for Case 1 is the last time step (20) and Case 2 is also currently at the last timestep (4). Any one of the timelines can be shown as the transient data controls in the EnSight Time panel (the VCR controls). When time is changed the Case will be updated to the new time value only if the Active toggle is set. You can use this to "freeze" a case at a specific time value. In this dialog we have changed the Player toggle to indicate that Case 1 is in control. Once you choose a case to have control you can set how a change to time for the controlling case will modify the other cases. Three options are available: None - indicates that when a time change is made the other active cases will not be affected. Time - indicates that the other active cases will attempt to change to the same time value. Relative - means that the other active cases will be modified to have a time value offset by the current difference, i.e., if the time is stepped forward by one step the other active cases will also be stepped forward by one step. The Current, Begin, and End columns are shown for informational purposes to help you see where each case timeline is currently located. If you want to create your own Master timeline, click the Timeset details... button. Page 337 HOW TO CHANGE TIME STEPS This dialog shows the time values for the composite master timeline. Toggle on "Use custom master timeline" to create a new master timeline You can select time values in the left column and remove them with the Delete button You can select time values in the right column and push them into the left column via the arrow icon Change the Case timeline pulldown to see time values for the various loaded cases When completed, click the Apply button SEE ALSO How To Load Transient Data, How To Animate Transient Data User Manual: Flipbook Animation Page 338 HOW TO EXTRACT VORTEX CORES Extract Vortex Cores INTRODUCTION Vortex cores are centers of swirling flow where the velocity is parallel to the vorticity. For a more complete description refer to the User Manual section below. BASIC OPERATION 1. Select the parent part. 2. Select Create -> Vortex cores... 3. Bring up the Vortex Core Variable Settings dialog by clicking here. 4. Define either (Density and Momentum) or Velocity, as well as the Ratio of Specific Heats. The variables can be set by either typing them into the fields, or selecting them from the list above and clicking the Set button. 5. Click Okay to finish the variable setup. 6. Click Create. Page 339 HOW TO EXTRACT VORTEX CORES ADVANCED USAGE The resulting vortex core lines can be filtered by the vortex core strength or by any other active variable. 1. Select the variable to filter by. 2. Set the Threshold filter to remove the portion of the vortex core that is larger or less than the specified threshold value. 3. Slide the slider to a new threshold value. - or 3. Enter a threshold value OTHER NOTES Extract Vortex Cores does not work with more than one case. SEE ALSO User Manual: Vortex Core Parts Page 340 HOW TO EXTRACT SEPARATION & ATTACHMENT LINES Extract Separation & Attachment Lines INTRODUCTION Separation and attachment lines are created on any 2D surface and show interfaces where flow abruptly leaves (separates) or returns (attaches) to the surface. For a more complete description refer to the User Manual section below. BASIC OPERATION 1. Select the 2D parent part. 2. Select Create -> Separation Attachment lines... 3. Bring up the dialog defining the necessary variables by clicking here. 4. Define either Density and Momentum or velocity, as well as the Ratio of Specific Heats. The variables can be set by either typing them into the fields or be selecting them from the list above and clicking the Set button. 5. Click Okay to finish the variable setup 6. Click Create This will create two parts - one each for the separation and attachment lines. You can modify the visual of these parts separately, but when you change any creation attribute, both parts will be modified. Page 341 HOW TO EXTRACT SEPARATION & ATTACHMENT LINES ADVANCED USAGE The resulting separation/attachment parts can be filtered by the fx_sep_att_strength variable or by any other active variable. 1. Select the variable to filter by. 2. Set the Threshold filter to remove the portion of the separation/attachment line that is larger or smaller than the specified threshold value. 3. Slide the slider to a new threshold value - or 3. Enter a threshold value. OTHER NOTES The separation and attachment parts are linked together with regard to their creation, i.e. when one is modified the other is also. Further, when one is deleted the other is also deleted. Separation and Attachment feature extraction only works with one case. The separation and attachment line parts should generally not interfere visually with the 2D parent parts they lie on (as long as the preference for graphics hardware offset is on - see View Preferences), but they may interfere if printed. In either case you can apply a display offset manually to avoid the interference in the Feature Panel for the part. The display offset will be in the direction of the parent surface normal. SEE ALSO User Manual: Separation/Attachment Line Parts Page 342 HOW TO EXTRACT SHOCK SURFACES Extract Shock Surfaces INTRODUCTION Shock surfaces and regions help visualize shock waves in 3D (trans/super-sonic) flow. For a more complete description, refer to the User Manual section below. BASIC OPERATION 1. Select the parent part. 2. Select Create -> Shock regions/ surfaces... 3. Bring up the dialog defining the necessary variables by clicking here. 4. Define either Density or (Temperature and Pressure), (Energy or Pressure), (Momentum or Velocity), and Ratio of Specific Heats. The variables can be set by either typing them into the fields, or selecting them from the list and clicking the Set button. 5. Click Okay to finish the variable setup. 6. Choose the Variable to use. 7. Choose Region or Surface. 8. Click Create. Page 343 HOW TO EXTRACT SHOCK SURFACES ADVANCED USAGE The resulting shock can be filtered by any of the threshold variables 1. Select the variable to filter by. 2. Set the Threshold filter to remove the portion of the shock surface or region that is greater or less than the specified threshold value. 3. Enter a threshold value - or 3. Slide the slider to a new threshold value 4. The shock is usually defined in a very narrow band, so the slider min/max values may need to be adjusted by either entering new values in the min/ max fields. OTHER NOTES See Other Notes in the Shock Surface/Region Create/Update section of the User Manual for options on how to prefilter flow field regions, and/or post-filter shock regions via a specified mach number. Also to apply the transient correction term for moving shocks when using the shock Region method. Shock Surface feature extraction does not work with multiple cases. SEE ALSO User Manual: Shock Regions/Surfaces Parts Page 344 HOW TO CREATE MATERIAL PARTS Create Material Parts INTRODUCTION A Material Part can be created as either a domain or an interface. A material Domain is a solid region (or regions) composed of one or more specified materials. Parts with 2D elements yield 2D material elements, and parts with 3D elements yield 3D material elements. A material Interface is a boundary region (or regions) between adjacent materials composed of at least two or more specified materials. Parts with 2D elements yield 1D material elements, and parts with 3D elements yield 2D material elements. The Material Part feature can be used to isolate specified elemental regions of interest in data sets with material fractions. BASIC OPERATION For Material Domain (for Smooth Method): 1. Bring up the Feature Panel for Material Parts. For example, choose Material Parts from the Create pulldown. 2. Select the parent model part(s). 3. Set Type to Domain. 4. Select 1 or more materials. 5. Click Create. For Material Interface (for Smooth Method): 1. Bring up the Feature Edit Dialog for Material Parts. For example, choose Material Parts from the Create pulldown. 2. Select the parent model part(s). 3. Set Type to Interface. 4. Select 2 or more materials. 5. Click Create. Page 345 HOW TO CREATE MATERIAL PARTS SEE ALSO User Manual: Material Interface Parts In Section 9.1, EnSight Gold Casefile Format, see EnSight Gold Material Files Format Page 346 HOW TO FILTER PART ELEMENTS Filter Part Elements INTRODUCTION One or more variables can be used within EnSight as a means of filtering out elements in model parts. In the simplest form a single "failure" variable might be specified which will remove elements that are beyond a threshold and thus no longer viable. The element filtering is a "deep" filter in that elements are not just visually removed on the client, but are also removed for all calculations on the server. For example, the volume of a part calculated using the calculator will only include the non-filtered elements. If you only need to visually remove elements consider Element Blanking. The filter criteria can be something as simple as a variable with two states (one state to indicate the element is failed, and the other state to indicate that the element is not failed), or it can be a variable (such as a Von Mises stress/ strain) threshold for which you specify limiting values and conditions for element removal. The filter variable would ideally be a per-element variable. But you can also use a per-node variable in which case the nodal values are averaged on the element. Note: element filtering can only be performed on model parts. So if its effect is desired on created parts, such as clip planes or isosurfaces, one should apply this operation to the model parent parts of the desired created parts and the children will inhered the element filtering. Six filters are available. Each filter can specify a variable to use in the filtering process which can be compared against another variable or a constant value. The filters are combined with "and" or "or" operators. The filtering occurs sequentially through the filters, i.e., it is not possible, for example, to specify a filter operation of "variable1 < 0.5 OR (variable2 > 1.0 AND variable 3 < 0.0)" Page 347 HOW TO FILTER PART ELEMENTS BASIC OPERATION 1. Select the model part(s) to use. 2. Click on the Filter Elements icon. 3. Select the variable you wish to use for filtering (In this example we use Stress > 0.07). 4. Turn the filter "active" 5. Click Apply Those elements which satisfy the element filter criteria will be removed from the model. Page 348 HOW TO FILTER PART ELEMENTS ADVANCED USAGE EnSight’s User-defined reader API is capable of dealing with designated failure variables and the failure values and conditions. Thus, a reader can be set up to use failure conditions that solvers provide and automatically apply the element filtering operations for you. An example of this is the LS-DYNA3D reader provided with EnSight. . Note the Format option provided by this reader, entitled: “Remove Failed Elems”. By checking this option, a “Delete_Flag” variable is created, and the element filter feature of EnSight will be automatically on - with the conditions and values set that will filter the failed elements that the solver flagged SEE ALSO How-To Read User Defined Do Element Blanking Page 349 HOW TO DO ELEMENT BLANKING Do Element Blanking INTRODUCTION EnSight allows you to pick elements in the model and make them disappear - “blank them out”. This may be desirable if you want to peek inside of certain parts or remove portions of a part (without making the entire part invisible or transparent). Element blanking is only visual removal on the client. For example the calculated volume does not change if some elements are blanked. Element blanking is a temporary state that can easily be “cleared” - making the elements visible again. BASIC OPERATION Using picking to do element blanking: 1. Set the pick action to “Pick element(s) to blank”. 2. Select part(s) in the part list that you wish to operate on. 3. Place the mouse pointer over the element you wish to blank out and press the “p” key to blank the element. You will see the element under the mouse disappear as you do the picking. 4. To cause the elements to reappear, click the Element blanking/visibility icon and click the clear button in the dialog which comes up. Note that blanking can be done directly using the mouse if you change the mouse and keyboard settings. For example, the preferences can be set to blank using a middle mouse button click on the part. Edit > Preferences > Mouse and Keyboard. Page 350 HOW TO DO ELEMENT BLANKING Also, the selection tool can be used to do element blanking on a larger scale: 1. Select the part(s) on which to do element blanking. 2. Click on the Selection tool icon to turn on the tool. 3. Position the tool as desired. 4. Click on the blanking icon. 5. Choose the criteria to use for blanking: inside or outside (inside or outside the box) and top or all (top is just the first visible layer, all is to blank all elements in a direction perpendicular to box. 6. Click on the element blanking eraser symbol at the upper left of the tool. Results in this. To undo the blanking, click the Clear or Clear all parts button. Note The element IDs are used to tag visibility. These tags are preserved through timestep changes. If the elements change IDs (perhaps changing connectivity) then EnSight will continue to use those same IDs which may result in invisible elements at different locations. SEE ALSO How To Use Selection Tool Page 351 HOW TO USE POINT PARTS Use Point Parts INTRODUCTION A point part is a part composed only of nodes. It can be read in as a model part or can be created through the use of the Point Part feature. In order to create the part, a series of point locations must be defined. The point locations can be read from an external file, or can be created by placing the cursor tool at desired locations and adding points. You can later edit the locations of, or delete any of the points. When you select a parent part and click Create, a new part with only nodes is created. This type of part can represent probes in the data, or lends itself well to meshing into a 2D or 3D part. As the per-node variables of the model parts are mapped to the point part locations, it is also a great way to write out nodal variable information (using File->Save->Geometric Entities) for further calculations. Note if a parent part has per element variables then they must be moved to the nodes using the calculator function ElemToNode. BASIC OPERATION 1. Select the parent part. 2. Click Create -> Point parts ... To open the Feature Panel for Point Parts. 3. Make the cursor tool visible. 4. Move the cursor to the desired spot. (Interactively or by using the Transformation Editor.) and Click the Add Point (at cursor) button. (Repeat as many times as needed) OR 4. Click the Load points from file... button. (Which will bring up the file select dialog) and select a file that contains the desired points. (See Section 9.17 Point Part File Format in the User Manual) A simple sample of a Point Part file: #Version 1.0 #EnSight Point Format -.5, -.5, .5 -.5, .5, .6 .5, -.5, .7 .5, .5, .4 -1.5, -1.5, .5 1.5, 1.5, .3 2.25, 2.1, 1.5 5. Click Create. 6. To create a mesh from a point part, click on the Advanced button. Page 352 HOW TO USE POINT PARTS SEE ALSO User Manual: Point Parts Page 353 HOW TO USE RAYTRACE RENDERING Use Raytrace Rendering INTRODUCTION Raytracing is an advanced rendering technique in computer graphics, where simulation of the light transport is performed between the image pixels, objects in the scene, and the light sources. This technique is capable of generating high realism images, but at a much higher cost than that of typical rasterization-based techniques. It is usually implemented in software while the rasterization-based techniques are in hardware. Raytracing is suitable for rendering a wide variety of optical effects, such as reflection, refraction, soft shadow, etc. BASIC OPERATION 1. Choose File->Export. There are two export types which support raytracing. Exporting an Image: 2. Select Image... The save Image dialog will appear. 3. In this dialog, we first set up the normal image output options, such as file path, image format, image size, etc. 4. Open the Advanced frame box. Here we will see the raytracing settings. 5. For a quick start, simply check the “Raytrace the scene” checkbox and leave all the rest of the settings untouched. 6. Press the Ok button. The data will be rendered using the raytracing rendering engine and exported as specified after the rendering is finished. Page 354 HOW TO USE RAYTRACE RENDERING Exporting a video (Animation): 2. Select Animation... The Save animation dialog box will come up. If you see that the Animation menu item is grayed out, then the data set does not contain transient data. You will need to create some transient data such as a flipbook or keyframe animation. 3. Open the Advanced frame box. Here we will see the raytracing settings. 4. For a quick start, simply check the “Raytrace the scene” checkbox and the raytracing rendering engine will be used for rendering each frame of the animation. This dialog differs from the one with image export. Namely, the “Raytrace externally” option does not exist here. The reason is that we automatically let a backend task manager take charge of the time consuming work involved. You can let this happen in the background and continue your interactive wor, and leave all the rest of the settings untouched. 5. Press the Ok button. Page 355 HOW TO USE RAYTRACE RENDERING RAYTRACING OPTIONS When you click on the “Raytracer settings” button in the previous dialog, the settings dialog box will come up. and you can control several options. Output A user can choose which output to use. The default choice is EnRay - which is EnSight’s built-in renderer. POV-Ray will generate files suitable for the POV-Ray application. Use OpenGL reflection map EnSight provides a default material library, where there are some reflection maps used for reflective materials when the graphics hardware rendering engine is used. If a user prefers to use these reflection images in the raytracer, he can inform the raytracer to use them here. But, doing so will disable the real inter-reflection computation between scene objects. Use OpenGL foreground Whether output of 2D overlay of the graphics hardware rendered result is sent to the raytracer or not. Usually, EnSight’s graphics window contains not only rendering results from 3D geometry, but also 2D illustrations such as palettes, plots, tables, etc. The raytracer does not have the capability to render the 2D layer. Therefore, when this option is set, the system will output the hardware rendered 2D layer as an image and composite it with the raytracing result. Surface integrator Choose from different raytracing algorithms. Currently the raytracer has two options. The Whitted style, which traces three types of rays: reflection, refraction, and shadow. It is an efficient rendering algorithm for rendering highly reflective scenes. It is not good at rendering diffusely reflective scenes. And the ambient occlusion technique, which is suitable for scenes which are dominated by ambient lights. It uses the local occlusion ratio to modulate the shading results. Quality Specify the image quality of the raytracing result. In the current implementation we set 6 levels, where 0 is the lowest and 5 is the highest quality. The detailed raytracing parameters are hidden from the user, such as number of samples per pixel, recursive depth, etc. Raytrace externally (when doing Image output) EnSight can use both the internal EnRay raytracer or the external command line EnRay raytracer to perform the raytracing task. By checking the option “Raytrace externally” for image output, EnSight will use the external one. The benefit of doing so is that a user will not be blocked by the time-consuming raytracing computation, and will be able to continue his interactive session. External Raytracing startup settings Delay raytracing execution until Allows you to specify the date and time to start the jobs, in place of having them start as soon as submitted. Page 356 HOW TO USE RAYTRACE RENDERING SEE ALSO User Manual: Chapter 15, Raytracing Page 357 HOW TO USE RAYTRACE RENDERING Page 358 HOW TO ACTIVATE VARIABLES Create and Manipulate Variables Activate Variables INTRODUCTION When a results dataset is read into EnSight, associated variables are noted and listed in the Variables List Panel. However, a variable will remain deactivated (not loaded into memory) until some operation requires it or it is explicitly activated (read into memory). If an active variable is no longer required, you can deactivate it and free the associated memory. BASIC OPERATION Variable Activation and Deactivation In most instances, variables are automatically activated as required. For example, if you create a contour using a deactivated variable, EnSight will automatically activate the variable prior to creating the contour. You can also activate and deactivate variables explicitly via right clicking on the variables in the Variable list. 1. Right click on the variable(s) you wish to activate or deactivate. Grayed out variables are currently deactivated. 2. From the resulting right click pull down select Activate (or Deactivate if the variable is already active) SEE ALSO How To Edit Color Palettes, How To Create New Variables User Manual: Variable Selection and Activation Page 359 HOW TO CREATE NEW VARIABLES Create New Variables INTRODUCTION EnSight provides a powerful capability to derive new variables from existing variables and parts. For example, in a fluids dynamics problem, if you have momentum, density, and stagnation energy you can calculate temperature, Mach number, pressure, or velocity. In addition to the built-in functions, you can also compose your own functions using the equation editor in conjunction with previously defined variables. This article is divided into the following sections: Introduction Variable Creation Examples of Expressions Extended CFD Variables BASIC OPERATION Introduction EnSight provides six distinct types of variables: Constant A constant variable is a single value. Constants do not vary across a part although a constant can vary over time. Examples include Analysis_Time, Temperature[123] (the value of temperature at node 123), Stress{3}[321] (the value of stress at node 321 at time step 3), or the value of a function that produces a constant (e.g. Area). Constant per part A constant per part is a single value per part. Thus the value does not vary within a given part, but can be different for each part. Examples include things like area, volume, max of a scalar, etc. Scalar A scalar variable is a set of values: one for each node or element of the applicable part(s). Examples include Pressure, Velocity[Z] (the Z component of velocity), Stress{3} (the value of stress at time step 3), or the value of a function that produces a scalar (e.g. Flow) Vector A vector variable is a set of values: three (the X,Y,Z components) for each node or element of the applicable part(s). Examples include Velocity, Velocity{3} (the value of velocity at time step 3), Coordinates (a given variable equal to the XYZ coordinate at a node), or the value of a function that produces a vector (e.g. Vorticity). Tensor A tensor variable is a set of values: six (if symmetric) or nine (if asymmetric), for each node or element of the applicable part(s). Tensor variables can be represented by Tensor Glyphs directly, and within the variable calculator eigenvalues, eigenvectors, determinant, VonMises or Tresca, etc. can be computed. Complex A complex variable, which within Ensight can be either scalar or vector, includes the real and imaginary portions of the values. The variable calculator allows the user to compute things like modulus, argument, transient response, etc. Variables are either given (read from the dataset or automatically provided by EnSight) or computed (derived from existing variables during an EnSight session). The variable type and whether it is given or computed are shown in the Variables list panel by looking at the Computed column. The Location column will tell you if a variable is node or element based. Every non-constant variable (both given as well as computed) has an associated color palette that defines the mapping from variable values to color. These palettes can be edited to change the mapping (see How To Edit Color Maps for details). The value of a constant variable can be displayed as a text string in the Graphics Window (see How To Create Text Annotation for details). For time-dependent data, calculated variables will automatically recalculate when the current time step is changed. Page 360 HOW TO CREATE NEW VARIABLES Variable Creation Derived variables are easily created using the Variable Calculator. To create new variables: 1. Click the Variable Calculator icon in the Feature Icon bar to open the Calculator Tool Box. There are by default three tabs (and usually a fourth as you can see). The left mouse icon is for Predefined functions, the icon with the pencil is for Defining your own, the third tab is used for modal variable feedback. Then multiple other user defined tabs might exist with various functions. The Sum of F tab is a user defined tool distributed by default. It finds the summation of forces and moments. 2. Select the desired tab to either use predefined functions or define your own equation using math operators and functions. Predefined functions Tab: You can search for a function name or find the function in the list. When you select a function, the Variable Name field (at the top of the section) is loaded with the name of the function. This will be the name of the variable as seen in the Variables list. You can change this name by entering a new name (and pressing return). A description of the function parameters appears directly below the function list. In the Predefined function parameters section you are presented with the required inputs to the expression. For each required input you are presented with the valid choices. For example, in the function in the figure at right, density can be either a floating point value or it can be a scalar. If you wish to specify a scalar you would click on the radio button and find the required scalar in the pulldown list (which will only be showing you scalar variables). If you wish to enter a floating point value you would enter it into the field that currently indicates “enter float value” by double clicking and overwriting it with the appropriate value. 3. When all of the parameters have been set make sure you have the correct parts selected in the Parts list then click on the “Evaluate for selected parts” button. Page 361 HOW TO CREATE NEW VARIABLES Define equation Tab: Alternatively, you can build your own equation by selecting variables, math functions, operators, and numbers as desired. Once you have the desired equation in the Expression field, and a name in the Variable name field - make sure you have 1. the correct parts selected then 2. toggled on the Constants per Part if your result will be a constant and you want a value defined on each part. The default is off, which is a single case constant. 3. click “Evaluate for selected parts”. Examples of Expressions The following examples demonstrate usage of the variable calculator. In each case, first enter a name in the Variable Name field then click on the interface buttons or list entries or type directly into the Expression area. The examples below assume that Analysis_Time (a given constant variable if the dataset is transient), pressure, density, and velocity are all existing, active variables. Expression -13.5/3.5 Description and How to Build A simple constant. To build, either type the text on the keyboard or click in the Calculator keypad. Analysis_Time/60.0 A constant variable. Assuming the solution time was given in seconds, this expression will provide a variable giving the time in minutes. To build, select Analysis_Time from the Active Variable list and either type or click /60.0 Page 362 HOW TO CREATE NEW VARIABLES Expression velocity*density Description and How to Build Momemtum – a vector variable. To build, select velocity from the Active Variable list, click or type *, and select density from the Active Variable list. SQRT(pressure[73]*2.5) + velocity[X][73] Square root of (pressure at node 73 * 2.5 + the X component of velocity at node 73) velocity^2 You have to be careful here. velocity^2 is NOT equal to DOT(velocity,velocity). A vector * vector in EnSight is performed component-wise (x-component * x-component, ycomponent*y-component, and z-component*z-component). The magnitude of this expression is SQRT(x-component^4 + y-component^4 + z-component^4) which is NOT the square of the magnitudes. If you are looking for a scalar result for the square of the velocity, use DOT(velocity,velocity), or, for velocity magnitude, use RMS(velocity) or SQRT(DOT(velocity,velocity)), or SQRT(velocity[x]*velocity[x] + velocity[y]*velocity[y]+velocity[z]*velocity[z]). pressure{19} Scalar variable equal to pressure at time 19. This variable will not change if the current time step is changed. To build, select SQRT from the Math function list, select pressure from the Active Variable list, click or type [73]*2.5)+, select velocity from the Active Variable list, and click or type [X][73]. To build, select pressure from the Active Variable list and click or type {19}. MAX(plist, pressure) Constant variable equal to the maximum value for pressure over all nodes of all parts in plist. To build, select MAX from the General function list and follow the instructions in the Feedback area. (pressure/max_pres)^2 Scalar variable equal to squared normalized pressure. To build, first calculate the MAX constant variable as described in the preceding example (here named max_pres). Click or type (, select pressure from the Active Variable list, click or type /, select max_pres from the Active Variable list, and click or type)^2. Since EnSight can compute only one variable at a time, one must break down involved equations into multiple smaller ones, using temporary or intermediate variables. Calculator limitations include the following: 1. The variable name cannot be used in the expression. The following is invalid: temperature = temperature + 100 Instead use: temperature2 = temperature + 100 2. The result of a function cannot be used in an expression. (pressure / MAX(plist,pressure) )^2 Instead use two steps. Define p_max as: MAX(plist,pressure) then define norm_press_sqr as: (pressure / p_max)^2 3. Created parts (or changing geometry model parts) cannot be used with a time calculation (using { }). 4. Calculations occur only on server-based parts. Client-based parts are ignored, and variable values may be undefined. For information on the arguments (and equations), see General Functions or Math Functions in the User Manual. Page 363 HOW TO CREATE NEW VARIABLES Extended CFD Variables Rather than having to individually create the various common CFD variables, EnSight can automatically make them available for use if the appropriate basis variables and constants have been provided. This can be accomplished after loading the model with the Extended CFD Variable Settings Dialog: 1. Right click on any variable in the Variable list then choose “Extended CFD variables...” from the pulldown. 2. Select the variable name in the list and then click the appropriate SET button. For example, select Density in the list and then click the SET button to right of the Density field. 3. After all variables and constants have been specified, click Show Extended CFD Variables. 4. Click Okay. The common CFD variables will now be listed in the main variables list. Note that they will NOT actually be computed until activated. If you have a “standard” PLOT3D Q file, Extended CFD variables will be shown by default when you read your data. Page 364 HOW TO CREATE NEW VARIABLES ADVANCED Rules for inheriting Constant Per Part variables Note that constants per part, that are in model files and exist with the same value in all parent parts of a created part - are inherited by said created parts. If the value differs, the constant per part will become undefined in the created part. However, computed constants per part are not automatically inherited by created parts (even if the values are the same), and become undefined in the created parts. If a value for the computed constant per part is desired in the created part(s), one should include the created part as one of the parent parts for the computed constant per part. Example: If part 1 of a model has the constant per part variable rpm (of value 60), and an isovolume (which becomes part 2) is created with part 1 as the parent, part 2 will inherit the rpm constant per part and its value of 60. If however, part 1 is used as the parent of the computation of constant per part volume (which results in a value of 135.4), and an isovolume (which becomes part 2) is created with part 1 as the parent, volume in part 2 will be undefined. It will not be inherited. One could, however, then go and add part 2 to the list of parent parts for the volume constant per part - and update the variable. This would result in part 2 having volume computed on its elements(and it would be something less than or equal to 135.4). Plug in Variables EnSight has the ability to display and create custom plug in variables. These variables appear in the various variable lists when variables they depend on are present. A plug in variable is linked to a command or python file which is executed when the user activates the variable. In short, a plug in variable appears and behaves to the user exactly like any other variable. Plug in variables are defined in a text file named ensight_user_def_vars.dat. This file contains the name of the plug in variable along with a list of variables needed to compute it as well as the name of an EnSight command or python file to execute on activation. If the variables that a plug in variable needs are present, the plug in variable will be added to the variable lists. Any time a new variable is created the plug in variables are re-examined and added to the variable lists if the new variable satisfies the presentation of a plug in variable. On activation a plug in variable will execute a command file. The command file (or python file) must create the new variable named the same as the plug in variable definition. If the plug in variable has been defined to be dependent on variables using multiple spellings the python file that creates the variable must check on the variable spellings during the variable creation. To enable plug in variables, the ensight_user_def_vars.dat file must be located in a subdirectory called "variables" and can be defined in the site-wide preference file or in the local preference file location. The site preferences location is $CEI_HOME/ensight102/site_preferences/ while the local location is %HOMEDRIVE%%HOMEPATH%\(username)\.ensight102\ for Windows, ~/.ensight102/ for Linux, or ~/ Library/Application Support/EnSight102/ on the Mac. All files for the plug in variables must be in the same "variables" subdirectory (or "folder" if you prefer). This includes not only the ensight_user_def_vars.dat file but also any command or python file needed to compute the variables. User Defined variables ensight_user_def_vars.dat file format description EnSight Variable Extension File Version 1.0 # ################################################################ # The first two lines of this file are shown above. They MUST always exist # A ‘#’ on the first column is a comment and is ignored # # This file is organized by keywords. The keywords are not case sensitive # depend: and DEPEND: are the same. #The following keywords are valid with the following meaning: # # BEGIN VARIABLE: new_var_name # Starts a new variable and names it. The name of the variable that will show up in the variable object list # Page 365 HOW TO CREATE NEW VARIABLES # VARIABLE TYPE: One of "scalar", "vector", "tensor", or "constant". # This is an optional keyword and if missing the variable is assumed to be of type scalar. # This is used to display the variable in the correct var object group # # DEPEND: variable_name # The computation of new_var_name depends on this variable. If new_var_name is dependent on a variable that does # not exist the variable will not be shown in the var object list. # This is an optional keyword # A DEPEND line, if it exists, must be defined after a VARIABLE NAME line # There can be multiple DEPEND lines. If they exist the meaning is that new_var_name depends on variable_name1 AND variable_name2. # And only if both of these variables exist will new_var_name be shown in the var object list. # There can be an unlimited number of DEPEND lines. # This version of the DEPEND line is case senstive, i.e., it will match the case exactly of variable_name. # # DEPEND NOCASE: variable_name # Same as the DEPEND definition except case will be ignored for the variable_name # # OR DEPEND: or_variable_name # This is an optional keyword and if it is defined it must be defined after a DEPEND or OR DEPEND line. # This keyword defines optional variable names for the variable defined on the DEOEND line. # For example, assume "new_var_name = Temperature*2". # But for some solvers maybe Temperature is actually output as "degrees", # i.e., new_var_name could be defined # with "Temperature" OR "degrees" # This keyword uses the exact case for the or_variable_name # # OR DEPEND NOCASE: or_variable_name # This is the case insenstive version # # EXECUTE: play_file_name # Defines the command file that will be played when the variable is activated. # The play file can be any file that can be executed via "play: play_file_name", thus # EnSight commands file or python file should work. The play file must be located in the # same directory as this definition file. # You should not specify a path to the file - only the filename. # This keyword is required. # This playfile should select the parts of interest to calculate the variable and # should create a variable with the same name as the definition: new_var_name. # Note that a user defined variable will not appear if an existing model variable # has that same name # Note that the playfile can create multiple variables as well # # RECOMPUTE ON NEW MODEL PARTS: # Is an optional keyword. If missing NO is implied # If YES, the variables created when play_file_name is executed are recomputed # to include any new model parts that are # loaded. Thus for example is a new case is loaded the variable(s) would get # recomputed on the parts loaded from the new case # # END VARIABLE: # Is a required keyword. It simply closes the variable definition Example ensight_user_def_vars.dat file is shown below: ##################################################################################### EnSight Variable Extension File Version 1.0 # Example 1: This will compute a scalar named "Pressure_psi" # by executing a command filed called "pres_Pa_to_psi.py" # It will be shown in the variable lists if it finds a variable called Page 366 HOW TO CREATE NEW VARIABLES # "pressure" (case insensitive). # BEGIN VARIABLE: Pressure_psi VARIABLE TYPE: scalar DEPEND NOCASE: pressure EXECUTE: pres_Pa_to_psi.py END VARIABLE: # # Example 2: Create a Stress Tensor variable from the six symmetric stress components # Stress Tensor: This will compute a tensor variable named "Stress_Tensor" # by executing a command file called "Stress_Tensor.py" # It will appear in the variable list if it finds # all of the stress variable components # After it has executed it will update to include any new model parts created # BEGIN VARIABLE: Stress_Tensor VARIABLE TYPE: tensor RECOMPUTE ON NEW MODEL PARTS: YES DEPEND NOCASE: S11 DEPEND NOCASE: S12 DEPEND NOCASE: S13 DEPEND NOCASE: S22 DEPEND NOCASE: S23 DEPEND NOCASE: S33 EXECUTE: Stress_Tensor.py END VARIABLE: # Example 3: Create a Velocity vector from the components # BEGIN VARIABLE: Velocity VARIABLE TYPE: vector DEPEND: velx DEPEND: vely DEPEND: velz EXECUTE: vel_vec.enc END VARIABLE: ##################################################################################### Example EnSight Command/Python files for the above ensight_user_def_vars.dat file: ##################################################################################### Example 1 EnSight Python File, above: pres_Pa_to_psi.py # Convert Pressure from Pa to PSI # psi = Pa / 6894.757 # # import an EnSight utilities module # import ens_utils as eu # For details on the functions available: # print dir(eu) # # Get a list of variables exactly matching ‘pressure’ # which should be only one # (must use a case independent search) # for details do the following: # print help(eu.get_vars_by_name) # pvars = eu.get_vars_by_name('pressure', flag='all', case_sensitive=False) if pvars: # should only be one ensight.variables.activate(pvars[0].DESCRIPTION) ensight.part.select_all() ensight.variables.evaluate("Pressure_psi = " + pvars[0].DESCRIPTION + " / 6894.757") ##################################################################################### ##################################################################################### Page 367 HOW TO CREATE NEW VARIABLES Example 2: EnSight Python File: Stress_Tensor.py # # Create a Stress Tensor using the components (exact match) # ensight.sendmesgoptions(version="10.16 (b)") ensight.sendmesgoptions(version=0) ensight.part.select_all() ensight.variables.activate("S11") ensight.variables.activate("S22") ensight.variables.activate("S33") ensight.variables.activate("S12") ensight.variables.activate("S13") ensight.variables.activate("S23") ensight.variables.evaluate("Stress_Tensor = TensorMake(plist,S11,S22,S33,S12,S13,S23)") ##################################################################################### ##################################################################################### Example 3: EnSight Command File: Make a velocity vector from the component scalars vel_vec.enc # # # part: select_all variables: activate velx variables: activate vely variables: activate velz variables: evaluate Velocity = MakeVect(plist,velx,vely,velz) EXPORTING CONSTANT VARIABLES Right click on one or more constant or a per part constant variable(s) and choose export to .csv. The values of the variables will be exported to comma separated value (csv) format as follows. The header will be time step, then time value, followed by variable name(s). The second row will include part names (for the per part constant(s)). The remaining rows will be the value of the constant(s) at each timestep. Note this data can be loaded into a spreadsheet program and transposed if you wish to have the data in a transposed format. SEE ALSO How to Edit Color Maps User Manual: Variable Creation, General Functions and Math Functions. Page 368 HOW TO CREATE NEW VARIABLES Page 369 HOW TO EXTRACT BOUNDARY LAYER VARIABLES Extract Boundary Layer Variables INTRODUCTION EnSight can compute many boundary layer variables via the variable calculator. It can also compute the following variables in bulk (at essentially the same compute costs): boundary layer thickness displacement thickness momentum thickness shape parameter skin friction coefficient named: (bl_thickness) (bl_displ_thickness) (bl_momen_thickness) (bl_shape_parameter) (bl_skin_friction) You must have a 2D surface in a 3D field and specify the 2D surface as the parent part(s). For a complete description of these variables, refer to the User Manual section below. BASIC OPERATION 1. Select the 2D parent part(s). 2. Right click on any variable in the Variables list and choose “Boundary Layer variables” from the pulldown. 3. Define the required variables by selecting them in the list and clicking the Set button. 4. Define either (Density and Momentum) or velocity. The variables can be set by either typing them into the fields, or selecting them from the list and clicking on the Set button. 5. Click Okay to finish the variable setup. 6. Choose the method that will be used to determine the velocity outside the boundary layer. 7. Click Create/Update. This will create the five new variables, which can be used for further operations - such as part coloring and queries. OTHER NOTES These variables and more are also individually available in the Variable calculator. See the Boundary Layer Variables section of Chapter 4 in the User Manual Note that the Freestream Density, and Freestream Velocity fields are for constant ‘upstream’ density and velocity magnitude values (near flow inlet). They are only used for skin-friction coefficient, Cf. Boundary Layer variables do not work with multiple cases. Page 370 HOW TO EXTRACT BOUNDARY LAYER VARIABLES SEE ALSO How To Create New Variables User Manual: Boundary Layer Variables Page 371 HOW TO EDIT COLOR PALETTES Edit Color Palettes INTRODUCTION All scalar, vector, and constant per part variables have an associated color palette that defines the mapping from variable values to colors. These palettes can be easily edited to customize the mapping. Color palettes can also be saved to disk and restored during a subsequent session. BASIC OPERATION The default color palette created for each variable has five Levels (with the minimum and maximum set to the range of the variable at the time step selected when the variable was activated). The color ramp is a standard spectrum with the five Levels set to (from min to max) blue, cyan, green, yellow, and red. Active scalars and vectors have color palettes that are initialized to the variable range for the currently loaded parts. An active variable has a solid color in the Variables List Panel while an inactive variable (not yet read by EnSight) is grayed out. To activate an inactive variable you can right click on the item in the list and Activate it. EnSight can display multiple color legends in the Graphics Window: 1. Click the Annotation tab and open the Legend group. 2. Select the desired variable(s) or variable components in the list. 3. Turn on visibility via the Quick Action Icon Bar To remove a legend repeat the procedure or you can remove the legend by right clicking and performing a “Hide” operation. Color legends have a number of display attributes including size, position, and how/where the variable labels are formatted. See How To Create Color Legends for details. Page 372 HOW TO EDIT COLOR PALETTES The Palette Editor provides access to all aspects of variables including min/max information, histogram, and variable value mapping to color and transparency: 1. Select the part you want to edit, then Click the Color icon in the Quick Action Icon Bar to open the Color Editor. 2. Click the Palette... button to bring up the Palette Editor Notice that if you have chosen to color by a variable (here Density) 3. Select the palette to be edited from the pulldown Grab the Minimum Palette Value Slider Type in a Minimum Palette Value Opens by default in Simple Tab Palette Levels (and variable values). Enter a new value if desired. Click on Color to change. Grab the Maximum Palette Value Slider Enter a Maximum Palette Value Update variable range using a) extrema, b) selected part(s) (note element representation of part(s) matters), c) currently visible part(s) in selected viewport. Enter desired number of Levels in the palette (2 to 21) Reverse colors/levels To change the colors associated with the levels Interpolate between two levels. Enter the upper and lower levels and click interpolate to create the intermediate levels. 4. Click on the color for the level you wish to modify and select a new color in the pop up dialog. OR 5. Click the Invert colors button to invert the color order, or Invert values to invert the values order. OR 6. Click on the Files Tab and choose a new palette and click Restore to load a new palette. Page 373 HOW TO EDIT COLOR PALETTES ADVANCED USAGE A color palette is composed of color and Alpha (opacity) information at a set number of control points. The uniform opacity can be controlled under the Lighting and Shading turndown in the Part Color/Surface Opacity dialog. The part opacity can also be a function of a variable value in the Opacity by variable turndown in the Part Color/Surface Opacity dialog. Finally you can choose to modify the scaling of the opacity by its color value in the Palette Editor. By default, EnSight creates the control points to be uniformly spaced and to have the same number as the number of levels in the palette. You can decouple the control points from the levels by changing the Node Locking option at the bottom of the dialog. The background of the control point graphic contains a histogram for the variable which is tied to the palette. The small horizontal handle at the left of the image will scale the histogram information. 1. Bring up the Color Editor, then click on the Edit Palettes... button. 2. Select Advanced Tab - and now manipulate the Control Points 3. Select which component (Red, Green, Blue, or Alpha) to manipulate. Change the value of the Control Points. Warning: you must change to Alpha by Variable in the Color editor dialog (see previous page) in order to change the Alpha for a variable here in the Palette Editor dialog. 4. Click on a Control Point and type in a value in the Value: field, 5. OR Click on the Control Point and drag it to a new value. By default the movement of the control point is limited such that only the value can be changed. If you wish to move the control points location you must unlock it by untoggling the Node Locking option in the Options tab To Add or Delete a Control Point 6. Right click on a control point to choose to add or delete a control point. If adding a control point, it will be added to the right of the selected point. 8. Click on the ‘Options’ Tab 9. Default is Type Constant for elemental variables. For a smoother image use a continuous palette for elemental values 10. To create a color band for each color in the texture, change ‘Type’ to ‘Banded’. Reduce the number of Colors per level to coarsen the bands 7. Click on the red handle to scale the histogram 11. You can specify how to handle Undefined variable values. The default is to display the Undefined value as the part color. You can change this such that Undefined values will be invisible or the zero index value. 12. Limit fringes: The default behavior is for variable values outside the min/ max range to be clamped to the color/ opacity defined at the bottom and top of the palette. You change this behavior so that out of bound values are colored by the part color or are set to invisible. 13. Change the alpha volume scale to affect volume rendering 14. For transient data, toggle on and fill in time range to use to rescale variable extrema and recreate the histogram over time. 15. Toggle ON to reset the palette range when a timestep is changed. Page 374 HOW TO EDIT COLOR PALETTES Markers are single-colored level(s) overlaid on top of the color palette designed to emphasize the distinction between levels. 16. Click on the Markers Tab. Markers are divider bands drawn in the color specified at the specified variable value. They serve to divide your coloration similar to isocontours. 17. Choose the color, the width and the maximum number of markers 18. At the Add: pulldown, choose one of the following to add markers at At levels (adds a marker at each level value), At value (adds a single marker at the value indicated), or Uniformly (adds marker uniformly if you enter a value into the How Many field that appears. 19. Markers remain until cleared. EnSight includes a number of predefined palettes available for loading. 20. Click on the Files Tab. 21. Choose a palette. 22. Click restore to load it. If the new number of levels does not match the current number of levels a dialog will pop up to ask whether you want the new number of levels or the current. Page 375 HOW TO EDIT COLOR PALETTES SHORTCUTS You can open the Palette Editor from either right-clicking on the variable list or on a variable legend that is visible in the graphics area. SEE ALSO How To Create Color Legends, How To Create New Variables, How To Create Contours User Manual: Variable Summary & Palette Page 376 HOW TO USE VOLUME RENDERING Use Volume Rendering INTRODUCTION Most of the visualization techniques in EnSight use points, lines, and surfaces to represent data, requiring volumetric data to be subsampled in some way. Volume rendering is a visualization technique that allows the user to view an entire volume of data at once, without having to slice the data in any way. The process involves finding all cells that overlap each pixel and accumulating a color for that pixel from the color and transparency of each cell. Volumes can be constant colored, but more often you will color the volume using a palette corresponding to a variable or a variable component. Color palettes include transparency ("alpha") values, allowing control of transparency based on variable value. BASIC OPERATION 1. Select the 3D parent part. 2. Open the color dialog. 3. Color the part by a variable 4. Set the Element Representation to Volume. Volume rendering is one of several "element representations" for a part. Results are generally loaded into EnSight by default in Border, Feature Angle, or Full representation. These representations include only point, line, or surface data. The "volume" element representation will activate volume rendering for a part. Just as for surfaces, the part color dialog can be used to control the color and opacity of the volume. You can color the volume by a scalar, vector, or vector component, and the colors will be assigned based on the palette. For large unstructured parts please see the Advanced Usage which describes how to utilize block structured volume rendering for significantly smaller memory and higher performance. Page 377 HOW TO USE VOLUME RENDERING ADVANCED USAGE EnSight provides advanced control of volume rendering. You can control the volume rendering magnitude of each level of the variable palette by adjusting the alpha value (shown as an A in the Palette Editor). The alpha value is the opacity/intensity of the particular level when volume rendered. This means that you can emphasize select variable levels in your volume rendering coloration by specifically increasing the alpha magnitude of these select levels. You can also scale up the entire alpha by adjusting a multiplier value. 5. Click on the Palette button. 6. Click on the control points with the left mouse button and drag them upward. 8. If the volume looks nearly invisible then increase the alpha scale uniformly to raise the opacity level. 7. Notice the opacity of the variable values at these levels is scaled upward creating emphasis in the graphics screen and in the legend Page 378 HOW TO USE VOLUME RENDERING Structured Volume Rendering Unstructured volume rendering - used above - utilizes a large amount of memory on the desktop system and significantly taxes the graphics hardware. Another option is to use structured volume rendering. In this technique a box clip will be created using uniform spacing through the parent parts. You control the number of samples that will be taken. In this technique your solution will be sampled onto a regular grid - something to be aware of. 1. Select the 3D parent part(s) 2. Turn on the visibility of the Box tool 3. Move the mouse pointer on top of the box tool and right click to get the box tool pulldown. Then select “Fit to Selected Parts”. This will make the box tool fit the parts you selected in step #1. 4. Right click again on the box tool and choose Volume->Create. 5. In the resulting pop-up dialog set the number of samples in the box tool’s X, Y, and Z direction 6. Color the resulting Volume Clip part using the palette instructions given above. 7. The Volume clip just created is a Box Clip. It can be edited (or initially created) via the Part Feature Panel for clips. OTHER NOTES Volume rendering requires a DirectX 10 capable graphics card. Newer cards with more memory and up-to-date software drivers will perform best. Volume rendering will use roughly 1GB of graphics memory per 10M tetrahedra. Other cells will be decomposed into multiple tetrahedra. EnSight will disable volume rendering when it encounters archaic graphics card hardware. Because volume rendering exercises a large amount of the OpenGL functionality remote rendering problems are very likely, therefore this remote rendering is not supported. SEE ALSO See How to Change Visual Representation, How To Edit Color Maps for more information. Page 379 HOW TO GET POINT, NODE, ELEMENT, & PART INFO Query, Probe, Plot Get Point, Node, Element, & Part Info INTRODUCTION EnSight provides many methods for extracting exact quantitative data from your results. Specific information about nodes, elements, parts, IJK locations, or arbitrary points can be displayed. BASIC OPERATION Show Point Information To show information about an arbitrary point: 1. If your data is transient, set the desired time in the Solution Time Panel. 2. If you have multiple Cases, select the desired case using Case > casename. 3. Position the Cursor Tool to the desired location. 4. Select the desired part(s) in the Part List. The query will only be successful if the Cursor Tool is found within an element of a selected part. 5. Select Query > Show Information > Cursor. The query results will be printed to the EnSight message window, which will pop up. It can also be accessed from the Info icon. The following shows sample output from a point query: Point (6.19810e-01,2.77589e-01,2.41451e-01)(In Frame 0) Query Information. Found in structured part # 2. Found in element # 168379. Closest node # 1782 (within the element) Value for Variable density is 9.96230e-01. Values for Variable momentum are: x=3.03989e-01,y=-1.42727e-02,z=8.51241e-02,mag=3.16005e-01. Show Node Information To show information about a specific node, you must have either given or automatically assigned node labels for your data. You must also know the number of the node of interest. If you do not know the number, you can display node labels for the part or, if you know an element that contains the node, you can display element information for the element (as described in the next section). All active variables for the node specified will be shown. To show node information: 1. If your data is transient, set the desired time in the Solution Time Panel. 2. If you have multiple Cases, select the desired case using Case > casename. 3. Select the desired part(s) in the Part List. The query will only be successful if the specified node is found in a selected part. 4. Select Query > Show Information > Node. The Query Prompt dialog opens. Enter the ID number of the desired node in the text field and click Okay. The query results will be printed to the EnSight message window, which will pop up. It can also be accessed from the Info icon. The following shows sample output from a node query: Node 123 Query Information. Coordinates (In Frame 0) are: (-2.00000e+00,0.00000e+00,1.19320e+00) Found in unstructured part # 1. Values for Variable velocity are: x=5.82290e-01,y=3.70160e-02,z=-1.82780e-03,mag=5.83468e-01. Page 380 HOW TO GET POINT, NODE, ELEMENT, & PART INFO Show IJK Information To show information about a specific IJK location for structured models: 1. If your data is transient, set the desired time in the Solution Time Panel. 2. If you have multiple Cases, select the desired case using Case > casename. 3. Select the desired part (one only) in the Part List. The query will only be successful if the specified IJK is found in the selected part. 4. Select Query > Show Information > IJK. The Query Prompt dialog opens. Enter the values for the desired IJK location in the text fields and click Okay. The query results will be printed to the EnSight message window, which will pop up. It can also be accessed from the Info icon on the tools ribbon. All active variables at the IJK location specified will be displayed. The following shows sample output from an IJK query: IJK 2 5 10 Query Information. Node Id is: 26146 Found in iblanked structured part # 1. Coordinates (In Frame 0) are: (4.72982e-01,1.64710e-01,6.50679e-02) No variables active to show values at the IJK location. Show Element Information To show information about a specific element, you must have either given or automatically assigned element labels for your data. You must also know the number of the element of interest. If you do not know the number, you can display element labels for the part. To show element information: 1. If your data is transient, set the desired time in the Solution Time Panel. 2. If you have multiple Cases, select the desired case using Case > casename. 3. Select the desired part(s) in the Part List. The query will only be successful if the specified element is found in a selected part. 4. Select Query > Show Information > Element. The Query Prompt dialog opens. Enter the ID number of the desired element in the text field and click Okay. The query results will be printed to the EnSight message window, which will pop up. It can also be accessed from the Info icon. All active per element variables found on the element will be displayed. The following shows sample output from an element query: Element 321 Query Information. Found in unstructured part # 2. Type of element is 6 Noded triangle Number of nodes is 6 Node IDs are: 1050 910 1054 1052 1053 1055 Neighboring Element Information is: Element neighbor 318 is of type 6 Noded triangle Element neighbor 322 is of type 6 Noded triangle Page 381 HOW TO GET POINT, NODE, ELEMENT, & PART INFO Show Part Information To show information about a part: 1. If your data is transient, set the desired time in the Solution Time Panel. 2. Select the desired part in the Part List. 3. Select Query > Show Information > Part. The query results will be printed to the EnSight message window, which will pop up. It can also be accessed from the Info icon. The following shows sample output from a part query: Part 2 Query Information. Unstructured part. Number of nodes 2380 Minimum coordinate (In Frame 0) is (0.00000e+00,0.00000e+00,0.00000e+00) Maximum coordinate (In Frame 0) is (3.80000e+01,1.20000e+01,0.00000e+00) Min node label in part is (1) Max node label in part is (2380) Element Information is: Element type: 6 Noded triangle, count = 1128. Min element label in part is (1) Max element label in part is (1128) Note: In general client side parts (particle traces, profiles, vector arrows, contours) can’t be queried in this manner. You will receive and error message like the following: ERROR: The query of the part specified could not be completed. Particle trace parts will give one bit of information - namely how many traces there are in the part. And a note will be given informing you how to get a “dump” of the trace into the message window. Something like: Part 2 Query Information This part is a particle trace part Part has 10 traces Note: For full trace dump into this window, issue the following command in the command dialog: test: full trace query ON Then repeat this query. SEE ALSO How To Query/Plot, How To Probe Interactively. User Manual: Show Information Page 382 HOW TO PROBE INTERACTIVELY Probe Interactively INTRODUCTION EnSight provides an interactive query capability that displays variable data in the Graphics Window as you move the mouse pointer over geometry, as you move the cursor tool within the model, or at specified node, element, ijk or xyz locations. The probe can display the value directly under the mouse pointer (by interpolating the nodal values of the applicable element) or search for and display the value at the node closest to the mouse pointer. BASIC OPERATION To probe interactively: 1. Click the Probe Feature Icon (or select Query > Interactive Probe...). 2. Set the Query pulldown to desired operation. Surface Pick: Interpolate to any picked position on the surface of the model. Cursor: Interpolate to location of cursor tool within the model. Node: At a specific node number. IJK: At a specific IJK location. Element: At a specific element number. XYZ: At a specific XYZ location. 3. Select the desired variable(s) to display. 4. If Query is set to Surface Pick, you can select: a) whether the probe will snap to closest node (which will show node id). or b) use exact location (which will show nearest element ID). And whether the information will be sampled: c) when you click the “p” keyboard key or d) continuously as you move the mouse. If Query is set to Node, Element, IJK, or XYZ, enter ID or values needed followed by Enter. If Query is set to Cursor, move the cursor tool to desired location and press the “p” keyboard key (while the mouse is in the graphics window). 5. Enter a value controlling the number of simultaneous probe markers displayed. Once this number has been reached, the oldest marker is replaced by each new marker. 6. If the selected variable is a vector variable, you can specify which component (or the magnitude) of the variable is displayed. 7. In addition to having the results displayed on the model in the graphics window, you can open a table that displays the results 8. When done, change the Query to None to disable interactive probing. Page 383 HOW TO PROBE INTERACTIVELY Probe Display Probes are displayed as a marker (sphere) and the query text label. The appearance of the marker and label can be changed: 1. Click the Display Style tab Toggle visibility for the query text label. Label size is set in the annotation preferences (see Setting Annotation Defaults). Toggle visibility for the id label. (Node id, element id, etc.) Set the color of the label. Toggle whether query text labels are “always on top” (never hidden by geometry) or occluded by geometry that is closer. Toggle visibility for the probe marker. Set the radius of all probe markers. Set the color of the marker. See the Elements surrounding the query It is possible to extract the elements that contain the query locations, if element ids exist: 1. After creating a query open the Display Style tab. 2. Click the up arrow for the Display expansion factor. An expansion factor of 1 indicates that the elements that contains the query will be extracted and shown. 3. Click the up arrow again. An expansion factor of 2 indicates that the elements from the step 2 will be shown along with the elements that neighbor these elements. Since the expansion factor feature uses a subset part, if you wish to display the subset part differently (such as turn on node labels) this can easily be done through the subset part attribute editing. The name of the subset part in the part list will be "Query show expand". 4. If you wish to keep the subset part that was the result of the display expansion factor setting, you may do so when you turn off the interactive query. A pop-up dialog will ask you if you wish to keep or delete the expansion factor subset part. Page 384 HOW TO PROBE INTERACTIVELY OTHER NOTES Note that interactive query actions do not generate corresponding command language! While doing queries and using the ‘p’ key to pick a query location, other picking options that use the ‘p’ key are disabled (such as Part, Cursor, Line, Plane, and LookAt Point). Even though it is not shown in the dialogs above, the “Time” variable is also available. This time variable is the integration time for particle traces. Thus, it is only defined and useful when probing particle traces. For other part types it will be undefined. SEE ALSO How To Query/Plot User Manual: Interactive Probe Query Page 385 HOW TO QUERY/PLOT Query/Plot INTRODUCTION EnSight can perform a number of different kinds of queries over time or space. The result is a Query Entity that can be plotted using EnSight’s built-in Plotting facility or that can be printed as a table or written to a disk file. BASIC OPERATION Shortcut for plotting transient data over time Select variable(s) in the variable list and then right click on vector or scalar variable(s) in the variable list and choose Plot Maximum (or Minimum) vs Time. EnSight will step through all timesteps, calculating the maximum (or minimum) of scalar variable(s) or vector magnitude variable(s) and create a query for each selected variable and put each new query curve into a new plot. Select per part constant(s) in the variable list and then right click on one of the selected constant variable(s), choose Plot Maximum, Plot Minimum to get a single plot which is the maximum of all parts or selected parts (depending on the sub-menu). Choose Plot vs Time to get the value of each of the selected per part constants in a separate plot with each curve colored the same color as its corresponding part (if the part is not colored by a variable and the parts are different colors). Each query will be named by its corresponding part and var with the legend the part name. Select one or more Case Constant variable(s) and all three Plot options will produce the same result for each Case Constant variable. Long Methodology Page 386 HOW TO QUERY/PLOT One first must create query items, which can be any of the following types: At Line Tool Over Distance. At 1D Part Over Distance. On a Spline Over Distance At Node Over Time At Element Over Time At IJK Over Time At XYZ Over Time Over Time Queries By Scalar Value (integer match) By Constant on Part Sweep By Operating on Existing Queries Read From An External File Read from server file As one of these is selected, the Feature Panel changes to reflect the information needed (such as variable to use) for the selected type. One can control whether the query entity will be a curve or a scatter plot by the choice for Variable 1 and 2. Query entities can be printed to the Status History Area, saved to a file, deleted, or plotted. Sample Query Creation and Plot (At Maximum Over time) 1. Select the part to query. 2. Click the Query/Plot icon (or select Query > Over Time/Distance...). 3. Select the Sample type for the query. 4. Select the variable(s) for Variable: 1. Note: for max or min over time you can select multiple variables to query simultaneously over time for efficiency. Leave Variable: 2 as None and it will default to Time, because of sample type. 5. Click “Create query” 6. The query is created and plotted because the “Auto Plot curves” toggle is on. Had it been off the query would have been created and you could then plot it. For more information on plotting, see the Plotting section towards the end of this How To. Managing Query Entities The Feature Panel combined with the Plots/Query lists provides various controls for managing existing Query Page 387 HOW TO QUERY/PLOT Entities: List of Query Entities. The tagged (pencil marker) items are edited in the Feature Panel. Any query can be plotted by a right click on the query via the “Add to new plot” on the pulldown. There are several ways to view and use the query data by right clicking on the query in the Query list and choosing “Data” from the pulldown. “Display” will show a table of values. “Copy to clipboard” will allow the query to be pasted into other applications as columns of data - perfect for Excel for example. “Save CSV to file” will save a file with comma separated values. “Save XY to file” saves a file that can be read back into EnSight as an “Read from an external file”. “Save Formatted to file” gives you a file that is formatted like a report. Delete a query by right clicking and choosing “Delete” from the pulldown. How to Scale the X and Y axis (for example to use different units). Right click on the query in the query list and choose Edit. Open the Query Display pulldown and change the X scale and Y scale to change the query multiplier, and the X and Y Offset to change the query additive values. Page 388 HOW TO QUERY/PLOT Over Distance Queries EnSight can perform queries at uniform points along the line tool, at nodes along a 1D part, or at uniform points along a spline. One-dimensional parts include model parts consisting of bar elements, 1D (Line) Clips, and particle traces. At Line Tool Over Distance. After selecting the part to query in the Parts list and clicking the Query/Plot icon 1. Select Sample as “At Line Tool Over Distance” 2. Select the variable to query over the distance in “Variable: 1”. Leave “Variable: 2” as None unless you want a scatter query of two different variables along the line tool. 3. Optionally, select the Distance option desired, number of points along the line, and modify the tool location if needed. 4. Click “Create query” At 1D Part Over Distance. After selecting the part containing 1D elements in the Parts list and clicking the Query/Plot icon 1. Select Sample as “At 1D Part Over Distance” 2. Select one variable to query in “Variable: 1”. 3. Optionally modify Distance, origin and multiple segment. 4. Click “Create query”. The query will be created starting at the origin (or the lowest node ID number, or the first node in the connectivity list) and will automatically proceed by following the connectivity order. The order of the query cannot be changed, but it can be reversed in the plotter, if desired. For the two over distance query types, the variable is plotted against the selected “Distance” metric. The node with the lowest node ID number (or nearest the selected origin) is queried first. The query then proceeds automatically from the first to the last according to the 1D part connectivity (this order cannot be changed). Since the nodes for 1D part over distance are not necessarily evenly spaced, the reported distance is one of the following: Distance In Setting Arc Length X Arc Length Y Arc Length Z Arc Length From Origin X From Origin Y From Origin Z From Origin Reported Distance The distance along the part from the first node to each subsequent node (i.e. the sum of the 1D element lengths) The X coordinate value of each node accumulated from the start The Y coordinate value of each node accumulated from the start The Z coordinate value of each node accumulated from the start The distance from the origin The X distance from the origin The Y distance from the origin The Z distance from the origin If the 1D part contains more than one set of contiguous 1D elements (such as a particle trace from a Line emitter), the resulting query will contain one plot entity for each set. Page 389 HOW TO QUERY/PLOT On a Spline Over Distance After selecting the part to query in the Parts list and clicking the Query/ Plot icon 1. Select Sample as "At spline over distance" 2. Select the variable to query along the spline 3. Select the spline to query 4. Optionally, select the Distance option desired and the number of points along the spline. 5. Click “Create query” Page 390 HOW TO QUERY/PLOT Over Time Queries For transient dataset, EnSight can query the variable values over a range of time at a particular node, element (or specific IJK coordinate for structured data) or an arbitrary point. You can also search the minimum or maximum of a variable over all nodes over a time range. At Node Over Time After selecting the part to query in the Parts list and clicking the Query/ Plot icon 1. Select Sample as “At Node Over Time” 2. Select one variable to query over time in “Variable: 1”. Leave “Variable: 2” as None unless you want a scatter query of two different variables over time. 3. Enter the Node ID. 4. Optionally, change the number of Samples (defaults to number of time steps), and whether to sample by Value of FFT. 5. Click “Create query” At Element Over Time After selecting the part in the Parts list to query and clicking the Query/Plot icon 1. Select Sample as “At Element Over Time” 2. Select one per-element variable to query over time in “Variable: 1”. Leave “Variable: 2” as None unless you want a scatter query of two different variables over time. 3. Enter the Element ID. 4. Optionally, change the number of Samples (defaults to number of time steps), and whether to sample by Value of FFT. 5. Click “Create query” Page 391 HOW TO QUERY/PLOT At IJK Over Time After selecting the part in the Parts list to query and clicking the Query/Plot icon 1. Select Sample as “At IJK Over Time” 2. Select one variable to query in “Variable: 1”. Leave “Variable: 2” as None unless you want a scatter query of two different variables over time. 3. Enter IJK for the point. 4. Optionally, change the number of Samples (defaults to number of time steps), and whether to sample by Value of FFT. 5. Click “Create query” At XYZ Over Time After selecting the part in the Parts list to query and clicking the Query/Plot icon 1. Select Sample as “At XYZ Over Time” 2. Select one variable to query over time in “Variable: 1”. Leave “Variable: 2” as None unless you want a scatter query of two different variables over time. 3. Either type in the desired xyz location or place the cursor where desired in the model, either through picking, or other transformation methods and click the cursor Get button. 4. Optionally, change the number of Samples (defaults to number of time steps), and whether to sample by Value of FFT. 5. Click “Create query” Page 392 HOW TO QUERY/PLOT At Minimum/Maximum Over Time After selecting the part to query in the Parts list and clicking the Query/Plot icon 1. Select Sample as “At Minimum Over Time” or “At Maximum Over Time” 2. Select variable(s) to query over time in “Variable: 1”. Note: for max or min over time you can select multiple variables to query simultaneously over time for efficiency. Leave “Variable: 2” as None unless you want a scatter query of two different variables over time. 3. Optionally, change the number of Samples (defaults to number of time steps), and whether to sample by Value of FFT. 4. Click “Create query” By Scalar Value (integer match) This query you select two variables - the first will be plotted on the y axis and the second is plotted on the x axis. Further, you specify another variable (can be the same as one of the two previous variables) and a value. The x and y variables will be extracted for all nodes/elements that integer match the value indicated (such that the int(value) exactly equals the int(value you enter)). It is best to view the results as a scatter plot. After selecting the part in the Parts list to query and clicking the Query/Plot icon 1. Select Sample as “By Scalar Value” 2. Select the two variables you wish to form the query from. 3. Select the desired scalar variable and value 4. Click “Create query” By Constant on Part Sweep You can perform a query of a constant variable along a moving part at sampled locations. After selecting the part in the Parts list to query and clicking the Query/Plot icon 1. Select Sample as “By constant on part sweep” 2. Select a listed constant variable. 3. Select a part to sweep. (in the main part list) 4. Select “Start” (At this point the dialog will become as shown) 5. Click-and-drag the part to the beginning location, and select “Set begin”, or just enter the beginning part location value. 6. Now interactively click-and-drag the part to the ending location, and select “Set end”, or just enter the ending part location value. 7. Alternatively, you can just enter the Delta in place of the last two steps. 8. Enter the number of sample locations. 9. Select Create query Note that you can update the part to the beginning or ending values here. Page 393 HOW TO QUERY/PLOT Scatter Query Example A scatter query is a query of one variable against another. Everything is done like a regular query except you select another variable in the Variable: 2 field, instead of leaving it as None. By Operating on Existing Queries You can perform a scaling of an existing query, or a scaling and algebraic addition of two queries, or an integration or differentiation of a query. 1. Select Sample as “By Operating On Existing Queries” 2. Select the operation. (Combine/Scale, Integrate or Differentiate). For Combine/Scale (shown): 3. Select the Query Item and the set the Scale Factor if you want to scale a single query - or - Select both Query Items and set both Scale Factors if you want to scale and add algebraically. 3. Click “Create query” Note, if integrate or differentiate is chosen, you will only need to choose the query to operate on. Queries From External Sources You can import previously created and saved (or externally generated) EnSight queries or Dytran time history (.ths) files. Read From An External File 1. Select Sample as “Read From An External File”. 2. Click the “Load XY Data From File ...” button to open the File Selection dialog, and select any previously saved EnSight XY data file or a Dytran .ths file. Note: Depending on the version of the Dytran reader you are using (reader version 2.05 or later is needed), the Dytran xy data may be loaded automatically for you, making this option unnecessary for Dytran data. Page 394 HOW TO QUERY/PLOT Read from server file Traditionally, you could ask the server for any queries that it knows about. Some data formats (accessed by userdefined readers) have such. If any are available, they would show up in the list of Queries. In version 10, such queries get loaded automatically, so this option is not really needed and may do nothing. Plotting Once Queries exist, they can be easily plotted in a new plotter in EnSight, or if an existing plotter of the correct type exists, they can be added to the existing plotter. 1. Right click on the query to be plotted. 2. Select “Add to New Plot” from the pulldown to create a new plotter showing the selected query. If you want to plot the query on an existing plotter: 1. Click and drag the query over the plotter and release the mouse button. Similarly, you can click and drag the query to the graphics window and release the mouse button on top of the axis system of an existing plotter. Drag the query and drop it onto the plotter OTHER NOTES See XY Plot Data Format in the User Manual for a description of the plot file format. SEE ALSO How To Probe Interactively How To Change Plot User Manual: Query/Plotter Page 395 HOW TO QUERY/PLOT Page 396 HOW TO CHANGE PLOT Change Plot INTRODUCTION EnSight provides a full-featured X-Y plotting system fully integrated with the query and transient data handling capabilities. Query entities (see How To Query/Plot) are assigned to plotters. Plotters display one or more curves where each curve is based on the data from a single query entity. If the query entity is changed, the corresponding curve will automatically update. Plotter (controlling aspects of appearance such as color of curves and titles, axis labeling, gradation and tick marks, and border/background color) can be edited through the Quick Action icon bar or the Feature Panel. This article is divided into the following sections: Anatomy of a Plotter Create Plotters Select Plotters and Curves Move and Resize Plotters Plotter Quick Action icons Set Title, Background, Legend, Border, Position, Marker Set Axis Set Curve Delete Plotters Operations on all curves on a Plotter Anatomy of a Plotter Plotters are composed of the following fundamental components: Plot Title Plot Scale Handle. Y Axis Value Labels Y Axis Gradation Legend Legend Position Handle Y Axis Subgradation Y Axis Title Curves X Axis Value Labels Origin click-n-go handle X Axis Title Current time marker X Axis Title Adjust min and max X axis click-n-go handles Page 397 HOW TO CHANGE PLOT Create Plotters Plotters are automatically created when you assign a query entity to a new plotter (see How To Query/Plot for details). Also, by default when you create a query it is automatically plotted. Select Plotters and Curves Any action to change plotter always operates on the currently selected plotter(s) (or the plotter defaults if none are selected). To select plotters: 1. Left click on the plotter in the Plotters list. OR 2. Move the mouse pointer into the Graphics Window and click the left mouse button anywhere on the plotter axis or titles Curves have one set of attributes even though they may be plotted on multiple plotters. To select curves: 1. Left click on the query in the Queries list. OR 2. Move the mouse pointer into the Graphics window and click the left mouse button on the desired curve. You can add to an existing selection by holding down the Control key as you click on additional curves. Move and Resize Plotters Plotters can be easily moved and resized. You can either reposition a plotter with the mouse in the Graphics Window, or precisely by entering exact values. To move or resize a plotter interactively: 1. Move the mouse pointer over the plotter. The touch-n-go handles will appear. 2. Click and drag anywhere on the plotter to move it. 3. To resize the plotter move the click and drag the resize handle in the upper right corner. Shortcut Right-click at the plot origin and choose ‘Auto Arrange Plots’. All of the visible plots (up to 16 plots) will be automatically arranged into a grid of plots (of dimension row x column) which is 2x2 for 2-4 plots, 3x2 for 5-6 plots, 3x3 for 7-9 plots, 4x3 for 10-12 visible plots, 4x4 for more than 12 visible plots. If more than 16 plots, this will only automatically arrange the first 16 into a 4x4 grid of plots. A plotter can also be positioned precisely. See below for details. Plotter Quick Action icons 1. Click to select a plotter. The Quick Action icon bar configures to display plotter which may be modified. Foreground color Visibility Legend visibility Swap x/y axis Axis settings Border visibility Plotters that are currently invisible are displayed dimmed if Limited redraw is enabled. Page 398 HOW TO CHANGE PLOT Set Title, Background, Legend, Border, Position, Marker Overall of plotters are controlled through the Plotter Feature Panel: Double click on a plotter in the Plotter list (or right click to Edit) to bring up the Feature Panel. The Plotter Specific dialog contains six sections: Background, Border, Legend, Position, Marker, and Title. Open the turn-down section for the required function. The Background section controls the type and color of the plotter background: Set background type to either None or Solid. A solid background is opaque. If the background type is Solid, set the color (either enter new values in the RGB fields or click the Mix... button to open the Color Selector dialog). You can also control the background opacity. The Border section controls the visibility and color of the plotter border: Toggle border visibility Set border color (either enter new values in the RGB fields or click the Mix... button to open the Color Selector dialog) The Legend section controls the plotter legend text. The actual text in the legend is the name of the individual curves in the plotter. See Set Curve below. Toggle legend visibility You can display the curve min/max and average information Set text size Set origin (with respect to lower left corner of plotter) The legend text can be constant colored or the color of the curves. If set to constant color set text color (either enter new values in the RGB fields or click the Mix... button to open the Color Selector dialog) Page 399 HOW TO CHANGE PLOT The Position section controls the size and position of the plotter: Set the origin of the plotter (with respect to the lower left corner of the Graphics Window). Set the plotter width/height (0-1 normalized to the width and height of the Graphics WIndow) The Marker section controls whether the curves will animate and whether the plot will be swept out during the animation or whether a time marker will sweep along the curve in the plotter: Select Animate curves if you want the curve to be swept out or a time marker to be swept along the curve during animation. Toggle Display marker if you want a vertical line to show time/distance value corresponding to the query marker in the graphics window. For time queries the marker will sweep as time updates. You can control the line width, style, and color of a time marker. Display value will show the value of the x and y axis of where the marker intersects the curves on the plotter. The Title section controls the main title at the top of the plotter: Set title text Set the size of the title text Set the text color (either enter new values in the RGB fields or click the Mix... button to open the Color Selector dialog) If you desire special symbols, click Insert Symbol, pick the symbol(s) and pick the symbol out of the pop-up window. Page 400 HOW TO CHANGE PLOT Set Axis Axis of a plotters are controlled through the Axis section of the Plotter Feature Panel. The Axis turndown contains two sections: General and Specific. Select the tab to display the corresponding section. The General section controls axis width, color, and scaling as well as Gradation and Subgradation marks. Swap the X and Y axis on the plotter Auto layout will insure that the various components of the plotter (title, axis description, values, etc.) don’t overlap. Specify the axis origin (vertical and horizontal) within the plotter area. These will be grayed out if “Auto layout axes” is enabled. Set line width of axes Set color of axes Set line width, style, and color for major gradations (gradations are enabled on a per-axis basis in the X-Axis and Y-Axis sections) Set line width, style, and color for subgradations (subgradations are enabled on a per-axis basis in the X-Axis and Y-Axis sections) Page 401 HOW TO CHANGE PLOT The Specific section controls the title, value labels, and gradation marks for the X or Y axis. Choose which axis to deal with - you can select x or y or both. Toggle visibility of the axis line Set the title of the axis Set the size of the title of the axis Set the color of the title of the axis Set the type of axis label: None (show no value labels), All (show value labels at each gradation), or Beg/End (show only the first and last value labels) Set the size of the axis value labels Set the scale to linear or logarithmic(log10) Set auto scaling - when on, the Min/Max values and the number of gradations will be used as suggested values to arrive at pleasing numbers for the axis labels. Set the min/max range of the variable displayed on the axis (Note: will be used as exact values only if the Auto Axis Scaling toggle is off.) Set the display format of the value labels (or click Format... to select common formats from a list) Set the color of the axis value labels Set the type of gradation: None (no gradation marker), Grid (a vertical line), or Tick (a mark on the axis at the value label positions) Set the approximate number of gradations (also depends on the min/max range) Set the type of subgradation: None (no subgradation marker), Grid (a vertical line), or Tick (marks on the axis between the value label positions) Set the number of subgradations between each value label By swapping the min and max can swap the positive direction. Page 402 HOW TO CHANGE PLOT Set Curve Curve and marker are controlled through the Query tab of the Query/plot Feature Panel: 1. Select the desired curve(s) by clicking on them in the Graphics Window or selecting them in the Query list (control-click to select multiple curves). 2. Right click in the Query list to Edit OR 1. Double click on a query in the Query list To bring up the Query tab of the Feature Panel If desired, you can apply an offset and scale factors to your x and/or y data. The offset value is added to the query value then the sum is scaled by the Scale factor. Set the line width Set the line style Set the line type: None (only curve markers are drawn), Connect Dots (data points are connected by straight lines), Smooth (a piece wise spline is fit to the data points using the number of points specified in the Smooth Sub-points field) Set the marker type Set the size of the markers Normalize x and/or y values, if desired. Set the color of the curve Delete Plotters Existing plotters can be deleted: 1. Select the plotters 2. Right click on the Plotters list to Delete. Note that deleting a plotter has no effect on any query entities that were attached to the plotter Page 403 HOW TO CHANGE PLOT Operations on all curves on a Plotter If a plotter has many curves, it is nice to be able to change all the curves. 1. Right click on the plotter origin. You should see the name of the plotter at the top of the pulldown if you have right-clicked directly on the origin. 2. Choose Plot queries a) Unique Color - This will pop up a dialog with a pulldown list of available palettes available in EnSight and then assign the color of the curves using the palettes. These are the same palettes files available in EnSight to color variables, allowing some level of creativity. For more information on palette files, see Palette Editor Files Tab b) Toggle markers will toggle all markers off if any are on. It will toggle all markers on if any are off, and will round-robin assign the markers a shape. c) Toggle linestyle will toggle all lines to solid if any are not solid. If all are solid it will round-robin assign the markers a line style. Plot queries > Unique color dialog SEE ALSO How To Query/Plot Page 404 HOW TO QUERY DATASETS Query Datasets INTRODUCTION Results datasets often consist of multiple files. EnSight provides a mechanism to quickly ascertain basic information about dataset files. BASIC OPERATION To display dataset information: 1. Select Query > Dataset... The Associated Files section displays all dataset files giving the size in bytes and last modification date. The File Specific Information section displays information about the file currently selected in the Associated Files list. The information presented varies based on the file type and format. The General Geometric section displays whether the geometry is static (time invariant), changing coordinates (nodal coordinates update each timestep), or changing connectivity (coordinates plus connectivity update every timestep). Further the 3D extent of all geometry as well as the number of nodes and elements is displayed. The Element Detail section shows the type and number of all unique element types in the dataset. SEE ALSO User Manual: Query Dataset Page 405 HOW TO CHANGE COLOR Manipulate Parts Change Color INTRODUCTION In EnSight, parts can be colored either by a constant color or based on the value of a variable. Coloring geometry by variables is one of the simplest and most effective means of visualizing a variable along the surface of a part. You can also set a “default” color – all parts subsequently created will automatically be colored by the default color (described in the Other Notes section below). This article covers changing the color of a part. See How To Edit Color Maps for information on changing the mapping from variable values to color. BASIC OPERATION To change a part’s color: 1. Select the desired part(s) in the Main Parts List. 2. Click the Color icon on the Part Quick Action Icon Bar. This will open the Surface Property Editor dialog. 3. Select a color from the color matrix. - OR 4. click the More... area to open the Color Selector dialog - OR if coloring by a variable 3. Select the variable in the ‘Color by’ list. 4. If coloring by a vector component, click on the default component ‘Mag’ to change to a pulldown and choose a component. - OR you can utilize the click-drag capabilities to color by the variable described below: 3. Click and drag the variable from the Variable list to the part in the part list or to the part in the graphics window you wish to color by the variable. You can drop the variable on the background in the graphics window to color all parts in the viewport by the variable or you can drop the variable on the Case heading in the part list to color all parts in the case. 4. OR Simply choose a list of parts and right-click and choose “Color by” as described in the Shortcut section below. Page 406 HOW TO CHANGE COLOR SHORTCUTS Drag the variable from the variable list and let go of it on top of the part you wish to color. Drop in either the part list or drop in the graphics window. Select your parts of interest in the part list. Right click and choose “Color by”. The list will allow you to color by a variable, or to pop up the color selector to select a single color, or to quickly color by Black, White, or Grey. “Random” will color each of the selected parts by a color chosen randomly from a relatively unsaturated color palette. “Make transparent” will give the part(s) a moderate level of transparency, and “Adjust transparency” will allow you to choose the transparency. Note that you can also right click on a part in the graphics screen and have access to this “Color by” menu as well for an individual part Page 407 HOW TO CHANGE COLOR OTHER NOTES If coloring by a nodal variable, the default coloring will be continuously varying - even within a given element. If you are coloring by a per-element variable, the coloring will not vary within a given element. If you desire to see perelement variables in a continuously varying manner, you can toggle on “Use continuous palette for per element vars” under Edit->Preferences... Color Palettes. Also consider using the Quick Color Settings Widget (see Use Quick Color Settings) to color parts. ADVANCED You can set a default variable that will be used to color all subsequently created parts. To do this, be sure no parts are selected in the Main Parts list. (To de-select a part, hold down the control key as you click on the selected item.) Select the desired default variable in the Variables list of the Color Editor. Any part created subsequently will automatically be colored by the default variable. Advanced Options: See also How to Edit Color Palettes There are also a number of additional sections at the bottom of this dialog. Predefined Materials, see Predefined Materials Lighting and Shading, see Lighting and Shading Transparency, see Opacity by Variable (Transparency) Textures, see How To Map Textures Surface Flow Display, see Surface Flow Display SEE ALSO How To Edit Color Maps. How To Set Surface Properties Page 408 HOW TO SET SURFACE PROPERTIES Set Surface Properties INTRODUCTION Use this editor to Control Lighting and Shading values, to adjust Opacity by Variable, to apply Textures to part surface, or to simply pick from Predefined Materials, or to show Surface Flow Display (see also How to Change Color). You open the surface property editor as follows: 1. Select the desired part(s) in the Main Parts List. 2. Click on the color wheel icon at the top to open the Surface Property Editor dialog. 3. This will open up the Part Color/ Surface Property Editor Page 409 HOW TO SET SURFACE PROPERTIES LIGHTING AND SHADING The Surface Property Editor allows a great deal of control of the part surface lighting properties. Part Lighting and surface characteristics 1. Select the desired part(s) in the Main Parts List. 2. Click on the color wheel icon at the top to open the Surface Property Editor dialog. 3. Pulldown the Lighting and Shading. 4. Change part properties (see the User Manual for descriptions of the options: Lighting and Shading). Change the Shading to a higher quality smoothing algorithm to reduce surface tesselation artifacts Make the surface shiny Adjust the opacity to make the surface transparent to see through the part Page 410 HOW TO SET SURFACE PROPERTIES OPACITY BY VARIABLE (TRANSPARENCY) The Surface Property Editor allows you to render surface transparency according to variable value as follows. Variable Transparency on Parts 1. Select the desired part(s) in the Main Parts List. 2. Click on the color wheel icon at the top to open the Surface Property Editor dialog. 3. Pulldown the Opacity By Variable to change the part surface opacity using the variable value. Note: this turns off the constant opacity in the Lighting and Shading turndown. You cannot do both. 4. Click to choose a variable. Click on the Comp value if the variable is a vector and choose the component 5. Click on Edit Palette to control opacity behavior. 6. In the Palette Editor, choose the Advanced Tab to edit the opacity settings. 7. Select ‘A’ for alpha mode (transparency) 8. Move the ‘knots’ around to increase and decrease transparency at each of the values. Page 411 HOW TO SET SURFACE PROPERTIES PREDEFINED MATERIALS There is a quick methodology in the Surface Property Editor to quickly achieve more realistic looking parts. More realistic looking Parts 1. Select the desired part(s) in the Main Parts List. 2. Click on the color wheel icon at the top to open the Surface Property Editor dialog. 3. Pull down the Predefined Materials. 4. Click to open a category and pick a material. This will, in some cases, automatically chose an appropriate color and set the proper lighting and shading values to approximate the material on the selected part(s), see Understanding EnSight’s Materials in the User Manual. 5. Pull down the Lighting and Shading if additional changes are desired after picking a material. Note that the Lighting and Shading entries are context sensitive to the material type chosen. Page 412 HOW TO SET SURFACE PROPERTIES TEXTURE There is a quick methodology in the Surface Property Editor to add a texture to part(s). Putting a logo or image on Part(s) 1. Select the desired part(s) in the Main Parts List. 2. Click on the color wheel icon at the top to open the Surface Property Editor dialog. 3. Pulldown the Texture. 4. Click on Edit textures and load some images. 5. Right click on Texture and load an image from file, to be used as a texture 6. Pick a loaded texture to use see How to Map Textures Page 413 HOW TO SET SURFACE PROPERTIES SURFACE FLOW DISPLAY Ensight provides the capability to visualize a vector (typically velocity) over a surface part, similar to tufts in a wind tunnel. This is not the same as a particle trace part. It is a texture over the entire surface. This visualization is not capable of being animated; it is a graphical texture of the flow tufts calculated on the part surface using surface vector (or the vector in the 3D field just above the surface) using the Line Integral Convolution algorithm. It is designed to provide a uniform visualization of the flow of a vector over a surface. This texture will update when time is changed for transient data. Page 414 HOW TO SET SURFACE PROPERTIES Note that nodal variables give a more pleasing and smooth rendering. Show flow tufts on 2D part or 3D Border part 1. Select the desired 2D surface part(s) in the Main Parts List. A quick way to select all 2D parts is to right click on the part list, Part Select>2D. 2. Click on the color wheel icon at the top to open the Surface Property Editor dialog. Recommended: determine if the vector is defined on the selected part(s); in this example, by coloring by the vector ‘u’, in order to determine if your part(s) have velocity defined on the surface. After you determine this, right click on the selected part(s) and choose Color by>Gray to choose a neutral surface coloration. 3. Pulldown the Surface Flow Display. Click on the Properties button and the Surface Flow Texture Settings dialog will appear. 4. Choose a vector to visualize 5. If your 2D part(s) have a non-zero velocity on their surface, activate the creation of the flow texture: Toggle on the Show flow texture. 6. If your 2D part(s) have an undefined or zero surface velocity, then you need to get the velocity using an offset into the flowfield by clicking on the Create/Edit a surface variable In the resulting dialog, choose your surface offset into the flow. Use a negative value if your normals are reversed. Note: one interesting visualization methodology is to create a surface part progressively offset from your original part into the flow and to turn on this Surface flow visualization. See the Offset section in How to Create Elevated Surfaces Page 415 HOW TO SET SURFACE PROPERTIES DRAG N DROP To change a part’s color quickly, simply click on the variable and drag it to the part name: Drag the variable from the variable list and let go of it on top of the part you wish to color. Drop in either the part list or drop in the graphics window. OTHER NOTES If coloring by a nodal variable, the default coloring will be continuously varying - even within a given element. If you are coloring by a per-element variable, the coloring will not vary within a given element. If you desire to see perelement variables in a continuously varying manner, you can open the Palette Editor (see How to Edit Color Palettes) and, under the Options tab, toggle on ‘Use continuous palette for element values’ for this variable for this session. Or to make continuous the default for all per-element variables, toggle on “Use continuous palette for per element vars” under Edit->Preferences... Color Palettes. Also consider using the Quick Color Settings Widget (see Use Quick Color Settings) to color parts. You can set a default variable that will be used to color all subsequently created parts. To do this, be sure no parts are selected in the Main Parts list. (To de-select a part, hold down the control key as you click on the selected item.) Select the desired default variable in the Variables list of the Color Editor. Any part created subsequently will automatically be colored by the default variable. Applying 2D Textures: You can also apply 2D textures to a part, by clicking the Texture.. button here. The Textures dialog will be opened. See How To Map Textures Page 416 HOW TO SET SURFACE PROPERTIES SHORTCUT Select your parts of interest in the part list. Right click and choose “Color by>”. The list will allow you to color by a variable, or to pop up the color selector to select a single color, or to quickly color by Black, White, or Grey. “Random” will color each of the selected parts by a color chosen randomly from a relatively unsaturated color palette. “Make transparent” will give the part(s) a moderate level of transparency, and “Adjust transparency” will allow you to choose the transparency. Note that you can also right click on a part in the graphics screen and have access to this “Color by>” menu as well for an individual part SEE ALSO How To Edit Color Maps. How To Map Textures Page 417 HOW TO USE QUICK COLOR SETTINGS Use Quick Color Settings INTRODUCTION The Quick Color Settings widget allows you to store your favorite colors and drag/drop them onto objects that have a color attribute. Currently parts, plotters, queries, and all annotation types will accept a drag/drop color operation from the widget. Colors on the Quick Color Settings widget are stored as part of the user's preferences and thus the colors on the widget are available between EnSight sessions. BASIC OPERATION To use quick color settings: 1. Toggle the setting from Window>Toolbars/panels>Quick color settings 2. When any object that has a constant color attribute is selected, the color will be reflected in the larger color patch on the widget 3. Drag a color from any color patch on the widget to any other color patch on the widget. 4. Drag any color from the widget to an object in either the user interface or in the graphics window (assuming your graphics hardware handles drag and drop operations). The drop is limited to a single object. 5. Load a color into a color patch by right clicking on the patch and choosing Select Color... which will bring up standard Select Color dialog. 6. Right click on the color patch in the widget to color multiple selected objects. OTHER NOTES Color changes performed via the widget are part of the Undo/Redo infrastructure. Page 418 HOW TO USE QUICK COLOR SETTINGS When a part colored by a variable is selected the color patch will show the part's constant color attribute. You can not use the color widget for viewports. SEE ALSO Change Color Page 419 HOW TO CLONE A PART Clone a Part INTRODUCTION The clone operation creates a independent deep (on client, and if applicable on server) copy of either a model or a created part including all of its attributes. A cloned model part is a reloaded model part with its attributes updated to match the original. Note: a cloned model part has no parent as it remains an independent model part. A cloned created part recreates the created part with all of the attributes updated to match the original. Note: a cloned created part retains the same parentage as the original. Remember that a cloned part uses the same amount of memory on both the client and server as the original part. A cloned part will recreate a new part identical to the selected part. The cloned part will inherit all of the model variables available to it as a model part or from the parents if the clone is a created part. The clone will not, however, inherit calculated variables from the part that is being cloned. If you wish to have calculated variables extended to include the cloned part you must recalculate these variables. In contrast, a part copy (see Copy Parts) is a shallow operation, existing only on the client (visual only). Shallow copying of a part is useful to save memory on the server, and is best used if all that is needed is to color the part by two different variables, perhaps in two different viewports. A shallow copy is cheaper in terms of memory usage but limited to visual operations only. BASIC OPERATION To create clone(s) of a part or parts: 1. Select the desired part(s) in the Parts List. A separate clone will be created for each selected part. 2. Select Edit > Part > Clone. ADVANCED USAGE If you need to do more than just color a duplicate part, then cloning is the way to go. One of the best reasons to clone a model part, rather than just reload it, is because the act of cloning both reloads the part plus updates the of the cloned model part to match the original. One of the best reasons to clone a created part is to avoid all of the hassles of creation: reselecting the parents and setting all of the creation parameters, creating it and then updating its attributes (e.g. display and coloration). You might slide an X clip colored by velocity to an interesting location, create a clone and continue sliding it to another interesting location and create another clone, thereby leaving behind a ‘trail’ of clips at interesting locations all colored by velocity. It is also possible to create a clone of a created part and assign it new parents using the “Edit>Part>Clone with new parent(s)...” option which is described as follows. Page 420 HOW TO CLONE A PART Clone with new parents 1. Select the part(s) in the part list that you wish to clone. 2. Select Edit > Part > Clone with new parents... 3. When the dialog pops up, choose the new parent(s) in the part list. 4. Click OK and the part(s) will be cloned with new parent(s) Caveat: Keep in mind that the new part(s) have the exact same as their duplicate, but applied on a new part. This can cause confusion, for example, when a Y clip on one part is cloned with another parent and the Y clip disappears because the max and min and Y value are from the first part and the Y clip falls off the edge of the second part and becomes empty. OTHER NOTES EnSight offers several options for duplicating parts. As discussed above, copying (see Copy Parts) is shallow and exists only visually on the client. Merging (see Merge Parts) allows the combining of one or more parts into one, created (dependent), deep, child part. Right clicking on an existing model part and choosing Load Part (reloading a model part) does create an independent new part from scratch. Extracting a part makes a deep copy of just the visual components of the part. And now finally, cloning which makes a deep copy of the part including its attributes. SEE ALSO User Manual: Part Operations How To Manual: Introduction How To Manual: Merge Parts How To Manual: Extract Part Representations Page 421 HOW TO COPY PARTS Copy Parts INTRODUCTION The copy operation creates a dependent shallow (only on client) copy of another part. The new part has its own set of attributes (except for representation), but shares geometric and variable data with the original. One of the best reasons to create a copy is to show multiple variables on one part at the same time in a side-by-side configuration. The copy can be moved independently since new copies are automatically assigned a new frame. If you need to do more than this to the new part, then consider reloading the part or cloning the part (see Clone a Part). BASIC OPERATION To create a copy of a part or parts: 1. Select the desired part(s) in the Parts List. A separate copy will be created for each selected part. 2. Select Edit > Part > Copy. The new copies will be added to the end of the Parts List with “– COPY” appended to the part description. ADVANCED USAGE The most common reason for needing a copy of a part is to display multiple variables on the same geometry simultaneously. When you create a copy, a new Frame is also created and the copy is assigned to it (when you create multiple copies at the same time, a new frame is created for each new copy). Using the Frame feature, frames can be manipulated (e.g. translated or rotated) independently. See How To Create and Manipulate Frames for more information. Consider a part clone (see Clone a Part) instead of a part copy if memory is not an issue. OTHER NOTES The dependence of the copy on the original has some important consequences: 1. If you change the visual representation of the original, the representation of the copy will change as well. 2. You cannot delete the original until the copy has also been deleted. 3. Since the part copy only exists on the client, you cannot save a part copy to disk. If you want to create a dependent, non-shallow copy of a part, you can perform a merge operation on a single part. This type of copy does now have the same consequences: the resulting “copy” is basically independent except that it cannot exist without its parent. Or you can simply reload the part to create another “copy” of it. Page 422 HOW TO COPY PARTS SEE ALSO User Manual: Part Operations How to Manual: Clone a Part How To Manual: Merge Parts How To Manual: Extract Part Representations Page 423 HOW TO GROUP PARTS Group Parts INTRODUCTION In many types of analysis, multiple parts are used to distinguish between various components or material types. To the extent allowed by the particular data format, EnSight maintains this distinction by assigning these entities to separate model parts. In many cases however, this distinction is no longer useful for postprocessing. When manipulating parts, you often need to apply the same set of to all of them. If the number of parts to be treated identically is large, this process can become unwieldy. EnSight provides a group operator to combine multiple parts of the same type and case into a single part. The selected parts for the group can be hidden inside the group and are thus effectively removed from the user interface, leaving only the newly formed group part. The operation can be reversed by removing the group. BASIC OPERATION 1. Select the desired part(s) in the Parts List. 2. Right click on your selection. 3. Select the “New group” option from the pulldown. 4. Give the group a name in the dialog that pops up. Note: A group can be deleted by right clicking on a group and using the Delete group option from the right click pulldown. The selected parts for the group are placed under the new group entity. The group can be opened or closed to hide/ expose the parts in the group. OTHER NOTES Grouped parts can contain other grouped parts. A part can only exist in one group. SEE ALSO User Manual: Part Groups Page 424 HOW TO MERGE PARTS Merge Parts INTRODUCTION In many types of analysis, multiple parts are used to distinguish between various components or material types. To the extent allowed by the particular data format, EnSight maintains this distinction by assigning these entities to separate model parts. In many cases however, this distinction is no longer useful for postprocessing. When manipulating parts, you often need to apply the same set of to all of them. If the number of parts to be treated identically is large, this process can become unwieldy. EnSight provides a merge operator to combine multiple parts into a single part. The merge operation creates one new part from one or more selected parent parts. The original parts are unchanged. If only a single part is selected for the operation, merge will create a “true” copy of the part (as opposed to the shallow copy that the Copy operation creates), with the only dependence being that the parent must exist. If you delete any of the original parts after the merge, these components will be deleted from the merged part as well. BASIC OPERATION 1. Select the desired part(s) in the Parts List. 2. Select Edit > Part > Merge The new merged part is added to the end of the Parts List with the description “Merge of parts #,#,#” where # are the part numbers of the originally selected parts. OTHER NOTES Unlike Copy, merge creates true, server-based parts. Unlike Extract, merge creates parts based on the full, serverbased representation of the part. If you merge a structured (IJK) part, the resulting part will be unstructured. SEE ALSO How To Group Parts. User Manual: Part Groups Page 425 HOW TO EXTRACT PART REPRESENTATIONS Extract Part Representations INTRODUCTION The extract operation is closely tied to part representations. Extract creates a single new part using only the geometry of the current representation of the selected part(s). For example, if the current representation of a part consisting of 3D elements is Border, the result of extraction will be a part consisting of all unshared 2D elements (the surface). Extract is most often used to reduce the amount of information for a part (e.g. for faster display or for geometry output) or to create a surface shell part – perhaps for subsequent cutting – of a 3D computational domain. BASIC OPERATION 1. Select the desired part(s) in the Parts List. 2. Select Edit > Part > Extract The new part is added to the end of the Parts List with the description “Extract of parts #,#,#” where # are the part numbers of the originally selected parts. SEE ALSO See How To Change Visual Representation. User Manual: Part Operations Page 426 HOW TO CUT PARTS Cut Parts INTRODUCTION It is sometimes desirable to cut parts to, for example, reveal the interior of a solid or remove unwanted or unneeded portions of a model. EnSight can cut any server-based part and either keep both “sides” or discard one. Any of the 3D tools (Plane, Quadric, or Box) can be used as the cutting surface. The cut operation produces dependent copies of the parent part. The part(s) resulting from a cut are completely valid parts consisting of standard element types. These parts can be used for any operation – including further cuts. BASIC OPERATION To cut a part: 1. Select the part(s) in the Parts list. 2. Click the Clip Feature icon. 3. Select the desired cutting tool (Plane, Box, Cylinder, Sphere, Cone, Surface of Revolution or Revolve 1D Part). 4. Position the desired cutting tool in the desired location. 5. Select which “sides” to keep. Inside: Keeps inside of quadrics or box and “front” of plane. Outside: Keeps outside of quadrics or box and “back” of plane. In/Out: Keeps both sides Crinkly: Keeps all elements that intersect the plane. For the Plane tool, the inside is the positive Z side of the tool. For the quadric tools, the inside and outside are intuitive. In the Parts list, the original part remains and cannot be deleted without also deleting the cut parts (but can easily be made invisible if desired). If In/Out was used, two new parts are added to the end of the Main Parts list with the same name as the original part with “+” added to the name of the Inside part and “–” appended to the name of the Outside part. If Inside or Outside was used, one new part is created with “+” added to the beginning of the name. OTHER NOTES A part copy cannot be cut. However, if the parent of the copy is cut, the copy will be cut as well (since part copies share geometry with the parent). The cut operation maintains the order of the elements, e.g. 3D elements yield 3D elements and 3D quadric elements yield 3D quadric elements. The cut algorithm breaks elements intersecting the cutting surface into tetrahedrons. Since there is no transition zone created between these tetrahedrons and their non-cut neighbors, non-shared element faces are possible. These non-shared faces can result in undesired lines and/or elements during border and/or feature angle representations. If you cut a structured (IJK) part the resulting parts will be unstructured. Cuts with the Box are not true cuts, but simply a division of all elements that fall completely within the box or not. SEE ALSO User Manual: Clip Parts Page 427 HOW TO DELETE A PART Delete a Part INTRODUCTION The delete operation removes selected parts and any parts dependent on them. All information associated with the parts on both the client and server is removed. Deletion cannot be undone. BASIC OPERATION 1. Select the desired part(s) in the Parts List. 2. Select Edit > Part > Delete or click the Delete key on your keyboard while the mouse is in the EnSight window or right click and select Delete (or Delete selected items, if more than one item is selected) OTHER NOTES In some cases, variables that depend on a deleted part may have to be updated. For example, if you have a variable such as Area calculated on a set of parts and one of the parts is deleted, the Area variable will automatically be recalculated. If you delete a grouped part, all parts in the group will be deleted. SEE ALSO User Manual: Part Operations Page 428 HOW TO CHANGE THE VISUAL REPRESENTATION Change the Visual Representation INTRODUCTION The part visual representation (part element settings) controls how you see the elements that you have loaded on the server in the graphics window on the client. To be clear, the full part and all the elements are loaded and maintained on the server, but the part visual representation exists on the client. For example, you can make a clip plane of a flow field that is set to non-visual because the clip happens on the server. Part element settings are per part, that is, the child clip can be shown in full representation, showing all elements, while the parent flow field is set to non-visual. The ability to change part representations is a powerful management tool in EnSight. This allows you to see the border elements, just an outline of the part, or to make the part entirely non visual. Not only can you select the visual representation that best meets your needs, you can also manage graphics memory and performance more effectively. Using simpler representations both reduces your client memory consumption as well as improves graphics display speed. EnSight provides six representation modes for parts (as well as three modes that are a combination of the six depending on the dimensional order of parts): Full Border Every face and edge of every element is displayed. Warning: do not use this for a 3D part with a large number of elements because it moves every face of every element from the server to the client and can overwhelm your client memory and your graphics card’s ability to process the data. Conversely, this is often a useful choice for 2D parts. Displays the outside surface of your part. Only unshared faces (for 3D parts) or unshared edges (for 2D parts) are displayed. This is often a useful choice for 3D parts. Feature Angle Only those edges joining faces in the Border representation for which the angle between the faces is less than some threshold are displayed. Feature Angle typically extracts the topological features of interest in a model. This is often a useful choice for 3D parts. Non Visual No visual representation exists on the client. Note: this is different than just turning off the visibility. Choosing this option means that NO 2D surface elements are moved to the client for this part and no client memory is allocated for the part. Turning off the visibility simply makes the exising polygons in client memory invisible. It is often useful to use Non Visual as the representation for 3D CFD flow field parts to save memory – especially if you also have shell border part(s) to display the outer surface. 3D Border, 2D Full Display 3D parts in Border representation; display 2D parts in Full representation. This is useful in a structural model to show the outside border of a 3D object, and to show all the elements of the shell border parts. 3D Feature, 2D Full Display 3D parts in Feature representation; display 2D parts in Full representation. This is useful for a CFD model to show the outside features of the 3D flow field and to show all the elements of the 2D border parts such as inlet, and wall and boundary condition part(s). 3D nonvisual, 2D Full Display 3D parts in Non Visual representation; display 2D parts in Full representation. This is useful for a CFD model to avoid loading any of the element surfaces of a high-resolution 3D flow field (to preserve client graphics memory and performance) and to still show all the elements of the 2D border parts such as inlet, and wall and boundary part(s). Bounding Box Volume Only a wireframe box representing the XYZ extents is displayed. Every element is displayed with a controllable level of transparency. Use this with caution as this can require a large amount of client memory on your hardware graphics card: for unstructured rendering, 100MB/ million Tets, and structured rendering 2bytes/cell + 72 bytes / pixel. Page 429 HOW TO CHANGE THE VISUAL REPRESENTATION Additionally, one can specify the use of only a point and normal (instead of the element connectivity) for the specified part representation to be loaded. This reduces the number of entities to visualize and thus, is most useful for very dense models. Double click on the part, and choose advanced, and under the node, element and line turndown, turn on the Load points and normals only toggle. 2D 3D Border Feature Angle Bounding Box Full As you can see from the part element settings above, that 3D parts are best shown in Border or Feature Angle, and 2D parts are best shown in Full. Hence the hybrid 3D Border 2D Full and 3D Feature 2D Full settings. Page 430 HOW TO CHANGE THE VISUAL REPRESENTATION The sitewide default visual representation (as well as extension mapping) is individually specified for data formats in the $CEI_HOME/ensight102/site_preferences/ensight_reader_extension.map file. For example .case files always open with the EnSight Case gold reader and parts are always in 3D Feature, 2D Full mode. Custom visual representation can be specified in the user’s local ensight_reader_extension.map file located in the users local EnSight Defaults directory. BASIC OPERATION 1. Select the desired part(s) in the Parts List. 2. Click the Element Representation icon on the Part Quick Action Icon Bar. 3. Select the desired visual representation. 4. If desired, you can have each element connectivity of your element representation be replaced by a point and normal only. Click Options, then set the option for points and normals only. 5. And if desired, you can apply polygon reduction. Polygon reduction is designed to speed up visualization processing by thinning out the number of polygons that are rendered. There is naturally a trade off in image quality and speed. Note that the original model is not modified, just its rendered image. OTHER NOTES Note that some derived parts (such as contours or vector arrows) are based on the client’s representation of the parent part. If the parent’s representation changes, the derived parts will change as well. You cannot change the representation of a copied part. A copy always exhibits the current representation of the original part. A part’s representation can be made “permanent” by creating a new part based on the current representation. See How to Extract Part Representations for more information. Page 431 HOW TO CHANGE THE VISUAL REPRESENTATION ADVANCED Face Culling If you have a 2D part in a ‘full’ representation showing the elements, and you color by a variable, and you experience a ‘flimmering’ effect caused by coincident 2D elements with different variable values (perhaps representing the other side of a 2D surface), there is an option to visually cull the faces whose normals face away or towards the viewer. This culling only works if the front side 2D elements and the back side 2D elements have normals facing in the opposite direction. And this is only a visual culling, it does not affect, for example, the Area calculated on the 2D part. SEE ALSO User Manual: Part Element Settings Icon Page 432 HOW TO SET Set INTRODUCTION Part control the appearance and behavior of parts. Much of the power of EnSight derives from the broad range of available and the ease with which they can be changed. are grouped into several classes: Creation Creation are unique for each (non-model) part type (e.g. the isovalue of an isosurface). The creation for a part are accessible in the Feature Panel after double-clicking the part in the Main Parts List, or by the main menu structure Create->Isosurfaces (for example). However, model parts have a consistent set of in this dialog including ability to remesh the model part, scaling and translating the model part, filtering the elements of a model part or resetting the I/J/K ranges of a structured model part. General Visibility Susceptibility to auxiliary clipping Reference Frame Response to change in time (active or frozen) Symmetry options Viewport visibility Coloration (by variable or constant color) Hidden surface toggle Hidden line toggle Shading type (flat, Gouraud, smooth) Transparency Lighting (diffuse, shininess, highlight intensity) Visual symmetry Volume Rendering Node, Element, and Line Node, line, element visibility toggles Node type (dot, cross, sphere) Node scale (constant or variable) Node detail (for spheres) Node and element label toggle Element-line width Element-line style (solid, dotted, or dot-dash) Element representation on client (full, border, 3D border/2D full, 3D feature/2D full, 3D nonvisual/2d full, feature angle, bounding box, nonvisual) Element shrink factor Polygon reduction factor Displacement Displacement variable Displacement scaling factor IJK Axis Display IJK Axis visibility IJK Axis scale value The Creation for non-model parts can be edited in the Feature Panel by double-clicking on the part in the Parts list. Most display (such as color and visibility) can be controlled via the icons on the Quick Action icon bar. Since Creation are specific to each (non-model) part type, they are not covered here. Look in the How To article for the specific part type for details on those particular Creation. Server side displacement capability is available in the Creation Attribute area for model parts. See How To Display Displacements for a description of this capability. This article is divided into the following sections: Part Quick Action Icons Creation General Node, Element, and Line Displacement IJK Axis Display Page 433 HOW TO SET BASIC OPERATION Part Quick Action Icons The Part Quick Action Icons can be used to quickly set for parts. To use these controls: 1. Select the desired part(s) in the Parts list. 2. Click appropriate icon to set the desired attribute: Part Visibility Color, Lighting, & transparency Line Width Visibility Per Viewport Element Visual Representation Displacement Visual Symmetry Node and Element Labeling Node Representation Filter Elements Element Blanking Shading Type Hidden Line Auxiliary Clipping Fast Display Representation Page 434 HOW TO SET Creation For model parts, the Creation section in the Feature Edit Dialog allows improved boundary mesh option, scaling, and filtering of elements. For structured model parts, you can change the model part I/J/K range. 1. Right click on the model part name in the Parts list and choose ‘Edit’ or right click on the model part in the graphics window and choose ‘Edit’, or double click the model part in the Parts list. By default, any changes you make to will take effect immediately. If you wish to “batch” a series of changes turn on the “Delay update toggle at the bottom of the dialog. When you are ready to apply a set of changes click the “Apply Changes” button. 2. Open the “Creation” turndown, then set the desired attribute(s): A Model Part can be remeshed in 2D or in 3D or projected onto one of 3 orthogonal planes using an improved boundary mesh option and a variable expansion factor. See the Model Parts section in the User Manual. A Model Part can be rescaled and translated independently in the X, Y and Z directions. A Structured Model Part can have the I/J/K Range changed. A Model Part’s elements can be filtered (up to six filters) by a variable or a value. See Filter Part Elements in the How To Manual. Page 435 HOW TO SET General The General section in the Feature Edit Dialog duplicates many of the controls available in the part Quick Action icon bar. To set using the General section: 1. Right click on the part name in the Parts list and choose ‘Edit’ or right click on the part in the graphics window and choose ‘Edit’, or double click the part in the Parts list. 1. OR Select Create > part type. By default, any changes you make to will take effect immediately. If you wish to “batch” a series of changes turn on the “Delay update toggle at the bottom of the dialog. When you are ready to apply a set of changes click the “Apply Changes” button. 2. Toggle the Advanced Toggle in the top right corner of the dialog to see the additional turndowns besides Creation. 3. Open the “General” turndown, then set the desired attribute(s): Set part Fast display representation (according to Global Viewing Detail Mode): Toggle part visibility Toggle auxiliary clipping on/off Toggle whether the client’s portion of the part changes if the current time step changes Set color by constant or color by variable Set the part color if constant Toggle part hidden surface Toggle part hidden line • Box: part is represented as bounding box. • Elements: part is represented according to Element Representation • Points: part is represented as a point cloud Set part reference frame Set part graphical symmetry Set shading type: Set part transparency fill pattern • Flat: color and shading are constant across elements Set part shading parameters: • Gouraud: color and shading vary linearly across elements • Diff: diffuse shading – the amount of light that a surface reflects. 0 is none and 1 is full. • Shin: Degree of shininess – 0 is dull and 100 is very shiny. • H Int: Degree of highlight intensity – 0 is none and 1 is full. • Smooth: color and shading calculated based on surface normal interpolated across elements to simulate a smooth surface. • Smooth High Quality: Smoothing that attempts to retain subtle features. See Also Set Global Viewing Parameters Page 436 HOW TO SET Node, Element, and Line Node, element, and line control how a part’s nodes and elements are displayed. Nodes can be displayed as dots, crosses, or spheres. If displayed as crosses or spheres, the radius can be set by the value of a variable at that node. To set using the Node, Element, and Line section: 1. Right click on the part name in the Parts list and choose ‘Edit’ or right click on the part in the graphics window and choose ‘Edit’, or double click the part in the Parts list. 1. OR Select Create > part type. By default, any changes you make to will take effect immediately. If you wish to “batch” a series of changes turn on the “Delay update toggle at the bottom of the dialog. When you are ready to apply a set of changes click the “Apply Changes” button. 2. Toggle the Advanced Toggle in the top right corner of the dialog. 3. Open the “Node, element, and line” turndown, then set the desired attribute(s): Set node representation • Dot: nodes are displayed as points. Set visibility of nodes, lines, elements • Cross: nodes are displayed as crosses and can be fixed size (size set by the Scale value) or sized based on a variable (and scaled by the Scale value). Set node/element label visibility • Sphere: nodes are displayed as spheres and can be fixed size (size set by the Scale value) or sized based on a variable (and scaled by the Scale value). Sphere detail controlled by Detail value. To avoid hanging up your graphics card, first set your scale using crosses, then turn on spheres. Set Line width and Style (Solid, Dotted, or Dot-dashed) Set element representation (described below) Set polygon reduction. Same model, but simpler representation. Trade-off of visual fidelity and rendering speed. Set element shrink factor (shrink elements toward the centroid) Set angle for Feature Angle representation EnSight provides five representation modes (and three combination modes) for parts (see also How To Change Visual Representation): Full Border 3D Border, 2D Full 3D Feature, 2D Full 3D nonvisual, 2D Full Feature Angle Non Visual Bounding Box Every face and edge of every element is displayed. Only unshared faces (for 3D parts) or unshared edges (for 2D parts) are displayed. Display 3D parts in Border representation; display 2D parts in Full representation. This is the default representation for all parts. Display 3D parts in Feature representation; display 2D parts in Full representation. Display 3D parts in Non Visual representation; display 2D parts in Full representation. Only those edges joining faces in the Border representation for which the angle between the faces is less than some threshold are displayed. Feature Angle typically extracts the topological features of interest in a model. No visual representation exists on the client. It is often useful to use Non Visual as the representation for 3D computational domain parts – provided you also have some sort of shell part to display the outer surface. Displays a bounding box surrounding (and in place of) the nodes and elements. Page 437 HOW TO SET Displacement In structural mechanics simulations, a common output variable is a set of vectors representing the movement or displacement of geometry. Each displacement vector specifies a translation of a node from its original position (an offset). EnSight can display and animate these displacements to help visualize the relative motion of geometry. To set Displacement (see also How To Display Displacements): 1. Toggle the Advanced Toggle in the top right corner of the dialog. 2. Open the “Displacement” turndown. Set Displace By to either None (no displacement) or the vector variable to use for displacement. Set nodal displacement factor to reduce or exaggerate a displacement IJK Axis Display Model Parts and clips (because they can be structured parts) will have these available. These will only be applicable to structured parts. 1. Toggle the Advanced Toggle in the top right corner of the dialog. 2. Open the “IJK axis display” turndown. Toggle IJK Axis Visible to display an IJK axis for the part. The scale factor for the IJK Axis triad can be modified in this field. SEE ALSO Introduction to Part Creation User Manual: Parts Quick Action Icons Page 438 HOW TO DISPLAY LABELS Display Labels INTRODUCTION It is often useful to be able to identify specific nodes or elements within your model. EnSight can display node and element labels in the Graphics Window. If your data provides explicit node or element labels (or you are using EnSight data formats and have asked EnSight to assign ids), EnSight will be able to display those values. Only model parts and clips through model parts can have labels. Displaying labels on parts with thousands of nodes or elements can obscure both the geometry as well as the labels of interest (as well as degrading display performance). EnSight provides a filtering mechanism to display only selected ranges of labels. BASIC OPERATION Displaying Node and/or Element Labels To display labels (and to control filtering and coloring): 1. Select the desired part(s) in the Parts list. 2. Click the Node/Element Label icon to display the Node/Element labeling dialog. 3. Click the appropriate toggle(s) to turn on/off node and/or element labels. 4. To set filters for node/ element labels, select the desired filter and enter the appropriate values in the Low and/or High fields. 5. Set the node/element label color. The label filters operate as follows: None Display all labels. Low Remove all labels < the Low value Band Remove all labels >= Low and <= High High Remove all labels > the High value Low/High Remove all labels < the Low value as well as those > the High value. Page 439 HOW TO DISPLAY LABELS Note that the Node and Element Label toggles also have counterpart toggles in the View Menu. These act as global toggles that enable or disable any per-part node or element labels. OTHER NOTES Note that created parts (except clips through model parts) do not have node or element labels. Note: The font size of the node and element labels can be modified under Edit > Preferences > Annotation. Simply change the value in the 3D label size field and hit a return. If desired, this change can be made permanent for future EnSight sessions by hitting the Save to preference file button. Another useful technique for reducing label clutter is to use the front and back Z clipping planes to display only a thin slice of interest. See How To Set Z Clipping for more information. SEE ALSO User Manual: Label Visibility Page 440 HOW TO SET TRANSPARENCY Set Transparency INTRODUCTION Transparency/Opacity can be turned on with one or other of the following methods: Constant (alpha) Variable Transparency is a single value applied over the entire part. Transparency (Opacity, or Alpha) varies according to a variable value. BASIC OPERATION 1. Select the desired part(s) in the Parts List. 2. Click the Part color/surface property icon from the Part Quick Action Icon Bar to open the corresponding dialog. For constant transparency: 3. Open the Lighting and Shading turndown and move the Opacity slider (see Lighting and Shading). If the opacity option is not shown, then you must change the Opacity by Variable to Constant Opacity. The Part Opacity in the Graphics Window will dynamically update as the slider is adjusted. OR For transparency that varies over the part surface using variable values: 3. Open the Opacity By Variable pulldown and select the variable of interest (see How to Opacity by Variable (Transparency)). For vector component, click on the comp column “Mag” pulldown and select the component. SHORTCUT Right click on the part of interest in the graphics window and select ‘Color by’ then choose ‘Make Transparent’ for a quick 50% constant transparency, or choose “Adjust transparency... to control percentage with a slider. SEE ALSO User Manual: Part Transparency How to Manual: Opacity by Variable (Transparency) How to Manual: Lighting and Shading Page 441 HOW TO SELECT PARTS Select Parts INTRODUCTION Manipulating parts is one of the fundamental operations in EnSight. Before you operate on parts, they must be selected. Parts can either be selected through standard mouse interaction with the items in the Parts list or selected by picking parts in the Graphics window. BASIC OPERATION Selecting Parts in the Graphics Area Left click on the part in the graphics window to select it. Use control key to select multiple parts. Selecting Parts using the Parts List Items in the Parts List itself are selected using standard selection methods: To ... Do this ... Details ... Select an item Select (or single-click) Place the mouse pointer over the item and click the left mouse button. The item is highlighted to reflect the “selected” state. Extend a selection Shift-click Select the first item. Place the mouse pointer over the last item in the list to be selected. Press the shift key and click the left mouse button. This action will extend a selection to include all those items sequentially listed between the first selection and this one. Extend a non-contiguous selection Control-click Place the mouse pointer over the item. Press the control key and click the left mouse button. This action will extend a selection by adding the new item, but not those in-between any previously selected items. De-select an item Control-click Place the mouse pointer over the selected item. Press the control key and click the left mouse button. This action will de-select the item. Open the Feature Panel Double-click Place the mouse pointer over the item and click the left mouse button twice in rapid succession. Selecting Parts using the Right click Select... Options There are several other useful options for selecting parts available from right clicking in the part list or the graphics window.: 1. Right click in the part list or the graphics window and select Part Select from the list. 2. Select the desired option. All Selects all parts in the list. Invert Inverts the selection. Namely, all parts currently selected become unselected and all unselected become selected. Visible/ Invisible Selects all visible/Invisible parts. 2D/3D Selects parts that contain 2d or 3d elements Region Selects all parts that are within the selection tool. (Requires that the selection tool be on) Showing Selects all visible parts which are showing in the graphics window. Search... Opens a dialog which allows for selections using keywords and regular expressions. None Unselects all parts. Page 442 HOW TO SELECT PARTS Selecting Parts by Picking Parts can also be selected by “picking” them in the Graphics window. To select parts by picking: 1. From the Pick pulldown icon on the Tools Icon Bar, select Pick Part. (Note that this is the default, and this setting will be retained until explicitly changed.) 2. Position the mouse pointer over the desired part in the Graphics Window and press the ‘p’ key (or perform the mouse action which has been set to “Selected pick action” in Edit > Preferences > Mouse and Keyboard). See below regarding how parts are identified. Note that the picked part is now selected in the Part list. You must pick a part on a visible surface/line/point. Picking a part where the background is showing through (for example, you are in line mode and you pick on the center of an element) will not pick the part. By default, when you press the ‘p’ key any previously selected parts are de-selected. Holding down the Control key as you hit ‘p’ modifies this behavior: if the picked part is not currently selected, it will be added to the existing selection (so you can select multiple parts by picking), otherwise the picked part is de-selected. OTHER NOTES 1. By default, parts selected in the part list are shown highlighted by the highlight color and transparency. 2. A global toggle turns this on (default) and off To modify the select/unselect highlighting preferences open Edit->Preferences->View and set new settings. 3. Unselected parts are also modified according to the unselected color and transparency. Page 443 HOW TO SELECT PARTS ADVANCED USAGE Part tagging and selection EnSight supports the concept of part 'tagging'. A tag defines a collection of parts, which can be useful for large numbers of parts. One part can be a member of more than one tag. The current selection can be used to create a tag and a tag can be used to set the current selection. This allows the user to quickly store and recall selections of arbitrary complexity. EnSight pre-defines a set of ten tags. These correspond to the number keys: 0-9. By default, no parts are members of any tags and any part can have multiple tags (e.g. a part can be a member of tags 0, 4 and 5). Part tags are saved in context, session and archive files. They are not stored in command language files, although command language does exist to specify membership in a tag. Defining a tag from the current part selection EnSight uses 'Alt' and the number keys (0-9) to define a tag from the current selection. To tag a collection of parts (marking that selection for easy recall later) do the following: 1) Select any part(s) 2) Press Alt# where '#' is a number key from 0-9 First, the tag is cleared for all parts and then the selected parts are tagged with that key. On Windows and Linux, the details of the new tag are displayed in the status bar. Using a tag to recall a stored part selection EnSight uses 'Ctrl' (Window/Linux) or  (OSX) and the number keys (0-9) to reset the current selection to the set of parts with the matching tag. To recall a tag and set the current part selection to the parts with that tag: 1) Press 'Ctrl'# or #, where '#' is a number key from 0-9. The previous part selection is cleared and the all of the parts tagged with the matching key are selected. This allows one to very rapidly recall a previously tagged selection. EnSight Python Implementation details Tagging is stored on each part through the Python METADATA attribute on the part objects. The pre-defined METADATA keys are 'ENS_PLIST_KEY_SEL_#', where # is a digit from the set '0-9'. Check on the membership in the tag using code as follows: test = ensight.objs.core.PARTS[0].METADATA.get('ENS_PLIST_KEY_SEL_1',0) The above will return whether the first part in the partlist is a member of tag '1'. Likewise, one can set/unset membership in the tag using the following: ensight.objs.core.PARTS[0].setmetatag('ENS_PLIST_KEY_SEL_1',1) and the following to unset: ensight.objs.core.PARTS[0].setmetatag('ENS_PLIST_KEY_SEL_1',0) (see EnSight Python Interpreter). Note that these last two examples are also valid command language and can be placed in command (.enc) files as well. Finally, since the tagging system is based on the part metadata infrastructure, one can also set the tag membership directly from a reader using the metadata schema (see https://sites.google.com/a/ensight.com/ensight-python-api/ metadata for more details). SEE ALSO User Manual: Part List Panel Page 444 HOW TO SET SYMMETRY Set Symmetry INTRODUCTION In many instances, a modeler can take advantage of symmetry present in a problem to reduce the computational complexity of a subsequent analysis. EnSight can impart visual realism to such models by mirroring parts around any or all axes of the part’s reference frame or performing rotational symmetry about any of the axes. Although the mirrored or rotated portions appear identical to the source part (except for the reflection or rotation), they are only visual (client-based) and cannot be used for calculation. For example, you cannot start a particle trace in one half of a mirrored model and expect the trace to cross the plane of symmetry into the other half (although you can make the particle trace part symmetric as well). EnSight also provides “true” or “computational” symmetry operations (mirror, rotational, translational) as an attribute of the part’s reference frame. This option creates the symmetry instances as actual data on the server. Thus, with computational symmetry, you can trace particles across a periodic boundary. There now exists an option for rotational periodicity, where one can have particle traces exit a symmetry surface and re-enter on the corresponding symmetry surface and continue. This does not require the creation of additional geometry on the server (like computational symmetry does), but does require some additional information to be included in the Part Visual Symmetry dialog (see below) - along with the setting of a toggle in the Trace creation dialog. See the Periodic Trace section in the How To Create Particle Traces. Both types of symmetry (visual or computational) are based on the part’s reference frame. Although you can use simple visual or computational symmetry without having to manipulate the frame, more advanced usage of symmetry could require a working knowledge of frames. See How To Create and Manipulate Frames for more information. BASIC OPERATION Visual Symmetry Visual symmetry is an attribute of parts. You can enable display of a mirrored copy of a part into one or more of the seven octants of the part’s reference frame. You can also enable display of a number of rotational instances about the x, y, or z axes of the part’s reference frame. You can specify an origin for the symmetry. To display visual symmetry: 1. Select the desired part(s) in the Main Parts list. 2. Click the Visual Symmetry icon from the Part Quick Action Icon Bar. Visual Mirror Symmetry: 3. Specify the origin, if necessary. 4. Select Mirror from the Type pulldown menu. 5. Select the desired octant(s) from the menu. Visual Rotational Symmetry: 3. Specify the origin, if necessary. 4. Select Rotational from the Type pulldown menu. 5. Set the number of instances to display. Note that for rotational periodicity only, the additional section entitled “Periodicity - Rotational” will be shown. Some additional per part information is required if you are using periodic traces. Here you will specify the rotational periodic axis and the number of sections (instances) which will make 360 degrees. Follow the link to the traces How To that is specified above (or in the See Also section below). Page 445 HOW TO SET SYMMETRY Recall that symmetry is performed with respect to the reference frame of the part. The frame’s origin and axes define the partitioning of space into the octants that attached parts are mirrored into, or the rotational axis. If the symmetry operation did not produce the desired effect, it is probably due to the fact that the part’s frame is not located/aligned on/with the plane of symmetry, or the rotational symmetry axis, as designed for the model. The solution is to create a new frame, assign the part(s) to the new frame, and position the frame such that two of its axes lie in the plane of symmetry, or one of its axes align with the rotational axis. There operations are discussed in How To Create and Manipulate Frames. Visual Symmetry Specify Origin If the Specify Origin toggle is off, then the origin of your rotation axes is the part reference frame origin. However, If you toggle on the Specify Origin, then this is the origin that will be used (instead of the reference frame origin), and the reference frame of the part will only be used for the direction of the axes. Note that the origin is specified here in global coordinates. Specifying the origin in this manner is useful if your axes are aligned properly with your model, but you just need the origin to be moved and don’t want to go to the trouble of creating, moving and then assigning a new frame to your part(s). Computational Symmetry Computational symmetry can be used for unstructured and structured model parts with periodic boundary conditions. (Note, it does not work for created parts.) Computational symmetry can handle rotational, translational, and mirror symmetry. Unlike visual symmetry, computational symmetry actually produces the symmetric geometry and variables on the server - allowing for more than just visual symmetry. You enable computational symmetry by selecting the frame, specifying the type (Mirror, Translational, Rotational), and setting type specific (such as the rotation angle and the number of instances to create). Each part assigned to the frame will be updated on the server to reflect the specified symmetry. Note that each new instance of a part created through computational symmetry creates a new part on the server. To use computational symmetry, you will need to enable the Frame feature if it isn’t already enabled. Then: 1. Window>Toolbars/Panels>Frames OR Click the Frame feature from the Feature Icon Bar. If you do not see this option you will need to turn it on by right clicking in the Feature Icon Bar to Customize the ribbon to show the Frame feature. 2. If the default frame (frame 0) is not correctly positioned for the desired symmetry operation, create a new frame, position the frame in the proper location and orientation, and assign the part(s) to the new frame. (See How To Create and Manipulate Frames for details.) 3. Click the Frame tab then select the desired frame to edit. 4. Click the Computational Symmetry Icon. The remaining steps depend on the type of symmetry desired. Page 446 HOW TO SET SYMMETRY Mirror Symmetry is similar to graphical symmetry as described above. 5. Set the Type to Mirror and set the desired octant(s). 6. Click Apply. Rotational Symmetry creates instances by rotating, around the selected axis of the frame, the specified number of degrees. The selected frame’s axis must be aligned with the desired symmetry axis. 5. Select Rotational from the Type pulldown. 6. Select the frame rotational axis. 7. Set the desired rotation angle (in degrees) in the Angle field. 8. Set the desired number of instances in the Instances field (number 1 is the original, set Instances to 2 to yield one copy). 9. If a periodic match file is available, toggle Use Periodic File and enter the file name. Periodic match files are discussed below. Note that this toggle will be grayed out and unavailable for Case and Case Gold formats because the periodic match file name is entered into the Case file. 10. Click Apply. Translational Symmetry creates instances in the direction of the specified translation vector (using the frame to get the x, y, z directions). 5. Select Translational from the Type pulldown. 6. Enter the desired translation vector in the XYZ fields and press return. 7. Set the desired number of instances in the Instances field (number 1 is the original, set Instances to 2 to yield one copy). 8. If a periodic match file is available, toggle Use Periodic File and enter the file name. Periodic match files are discussed below. 9. Click Apply. Page 447 HOW TO SET SYMMETRY Periodic Matching for Computational Symmetry When a model is created with periodic boundary conditions, there is typically a built-in correspondence or “match” between certain nodes and elements. For example: 7 The elements defined by nodes 1,2,3 and nodes 1,6,7 should match when rotated about an axis passing through node 1 (perpendicular to the screen). When another instance is created, node 2 matches with 6 and node 3 matches with 7. 5 6 4 3 2 1 When instances are added to a part, it is desirable to eliminate these duplicate nodes. Without a match file, EnSight will attempt to find and remove them using a hashing scheme. This method works quite well, but may not find all duplicates. (Remaining duplicates are usually noticed when the part is in feature angle representation since EnSight treats elements with duplicate nodes as separate – even if they are coincident.) Note that if you have a periodic match file you do not need to specify the rotation axis and angle in the Frame Computational Symmetry dialog – the value is provided in the file. A user-supplied matching file can be used to quickly find and remove all duplicates. The match file is a simple ASCII text file. The file for the example above would be (the text in italics is not part of the file): rotate_z 52.34 3 11 26 37 specifies rotational symmetry and the applicable axis the angle of rotation (in degrees) the number of node pairs to follow first node pair second node pair... See Periodic Match File for more information on periodic match files. SEE ALSO How To Create and Manipulate Frames How To Create Particle Traces Page 448 HOW TO MAP TEXTURES Map Textures INTRODUCTION Texture mapping is a mechanism for placing an image on a surface or modulating the colors of a surface by various manipulations of the pixels via a texture map image. EnSight supports the application of a texture onto a part and the combining of texture effects with the normal EnSight coloring schemes. This can include animated textures(e.g. EVO or MPEG files), which can be used to texture parts and 2D annotations. The simplest use is to place a "decal"/logo or photograph on the surface of a part. Texturing can also be used to add repeated patterns, provide custom transparency and lighting, color a part by multiple variables and clip parts to arbitrary boundaries. A texture operation in EnSight consists of a texture map image, a collection of interpolation and blending options and a mechanism for projecting the texture map image onto a part. Each of these items is described in the following sections. Shown below is a quick overview from the Surface Property Editor to add a texture. Putting a logo or image on Part(s) 1. Select the desired part(s) in the Main Parts List. 2. Click on the color wheel icon at the top to open the Surface Property Editor dialog. 3. Pulldown the Texture. 4. Click on Edit textures to open Textures dialog. 5. In the Textures dialog, right click on Texture and choose Load texture... to load an image from file, to be used as a texture. 6. Pick a texture number to apply. see How to Set Surface Properties Page 449 HOW TO MAP TEXTURES Setting the texture map image EnSight supports up to 32 different textures, which are displayed as thumbnails down the Texture column in Textures dialog. A number of operations can be performed on the textures by rightclicking on the thumbnail image and selecting from the menu. A new image or movie (e.g. EVO, MPEG, etc.) can be set for the texture using the 'Load texture file…' option. A texture can be reverted back to the 16x16 transparent checkerboard default pattern using the 'Clear texture' menu. Each texture has a border color that is used for colors outside of the texture bounds. This color (RGB and opacity) can be set explicitly using the 'Set border color…' menu. The 32 textures are numbered one through 32. Each part in EnSight can have one of the 32 texture associated with it. This can be done by selecting the part(s) and either clicking on the appropriate button thumbnail or selecting the number from the 'Use texture' option menu. Advanced options for loaded texture images and animations can be set using the ‘Set texture options...’ menu (see Texture options section below). The basic information for the currently selected texture is displayed in the text field below the thumbnails. The size of the texture, its source, border color and the nature of its transparency (A channel and border color) is displayed. All textures have both a color (RGB) and an opacity (A) component. By default, the thumbnail is drawn using the full RGBA pixel value. Options at the bottom of the right click menu allow the user to select which channels to draw: Display RGBA, RGB, or Alpha. The first three images in the example dialog above are all the same texture, but drawn with a different function. The the first image is the full RGBA image, the second one is just the RGB part of the image and the third one is just the A part of the image. Notice how the A channel masks out the black and white pixels in the RGB image. This masking can be used to place non-rectangular images/icons on EnSight parts. Users often make use of a common set of textures for many different analyses (e.g. company logos, standard palettes, etc). The 'Save' button allows the user to save the currently loaded selection of textures and their display mode into the user's preferences directory. These will be automatically loaded every time EnSight is launched. Page 450 HOW TO MAP TEXTURES Setting Texture Options In Ensight, animated textures (e.g. EVO or MPEG files) can be used to texture parts and 2D annotations. Each animated texture is linked to the current solution time in EnSight. This temporal mapping can be set by rightclicking on the logo, choosing “Set texture options” to see the Texture options dialog. Basic information about the texture is presented in the upper pane. This includes the filename, border color, dimensions, and number of frames in the texture. It also includes temporal reference information for animated textures. Animated textures have a start and ending frame number. These can be used to “crop” the texture to some subset of the animation. There is also a starting and ending solution time for the texture. The frame from the texture is selected such that the starting frame number is used when the current EnSight solution time is at or before the texture start time and the ending frame is used when the current solution time is at or after the ending time. The temporal mapping is linear in-between. There is also an “Autoscale” option. If this option is set, the starting and ending time for that texture will always be set to the dynamic range of currently loaded EnSight solution times. Note: EnSight will read the entire animation into memory when it is loaded. If the movie is large, it can use a significant amount of memory. In memory, EnSight uses lossless compression schemes for the data. The current scheme can be changed using the ‘Compression’ options pulldown. Page 451 HOW TO MAP TEXTURES Texture operations and parameters The Texture mode, Repeat mode and Interpolation scheme define how textures are accessed and how they are integrated into the normal EnSight coloring scheme. The Texture mode determines how a texture is combined with the natural coloring scheme in EnSight. The pulldown has three options: Replace, Decal and Modulate. In Replace mode, the base colors provided by EnSight are ignored and the texture is used as the only source of color for the part (note, this has the side effect of disabling any lighting). In Decal mode, the alpha channel of the texture is used to select between the texture color and the base color of the part. If the texture alpha value is 0, the base color of the part is displayed, while locations where the texture alpha value is 255, the texture color will be used exclusively. All alpha values in-between 0 and 255 will result in an interpolation between the texture and base colors. Note that the default texture uses an alpha channel with values 255 and 80. In Modulate mode, the base color is multiplied by the texture color and the resulting texture is used. Modulate mode is commonly used with a texture that has a color of white and some pattern in the alpha channel. This allows the base color to show through, but varies the transparency of the part. Arbitrary clipping operations can be set up this way. Modulation of the color channels can be confusing as the operation tends to suppress colors, but it can be used with a grayscale texture to attenuate. The Repeat mode allows the user to control how the texture repeats outside the texture coordinates [0,1]. The pulldown has three options: Repeat, Clamp, or Clamp to texture. In Repeat mode, the coordinates are repeated (e.g. a texture coordinate of 2.3 is mapped to 0.3) so that the texture repeats itself, and the border color is not used. In Clamp mode, coordinates outside of [0,1] are fixed to the border color of the texture. If repeat mode is set to repeat, Clamping is often used for logos and explicit texture coordinates (see Texture projections) that you wish to see only once. In Clamp to texture mode, coordinates outside of [0,1] are fixed to the edge value of the texture. The border color is not used. The Interpolation scheme is applied when the graphics hardware needs to access a pixel in the current texture. The pulldown has two options: Linear or Nearest. Linear interpolation mode generally results in smoother looking displays, but can result in "fringes" that are the result of interpolating to colors that might not exist in the native texture. Linear can be slower, but in EnSight, this is often the result of the fact that a part may be turned translucent and need to be sorted during rendering (See Texture implementation limitations). Nearest will result in the exact colors in a texture using the nearest neighbor interpolation method. It is less smooth and has starker contrast. Page 452 HOW TO MAP TEXTURES Texture projections . EnSight provides two mechanisms which may be used to define where a texture should appear on a part. The first is by projection. In this mode, it helps to think of the texture as a projected light-source, like a presentation projector, only without divergence (i.e. the light lines are parallel). The user places the light source to shine through the scene at some orientation centered at some point. Textures are not limited to the exposed surface in EnSight, thus any surface that intersects the beam of light is textured. The user can enter the values for this projection in the "S vector", "T vector" and "Offset" fields in the dialog.. These define a vector in the space of the part that will correspond to the directions of the X and Y axis of the texture image as well as a point of focus for the texture. Perhaps the simplest method for setting these values is to use the plane tool. Place the plane tool in the view to match the desired projection. The texture will be scaled to fit in the boundaries of the plane tool with the texture axis aligned with the tool X and Y axis. The texture itself is projected along the Z axis of the tool. Once the tool has been placed, click on 'Get proj from plane tool' to fill in the dialog fields. The 'Set plane tool to proj' will move the plane tool to the projection formed by the current dialog values. The example below illustrates the placement of a logo, in decal mode with clamp and repeat modes set. Notice that the texture appears both in front of and behind the tool. Page 453 HOW TO MAP TEXTURES The texture projection can also be specified relative to a point or a collection of points. The Projection option menu in 'Absolute' mode will set the texture projection to the current settings which places the texture at an absolute position and attitude in space. If the part geometry moves or deforms, the texture remains fixed in the scene, thus it appears to move on the part surface. Choose Projection 'Offset relative to ID', to specify a node ID in the 'Origin' field. The 'Offset' X,Y,Z values are considered to be relative to this node ID. If it moves in time, the texture projection will translate with this node. Likewise, Projection 'Offset and S/T vecs relative to node Ids' allows for three node Ids to be specified, causing the projection to rotate and scale with the relative positions of those nodes. If you turn on these relative modes, you may need to click 'Get proj from plane tool' to set up the field values to match the plane tool again (The get proj option always honors the current relative projection and node IDs, if provided). The second form of projection EnSight supports is via 'Variables'. In this mode, one or two scalar variables are used to provide explicit S and T texture coordinates for texturing. This is the most general mechanism for texturing. The S-variable and T-variable option menus provide a list of possible scalar variables. Users may also set the S and/or T value to the constant quantity 0.5. The variables are generally in the range [0,1], which map to the edges of the texture map, just inside the border. Values outside this range will either be mapped to the texture border color (in the case of clamp mode) or will be warped back into the range of [0,1] by repeated subtraction/addition (in repeat mode). This form of projection is capable of emulating the previous model. It also makes it relatively easy to create two dimensional data palettes. Just like the existing palette in EnSight, some function of a variable is used to select a color from a table. In this case, the table is a 2D texture, so this can be done for two different variables at the same time, and the opacity can be varied as a function of those variables. All forms of EnSight part displays can be textured: surfaces, lines, points, etc. Of special note, in "variable" mode, points are rendered with a single texture coordinate, regardless of the form they are displayed as. Thus, a point displayed as a sphere can only use a single pixel sample from a texture. Thus, to place a logo on a point rendered in sphere mode, one would need to use 'projection' mode. Page 454 HOW TO MAP TEXTURES BASIC OPERATION How to place a logo on a part One common use of textures is to place a logo or "decal" onto a part. This operation involves using a projected texture. This is a simple three step process. For this example we will use the AMI dataset which comes with the EnSight. 1. Load the AMI dataset and set the display type to shaded surface. Orient the hypersonic body as shown and select it in the part list. 2. Next we need to set up the texture map to use. Select the color icon to bring up the Part Color/Surface Property Editor dialog and turndown Textures, then click on the Edit Textures… button to bring up the texture dialog. Right click on the first texture button and select 'Load texture file…'. Browse to the image file containing your logo image. A good example is the CEI logo found in CEI_HOME/ ensight102/doc/wiki.ensight.com/ cei_logo_png72.png. This image includes an alpha channel that is zero outside of the logo pixels (the 'Display Alpha' menu option will display only this channel'). Associate this texture with the part by selecting the part and set Use Texture to 1. The hypersonic body will get a tiling of CEI logos over it, since we only want a single logo, change the Repeat mode to 'Clamp' (the logos will likely disappear). 3. Finally, we need to set up the transform necessary to place the logo. Bring up the plane tool and size/ position it as illustrated: The key here is to think of the plane tool as a "flashlight" that shines down the plane tool's Z axis and the light is bounded by the plane rectangle. Once you have the plane positioned, click on 'Get proj from plane tool'. The logo texture will now be displayed on the body at the location specified by the plane tool. Page 455 HOW TO MAP TEXTURES ADVANCED USAGE How to use textures as palettes EnSight textures can also be used as multi-dimensional palettes to allow the user to control the color and opacity of a part based on arbitrary functions of two variables. The key to this technique is generating the appropriate texture map. In the following example, we will use a texture map found in the data directory with the "cube" model. 1. Load the cube model and bring up the variable calculator. We will need to create an "S" and a "T" variable that will be used to access the texture. 2. In the calculator create a new variable named 'S' with the expression 'temperature/50.0' (this puts 'S' roughly in the range [0,1]). 3. Create a variable 'T' that is the expression 'RMS(velocity)'. 4. Create an xyz clip of the mesh as a 'Z' clip and turn on shaded display. 5. With the clip_plane part selected, open the Part Color/Surface Property Editor, Textures turndown, and click on the Edit textures button. Load the file 'dual_gradient.png', included in the directory with the cube dataset, into the first slot. Notice that this texture is an opacity ramp along the X axis and a color ramp along the Y axis. 6. Set the texture mode to 'Replace' and the repeat mode to 'Clamp'. 7. Now, set the 'Compute texture coordinates by' option to 'Variables' and pick 'S' and 'T' as the S and T variable names. The display will look like the image shown, depending on the placement of the clip plane. The coloring is relative to the Velocity of the field, while the opacity of the plane is relative to the temperature of the plane. This type of technique can be used with any two variables; the key is generating a 2D texture map that is meaningful for ranges of the two variables in question. Page 456 HOW TO MAP TEXTURES How to clip an object with a texture Textures can also be used to manipulate the transparency of portions of objects in interesting ways. In this example, a texture image with only an alpha channel will be used to clip into a part to reveal parts inside of it. 1. Load the cube dataset again. And as in the textures as palettes example: 2. Load the image files 'circle.png' and 'sphere.png' into two texture slots. In both cases: 3. Use the right mouse button menu to set the textures' border color. Change the border color alpha channel value to 255 and view only the alpha channel. Notice that the RGB channels are white, but there is a dark region in the alpha channel of the images. 4. Create an isosurface of temperature in the mesh as well as a 'Z' plane clip. 5. Color the plane clip by velocity. 6. Now, select the isosurface part and much like the logo example, use the plane tool to project the texture onto the isosurface. In this case, use the circle texture and modulate texture mode and set the repeat mode to clamp. The texture will clip through the isosurface as a projected circle (from the circle in the texture) to view parts interior to it. The sphere texture provides a smoother clip. Experiment with other textures and repeat modes for other effects. Remember that each part can have its own texture, each with a different set of projection settings for highly expressive visual options. Here is an example of a clipping texture applied to dynamic particle traces. The tracer pulses are not clipped, but the traces are clipped to a projected circle texture as in the example. Page 457 HOW TO MAP TEXTURES OTHER NOTES Texture implementation limitations Texturing in EnSight is done using OpenGL and the multi-texture extension. If your graphics card/driver does not support this extension, texturing will not be allowed in EnSight and the button used to bring up the Textures dialog will be removed. OpenGL works best with textures that are powers of two in size and every graphics card has a different limit on the maximum size of a texture. EnSight will internally scale any input texture (via bilinear interpolation) to fill the nearest power of two sized rectangle. This can result in much larger textures being used than users might expect and it can cause interpolated pixels to be used in textures. Also, if textures are too large, EnSight will down-sample them to the resolution the driver supports. For maximum performance and efficiency, use natural power of two sized textures where possible and avoid extremely large textures. A common performance issue users encounter with textures in modulate or replace mode revolves around transparency. If a texture includes transparent pixels (or transparent border pixels), it is possible that the part could become transparent. In this case, EnSight is required to sort the polygons of the part to ensure proper occlusion. This process can be very expensive and slows down rendering significantly. The user can avoid requiring the expensive sorting, by using textures with solid (or no) alpha channel. If a texture uses only entirely opaque or transparent pixels and the interpolation option is set to nearest neighbor, EnSight will recognize that it is not possible to have translucent pixels and will not be required to sort the polygons. This can be used to improve interactive performance and further enable the use of textures as selective clipping operations in modulate mode. SEE ALSO User Manual: Part Color/Surface Property Icon Page 458 HOW TO ANIMATE TRANSIENT DATA Animate Animate Transient Data INTRODUCTION Transient data can be animated through EnSight’s flipbook capability. During the flipbook load process, all parts (both model and created) are automatically rebuilt (if necessary) using the data from each time step in sequence. At each step, a graphical “page” is created and stored in memory. When the flipbook is active, the pages are displayed in order as rapidly as the hardware allows (although you can slow it down). You can also step through pages manually. The graphical pages can be one of two types: object or image. An object flipbook saves each page as 3D geometry so you can continue to manipulate the model (e.g. rotate or zoom) during playback. However, for very large models and/or long sequences, the memory requirements can be substantial. In this case, you can create image flipbooks that save only the image pixels for each page. Although the size of each page is now fixed, you cannot change the viewing parameters without reloading the flipbook. This article covers using the flipbook capability for transient data (and assumes that you have successfully loaded your transient data). See How To Create a Flipbook Animation for more details on flipbooks. EnSight’s keyframe animation capability also works with transient data and provides a flexible mechanism for synchronizing your available time steps with the output animation frames. See How To Create a Keyframe Animation for more information. BASIC OPERATION Prior to loading the flipbook, you should create all parts of interest (e.g. clips, contours, isosurfaces, etc.). These parts will automatically be recalculated for each time step. To load a transient flipbook: 1. Click the Flipbook Animation icon in the Feature Icon bar. 2. Be sure the Load Type is set to Transient. 3. Select the desired page type (Object or Image). 4. Be aware that the begin to end time values as defined in the solution time settings will be used. If desired, edit the begin/end time values before you load the flipbook. 5. If desired, you can specify a time increment for the load. 6. Click Load. For example, using 0.5 would create pages representing time steps 0, 0.5, 1, 1.5, 2, 2.5, etc. The in-between steps are calculated by linear interpolation. Page 459 HOW TO ANIMATE TRANSIENT DATA The Load Flipbook Status dialog will open and show the progress of the load. You can cancel the load by clicking the Cancel button and retain all the pages loaded to that point. Once the load is complete, you can run the flipbook using VCR type controls: After a flipbook load, the next 3 steps will generally be the default already. 1. Make sure the Display is set to flipbook pages. 2. Click the run forward or backward button. The flipbook will begin to run. OR You can also step through the pages manually: 2. Click the forward/backward single step buttons (once for each page). You can also enter values in the Current Page field (and press return) to jump to a specific page. 3. To change the range of displayed pages, enter new values in the Begin Page and/or End Page fields. 4. To change the display speed, enter a new value in the Display Speed field (and press return) or simply slide the slider. A speed of 1.00 represents “full” hardware speed with no delays; a value of 0.5 is half of full speed. 5. To cycle the page display, click Cycle. Cycle will replay the pages in reverse order when the last page is reached. 6. To stop the animation, click the stop button. 7. When done, set the Display to “original model” instead of “flipbook pages”. Record Once a flipbook is loaded, it can be recorded. Open the image and animation recorder by clicking on the Record icon on the Tool ribbon. This is explained in How To Print/Save an Image Page 460 HOW TO ANIMATE TRANSIENT DATA Delete Any type of flipbook can be deleted: 1. Click Delete... in the Create/Edit Flipbook Animation dialog. 2. Confirm the deletion. All memory associated with the flipbook is freed. ADVANCED USAGE If you have created transient particle traces (pathlines) and set up a particle trace animation, you can also load a flipbook and show the particle trace animation synchronized with the flipbook. The trace animation will automatically play through the time range of the flipbook and stay in sync with the flipbook pages. See How To Create Particle Traces and How To Animate Particle Traces for more information. OTHER NOTES Since both object and image flipbooks build pages from the current set of parts based on their current, if you make a change (such as color a part by a different variable or create a new part), you must reload the flipbook. There are exceptions. With an object flipbook, you can make a part invisible while the flipbook is running. SEE ALSO How To Load Transient Data How To Print/Save an Image How To Create a Flipbook Animation User Manual: Flipbook Animation Page 461 HOW TO CREATE A FLIPBOOK ANIMATION Create a Flipbook Animation INTRODUCTION Various types of data can be animated through EnSight’s flipbook capability. During the flipbook load process, selected parts are automatically rebuilt based on some criteria (such as a delta for a clipping plane). For each step, a graphical “page” is created and stored in memory. When the flipbook is active, the pages are displayed in order as rapidly as the hardware allows (although you can slow it down). You can also step through pages manually. The graphical pages can be one of two types: object or image. An object flipbook saves each page as 3D geometry so you can continue to manipulate the model (e.g. rotate or zoom) during playback. However, for very large models and/or long sequences, the memory requirements can be substantial. In this case, you can create image flipbooks that save only the image pixels for each page. Although the size of each page is now fixed, you cannot change the viewing parameters without reloading the flipbook. There are four distinct types of flipbooks: Transient Pages are constructed by stepping from the current beginning to ending time range and rebuilding all time-dependent parts based on each time step in sequence. Mode Shapes Pages are constructed by applying a cosine-driven scaling factor to a displacement variable. Create Data Pages are constructed by applying a delta to either a clip part or an isosurface. Linear Load Pages are constructed by applying linear interpolation ranging from zero to the maximum (displacement) vector field value. This article covers only the “Create Data” type of flipbook. See How To Animate Transient Data for details on transient flipbooks. See How To Display Displacements for details on mode shape flipbooks. For more sophisticated animations, use EnSight’s keyframe animation capability. BASIC OPERATION For each page of the flipbook, a delta value will be applied to all active clip parts and isosurfaces. For clips, the delta represents a translation vector; for isosurfaces it is an increment to the isovalue. There are two ways to specify these delta values: either through interactive manipulation or via the applicable Feature Panel for the part. The former method is discussed below, the latter in the Other Notes section at the end. Prior to loading the flipbook, you should create all parts that you wish to animate (clips and/or isosurfaces) and manipulate the part so that it is in the desired location for the start of the flipbook. To load the flipbook: 1. Click the Flipbook Animation icon. Which will open the Flipbook Animation Feature Panel. Page 462 HOW TO CREATE A FLIPBOOK ANIMATION 2. Under the Load settings, Be sure the Load Type is set to Create data. 3. Select the desired page type (Object or Image). 4. Set the desired number of pages. The delta value will be added to the appropriate entities for each page 5. Click Start to begin recording interactive part manipulations. 6a. For clipping plane parts, return to the Create/edit Parts dialog for clips (double-click on the part in the Main Parts list). 6b. Toggle on Interactive Tool, move the mouse into the Graphics Window and interactively position the tool to the desired location for the end of the flipbook. 6a. For isosurface parts, return to the Create/edit Parts dialog for isosurfaces (double-click on the part in the Main Parts list). 6b. Change the Interactive Pulldown to Manual and adjust the slider until the isovalue is as desired for the end of the flipbook. 7. Return to the Create/edit Flipbook Animation dialog (i.e. perform step 1 again). 8. Click Stop to end recording interactive Iso/Clip. 9. Click Load. 10. Save playing animation to file (must be playing to save) Page 463 HOW TO CREATE A FLIPBOOK ANIMATION The Load Flipbook Status dialog will open and show the progress of the load. You can cancel the load by clicking the Cancel button and retain all the pages loaded to that point. Once the load is complete, you can run the flipbook using VCR type controls: After a flipbook load, the Player (Flipbook Animation) will open, and the next steps will generally be the default already. 1. Click the run forward or backward button. The flipbook will begin to run. OR You can also step through the pages manually: 2. Click the forward/backward single step buttons (once for each page). You can also enter values in the Current Page field (and press return) to jump to a specific page. 3. Choose Once, Cycle or Bounce for playback. 4. To change the range of displayed pages, enter new values in the Begin Page and/ or End Page fields (and press return) or move the slider range markers. 5. To change the display speed, enter a new value in the Display Speed field (and press return). A speed of 1.00 represents “full” hardware speed with no delays; a value of 0.5 is half of full speed. 6. To cycle the page display, click Cycle. Cycle will replay the pages in reverse order when the last page is reached. 7. To stop the animation, click the stop button. 8. When done, delete the “flipbook pages” and click on the Time tab to view the original data. Note that the EnSight client retains the memory allocated to the flipbook in case it is needed later. Record Once a flipbook is loaded, it can be recorded. The “Record current graphics window animation” icon will be on. Off On Click it to open the Save Animation dialog. This is explained in How To Print/Save an Image Page 464 HOW TO CREATE A FLIPBOOK ANIMATION Delete Any type of flipbook can be deleted: 1. Click Delete... in the Create/edit Flipbook Animation dialog. 2. Confirm the deletion. All memory associated with the flipbook is freed. OTHER NOTES Rather than specify the part delta values through interactive part manipulation as described above, you can set the values explicitly in Advanced mode in the Create/edit Parts dialog for the part. For clip parts: 1. Double click on the part in the Parts list (or right-click and choose Edit...) to open the Create/edit Parts dialog (Clips). 2. In the Animation Delta section, enter the desired values in the X, Y, and Z fields and press return. For isosurfaces: 1. Double click on the part in the Parts list (or right-click and choose Edit...) to open the Create/edit Parts dialog (Isosurfaces). 2. In the Animation Delta field, enter the desired isovalue delta value and press return. When a flipbook is subsequently loaded, active clips and/or isosurfaces will update based on these animation delta values. Since both object and image flipbooks build pages from the current set of parts based on their current attributes, if you make a change (such as color a part by a different variable or create a new part), you must reload the flipbook. There are exceptions. With an object flipbook, you can make a part invisible while the flipbook is running. SEE ALSO User Manual: Flipbook Animation Page 465 HOW TO CREATE A KEYFRAME ANIMATION Create a Keyframe Animation INTRODUCTION EnSight’s ability to handle large, transient datasets has led to its use in the production of many video animations of engineering and scientific data. EnSight uses a keyframe animation system. A keyframe is a set of viewing parameters that specify a particular view of the scene in the Graphics Window. The view may be notable because of what is visible, or because the view represents the transition point from one scene to another. Once a set of keyframes has been selected, EnSight can automatically generate frames to interpolate the viewing parameters between keyframes for a smooth animation. The changes to viewing parameters between keyframes are not limited to simple rotations, translations, or zoom operations. You can also use EnSight’s frames capability to move parts independently, e.g. to animate an exploded view of a complex assembly. You can also animate the global look-from and look-at points for “fly-by” style animations. While refining your animation, you can display it directly in the Graphics Window. When complete, you can specify the output resolution and set the recording device (e.g. to a disk file). Although the production of adequate animation is easy, good animation takes experience. A sequence that looks good on your high resolution workstation screen may look less than acceptable when transferred to analog DVD. An object rotating in ten degree increments may be an appropriate speed for your workstation graphics. At thirty frames per second, however, the rotation will complete in just over a second – too fast for normal viewing. See the Other Notes section for some additional hints and tips. BASIC OPERATION All keyframe animation functions are controlled through the Feature Panel. You can define the transformations between keyframes, or you can create standard animations To define your own keyframes: 1. Click the Keyframe icon Animation icon in the Feature Icon bar. 2. Set all viewing parameters to the desired location for keyframe 1. 3. Click “Create” to save the first keyframe. Note that the Keyframing toggle is automatically switched on when you begin saving keyframes. 4. Change the viewing parameters to the desired location for keyframe 2. 5. Click “Create” again to save keyframe 2. You can play your animation at any time to check your results. 6. Click the Play button on the Keyframe Animation Player to play the animation. 7. Continue to change viewing parameters and click Create keyframe until you have saved all desired keyframes. Important Note! If you toggle-off the Keyframing button, any keyframes currently defined will be deleted. If you wish to save a set of keyframes, click the Save... button. Page 466 HOW TO CREATE A KEYFRAME ANIMATION There are many ways to specify the desired transformations between keyframes. See the following articles for more information: How To Rotate, Zoom, Translate, Scale How To Create and Manipulate Frames How To Set LookFrom/LookAt How To Define and Change Viewports To Create Keyframes using Predefined Animations: 1. Click the Keyframe Animation icon in the Feature Icon bar. 2. Set all viewing parameters to the desired location for keyframe 1. 3. Turn down the Quick Predefined Animations to view the Keyframe Quick Animations settings. In this turndown area you will be able to create keyframes which define transformations which will (a) fly the viewer around your model, (b) rotate your model, or (c) create exploded views of your parts. Any one of these, or a combination may be used. 4. Set the number of frames which will be created 5. Acceleration at the first and last keyframes that will be created is on by default. If you do not want to accelerate/decelerate toggle these off. 6. Toggle Fly Around on if you wish to move the viewer (camera) in a circle. (a) You can choose Right (start the viewer moving to the right) or Left. (b) Specify the number of revolutions. 7. Toggle Rotate Objects if you wish to rotate the scene. You can rotate positively or negatively about all three axis. For each axis you set the number of revolutions. 8. Toggle Explode View if you want your parts to be translated in reference to an origin. You can specify the origin or set the origin to the transformation center. Direction sets the explode direction and can be one of: X,Y,Z - translate in the coordinate direction XYZ - translate in the dominant coordinate direction Radial - translate in the direction from the origin specified through the part centroid 9. Click “Create predefined animation” to create the keyframes which will transform according to the selections made. The part that is farthest from the origin specified will be transformed Distance units Page 467 HOW TO CREATE A KEYFRAME ANIMATION The following sections provide details on the animation control turndowns in the Keyframe Animation Feature Panel. Speed/Actions The Speed/Actions turn down exposes allowing you to set the number of sub-frames between each pair of consecutive keyframes as well as specify run such as acceleration and commands to execute: 1. Click on the “Speed and Actions” turndown to open the section. 2. Select the desired keyframe to edit: either enter the value or use the up/ down buttons. 3. Enter the desired number of sub-frames between the keyframe selected in step 1 and the next (the default is 20). 4. If desired, set the number of frames to hold for the keyframe (default is 1). 5. If desired, enter EnSight commands to execute when the selected keyframe is reached. The command(s) will be executed before the frame is displayed. 6. If you added or changed the commands to be executed at a keyframe, click Update Commands. Use Interactive IsoClip By turning this toggle on, any clip or isosurface interactively moved during the keyframe will animate. Animate Transparency Change By turning this toggle on, transparency changes to parts during the definition of the keyframes will be part of the animation. 7. If you want the transformation to accelerate out (or into) the keyframe, toggle Acceleration on. 8. Continue by selecting a new keyframe to edit and click Close when done. The number of sub-frames controls the speed with which objects transform between keyframes. More sub-frames yields slower motion. You can insert any valid EnSight command to be executed at a keyframe. If your command sequence is more than a few lines, it is best to save the sequence in a file and just enter the command play: filename. There is a special case of executing a command at a keyframe. If you insert the command shell: filename, The file filename (which is assumed to be a UNIX executable command) will be executed after each sub-frame and each surrounding keyframe. In addition, if you are saving animation frames to disk files, the name of the image file just written is passed to the executable as the first argument. This capability can be used to postprocess the image files, for example to resize and re-sample an image or copy it to a different location. If this capability is used, the shell: filename command must be the only command specified. Page 468 HOW TO CREATE A KEYFRAME ANIMATION Run From/To The Run From/To turndown allows you to specify the range of keyframes to play. 1. Click on the Run From/To turndown to open the section. 2. If you wish to limit the animation playback to certain keyframes set the Run From and To fields. By default they are set to cover all of the keyframes you have created. Transient If you have transient data you can specify how it will be used during the keyframe animation. 1. Click on the “Transient Data Settings” turndown to open the section. 2. Toggle Use Transient Data on if you want to use transient data during the animation. Transient data does NOT have to be on (and should not) to play back a flipbook animation during the keyframe animation. 3. Timelines allow you to use transient data during each defined timeline. If the timelines do not cover all of the keyframes you will have a portion of your animation with no transient data. By default a single timeline exists which covers all of the defined keyframes. To create more timelines click New 4. For each timeline you can specify the begin and ending time value (either step or simulation time See Solution Time dialog). 5. Time will be interpolated such that the Start Time occurs at the Start At Keyframe and the End Time will occur at the End At Keyframe unless the Specify Time Increment is toggled on. If the Specify Time Increment is on each frame during the timeline is incremented by the time indicated. If the Start Time or End Time is encountered before the Start At or End At Keyframes the transient data will either Loop (go back to the Start Time) or Swing (play in reverse). Page 469 HOW TO CREATE A KEYFRAME ANIMATION Recording your animation See How To Print/Save an Image for instructions on how to record the animation. Save and Restore A set of keyframes and related information can be saved to disk and later restored. To save keyframes: 1. Click Save... in the Feature Edit Dialog. 2. Enter the desired file name in the File Selection dialog and click Okay. To restore previously saved keyframes: 1. Click Restore... in the Feature Edit Dialog. 2. Enter the desired file name in the File Selection dialog and click Okay. OTHER NOTES As pointed out in the introduction to this article, high-quality animation takes time and experience. CEI has produced a great deal of animation over the years and has learned a variety of lessons. In the hope that EnSight users can avoid many of the pitfalls inherent in the process, many of these lessons and rules of thumb are presented here. EnSight’s keyframe animation methodology is borrowed from the animated film industry. In making animated films, the master animator defines how the scene will look at certain points in time (the keyframes) and then hands the work off to an “in-betweener”, with instructions on how many frames to add between each pair of keyframes. The inbetweener then draws the missing frames. EnSight’s approach is similar with the user as the master animator and EnSight as the in-betweener. Some of the strengths of this approach include: 1. When keyframing is on, EnSight is not only recording the viewing parameters when you click Create Keyframe, it also records the actions taken to get from the last keyframe to the current one. This approach permits certain operations to be performed without ambiguity (such as rotating by 180 degrees or more). 2. Each Viewport can be animated independently. 3. Flipbooks can be played during an animation. 4. Animated particle traces can be played during an animation. 5. Transient data is easily synchronized with the generated frames. When the animation is run, EnSight will automatically step through time and recalculate all time-dependent entities. 6. Output can go directly to disk files for later recording, manipulation, or conversion to other formats (e.g. MPEG or QuickTime). 7. Additional power and flexibility can be achieved since EnSight command language statements can be issued at keyframes. The keyframe capability was designed to enable engineers and scientists to produce quality animation. As such, it lacks most of the more elaborate controls available in commercial animation packages (which typically cost 2-3 times more than EnSight). Some limitations: 1. Only transformation parameters (global, frame and camera transforms) are saved through the keyframing process. Other parameters and part are not interpolated between keyframes. 2. Light sources are fixed in EnSight – they cannot move during the animation. 3. The shading and lighting model used by EnSight is fairly simplistic. Page 470 HOW TO CREATE A KEYFRAME ANIMATION Tips for Video Recording Animation Holds Whenever an animation is started or stopped use a “hold” to allow your viewers to establish the visual context of the scene. A hold of 3 seconds at the beginning and 2 seconds at the end usually works well. For complex imagery, longer holds may be required. Note that a hold can typically be performed at the recording level – it is not necessary to have EnSight compute multiple frames for a hold. Rate Control The speed at which events occur during an animation is one of the most difficult aspects to master. Viewers become confused and disoriented if motion is too fast; too slow and your viewer may lose interest. The frame rate for NTSC (the video format used in North America) is 30 frames per second. Although there is a great deal of variation (depending on graphics hardware speed and model size), your workstation will typically have a much slower frame rate. Therefore, what appears to be good speed on your workstation may be much too fast when recorded to video at 30 frames per second. Trial and error is one method to determine proper rates. Although you may end up doing some “line test” video recording to refine your rates, use the method described here to derive good starting values: 1. Define all the keyframes. 2. Set up the animation to play back at full screen. 3. Set up the animation to play only from the first to the second keyframe. 4. Set the number of sub-frames between keyframes 1 and 2 to be 300. 5. Select View > Bounding Box > Static Box. 6. Using a watch with a second hand, time how long it takes to play the animation. Call this time “T”. We know that it will take 10 seconds to play 300 frames on video. Compute the following: factor = T/10. For example, if you find T to be about 12 seconds, then factor is 1.2, which means that the rate you see on the screen is 1.2 times slower than what you will see on video. 7. Iteratively adjust the number of sub-frames between keyframe 1 and 2 (running the animation after each adjustment) until you like the rate you see on the screen. 8. Finally, adjust the number of sub-frames by the factor found in step 6. For example, if 150 sub-frames were required for a good rate of speed, then change the number of sub-frames to 150*factor to see the same rate on video. 9. Perform steps 3 through 8 for the next set of keyframes. Transient Data Animation is particular useful for presenting transient data. However, since both viewing parameters and time can change simultaneously, the potential for confusing viewers is very high. In general, you should never change both viewing parameters and time simultaneously. It is typically much better to use transformations in an opening scene to present the model to the viewer. The transformations should end at a vantage point suitable for viewing the transient phenomena. At that point, the time-dependent data can be displayed. If you must alter the scene during transient display, do so with great care to avoid disorienting viewers. Note that you can animate time-dependent information without transformations by merely creating two keyframes without performing any transformations between them. In many instances, there will not be enough time steps in the simulation to produce an animation of adequate duration. If the simulation does not involve changing geometries, EnSight can interpolate between time steps (linearly) to yield additional frames. However, keep in mind that your simulated phenomena is almost certainly not linear in nature. If you have EnSight generate more than a few interpolating frames between each actual time step, the resulting discontinuity at keyframes (from the piece-wise linear interpolation) is quite visible in the resulting video. Page 471 HOW TO CREATE A KEYFRAME ANIMATION Frame count The total number of frames that EnSight will produce during the animation is the sum of all sub-frames plus the number of keyframes. This is especially important to keep in mind when synchronizing transient data with animation frames. Animated Traces If you display animating particle traces during keyframe animation, you may have noticed that the trace animation always resets at the beginning of the keyframe animation. However, in most cases it is desirable to have the trace animation fully in progress when the animation begins. This can be accomplished by creating an additional keyframe at the beginning of the animation. Set the number of sub-frames between keyframes 1 and 2 to a value high enough to yield the desired tracer saturation. When you run the animation, set the Run From field to 2 so that the animation begins generating frames with keyframe 2. At that point, the tracer animation process will have executed once for each sub-frame between keyframes 1 and 2. Color The color gamut (the range of colors a device is capable of displaying) of video (especially NTSC) is significantly less than that of your workstation monitor. The result is that certain colors that look fine on your workstation cannot be reproduced on video. Fully saturated colors (especially red and blue which “bleed” across the screen) are particularly troublesome. However, it is quite easy to de-saturate your images prior to recording. There are actually three ways to do this: 1. Modify all of the colors in use to de-saturate them. For example, if a color is pure red (1., 0., 0.), change it to be a more pastel red (.85, .1, .1). 2. Modify the saturation factor in the Image Format Options. A factor of 0.85 is usually good. 3. Create your animation, then de-saturate the images using an image tool such as the one available from the San Diego Supercomputing Center (it is free). This will only work, of course, if you are saving animation images to disk files. Dark backgrounds work much better than light backgrounds. Black is often the best choice. Lines Moving single-width lines have a tendency to “crawl” on video. Use a minimum line width of 2. Anti-aliasing Without correction, computer-generated imagery exhibits aliasing artifacts that typically show up as jagged edges. For our purposes it is sufficient to say that aliasing results from sampling at a resolution too low to capture the “signal” represented by the underlying geometry. We can only sample our geometry at the available pixels. Since the effective number of pixels in the NTSC video signal is only one quarter the number of your workstation screen, what looks fine on your workstation may be less than acceptable on video. EnSight provides direct anti-aliasing support through its multipass capability. There are also some other ways to mitigate this problem. If you are recording images to disk files, record them at full screen resolution and then use an image re-scaling tool (such as EnVe) to down-sample the images to the desired video resolution. This down-sampling averages several pixels to yield one output pixel, effectively preserving much of the resolution contained in the original full screen image. Annotation The smallest annotation text that can be clearly read on video has a font size of 40. For title sequences, use a size of about 65. If you display parts colored by variables, you should always include the applicable color legend so viewers understand what the coloration represents. For color legends, it is often sufficient to display just one value at the top (the maximum) and one at the bottom (the minimum) in addition to the name of the variable. In fact, sometimes just using “High” and “Low” are sufficient if only the relative magnitudes of the variable are important. Page 472 HOW TO CREATE A KEYFRAME ANIMATION Screen Space The region of a video display that is “safe” for viewing is typically smaller than your animation display window. You should plan your scenes such that objects of interest (especially annotation entities) do not come “too close” to the edge. If you keep these objects within the range (in EnSight viewport coordinates) .06 to .94 for X (width) and .05 to .95 for Y (height) you should be safe. Introductory Sequence Your animation should begin with some title slides explaining the problem domain to your viewers. Try not to put too many words on any one slide and display each one for at least four seconds. Next, before displaying your results, provide a sequence that introduces viewers to your model. This sequence should be long enough and complete enough to orient the average target viewer to your problem. It is difficult to overestimate the need for this sequence. Without it, viewers are often confused and disoriented for the entire animation. Credits You should always include proper credits on any animation you produce. Even animations initially intended only for internal consumption often end up shown to broader audiences. SEE ALSO User Manual: Keyframe Animation Page 473 HOW TO ANIMATE PARTICLE TRACES Animate Particle Traces INTRODUCTION EnSight’s powerful particle tracing facility can trace particles (either steady-state or transient) through flow fields. Animating the resulting traces often promotes intuitive comprehension of the characteristics of the underlying flow field. Traces are animated by displaying one or more tracers on all traces of the trace part. A tracer moves along the path of a trace with length proportional to the local velocity. EnSight provides complete control over all aspects of the tracers including length, speed, and release interval for multiple pulses. This article covers particle trace animation and assumes that you have already created one or more particle trace parts. See How To Create Particle Traces for more information. BASIC OPERATION To enable particle trace animation and adjust the animation parameters: 1. Double-click the desired particle trace part in the Main Parts list. Which will bring up the Parts Feature Panel. 2. Toggle on Animate. 3. Click Animation settings... to open the Trace Animation Settings dialog. Page 474 HOW TO ANIMATE PARTICLE TRACES Make changes as desired (remember to press return for changes to text fields). Set the color of the tracers to either Trace Color (i.e. the same color as the parent trace part) or Constant (and set the desired color using the Mix... button or the RGB fields. Set the line width of the tracers. If transient traces (pathlines), set the Start Time and/or Max Time. Set the tracers length factor (see below). Set the tracers speed factor (see below). Set tracers head representation. Either None or Spheres. If Spheres, the radius can be Constant (set by the Scale value) or sized by a variable and scaled by the Scale value. Sphere detail set via Detail field. Click to load good default values to the Tracer Time, Tracer Delta, and Pulse Intervals fields. Toggle on Multiple pulses and set the interval between pulses (see below). Tracer Parameter Descriptions: Tracer Time (Length) The Tracer Time (Length) parameter acts as a scaling factor for all tracer lengths (the higher the value the longer the tracer). Tracer length varies as the local velocity changes along the trace. For example, the tracer will lengthen as the leading edge of the tracer moves into a higher velocity region. Tracer Delta (Speed) The Tracer Delta (Speed) parameter acts as a scaling factor for the tracer speed (the higher the value the faster the tracer). The speed of the leading and trailing tracer edges varies as the local velocity changes along the trace. Pulse Interval The interval between successive tracer emissions when in multiple pulse mode (the higher the value the longer the interval between pulses). Note that the distance between tracers will increase when the local velocity increases. Record Once animated traces are computed, they can be recorded. The “Record current graphics window animation” icon will be on. Off On Click it to open the Save Animation dialog. This is explained in How To Print/Save an Image Page 475 HOW TO ANIMATE PARTICLE TRACES ADVANCED USAGE If you have time-dependent data and have calculated transient particle traces (pathlines), you can enable trace animation, load a transient flipbook, and view the animating pathlines simultaneously with the dynamic flipbook. See How To Create Particle Traces and How To Animate Transient Data for more information. OTHER NOTES The parameters in the Trace Animation Settings dialog are not specific to the currently selected particle trace part – the settings apply to all currently animating particle trace parts. SEE ALSO User Manual: Particle Trace Animation Page 476 HOW TO CREATE TEXT ANNOTATION Annotate Create Text Annotation INTRODUCTION EnSight has comprehensive features for text annotation. Not only can you display and position user-specified text, you can also display text contained in the description lines of some data formats as well as dynamic text that changes over time. BASIC OPERATION 1. Click Text icon from the Feature Icon Bar to open the Annotation Feature Panel. 2. Click the Text tab 3. Click the Create button, which will create a “New Text” annotation. 4. Click on the text string and modify it. If you hit the “Enter” keyboard key you will insert a line return into the annotation. While entering text, you can easily change the script to super, sub, or normal by clicking the Superscript, Subscript, or Normal buttons found in the Super/Sub tab. These buttons will insert , , or into the string. Other Special Coded Items, including changing the font, which can be inserted into a string (by selecting and hitting Insert special item) are discussed below. Page 477 HOW TO CREATE TEXT ANNOTATION To manipulate text string, first select the string(s) of interest in the list then: To change visibility: Toggle Visible off or on. To change color: Select the desired color from the matrix, enter RGB values in the fields, or click More... to open the Color Selector dialog. To change justification: Select the desired Left, Right, or Center justification from the Justify pulldown. To change text size: Either resize the text interactively by grabbing the touchn-go resize handle and dragging, or by precisely specifying the font size in the Size field of the dialog (or using the slider to change the font size). Important Note! The text size specified is relative to the size of the Graphics Window. If you increase the size of the Graphics Window, all text will also rescale to maintain the same relative size. To change text rotation: The orientation of text about the text justification point may be specified by specifying the rotation angle (in degrees) in the Rotation field (or using the slider to change rotation angle). You can also specify a rotation angle from the Quick Action icon bar. To add shadow text effect: Enter offset and intensity or use sliders. You can also use the Quick Action Icon Bar. To change location of the justification point in the graphics window: Either interactively drag the text to the desired location using the touch-and-go handles, or precisely specify the location in the Origin XY fields. You can also specify the viewport that the text is to be positioned relative to. If 0, the position is relative to the graphics window. Page 478 HOW TO CREATE TEXT ANNOTATION Special Coded Items EnSight can automatically build text strings based on information from various sources. To use one of these special strings, select the desired item from the Special String list, select any required options, and click Insert Special Item. A code will be inserted into the Text field. The following special strings are available. If multiple cases are loaded, any reference to parts or variables applies to the currently selected case (select Case > casename to changes cases) Fonts Brings up the TrueType font selection dialog, allowing a new font to be selected Information on manipulating fonts, including additional text font formatting codes that can be used, are described in How To Manipulate Fonts Symbols Brings up a symbol dialog. Click on any symbol to insert it at the current character insertion point of the string. The symbol will be inserted in to the string via a xxx, where xxx is the ASCII number for the selected symbol. Special values Values from the operating system, the geometry and the variables. Page 479 HOW TO CREATE TEXT ANNOTATION Constant Variable The value of a constant variable (such as Time or Length). Select the variable from the Constant Variables list and select the desired numeric display format from the Number Format list. If the constant variable changes, the corresponding text will automatically update. This is very useful for displaying the current solution time during a transient animation. Part Value The “value” of a part. Currently works for isosurface and some (ijk, xyz, rtz, plane aligned with axis, or attached to spline) clip parts where the value is the corresponding isovalue or clip location or value. Parts that have a value will appear in the part selection list. Select the part in the Part(s) list and select the desired numeric display format from the Number Format list. Variable visible min The minimum value of the variable on the visible elements in the visible geometry on the client at the current time. This is, therefore, different from the min function in the calculator, in the query/probe minimum, or the query/plot minimum. The value of this annotation can change when visible parts are made invisible, when the element representation of the part is changed, and when new parts are made visible in the viewport. Variable visible max The same as the min value only using the maximum values of the variable existing on the visible elements of the part(s) in the graphics window. Variable visible ranges in viewport Display the min/max variable information for all parts visible (taking into account element blanking) in a specified viewport. If parts are colored by multiple variables then multiple annotation strings will be created - one for each variable in use in the viewport. If you change the color by variable(s) the text string will update to reflect the new color change. If you change the part element representation, the text string will update to reflect the visible elements. Part Description The description of the part as displayed in the Main Parts list. (Note that you can change this text by editing the Desc field in the applicable Feature Panel for the part.) Units This will display the variable units for the selected variable. If the variable selection list is empty then this dataset does not have units. Date Current date. Example: January 1, 2012 Time Current time. Example: 14:19:12 Geometry Header The first or second text line of the geometry file of the current case. Select Line 1 or Line 2. Measured Header The first line of the measured (discrete) data file of the current case. Variable Header The first line (typically the description line) from a variable file. Select the desired variable from the variable selection list. Version The name and current version number. Example: EnSight Version 10.2. Super/Sub Select the text that you want to be superscripted or subscripted, click on the Super/Sub tab and toggle the appropriate value. EnSight command language variables can also be inserted into annotation strings via a special item coding option. This coding item does not have an associated, but can be typed directly into the annotation text edit field. The coding has the form: <\\ensv “format“ var_name\\> The format string is the “C” printf specification for the item formatting. var_name is the actual name of the variable value to be inserted. If the following lines of EnSight command language were executed: $globalstring example Page 480 HOW TO CREATE TEXT ANNOTATION $example = Hello from EnSight The annotation string: The value is: <\\ensv “%s“ example\\> would result in the annotation containing the string “The value is: Hello from EnSight”. If the variable is updated, the following command language will update the annotation: text: update Another example uses the built-in EnSight frames per second counter which stores the current rendering rate in frames per second in the ensight variable “ensight_fps”. This annotation string, containing embedded ensight variable formatting, will display the current rendering rate dynamically in EnSight: Frames per second: <\\ensv “%.2f“ ensight_fps\\> It is also possible to embed the value of an interactive query into an annotation string. The first value of the interactive query results is always used. The format for this is the keyword "iqval", followed by a format statement and a interactive query id number (zero based). For example: Temperature = <\\iqval "%.2f" 0\\> will display an annotation string with the value of interactive query 0 displayed to two places of precision after the equal sign in the annotation. Delete Annotations Existing annotations can be deleted by selecting them in the Annotations list and performing a right click to “Delete”. SEE ALSO How To Manipulate Fonts User Manual: Text Annotation Page 481 HOW TO CREATE LINES Create Lines INTRODUCTION EnSight can display annotation lines that can either be specified in 2D screen space or in 3D world space. BASIC OPERATION 1. Click the Annotation feature icon. 2. Click Line icon. 3. Create a new line in the Graphics Window by clicking the Create button. To manipulate a line’s, first select the line(s) of interest in the Annotation list panel, then: To change visibility: Toggle Visible on or off. Note that if the Limited redraw toggle is on invisible lines are drawn in a subdued color. To change color: Select the desired color from the matrix, enter RGB values in the fields, or click More... to open the Color Selector dialog To change location: Set the ‘Origin by’ to Screen coordinates or 3D coordinates. You can drag the endpoints specified by screen coordinates in the graphics window. You can also specify the X, Y (and Z if 3D coordinates) by typing into the fields. To change line width: Click the Width Pulldown and select the desired line width. To label the line: Specify Text Annotation from the pulldown to align it with line annotation. To change Arrowhead status: Click the Arrows Pulldown and select the desired state. To delete a line, Select the item in the list and right click to Delete. SEE ALSO User Manual: Line Annotation Page 482 HOW TO CREATE 2D SHAPES Create 2D Shapes INTRODUCTION EnSight can display 2D shapes (arrow, rectangle, and circle in present release). These 2D shapes overlay the Graphics window and are not associated with any viewport. BASIC OPERATION 1. Click the Annotation feature icon. 2. Click 2D Shape icon in the Create/edit Annotation dialog. 3. Create a new shape in the Graphics Window by setting the Shape type and then clicking the Create button. To manipulate a shape’s, first select the shape(s) of interest in the list panel (or pick them in the graphics window), then: To change visibility: Toggle Visible on or off. Note that if you turn on Limited redraw invisible shapes are drawn in a subdued color. To change color: Select the desired color from the matrix, enter RGB values in the fields, or click More... to open the Color Selector dialog. To change location: Either select the shape and drag it to the desired location, or type appropriate coordinates into the Origin X/Y fields. The origin of a 2D arrow is the point of the arrow. The origin of a rectangle or circle is the center of the object. To change size: Either select the shape by the resize handle and drag it to the desired size, or type appropriate Width/Length (or Height or Diameter) values into the fields. Units are 0 to 1. To Apply textures to the shape: These are the same textures used by the parts and the ‘Edit textures...’ button will open the part texture dialog, where textures or animations can be loaded and other set. Note that 2D shape textures always replace the current shape color and modes like “modulate” and “decal” as well as custom projections and repeat behavior are not supported. Other: To Rotate the shape: According to the selected shape, other may exist, such as rotation, arrowhead, etc. To delete a shape, Right click the shape in the Annotations object panel and Delete. To change fill mode: You can draw the shape in filled mode or in outline mode. Page 483 HOW TO CREATE 2D SHAPES SEE ALSO User Manual: Shape Annotation Page 484 HOW TO CREATE 3D ARROWS Create 3D Arrows INTRODUCTION EnSight can display 3D arrows. The 3D arrow is defined in model space and transforms with the scene. The 3D arrow is visible in the viewport(s) specified. BASIC OPERATION 1. Click Annotation icon. 2. Click 3D Annotation Arrow tab in the Create/edit Annotation dialog. 3. Create a new 3D annotation arrow in the Graphics Window (and in the Arrows Annotations list) by clicking the Create button. 4. Select this Arrow in the list, then Pick the arrow tip location option in the Pick pulldown. 5. Position the mouse and press the ‘p’ key. Page 485 HOW TO CREATE 3D ARROWS To manipulate 3D annotation, first select the item(s) of interest in the list panel (or pick them in the graphics window), then: To change viewport visibility: Click on the viewport region to toggle the visibility in the viewport. Green means visibility is on. Under Lighting Tab, change surface characteristics: Shininess is surface smoothness, intensity is how much white light in reflected color, and diffusivity is amount of ambient light reflected. Under Size Tab, change size: Arrow size is in global coordinates. Arrow radius, tip length and tip radius are all in percent of arrow size. Note that scaling of the arrows can also be controlled below and above given value ranges. Page 486 HOW TO CREATE 3D ARROWS Under the Location Tab, change location: The origin can be set by interactive query probe locations, xyz coordinate, or external force or moment vector glyphs. For example, for xyz location - either type appropriate coordinates in the X, Y, and Z fields or enter a node ID or an element ID. Offset value moves the arrow backwards. and orientation: Buttons: The X, Y, Z orient the arrow parallel to the axis, Flip reverses 180 degrees, and Normal is normal to a surface (active only if a surface). Sliders: Also you can rotate the normal about the X, Y, or Z. it here. For the other “Origin by” options appropriate are presented. Under the Label Tab, change Label characteristics: Type in the arrow label, size it, and color it here. If the 3D arrow Location was defined as the location for an interactive query you can append the interactive query value. The arrow label can also be defined as an existing text annotation id. Specify the ID here and set the text size and color. SEE ALSO User Manual: 3D Arrow Annotation Page 487 HOW TO CREATE DIALS Create Dials INTRODUCTION EnSight can display A 2D dial (such as a clock to measure time) tied to a constant variable. These 2D dials overlay the Graphics window and are not associated with any viewport. BASIC OPERATION 1. Click the Annotations icon. 2. Click the Dial icon in the Create/edit Annotation dialog. 3. Create a new dial in the Graphics Window by selecting a variable in the Use constant variable list and then clicking the Create button. To manipulate dial, first select the gauge(s) of interest in the list, then: To change visibility: Toggle Visible on or off. To change whether border is drawn: Toggle Border on or off. To change the number of tick marks: Enter the number of tick marks. To change the size of the dial: Enter a value for the dial radius or use the slider. Values are 0 to 1. To change location: Either select the dial and drag it to the desired location, or type appropriate coordinates into the Origin X/Y fields. The origin of a dial is the center. To delete a dial, Right click the dial in the Annotations list and select “Delete” from the pulldown. Example: The Big hand, Little Hand, Value and Background area is explained on the next page. Page 488 HOW TO CREATE DIALS for the Big hand The dial "big hand" points straight up at the minimum value and has a range specified. If the variable being tracked exceeds the range the modulus of the variable and the range is shown. To change any of the Big hand click the "Big hand" tab. To change the minimum value: Enter the minimum value in the field. To change the range: Enter the range in the field. To change color for the big hand: Select the desired color from the matrix, enter RGB values in the fields, or click More... to open the Color Selector dialog. for the Little hand The dial "little hand" may be visible or not. If visible it is simply the count of how many rotations the big hand has made. A value of 0 is straight up and can not be changed. To change any of the Little hand click on the "Little hand" tab. To change the little hand visibility: Click on the Display toggle. To modify the Little hand range: Enter a new range value. To change color for the little hand: See instructions under Big hand. for Value The dial may display a value on the dial representing the variable value or the number of rotations the little hand has made. To change any of the value display on the dial click on the "Value" tab. To change the value visibility: Click on the Display toggle. To change the size of the font: Enter a font size or slide the slider. To change the display type: Set Show as to Revolutions if you wish the value to indicate the number of revolutions that the Big hand has made or set to Value if you want to display the variable value. If you set the Show as to Value you can also set the format being used by modifying the Format type and the number of Decimal places. To change color for the value display: See instructions under Big hand. Page 489 HOW TO CREATE DIALS for the Background Controls the shading and color of the dial. To remove the dial background: Click on the Display toggle. When off no dial background will be displayed (the dial will be in "wireframe"). To change color for the background: See instructions under Big hand. QUICK CREATION Right click on the Annotation list under the Annotation Tab and choose Create Dial. This will pop up a dialog to select a constant. If the constant has ‘angle in it then the dial will be scaled from 0 to 360 (which is useful, for example, for showing crank angle as seen below). Otherwise the min, max and current timestep will be loaded to determine the scaling for the dial. . SEE ALSO User Manual: Dial Annotation Page 490 HOW TO CREATE GAUGES Create Gauges INTRODUCTION EnSight can display a 2D gauge tied to a constant variable. These 2D gauges overlay the Graphics window and are not associated with any viewport. BASIC OPERATION 1. Click the Annotations icon. 2. Click the Gauge icon in the Create/ edit Annotation dialog. 3. Create a new gauge in the Graphics Window by selecting a variable in the Use constant variable list and then clicking the Create button. To manipulate gauge, first select the gauge(s) of interest in the list, then: To change visibility: To change whether border is drawn: Toggle Border on or off. To change the variable range: Adjust the min and max values. If the variable value being tracked is greater than or equal to the maximum value, the gauge will be “full”. Similarly, if the variable value is less than or equal to the minimum value, the gauge will be “empty”. To change the orientation: Set the orientation to Vertical or Horizontal. To change the width/height: Enter a new width/height value or use the sliders. Values are 0 to 1. To change location: Either select the gauge and drag it to the desired location, or type appropriate coordinates into the Origin X/Y fields. The origin of a gauge is the lower left corner. To delete a gauge, right click on it in the graphics window and select Delete. Example: The Gauge level, Value and Background area is explained on the next page. Page 491 HOW TO CREATE GAUGES for the Gauge level You can modify the gauge foreground color (the color tracking the variable value) by: Click on the Gauge level tab/button. Select the desired color from the matrix, enter RGB values in the fields, or click More... to open the Color Selector dialog. for Value A label may be placed on the gauge to indicate the current value of the tracked variable. To change any of the value display on the gauge click on the "Value" tab. To change the value label visibility: Click on the Display toggle. To change the size and location: Set the font size and the location for the label. To change the format: You can set the format to floating or exponential format. For both formats you can specify the number of decimal places to display. To change color for the value label: See instructions under Gauge level. for the Background Controls the shading and color of the gauge. To remove the gauge background: Click on the Display toggle. When off no gauge background will be displayed (the gauge will be in "wireframe"). To change color for the background: See instructions under Gauge level. Page 492 HOW TO CREATE GAUGES QUICK GAUGE Right click on the Gauges folder in the Annotations tab, and choose Create>Gauge. A dialog will pop up to select a constant to use for the dial. Select a constant and the value of the constant at the current, the min and the max timesteps will be used to scale the newly created gauge. SEE ALSO User Manual: Gauge Annotation Page 493 HOW TO LOAD CUSTOM LOGOS Load Custom Logos INTRODUCTION EnSight can display bit mapped graphics loaded from disk files. A bitmap can be any image, however, the most common use is to include a logo or other signature graphic to identify the source of images or animations. Bitmaps are drawn over all geometric objects in the Graphics Window (at least where the bitmap is opaque), but under all other annotation entities. BASIC OPERATION To load a logo: 1. Select the Annotation Feature icon. 2. Click the Logo icon at the top of the Create/Edit Annotations dialog. 3. Click the Create button and select the supported image format file using the File selection dialog which comes up, and click Open. To manipulate logo, first select the logo(s) of interest in the list (or in the graphics window), then: To change visibility: Toggle Visible off or on. Note that if “Limited redraw” is turned on, the logo will not be completely invisible but will be displayed in a subdued color. To change location in the graphics window: Either position the logo interactively by selecting the desired logo in the Graphics Window and dragging it to the desired location, or specify the precise coordinates in the X and Y fields. To change size: Type the desired scaling factors into the “By scale” X & Y fields and pressing return rescales the logo to remain at a constant size no matter the size of the graphics window. Or selecting “By normalized” and changing the Width value between 0.0 and 1.0 will automatically rescale the logo proportional to the size and aspect ratio of the graphics window. Note that the size of a logo cannot be adjusted interactively. SEE ALSO User Manual: Logo Annotation Page 494 HOW TO CREATE COLOR LEGENDS Create Color Legends INTRODUCTION Every currently active variable has an associated color legend that can be displayed in the Graphics Window. Color legends provide essential information about images that use parts colored by variable values (color fringes). Legends are particularly important if the image is to be viewed by others. Legends are drawn as a vertical or horizontal color bar with associated variable values. The size and position of the color legend can be changed. This article discusses changing the appearance of color legends by modifying Annotation. To edit the color palette itself (change colors or change the mapping from variable values to colors) see How To Edit Color Palettes. BASIC OPERATION To display a color legend: 1. Click on the Annotation tab in the object list area. 2. Turn down the Legends group so you can see the legends that are available. 3. Click the variable legend(s) you wish to show or hide. The list contains legends for scalar variables and for magnitude and components of vector variables. 4. Right click to Hide or Show the legend - OR 4. Click on the visibility icon in the Legends Quick Action Icon Bar. If you wish to turn all of the legends off you can click on the Legends group (which selects all legends) then right click to hide. Page 495 HOW TO CREATE COLOR LEGENDS Resize or Reposition Color Legends in Graphics Window Color legends can be selected in the graphics window and then scaled or moved: 1. Move the mouse on top of the legend you wish to move or scale. The touchn-go handles appear . 2. Click and drag the center point to move the legend. 3. Click and drag the resize handle (upper right) to modify the width and height of the legend. The other two resize handles will modify the min and max values attached to the palette. Manipulating Other Legend 1. Double click on the legend you wish to modify or select it and right click to Edit. This will bring up the Feature Panel. 2. Click Legend icon tab if not already active, then: To change visibility: Toggle Visible on or off. To change color of text and colorbar outline: Select the desired color from the matrix, enter RGB values in the fields, or click More... to open the Color Selector dialog. To change title position: Click the Title Pulldown and select either Above (the default), Below, or None. To change legend orientation: Click the desired Layout (Vertical or Horizontal). To change text position: Click the Values Pulldown and select either Left/Bottom (the default), Right/Top, or None. To change legend type: Click the Type Pulldown and select either Continuous (the default) or Discrete. To change text size: Enter the desired text size or slide the slider. To change Value label format: Either select a pre-defined format from the Value format List or enter a new format string in the Text Format field. To change location: Enter values for X & Y (lower left corner) and width and height. Page 496 HOW TO CREATE COLOR LEGENDS SEE ALSO How To Edit Color Palettes User Manual: Legend Annotation Page 497 HOW TO MANIPULATE FONTS Manipulate Fonts INTRODUCTION EnSight draws all of its text in the graphics window using TrueType fonts. It is capable of reading and drawing most TrueType fonts and font collections. Under Windows, it is also capable of rendering internationalized multi-byte text in annotations, provided an appropriate font containing the necessary glyphs is selected. To ensure portability between platforms, EnSight includes a collection of cross-platform fonts embedded into EnSight. These include the typefaces: Arial, Courier New, Symbol, and Times New Roman. If a user restricts font usage to these font families, resulting .els and other files will be portable. If other font families are used, EnSight may substitute one of these (or other) fonts if it cannot find a match on the target system. EnSight will also read the installed system fonts on Windows and Power PC-based Macs. The environmental variable CEI_FONTPATH may be set to a list of ':' (';' on Windows) separated directory names in which EnSight should also look for .ttf and .ttc files. This allows the user to use their own fonts in EnSight on any platform. Fonts are always specified in EnSight as a family name and an optional style with a ':' separator. For example, 'Arial:BoldItalic' specifies the Arial family with the styles Bold and Italic applied. Style names of 'Roman', 'Italic', 'Bold' and 'Oblique' (and combinations) are all recognized by EnSight and are mapped against the internal flags in the TrueType files themselves. The default fonts, styles and sizes used by EnSight can also be set through a collection of environmental variables: ENSIGHT_FONT_DEFAULT_SYMBOL ENSIGHT_FONT_DEFAULT_OUTLINE ENSIGHT_FONT_DEFAULT_ANNOT ENSIGHT_FONT_DEFAULT_SYMBOL_STYLE ENSIGHT_FONT_DEFAULT_OUTLINE_STYLE ENSIGHT_FONT_DEFAULT_ANNOT_STYLE ENSIGHT_FONT_DEFAULT_OUTLINE_SCALE family to be used instead of the symbol font - default = “symbol” family to be used for ID/axis labeling - default = “Arial” family to be used for annotations - default = “Times New Roman” style to be used with the symbol font style to be used with the outline font style to be used with the annotation font specifies the relative scale for the outline font. The value 100.0 is the default 200.0 is 2x larger, 50.0 is ½ size The ENSIGHT_FONT_DEFAULT_*_STYLE environmental variables use a numbering scheme for the styles. The following values may be added together to form the style: BOLD 1 ITALIC 2 OBLIQUE 4 ROMAN 8 For example, if the user wanted annotations to default to Arial:BoldItalic, the following environmental variables should be set (Windows syntax): set ENSIGHT_FONT_DEFAULT_ANNOT=Arial set ENSIGHT_FONT_DEFAULT_ANNOT_STYLE=3 This selects Arial and BOLD+ITALIC=3. The default font is not recorded in scenario files. Thus, if a scenario file is generated with these defaults, for the EnLiten user to see the exact same annotations, they would need to set the same environmental variables and have the same fonts installed on their system. Font changes made with the formatting codes (see below) are embedded into the scenario files and do not require the environmental variable changes for proper display (but do require the same fonts be installed). Note: under Windows, EnSight uses Times New Roman as the default font for annotations. This font does not contain a large selection of multi-lingual characters. For users running internationalized versions of Windows, we suggest that they set ENSIGHT_FONT_DEFAULT_ANNOT to the name of the typeface that best matches their locale. This allows for natural internationalized text input. Page 498 HOW TO MANIPULATE FONTS BASIC OPERATION Font selection dialog In nearly every location where EnSight allows the user to enter a text string to be used for display (e.g. text annotations, plot titles, axis titles, etc), it is possible to change the font. It is also possible to change the font repeatedly in a string. This is done by inserting a special code into the string that contains the font name (See Text formatting codes for details). In several locations in EnSight, this operation is simplified via the Value Format Chooser dialog (or something similar) which lists all the available font family/style combinations and allows the user to change fonts in the text field currently being edited The current font (possibly the default) is selected in the list when the dialog is opened. The user may change this font to any other by selecting from this list and clicking OK. To illustrate the use of font capabilities, Text Annotation will be used: Double click, or right click and select Edit... to open the Create/edit Annotation (Text) dialog. The text can be modified in the field. Page 499 HOW TO MANIPULATE FONTS The text to be edited is typed into the scrolling text field. Note that pressing 'enter' inserts a new line into the annotation. The results of the edit are dynamically redrawn in the graphics window as you make changes. The Fonts and their weights can be inserted by selecting them under the Fonts tab. Special EnSight values can be inserted under the Special values tab. Under the Super/Sub tab, the Normal, Subscript and Superscript radio buttons allow the user to mark sections of the text to be in super or subscript form by inserting the special codes and into the text stream. Symbols can be selected under the Symbols tab. Any of the codes (shown in the Font Formatting Codes on the next page) can be typed in manually as well, if desired. Page 500 HOW TO MANIPULATE FONTS Font formatting codes The TrueType rendering system supports a number of special embedded codes. These can generally be placed in most any string displayed in the EnSight graphics window (e.g. plot titles, axis titles, etc). When the text string is drawn, these special codes are parsed out of the string and they affect any text to the right of the code. In general, the effects are additive and to turn an effect off, insert another code that sets the feature back to its default value. The codes are: XXX The text is drawn in "normal" mode. The text is drawn in superscript mode. The text is drawn in subscript mode. Change the current font family and/or style. To change just the font family, use . To change the style only, use . The special case of resets the text family and style to the default. Change the current scaling and/or vertical line offset. To change only the relative fontsize, use , where 1.0 is the default size of the text. To change only the vertical offset of the next text, use . For example, simulates superscript. The special case of resets the scale and vertical offset to 1.0 and 0.0 respectively. Store the current text position into slot X (x is an integer from 1 to 9). Recall the current text position from slot X (x is an integer from 1 to 9). The store/recall mechanism in conjunction with allows for accurate repositioning of text. For example, it allows overstrike of text and for the generation of simultaneous super and subscripts as well as formatted fractions. Note that slot 0 is reserved for the first character in the current line of text. Insert a single glyph from the "Symbol" font at this position. Note that 3 decimal digits must follow the text. An arbitrary glyph from a font using its Unicode number. The number must be specified as four hexadecimal digits. For example, will produce the copyright symbol (©) if it is available in the current font. Set the color of the subsequent text. The user may supply up to 4 floating point values in the range [0.0,1.0] for the Red, Green, Blue and Alpha (opacity) of the text. The alpha value defaults to 1.0, while other values default to the value to their left. Note: changes just the opacity of the text. Explicitly move to the next line. This is the same as pressing 'enter' in the textfield. Note that text shown in the Annotation dialog list for text annotations is displayed with in place of all new lines. Page 501 HOW TO MANIPULATE FONTS A simple example The following is an example of a text annotation that utilizes multiple fonts, multiple lines of text, symbols and the store/recall feature. The string entered into the View Text Create/Edit Dialog to create this annotation is: This is dynamically updated, multi-line text... A symbol:120 Stored location____________ The first few words are in normal text, followed by a font change and a new line. Midway through the second line, the font changes again and at the end of that line, it changes back to the default font and style. The third line ends with a glyph from the symbol font. The last line starts by storing the location of the 'S' character in slot '1'. It then draws 'Stored location' before the command recalls current output to the 'S' location. Finally, a row of underscores are drawn that overstrike the words "Stored location". A more complex example The following text annotation example illustrates the use of text colors and some scaling and offset options. The string entered into the View Text Create/Edit Dialog to create this annotation is shown below (note that this is actually three lines of text, the first is a single, very long line): A091 morecomplex093 example A transparent example This example begins by drawing an 'A', then scaling up the text while dropping it a bit below the line before drawing a left brace '['. It then stores off that location and sets up drawing at the original size, but above the baseline. The color is changed to red and the word 'more' is drawn. The stored location is recalled and a similar operation is done for the word 'complex' below the baseline. The scale is set to the same as the first brace, the color is reset to white and the right brace ']' is drawn. To end the line, the scale and offset are reset and 'example' is drawn in blue. The second line is a blank line. The final line is a simple example of how to make a piece of text partially transparent. Note that the red object behind the text can been seen through the text. SEE ALSO How To Create Text Annotation User Manual: Annotations List Panel Page 502 HOW TO CUSTOMIZE ICON BARS AND PANELS Configure EnSight Customize Icon Bars and Panels INTRODUCTION EnSight uses several sets of icons to group functionality. The Feature Icon bar can be customized in terms of which features are available and what order they will be presented. All of the icon bars can be moved and docked or undocked. In addition, all of the list panels (part, variable, viewports, annotations, query/plots, and frames) can customize the columns of data displayed in the panel. The icons can have text “sub titles” under the icon. Many users find it useful to turn this text one while they learn the system and turn it back off once mastered. BASIC OPERATION To turn on Icon text: 1. Right click in the Feature Icon bar then select “Display icon text” from the pulldown. To customize the Feature Icon Bar: 1. Right click in the Feature Icon bar then select “Customize Feature Toolbar” from the pulldown. 2. In the resulting dialog you can: (a) Select features from the “available” list on the left and use the right arrow button to place it on the Feature Icon bar. (b) Similar, if you select a feature in the right column you can click the left mouse button which will remove it from the Feature Icon bar. (c) Any feature in the right column can be moved up and down to modify its order on the icon bar via use of the up/down arrows. 3. The Save button will retain the settings next time you run EnSight. 4. While the OK button will make the modifications for the current session only.l Page 503 HOW TO CUSTOMIZE ICON BARS AND PANELS To customize the columns in the list panels: 1. Right click on the column header in the list you wish to customize. In the figure shown the right click was performed on the “Name” portion of the list. 2. Each list panel will have a different set of that can be shown. The figure at right shows the choices for the Variables list. Similar to the Feature Bar discussion above you can add or remove new columns and modify the order of the columns using the left/right and up/down arrows. To move the Icon bars: 1. Right click on any icon bar. In the resulting pulldown the “Lock toolbars” should be unchecked, i.e., toolbars are allowed to be moved. 2. The icon bars have a “handle”. Click and drag the handle and the icon bar will come out of the user interface and will follow the mouse as you move it. 3. If you release the mouse button outside of the user interface the icon bar will be free floating. OR 3. As you drag the icon bar to the various docking locations in the user interface you will see a space open up where the bar could dock itself. Release the mouse button and the icon bar will doc in the space provided. The blue rectangle indicates where the bar could be docked. This bar is being dragged Page 504 HOW TO CUSTOMIZE ICON BARS AND PANELS To move the panels: 1. Right click on any icon bar or the header of any panel. In the resulting pulldown the “Lock dock widgets” should be unchecked, i.e., “widgets” are allowed to be moved. 2. The panels can be dragged by their header. Click and drag the header and the panel will come out of the user interface and will follow the mouse as you move it. 3. If you release the mouse button outside of the user interface the panel will be free floating. OR 3. As you drag the panel to the various docking locations in the user interface you will see a space open up where the panel could dock itself. Release the mouse button and the panel will doc in the space provided. The blue rectangle indicates where the panel could be docked. 4. Panels can be stacked on top of each other. In which case you This panel is being dragged will get a tab for each panel occupying the same space. By default for example, the Variables, Plots/Queries, Annotations, and Viewports panels are stacked. ADVANCED USAGE The layout and position of the icon bars and panels are saved and will be restored next time you run EnSight. The easiest way to restore the default configuration is to start EnSight with a “-no_prefs” start parameter. SEE ALSO User Manual: Icon Bars Page 505 HOW TO CUSTOMIZE MOUSE BUTTON ACTIONS Customize Mouse Button Actions INTRODUCTION When the mouse pointer is in the Graphics Window, clicking and holding the left mouse button as you drag will perform the current transformation (e.g. rotate or zoom) as selected under the Graphics window transforms icon in the Transformation Control area. To perform a different transformation, you have to click on this icon and select the new operation. To avoid this, you can redefine how the left mouse works as well as map additional transformation operations onto the middle and right mouse buttons, combinations of mouse buttons, and double-clicking of mouse buttons. This customization only effects the mouse usage while in the Graphics Window. The left button is still used for other user-interface actions. BASIC OPERATION To change the behavior of mouse buttons in the Graphics Window: 1. Select Edit > Preferences..., then click on Mouse and Keyboard 2. Set each click and drag mouse button pulldown (Left, Middle, Right and combinations of such) as desired. 3. Set the two button click and drag for each mouse. 4. Set the single click action for each mouse button. 5. Set the action for the keyboard ‘P’ key (see below). 5. Set desired Zoom Style. Automatic slide will zoom based on the direction and distance the mouse is moved. To the right or up zooms away, while to the left or down zooms towards. The distance the mouse is dragged determines the rate of continuous zoom. Manual drag zooms in the same directions, but only a distance relative to the distance the mouse is dragged. 6. Click Save To Preference File to save your changes (if you want these changes to be the default for future sessions of EnSight) and Close to exit the dialog. The new settings will take effect as soon as you hit the close button. If you clicked Save To Preference Files, your changes are also written to a file and automatically loaded during future EnSight sessions. Page 506 HOW TO CUSTOMIZE MOUSE BUTTON ACTIONS Each mouse button (or combination of mouse buttons) can have one of the following associated behaviors: Selected When this mouse button is clicked and dragged, the operation performed will be the currently transform action selected function in the Transformation Control area. Rotate When this mouse button is clicked and dragged, the operation performed will be rotate. Translate Zoom Rubberband zoom When this mouse button is clicked and dragged, the operation performed will be translate. When this mouse button is clicked and dragged, if Zoom Style is Manual Drag then a zoom displacement will occur, and if Zoom Style is Automatic Slide then a zoom velocity will occur When this mouse button is clicked and dragged, the operation performed will be a rubberband zoom. Rubberband When this mouse button is clicked and dragged, the operation performed will be a rubberband selection tool selection tool manipulation. Selected pick action Pick part When this mouse button is clicked, the currently selected pick action (as previously selected under the pick icon) will be performed. When this mouse button is clicked, the pick part action will be performed - causing the part under the mouse to be selected in the main parts list. Pick cursor tool When this mouse button is clicked, the pick cursor tool action will be performed - causing the location cursor tool to move to the picked location. Pick transf. center When this mouse button is clicked, the pick transformation center action will be performed causing the center of transformation to move to the picked location. Pick elements to When this mouse button is clicked, the element blanking action will be performed - causing the blank element under the mouse to be removed. Nothing When this mouse button is clicked, no action will be performed. Note that at least one of the mouse buttons (or combinations) must be set to “Selected transform action”! Each double-click mouse action or the keyboard ‘P’ key can be set to the following: Selected pick action Pick part When this mouse button is clicked, the currently selected pick action (as previously selected under the pick icon) will be performed. When this mouse button is clicked, the pick part action will be performed - causing the part under the mouse to be selected in the main parts list. Pick cursor tool When this mouse button is clicked, the pick cursor tool action will be performed - causing the location cursor tool to move to the picked location. Pick transf. center When this mouse button is clicked, the pick transformation center action will be performed causing the center of transformation to move to the picked location. Pick elements to When this mouse button is clicked, the element blanking action will be performed - causing the blank element under the mouse to be removed. Nothing When this mouse button is clicked, no action will be performed. Note that at least one of the mouse buttons, double-click options or the “P” key must be set to “Selected pick action”! SEE ALSO User Manual: Mouse and Keyboard Preferences Page 507 HOW TO SAVE SETTINGS Save Settings INTRODUCTION The default size and position of the EnSight user interface windows was chosen to try to minimize window overlap. When you move and resize windows EnSight saves this information such that the next time you start EnSight the layout should be the same as when you left it last. ADVANCED USAGE If you want to get back to the default layout for the windows, start EnSight with the “-no_prefs” start parameter. SEE ALSO See User Manual: GUI Overview Page 508 HOW TO DEFINE AND USE MACROS Define and Use Macros INTRODUCTION Advanced users of EnSight often find themselves performing repetitive tasks. EnSight’s macro facility lets you save a sequence of commands and then assign a keyboard key to those commands such that they are executed when the key is pressed. Note: macros only work when the mouse cursor is in the graphics window. Pressing a key assigned to a macro causes the associated command file to be read and executed. Depending on how it is set up, a macro can execute its file in one of three ways: 1. The command file is executed once for each key press. This mode is useful for one-time operations such as cutting flipbook animation on/off or saving an image. 2. The command file repeatedly executes as long as the key is held down. This is useful for operations that are continuous in nature, such as rotating around the Y axis by 5 degrees. 3. Multiple command files execute in a cycle for each keystroke. Keystroke macros are defined in a text file, macro.define. Macros can be defined at a site or local level, with local macros overriding site macros that might be defined for the same key. The macro.define file (if any) that resides in the %CEI_HOME%/ensight102/site_preferences/macros directory defines site-level macros, while the macro.define file (if any) under the user’s EnSight defaults directory (located at %HOMEDRIVE%%HOMEPATH%\(username)\.ensight102 commonly located at C:\Users\username\.ensight102 on Vista and Win7, C:\Documents and Settings\yourusername\.ensight102 on older Windows, and ~/.ensight102 on Linux, and in ~/Library/Application Support/EnSight102 on the Mac) will define that user’s local macros. Any command files referenced by macros must be located in these directories as well. Most of the functions needed to define and edit macros can be found under the Macros tab of the Command Dialog (File > Command from the Main Menu). Open this dialog to view the default, system macros in the default install. BASIC OPERATION Creating Macro Command Files The first step in creating macros is to save the various command sequences that perform the desired actions. This can be done in several ways. One way to save commands for a macro is to save off a command file from an Ensight session. See How To Record and Play Command Files for more information. Be careful as you perform the operations that are saved to the command file. Superfluous or errant commands will slow down macro operation or cause errors. You may wish to view the resulting command files with a text editor and possibly make changes. A second way to create the command file for a macro is to copy commands from the Command Dialog history window: 1. Mark the desired commands by clicking and dragging in the history window, or by any combination of clicking and dragging while holding down the CTRL key. 2. With the cursor over the marked commands, click the right mouse button to bring up the action menu, then select "Copy". This will copy the commands to the system clipboard. 3. Bring up a text editor and insert the commands using "Paste". 4. When you are finished building your macro command file, be sure you save it in the site or local macros directory (see above). Page 509 HOW TO DEFINE AND USE MACROS A third way to create a macro command file is by writing/appending them directly to a file from the Command Dialog history window: 1. Mark the desired commands by clicking and dragging in the history window, or by any combination of clicking and dragging while holding down the CTRL key. 2. With the cursor over the marked commands, click the right mouse button to bring up the action menu, then select "Write/append" to file. 3. A File Selection dialog opens. Select or enter the desired file to save commands to and click Save. If the file already exists, the selected commands will be appended, if it does not, it will be created with the selected commands. Linking macro command files to keys To link a command file in the macros directory to a key or mouse button: 1. In the Command Dialog "Macros" tab (File > Command from the Main Menu), click "New". The New Macro dialog opens. 2. Select or type a key, 3. Check "Repeatable" if you want the macro to be repeated while the key is held down. 4. Select any modifier keys such as CTRL or ALT. 5. Enter a brief description of what the macro does. 6. Click "Add" to add a command file for the macro. 6. OR click “Add Menu” to add the functionality from an existing EnSight menu to the macro. A File Selection dialog opens. 7. Select the desired file and click Save. Note: you can select a file anywhere on your system, and if it is not already in the local .macros directory, it will be copied there. 8. Repeat steps 6 and 7 for macros with multiple command files. Page 510 HOW TO DEFINE AND USE MACROS To change an existing macro definition: 1. In the Command Dialog "Macros" tab (File > Command from the Main Menu), click "Edit". 2. The Edit Macro dialog opens. Change any of the values in this dialog, then click "Close". Your changes will not be written to the macro.define file until you either click "Save Changes" in the Command dialog Macros tab, or close the command dialog and answer "Yes" to the Save Changes query message. OTHER NOTES A common use of tying more than one command file to the same key is to create a toggle. Make the first command file turn the option on, and the second command file turn the option off. Then tie both of these to the same key. You will now cycle through the two command files, effectively creating a toggle situation. SEE ALSO How To Record and Play Command Files User Manual: Macros Tab Page 511 HOW TO DEFINE AND USE MACROS Page 512 HOW TO SET OR MODIFY PREFERENCES Set or Modify Preferences INTRODUCTION Nearly every operation and function in EnSight is initially set to a default value. Preferences allow you to set these initial values as well as set some default behaviors such as which time step to initially load for transient data, how the mouse buttons are defined, etc. When EnSight starts, the preference settings are read from the $CEI_HOME/ ensight102/site_preferences directory and then overlaid by the preference settings found in your EnSight defaults directory (located at %HOMEDRIVE%%HOMEPATH%\(username)\.ensight102 commonly located at C:\Users\username\.ensight102 on Vista and Win7, C:\Documents and Settings\yourusername\.ensight102 on older Windows, and ~/.ensight102 on Linux, and in ~/Library/Application Support/EnSight102 on the Mac). BASIC OPERATION 1. Bring up the Preferences dialog by selecting Preferences from the Edit pull-down menu. The following preference categories are available in the Preferences dialog (and will be explained below): Setting Annotation Defaults To Set Color Palette Defaults: To Set Data Preferences: To Set Image Saving and Printing Preferences: To Set Mouse and Keyboard Preferences: To Set Performance Preferences: To Set User Defined Input Preferences: To Set Variable Preferences: To Set View Preferences: To Set Viewports Preferences: Page 513 HOW TO SET OR MODIFY PREFERENCES Setting Annotation Defaults Need to make the font bigger everywhere in EnSight? 1. Select Annotation from the Preference Categories list. 2. Click on the Default font preferences button 6. Change the annotation, symbol and label fonts individually 7. Change the size 8. Click here to save the preferences. Page 514 HOW TO SET OR MODIFY PREFERENCES To Set Color Palette Defaults: 1. Select Color Palettes from the Preference Categories list. 2. Toggle on if you want the color legend to automatically appear when you color a part by a variable. 3. Toggle on if you want color legends to be replaced when the current legend is no longer in use (i.e., no parts are colored by the variable) and a new variable is in use. 4. Toggle on if you wish the legend ranges to be updated when time is changed, thus based on values of variable at the current time. 5. Set the default legend for per element variables to be constant over the element or to vary continuously over the element (averages with neighbors). 6. If you have predefined color palettes, you can set one of them to be the default by entering the name or picking one from the list of defined palettes. 8. Click here to save the preferences. Page 515 HOW TO SET OR MODIFY PREFERENCES To Set Command Line Preferences: A number of command line parameters exist for EnSight. These parameters can be set in your preference file so you do not have to specify them on the start line each time you use EnSight. 1. Select Command Line Parameters from the Preference Categories list. 2. Select a command line argument. An explanation of the selected argument will appear in the dialog. 3. Click here to add the parameter. It will be placed in the edit area. If you make a mistake and add an unwanted parameter, simply highlight it in the feedback area and delete it. If additional information is required, a note will be posted here to help you. 4. If you need to add additional information, add any text needed into the edit area. 5. Click here to save the preferences. Page 516 HOW TO SET OR MODIFY PREFERENCES To Set Data Preferences: 1. Select Data from the Preference Categories list. 2. If you want to specify a path to look for data, specify it here. 3. You can specify the default binary file type here. 4. When transient data is loaded into EnSight you can choose to specify a beginning time step. If you do not specify a beginning time step, either the first or the last time step will be loaded depending on this preference. 5. After successfully reading data into EnSight you are presented (for most data formats) with a part loader if this attribute is set to No Parts. If set to any other attribute the parts specified will be loaded and displayed without intervention from the part loader. 6. Sets the n-faced polyhedron decomposition algorithm (for detailed description, see User Manual Edit Menu Functions) 7. When solver solution is proceeding and new timestep files appear this will prompt you to include the new files as additional timesteps only for Case Gold format. Please Contact CEI Support regarding this option. 8. The readers shown with a * will show up in the pull-down for data format in the EnSight data reader dialog. You can take readers off of the pull-down list if you toggle the * off (select the reader in the list). 9. You can specify the default data type by typing in the exact name of the reader. 10. Click here to save the preferences. Page 517 HOW TO SET OR MODIFY PREFERENCES To Set Image Saving and Printing Preferences: 1. Select Image Saving and Printing from the Preference Categories list. 2. Click the “Click Here To Start” button. This will bring up the Print/Save Image dialog. 3. Modify the you want for your preference such as the image format. 4. Click here to save the preferences. Page 518 HOW TO SET OR MODIFY PREFERENCES To Set Mouse and Keyboard Preferences: This preference allows you to modify the behavior of the mouse buttons used during EnSight transformations. Several different actions are available for the various single click, multiplebutton single click, and double click options. Note, it is required to set at least one button to “Selected transform action” (which means that the button is set to the action as shown in transformation icons at the bottom of the EnSight dialog - set to rotate by default). Also, one mouse or the “p” keyboard key must be set to “Selected pick action”. 1. Select Mouse and Keyboard from the Preference Categories list. 2. Modify the preference for each of the mouse buttons (and keyboard ‘P’ key). Single click actions available are: Click and drag options are: And the possible zoom styles are: 3. Click here to save the preferences. See How To Produce Customized Pop-Up Menus for a description of what “User defined menu” is. Page 519 HOW TO SET OR MODIFY PREFERENCES To Set Performance Preferences: 1. Select Performance from the Preferences Categories list. 2. To take advantage of pixel saving when redrawing a window movement, set this toggle. (Graphics card speed for reading/ writing of pixels needs to be reasonable to use.) 4. To set fast mode to static, toggle on. The default is off meaning that the fast display (i.e., bounding box) is only active during transformations such that the image returns back to full graphics display when the mouse buttons are not depressed. In static mode the fast representation is continuously displayed. 5. To ensure proper display of transparent geometry, EnSight must sort all the transparent polygons in the display. This can be an expensive operation, particularly if multiple transparent parts are visible. This option controls when and how surfaces are sorted. In “Interactive” mode, sorting is performed between every redraw of the view. In “Delayed” mode, sorting is not performed while the user is interacting with the view (while the mouse button is held down). NOTE: Hidden line overlay does not work with either “Interactive” or “Delayed”. In “Depth peeling” mode (which is only available on graphics cards that support the OpenGL Shading Language) sorting is done by the graphics card on a per-pixel basis by rendering the view repeatedly. This mode scales better as the number of polygons increases and it does not suffer a performance hit when multiple parts are transparent. The number of peels (and hence the number of surfaces to order properly) is controlled by the “Number of peels” field. 5. If using point display for fast display mode, set the point resolution here. 6. If using sparse geometry display for fast display mode, set the percent of the model to show here. (Only used if immediate mode is being used.) 7. EnSight is a client-server architecture with the possibility that the two processes are executing on different and possibly remote machines. Due to this, a general abort function is not possible. Instead a timer abort function is available that will terminate many server operations after a set amount of time has passed. If you wish to set this time-out value turn the toggle on and set the time-out amount (in seconds). 8. Click here to save the preferences. Page 520 HOW TO SET OR MODIFY PREFERENCES To Set User Defined Input Preferences: 1. Select User Defined Input from the Preferences Categories list. 2. Turn this on to show the macro panel display 3. Toggle to select the default to display a part list in the graphics window. This is especially helpful in full screen mode or a VR environment. 4. Turn this on to activate the user defined input device (ENSIGHT10_INPUT must be set to the proper device). 5. Sets the sensitivity for the zoom operation. The values for zoom are scaled by this setting, so values larger than 1.0 will make the inputs larger while less than 1.0 will make them smaller. 6. Mixed mode will use the input devices z rotate directly but use x and y translation values for x/y rotations. Direct mode will use the rotation angles from the input device directly for all three axis. 7. Sensitivity will set a scaling factor for the rotation values. 8. Click here to save the preferences. Page 521 HOW TO SET OR MODIFY PREFERENCES To Set Variable Preferences: 1. Select Variables from the Preferences Categories list. 2. Brings up the dialog for setting extended CFD settings. Save these settings by clicking here. 3. Boundary Layer calculation Recommendation: let EnSight determine the maximum number of profile values from the surface to the edge of the boundary layer. Manually changing this value allows clamping of the number of sample points in the profile off the wall into the flow field. Since each sample point is approximately equivalent to the center of each cell in the boundary layer sub-mesh, if the number of cell layers in the boundary layer sub-mesh is known, this would be a good value so the profile does not exceed this limit. Warning: Setting this value too low can cause the sampling to terminate before the edge of the boundarylayer is reached, thus wrongly predicting the values of interest. Page 522 HOW TO SET OR MODIFY PREFERENCES To Set View Preferences: 1. Select View from the Preferences Categories list. 2. Switches white and black foreground colors for maximum contrast with Constant and Blended backgrounds for viewport 0. 3. Turn on if you want the plane tool to be shown as a transparent plane, or off if you want it shown in line drawing mode. 4. There are two offsets employed in EnSight. This one, hardware offset, is perpendicular to the monitor screen, and done in hardware if this toggle is on. This will allow, for example contour lines to appear closer to the viewer than their parent part so they are visible no matter what orientation the part is viewed from. The second offset is the display offset. The display offset can be set in the feature panel for line parts such as contour lines, particle trace lines, vector arrows, and separation/attachment lines. The display offset is the distance in the direction of the element normal (perpendicular to the surface). 5. Select the default viewing orientation. 6. For newer graphics cards leave as ‘hardware’ and EnSight will attempt to use hardware picking, and if not available will use software picking. For older graphics cards with sluggish performance, choose software picking. 7. Click to bring up dialog controlling selection feedback in the graphics window 8. Click to bring up dialog controlling the antialiasing parameters. 9. Click to bring up dialog controlling the click-n-go preferences. 10. Click here to save the preferences. Caution: if you save software picking and later change to a newer graphics card you must change this back to ‘hardware’ to take advantage of the new card. Page 523 HOW TO SET OR MODIFY PREFERENCES To Set Viewports Preferences: 1. Select Viewports from the Preferences Categories list. 2. Click here to start. This will bring up the Viewports dialog with all the viewport items selected. 3. Set any viewport attribute (for example, background color to blended). 4. Click here to save the attributes set in above in item #2 to the preference file as defaults for future sessions. 5. Click here to save the current viewport layout to the preference file. SEE ALSO User Manual: Edit Menu Functions Page 524 HOW TO ENABLE USER DEFINED INPUT DEVICES Enable User Defined Input Devices INTRODUCTION EnSight offers user defined input devices that have been specifically designed for (but not limited to) typical input devices used in VR environments. Implementation of these input devices requires adherence to the instructions outlined in the respective reference files listed below. BASIC OPERATION Manual Panel Interface: 1. Select Edit > Preferences..., and click User Defined Input. 2. Toggle Macro Panel Interface The Main Graphics window updates the Macro Panel as defined in the EnSight Defaults Directory (located at %HOMEDRIVE%%HOMEPATH%\(usernam e)\.ensight102 commonly located at C:\Users\username\.ensight102 on Vista and Win7, C:\Documents and Settings\yourusername\.ensight102 on older Windows, and ~/.ensight102 on Linux, and in ~/Library/Application Support/EnSight102 on the Mac) as the following file: hum.define (If you have not created this file, an example is provided in: $CEI_HOME/ensight102/src/cvf/udi/ HUM/hum.define on your EnSight Client host system.) 3. Toggle Part Panel Interface (if you desire a part list in the graphics window). 4. Toggle User Defined Input. (Detailed steps to implement the User Defined Input Device are outlined in the file: $CEI_HOME/ensight102/src/udi/cvf/ README.v3 on your EnSight Client host system.) 5. Set Zoom Using to the appropriate type of input device you are using to record zoom transformations, adjusting the Sensitivity as needed (i.e., 0 < slower < 1 faster). 6. Set Rotate Using to the appropriate type of input device you are using to record rotation transformations, adjusting the Sensitivity as needed (i.e., 0 < slower < 1 faster). SEE ALSO User Manual: VR and user defined input Preferences Page 525 HOW TO PRODUCE CUSTOMIZED POP-UP MENUS Produce Customized Pop-Up Menus INTRODUCTION EnSight includes pop-up menus invoked via the right mouse button. The menus are specific to each object (part, annotation, plot, etc.). They are written as Python objects that are dynamically loaded when EnSight starts up. Menus can implement any function that can be built on top of command language or Python. Most menus use Python to query EnSight state and perform customized actions based on that state. There is a formal mechanism through which EnSight users may add additional, customized menus to the existing pop-up menus with all of the same capabilities. The mechanism opens up EnSight to specific customization to meet a particular site or individual user’s needs. BASIC OPERATION This section describes the default EnSight menu usage with no additional customization. To use the capability included with EnSight, simply right click on a part, on some text, or on the background as shown below. By default, the pop-up menus are tied to the right mouse button single click. This can be changed using options outlined in: To Set Mouse and Keyboard Preferences:. The menus can also be accessed by assigning them to a particular keystroke as a macro using as outlined in Define and Use Macros. The specific menu that is displayed depends on what object was clicked on. Some examples are shown here: Clicking on an annotation Clicking on a selected part Clicking on the viewport background Menu targets In general, the target of the operation is listed at the top of the menu. A special modifier key (‘ctrl’) is used to control object/part selection. When the menu click is made, a pick operation is performed under the mouse pointer. This pick returns the selected part or object. If that object is part of the current selection, the selection is not changed and the entire selection is the target of the menu operation. If the object is not part of the current selection, the object becomes the current selection and the menu operation is performed on this new selection. The ‘ctrl’ key can be used to modify this behavior. In normal left mouse button picking, the ctrl key tells EnSight that the picked object should be Page 526 HOW TO PRODUCE CUSTOMIZED POP-UP MENUS added to the current selection. When right clicking to open a menu, holding the ctrl key tells EnSight not to change the current selection and to target the current selection, even if the pick operation did not include a selected object. This can be used to more easily bring up the popup menu operations for objects that are not easily clicked on, or even visible. ADVANCED USAGE This section describes how to create custom user-defined menus as explained by EnSight extension mechanism in the Interface Manual. This section assumes familiarity with the Python language, as well as object-oriented programming. Both custom and built-in menus have the same capabilities because they are built on the same interface. Also, customized menus allow the user to display options, including cascading menus. By default, your custom menus will appear below EnSight’s default list of options that appear when you right click. The user may also define a key (using the macro facility) to invoke the operation as noted above. EnSight includes two well-documented, example Python files to demonstrate the process of creating custom, userdefined pop-up menus. As an exercise to show how to customize EnSight, these two files can be moved from their existing location to a directory where they will automatically load into EnSight at startup and change EnSight’s menus. How menus get loaded By default EnSight scans the Python files found in subdirectories of the site-specific $CEI_HOME/ensight102/ site_preferences/extensions/user_defined directory and in the user specific extensions/ user_defined subdirectory, under the EnSight Defaults Directory. The EnSight Defaults Directory varies per platform: Linux: ~/.ensight102/extensions/user_defined/Menus Mac: ~/Library/Application Support/EnSight102/extensions/user_defined/Menus Windows Vista, Windows 7: C:\Users\username\.ensight102\extensions\user_defined\Menus Windows XP: %HOMEDRIVE%%HOMEPATH%\(username)\.ensight102\extensions\user_defined\Menus Specific details of this process are covered in EnSight extension mechanism. When EnSight finds a Python file, it calls a “factory” function specified in the file. The factory function returns a list of objects that are registered with EnSight. The objects can be user-defined menus, tools and s, based on the extension class they subclass from. Whenever a pop-up menu is invoked by the user (normally though the right-mouse button), EnSight will filter the list of registered menu objects, display them as a pop-up menu and will invoke the run method when selected by the user. In the next two sections, we walk thought two simple examples of writing custom EnSight user-defined menus. “Hello world” menu Shown below is a simple example menu extension. It can serve as a template for more useful menus. This example Python file is included with your EnSight installation in the following folder $CEI_HOME/ensight102/src/ user_defined_ext/. Copy the entire directory to the extensions/user_defined/examples subdirectory under your user EnSight Defaults Directory (see above) and restart EnSight. The figure that follows shows the new menu item generated from this Python code, as well as the console output which is found in the Python window (File>Command, and click on the Python tab in the resulting window). It also illustrates the directory structure for placing the files into the user specific EnSight startup path. Page 527 HOW TO PRODUCE CUSTOMIZED POP-UP MENUS C:\Users\username\.ensight102\extensions\user_defined\examples Shown below is the commented Python code. Notice in particular the block of comment lines starting with #ENSIGHT_USER_DEFINED_BEGIN and ending with #ENSIGHT_USER_DEFINED_END. These specially formatted Python comments are what EnSight looks for at startup. They specify the name of the function to call when this file is loaded. That “factory” function is responsible for creating instances of the menu object and returning them to EnSight. # # This comment block is required to identify the file for loading at # startup by EnSight. The function named by FACTORY= (in this case # 'ctor' is called by EnSight on startup. Note: the file is loaded # as a module in EnSight and the path to this file is added to sys.path. # #ENSIGHT_USER_DEFINED_BEGIN #FACTORY=ctor #ENSIGHT_USER_DEFINED_END # # Import the parent class for all user-defined menus and the ensight module # import ensight from ensight.core.menu_extension import menu_extension # # Define a menu class, a subclass of the menu_extension class # class hello_menu(menu_extension): # # Construct the menu with reasonable defaults # def __init__(self,name,parent,text="",tooltip="",desc="",icon=None): menu_extension.__init__(self,name,__file__,1.0) if (parent): parent.addChild(self) if (icon): self.setIcon(icon) self.setText(text) self.setDesc(text) self.setTooltip(text) # # Method that is called when the menu is selected # def run(self): # Page 528 HOW TO PRODUCE CUSTOMIZED POP-UP MENUS # Do whatever operation this menu should do, replace with your own code # print "Hello, these parts are selected:" for part in ensight.query_parts(client=1): print part[3] # # Construct a list of menu objects to be added to the global list of # user-defined menus # def ctor(parent): list = [] # # Create the actual menu object, giving it a unique name an # onscreen name and a text description # p = hello_menu("hello_menu",parent,"Hello menu","Menu description") list.append(p) return list Context-sensitive, Hierarchial Menus Shown below is a more complex menu example. Again, it can be installed in the same manner as described above and the resulting menus are illustrated in the following image. This example builds on the previous one. First, it demonstrates that a single Python file can generate as many menus as it wants. It also demonstrates the ability to define a hierarchy out of those menus. In this example, the menus themselves have expressed the desire to only be displayed in specific contexts, e.g. when a specific type of part has been selected. Finally, several other menu options are set, the name of the “vendor” for the menu and an icon are specified. More options are documented in the Interface Manual. The basic file structure is the same as before. There is a header block followed by the various class definitions followed by the factory function. Page 529 HOW TO PRODUCE CUSTOMIZED POP-UP MENUS # # This comment block is required to identify the file for loading at # startup by EnSight. The function named by FACTORY= (in this case # 'ctor' is called by EnSight on startup. Note: the file is loaded # as a module in EnSight and the path to this file is added to sys.path. # #ENSIGHT_USER_DEFINED_BEGIN #FACTORY=ctor #ENSIGHT_USER_DEFINED_END # # Import the parent class for all user-defined menus and the ensight module # import ensight from ensight.core.menu_extension import menu_extension # # Define a "separator" menu class used to put a dividing line between menus # class sep_menu(menu_extension): def __init__(self,name,parent): menu_extension.__init__(self,name,__file__,1.0) self.setSeparator(True) if (parent): parent.addChild(self) # # Define a menu class, a subclass of the menu_extension class # class part_menu(menu_extension): # # Construct the menu with reasonable defaults # def __init__(self,name,parent,text="",tooltip="",desc="",icon=None): menu_extension.__init__(self,name,__file__,1.0) if (parent): parent.addChild(self) if (icon): self.setIcon(icon) self.setText(text) self.setDesc(text) self.setTooltip(text) self.setVendor("John Q. Public") # # Method that is called when the menu is selected # def run(self): # # We are constructing two instances of this class. They differ by # name. We use the name to perform different operations for each # of the instances. This could also be done with any other class # data, including user defined data members. # if (self._name == "allpart_menu"): print "All parts hello!" else: print "Model part specific hello!" # # Construct a hierarchy of menus. A parent "roll-over" menu and two # children with a separator between them. These menus use context # sensitive filtering. The parent is only displayed in EnSight "Part" mode. # One child is always display and the other is only displayed when the # currently selected part is a "Model" part. Note: this filtering could # also be performed by overriding the "validFilter()" method on the menu # object to perform any custom filtering operation. # Page 530 HOW TO PRODUCE CUSTOMIZED POP-UP MENUS def ctor(parent): # # The factory method always returns a list of object to be added. # In this example, we only return menu_extension subclass instances, # but the list can include any combination of object subclassed from # the core_extension class. # list = [] # # Create the parent roll-over menu # p = menu_extension("placeholder",None) # # Create an icon for the menu (this is optional). In this case, we # access one of the icons embedded in EnSight itself. See the Qt # resource management documentation for details. # p.setIcon(":/ensight/ens_icn_small") # # Set the EnSight mode filter to only display in "Part" mode. # p.setMode("Part") # p.setText("Simple part tools") p.setTooltip("Example part tools") if (parent): parent.addChild(p) list.append(p) # # Create the instance of the part_menu class that should be displayed # for any part that is selected. # m = part_menu("allpart_menu",p,"All part menu","Menu description") list.append(m) # # Add a horizontal separator line between the child menus. # m = sep_menu("sep1",p) list.append(m) # # Create an instance of the part_menu class that is only displayed # when a "Model" part is selected. # m = part_menu("modelpart_menu",p,"Model part menu","Menu description") # # Set the EnSight part type filter to "Model" parts. # m.setPartType("Model") list.append(m) return list Other examples The example source code shown here is included in the $CEI_HOME/ensight102/src/user_defined_ext/ examples directory, but many other examples exist. The source code to all of the built-in menus is included in the $CEI_HOME/ensight102/site_preferences/extensions/user_defined directory. Some other example objects are included in $CEI_HOME/ensight102/site_preferences/extensions/user_defined/Tools/ QuickTools/Examples. While these are user-defined tools instead of menus, the extension mechanisms for both share a large number of common features and techniques that work in both. There are a pair of tools examples Page 531 HOW TO PRODUCE CUSTOMIZED POP-UP MENUS located in the user-defined tool Advanced Usage that demonstrate the ability of all user-defined extensions to generate and execute custom command language and make use of external icon files. To get the most out of this mechanism, menu developers are encouraged to utilize Python scripts and convert command language scripts into Python using the provided tools. The Python interface is largely documented in the Interface manual Python EnSight module interface. SEE ALSO EnSight Interface Manual Mouse and Keyboard Preferences Produce Customized Access to Tools & Features Page 532 HOW TO PRODUCE CUSTOMIZED ACCESS TO TOOLS & FEATURES Produce Customized Access to Tools & Features INTRODUCTION EnSight allows users to define toolbox items, that are accessed by selecting the "User Defined" toolbox feature icon. These items are collections of custom Python code that perform common operations. These tools can include full interfaces and can interact with all of EnSight’s core features. The mechanism opens up EnSight to specific customization to meet a particular site or individual user’s needs. Tool are written as Python objects that are dynamically loaded from when EnSight starts up. There is a formal mechanism (EnSight extension mechanism) through which EnSight users may add their own, custom tools. BASIC OPERATION The user defined tool icon should be displayed by default. If it is not, it can be turned ON by right clicking on the Feature Icon Bar and selecting Customize Feature Toolbar... To access the user-defined tools, click the icon to bring up the dialog and make a selection from the dialog by double clicking. 1. Click on the User Tools Icon. 2. The User Defined Tools Window appears. The EnSight QuickTools are a collection of common operations that would normally take many steps to complete in EnSight, packaged in a simpler form. There are six folders, each with a collection of related tools: a) Analyze - Tools designed to perform multi-step Engineering Analysis b) EnSight interfaces - Tools that demonstrate alternative EnSight Front-end s. c) File import/export - Import or Export data to/from the EnSight client in various formats d) Presentation tools - Export visualizations or Run the current visualization in one of EnSight’s free postpostprocessing tools. e) Utilities - Support, development, raw core object access, development tools and Python documentation. f) Visualize - Tools that animate, move, enhance visualization, or create visualization entities. g) Web installed tools - Customized tools installed by EnSight’s package manager from external sources. Page 533 HOW TO PRODUCE CUSTOMIZED ACCESS TO TOOLS & FEATURES 1. Click on the User Tools Icon. 2. Open the Analyze folder. a) Calculator tool. Use a python calculator b) Force tool. Sum the net force (either part by part or total) from pressure, force vectors, or shear. All variables are stored in a Force folder in the variables area. Optionally a .csv spreadsheet file can be written out which contains the net force components, force coefficients, etc. per part. c) Min max tool. Find the min/max of the selected parts of the colored variable d) Moment tool. Using the Force variables calculated in the Force tool above, calculate the moment about a single point entered by the user. e) Part constant query tool. Create a query (and optionally plot it) from a constant calculated on a clip, isosurface, or isovolume as the clip/isosurface/isovolume is swept from min to max. For example, calculate the mean, min, or max temperature on a X-clip and plot the value vs. x-location as the clip is swept from xmin to xmax. f) Simple calc tool. Calculates constants from a subset of the calculator functions. g) Timestep tool. Resample transient data to a uniform timestep 3. Open the View alternative EnSight Graphical User Interfaces. 4. Open the File import/export folder. a) Export Collada (DAE) format. This is a 3D XML geometry format exported from the EnSight client. b) Export data to a Reveal .csf file and then translates to OpenJT format. c) Import a CSV text file as an EnSight Query d) Export VRML format. e) Export X3D format. X3D is an open-source XML 3D geometry format which is a follow on to VRML. This tool exports surface geometry and coloration from the client simultaneously into two files: a Reveal file and an x3d geometry file. See Web3D Consortium for more details. Page 534 HOW TO PRODUCE CUSTOMIZED ACCESS TO TOOLS & FEATURES 5. Open the Presentation tools folder. Note that each of the tools is designed to export the current visualization to one of EnSight’s free, post-post processing application: This would bypass the step of saving a file then starting up the appropriate application as follows: a) EnLiten or Reveal to view 3D geometry with results, b) EnVe to perform simple video editing on a running animation, c) EnVideo to play a movie animation. 6. Utilities - EnSight Advanced and Python programmer tools. For example, there is a support tool, a ceishell logger, a graphics window resize tool, a stereo tool, a graphics performance testing tool, and an EnSight Python Developer subfolder. 7. Visualize a) Create Analytical Rigid Body surfaces by automatically extruding or rotating line parts read in from ABAQUS ODB data. You must check the box in the format options of the ABAQUS ODB data reader dialog to read in this type of part in order to then use this tool to make these parts. b) Movie tool. This will import a movie as a texture that is placed on a rectangular annotation box. The movie will interpolate with the transient steps of your data, so if the beginning and ending times are the same, the playback will roughly synch. c) Rigid body motion tool. This was intended to be a demonstration of the Rigid Body Motion capability of EnSight. Read in an EnSight Case Gold file, select the parts of interest, then run this tool and choose the rigid body rotation parameters and it will create a case gold file containing those parts with the appropriate transient rigid body files (See EnSight Rigid Body File Format and See Euler Parameter File Format). d) Skybox - Using a specially formatted image, called a cubemap image (which is a panoramic background scene containing the five interior sides of a cube) a background skybox is automatically created using the box tool for placement. Page 535 HOW TO PRODUCE CUSTOMIZED ACCESS TO TOOLS & FEATURES ADVANCED USAGE This section describes how to create custom user-defined tools as explained by EnSight extension mechanism in the Interface Manual. This section assumes familiarity with the Python language, as well as object-oriented programming. Custom tools have the same capabilities as the built-in tools because both are built on the same interface. By default, your custom tools will appear below EnSight’s built-in list of tools in the user-defined toolbox. EnSight includes two well-documented, example Python files to demonstrate the process of creating custom, userdefined tools. As an exercise to show how to customize EnSight, these two files can be moved from their existing location to a directory where they will automatically load into EnSight at startup and change EnSight’s tool list. How EnSight Loads Menus System directory - CEI installed tools EnSight scans for Python tools in the $CEI_HOME/ensight102/site_preferences/extensions/user_defined/Tools directory. Note that because EnSight caches the files in this directory in order to speed up the start up process, new tools put in this directory may not be recognized and loaded when you restart EnSight. In that situation, simply restart EnSight from the command line with no preferences and it will reload and recache the python files from this directory. ensight102 -no_prefs $CEI_HOME - python files developed by your company for all your users EnSight scans the $CEI_HOME directory for subdirectories containing a file named product.xml. Python files are loaded in this directory according to the product.xml and internal parentage coding. Contact CEI support for more details. Local directory - python files for your own personal use EnSight then looks in the user specific EnSight Defaults Directory. This directory differs on each platform: Linux: ~/.ensight102/extensions/user_defined/Tools Mac: ~/Library/Application Support/EnSight102/extensions/user_defined/Tools Windows Vista, Windows 7: C:\Users\username\.ensight102\extensions\user_defined\Tools Windows XP: %HOMEDRIVE%%HOMEPATH%\(username)\.ensight102\extensions\user_defined\Tools To find out your %HOMEDRIVE%%HOMEPATH% do Help>Online Support, click the System Into tab, and look at the Prefs Dir. This is where EnSight looks for user defined tools. When EnSight finds a candidate Python file, it loads it into a private Python module and calls a “factory” function specified in the file. The factory function returns a list of objects that are registered with EnSight. The objects can be user-defined tools, menus and s, based on the extension class they subclass from. A registry of user-defined tools is maintained by EnSight. It is normally displayed as a tree-list in the noted in the previous section. Applications are free however to invoke any tool using its run method and tools that implement custom command language may be called directly from the command parser, even in batch mode. In the next two sections, we walk through two simple examples of writing custom EnSight user-defined tools. Page 536 HOW TO PRODUCE CUSTOMIZED ACCESS TO TOOLS & FEATURES “Hello world” tool Shown below is perhaps the simplest example tool extension implementation. It can serve as a template for more useful tools. This example Python file is included with your EnSight installation in the following folder $CEI_HOME/ ensight102/src/user_defined_ext/examples. Copy the entire folder to the extensions/user_defined subfolder under your user specific EnSight Defaults Directory (see above) and restart EnSight. The figure that follows shows the new tool item generated from this Python code, as well as the dialog it generates. It also illustrates the directory structure for placing the files into the user specific EnSight startup path. Shown below is the commented Python code. Notice in particular the block of comment lines starting with #ENSIGHT_USER_DEFINED_BEGIN and ending with #ENSIGHT_USER_DEFINED_END. These specially formatted Python comments are what EnSight looks for while scanning for extensions at startup. They specify the name of the function to call when this file is loaded. That “factory” function is responsible for creating instances of the tool objects and returning them to EnSight. # # This comment block is required to identify the file for loading at # startup by EnSight. The function named by FACTORY= (in this case # 'ctor' is called by EnSight on startup. Note: the file is loaded # as a module in EnSight and the path to this file is added to sys.path. # #ENSIGHT_USER_DEFINED_BEGIN #FACTORY=ctor #ENSIGHT_USER_DEFINED_END # # Import the parent class for all user-defined tools and the generic dialog # from cei.qtgenericdlg import * from ensight.core.tool_extension import tool_extension # # Define a tool class, a subclass of the tool_extension class # class hello_tool(tool_extension): # # Construct the menu and set up common information # def __init__(self,parent=None): tool_extension.__init__(self,"hello_tool",__file__,1.0) self.setText("Hello world tool") self.setDesc("Say hello to the world from a tool") self.setTooltip("Say hello to the world from a tool") Page 537 HOW TO PRODUCE CUSTOMIZED ACCESS TO TOOLS & FEATURES if (parent): parent.addChild(self) # # We have a PNG icon in the same directory as this file # dir = os.path.dirname(__file__) self.setIcon(os.path.join(dir,"hello_world.png")) # # Method that is called when the tool is selected # def run(self): # # Do whatever operation this menu should do, replace with your own code # In the example, we use the "generic" dialog to display "Hello world!" # items = [] items.append(['textval',ITEM_TEXT,"Hello world!","A tooltip..."]) dlg = CeiQtGenericDialog(items,None,"Hello world","Ok",cancel=None) ret = dlg.doit() if (ret > 0): # # If the user pressed ok, do something... # pass # # Construct a list of menu objects to be added to the global list of # user-defined tools # def ctor(parent): list = [] obj = hello_tool() list.append(obj) return list Page 538 HOW TO PRODUCE CUSTOMIZED ACCESS TO TOOLS & FEATURES Batch-aware tool with custom command language Shown below is a more complex tool example. Again, it can be installed in the same manner as described above and the resulting tool is illustrated in the following image. This example builds on the previous one. When the tool is invoked, it brings up a more complex dialog that prompts the user for information including integer parameters and a filename. If the ‘Ok’ button is clicked, it creates a snapshot of the current rendering and saves it to disk. More importantly, it generates custom command language (shown in the Command dialog window) that when executed in batch mode will perform the same operation. All user-defined extensions (tools, menus, and even “core”) automatically extend EnSight command language in this fashion. The super-classes provide a scaffolding that makes it easy to enforce the separation between interface and function. For example, the tool Python file could easily be extended to provide an interface to the same functionality as a userdefined menu by adding a menu_extension subclass to the same file. The example uses an icon from the built-in EnSight icon resources. Finally, this example is “persistent”, that is it stores state (in the case the values entered in the dialog) and uses it to repopulate the dialog. A major advantage of EnSight extensions is that they can store state and have both private data and method members. The basic file structure is the same as before. There is a header block followed by the various class definitions followed by the factory function. # # This comment block is required to identify the file for loading at # startup by EnSight. The function named by FACTORY= (in this case # 'ctor' is called by EnSight on startup. Note: the file is loaded # as a module in EnSight and the path to this file is added to sys.path. # #ENSIGHT_USER_DEFINED_BEGIN #FACTORY=ctor #ENSIGHT_USER_DEFINED_END # # # Import the parent class for all user-defined tools, the ensight module # and the generic dialog # from cei.qtgenericdlg import * from ensight.core.tool_extension import * import ensight # # Define a tool class, a subclass of the tool_extension class # class snapshot_tool(tool_extension): # Page 539 HOW TO PRODUCE CUSTOMIZED ACCESS TO TOOLS & FEATURES # Construct the tool and set up common information # def __init__(self,parent=None): tool_extension.__init__(self,"snapshot",__file__,1.0) self.setText("Snapshot the current image") self.setDesc("Save the current image to a disk file") self.setTooltip("Save the current image to a disk file") if (parent): parent.addChild(obj) # # Create an icon for the menu (this is optional). In this case, we # access one of the icons embedded in EnSight itself. See the Qt # resource management documentation for details. # self.setIcon(":/ensight/image") # # This is where we store the current command language parameters # We start with some defaults... # self._params = {'file':'untitled.png','xsize':640,'ysize':480} # # A user-defined method that performs the desired operation taking its # parameters from a Python dictionary. This method can be called from # interactive operation or in batch, so it should not display anything. # def compute(self,params): # # Render and save an image to disk. This is only an example. # A deeper example can be found in the ensight.core.qtimageutils # module found in: # $CEI_HOME/ensight92/site_preferences/extensions/core/qtimageutils.py # img = ensight.render(x=params['xsize'],y=params['ysize']) fname = params['file'] # # The render method returns an EnVe image object, simplifying saving. # if (img.save(fname) == 0): return True if (img.errstr().find("Unknown file format") >= 0): fname += ".png" if (img.save(fname) == 0): return True return False # # Method that is called when the tool is selected interactively # def run(self): # # Do whatever operation this tool should do, replace with your own code # In the example, we use the "generic" dialog to prompt the user for # and image size and a filename. # items = [] items.append(['file',ITEM_FILE,"Filename", "Name of file to save",self._params['file'],OPT_FILE_SAVE]) items.append(['xsize',ITEM_INT,"Width", "Width of the image in pixels",self._params['xsize'],10,2048]) items.append(['ysize',ITEM_INT,"Height", "Height of the image in pixels",self._params['ysize'],10,1536]) dlg = CeiQtGenericDialog(items,None,"Save a snapshot") Page 540 HOW TO PRODUCE CUSTOMIZED ACCESS TO TOOLS & FEATURES ret = dlg.doit() # # If the user pressed ok, we will continue. # if (ret > 0): # # Build a dictionary of output values # for key in self._params: self._params[key] = dlg.getValue(key) # # Try to perform the operation # if (self.compute(self._params)): # # The operation succeeded, so we need to record custom # command language to place the operation into the journaled # output. # self.cmdRecord("xsize '%d'" % self._params['xsize']) self.cmdRecord("ysize '%d'" % self._params['ysize']) self.cmdRecord("file '\""+self._params['file']+"\"'") self.cmdRecord("compute") # # All extensions include the ability to record custom command language # and play it back. Remember that extensions should be able to play # back their operations in batch mode. This mechanism allows for an # extension developer to break interaction and the actual operation # into two parts. # # The cmdExec() method is passed all of the custom command language for # this tool. Here we use a trick where we assume that the recorded # command language takes the form of actual Python assignment statements. # We break up the passed line and use the Python 'exec()' method to # recover the information back into a dictionary. # def cmdExec(self,str): p = str.split("'") try: key = p[0].strip() if (key == 'compute'): self.compute(self._params) else: exec("d = "+p[1]) self._params[key] = d except Exception, e: print "Error handling the command:",str,e # # Construct a list of tool objects to be added to the global list of # user-defined tools # def ctor(parent): list = [] obj = snapshot_tool() list.append(obj) return list Page 541 HOW TO PRODUCE CUSTOMIZED ACCESS TO TOOLS & FEATURES Other examples The example source code shown here is included in the $CEI_HOME/ensight102/src/user_defined_ext/ examples directory, but many other examples exist. The source code to all of the built-in tools is included in the $CEI_HOME/ensight102/site_preferences/extensions/user_defined directory (perhaps most notably the QuickTools subdirectory). Other example objects are included in $CEI_HOME/ensight102/ site_preferences/extensions/user_defined/Tools/QuickTools/Examples. There are a number of user-defined menu examples included as well. While these may not be tools, the extension mechanisms for both tools and menus share a large number of common features and techniques often work in both. There are a pair of worked tools examples located in the user-defined tool Advanced Usage that demonstrate the ability of all userdefined extensions to be able to create object hierarchies and to include multiple objects inside of a single Python module. To get the most out of this mechanism, menu developers are encouraged to utilize Python scripts and convert command language scripts into Python using the provided tools. The Python interface is documented in the Interface manual Python EnSight module interface. SEE ALSO Command Language Manual EnSight Interface Manual Produce Customized Pop-Up Menus Page 542 HOW TO SETUP FOR PARALLEL COMPUTATION Setup For Parallel Computation INTRODUCTION Ensight supports shared-memory parallel computation via POSIX threads on all of our supported platforms. BASIC OPERATION Configuration Each executable of EnSight can be configured individually to control the number of threads used. The following environment variables are used to specify the maximum number of threads that the executable can use for computation. ENSIGHT10_MAX_THREADS The maximum number of threads to use for each EnSight server. Threads are used to accelerate the computation of streamlines, clips, isosurfaces, and other compute-intensive operations. ENSIGHT10_MAX_CTHREADS The maximum number of threads to use for each EnSight client. Threads in the client are used to accelerate sorting of transparent surfaces. ENSIGHT10_MAX_SOSTHREADS The maximum number of threads to use on the server of server in order to start up server processes in parallel rather than serially. OTHER NOTES The number of threads is limited to 2 (per client or server) with a Lite license and 8 (per client or server) with a Standard license, while the upper limit for an HPC (formerly Gold) license is 128. EnSight, by default, uses threading according to the license and the number of processors available and will echo this information out to the console at startup. .... Detected 2 CPU(s) ensight102.client using 2 threads. .... Detected 2 CPU(s) ensight102.server using 2 threads. When manually setting these parameters it is a good idea to take into account the number of processors on the system. In general, you will not see benefit from setting the parameters higher than the number of total processors. Because the server, server-of-servers and client operate in a pipelined fashion, it is not necessary to limit one in order to apply more threads to another. Compute intensive server operations that make use of shared memory parallel computations include isosurface, clipping, and particle trace computations as well as most calculator functions. Client threaded operations include transparency resort and display list creation. Page 543 HOW TO SETUP FOR PARALLEL RENDERING Setup For Parallel Rendering INTRODUCTION EnSight Gold now supports general parallel rendering for increased performance, increased display resolution, and arbitrary screen orientations. The configuration file format and several examples are described in the User Manual. Just click the link below to see this information. SEE ALSO User Manual: Remote Display and Parallel Compositing Page 544 QUICK ICON REFERENCE Feature Icon Bar Tools Icon Bar Part Quick Action Annotate Legend Quick Action Annotate Dial/Gauge Quick Action Annotate Line Quick Action Annotate Logo Quick Action Annotate Shape Quick Action Annotate Arrow Quick Action Plotters Quick Action Query (curve) Quick Action Page 545 QUICK ICON REFERENCE Viewport Quick Action Frames Quick Action Page 546

Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.6
Linearized                      : Yes
Language                        : en
XMP Toolkit                     : Adobe XMP Core 5.2-c001 63.139439, 2010/10/03-12:08:50
Creator Tool                    : FrameMaker 10.0.2
Modify Date                     : 2017:11:09 15:48:26-05:00
Create Date                     : 2017:11:09 15:45:33Z
Metadata Date                   : 2017:11:09 15:48:26-05:00
Format                          : application/pdf
Title                           : HowTo.book
Creator                         : ensight
Producer                        : Acrobat Elements 9.0.0 (Windows)
Document ID                     : uuid:06c69679-91b3-48ba-914b-ba011a020672
Instance ID                     : uuid:ce1903fc-03b8-4279-ae62-507e4793ed02
Page Mode                       : UseOutlines
Page Count                      : 546
Author                          : ensight
EXIF Metadata provided by EXIF.tools

Navigation menu