New Features in Trelis 14.0

Expand All Features | Collapse All Features

Select a feature below to expand the description.


Improved Boundary Layer Meshing

Trelis 14.0 adds boundary layer meshing for CFD to the list of supported features. Boundary layer meshing is best accessed via the GUI.

Settings Panel

Figure 1 shows the Settings panel.

First row(a) -- the height of the first layer in the boundary layer
Growth Factor(b/a) -- the factor by which each layer grows
Number of Layers -- the number of layers that make up a boundary layer
Internal Continuity -- continuity flag for boundary layers. If on, all intersections are a side type.

Association Panel

Figure 2 shows the Association panel.

For 2d boundary layers, a curve/surface pair is given to create a boundary layer starting from a curve and growing out on the given surface.

For 3d boundary layers, a surface/volume pair is given to create a boundary layer starting from a surface and growing out on the given volume.

Intersection Types Panel

Figure 3 shows the Intersections Types panel.

In some cases, the user may want to adjust the intersection types. This could be because the automatic intersection type is not desired, or because it is not workable due to ambiguity.

The four intersection types are:

  • end - suitable for angles between 0 and 135 degrees.
  • side - suitable for angles between 135 and 225
  • corner - suitable for angles between 225 and 315
  • reversal - suitable for angles 315 to 360

These intersection types may be set on a vertex/surface basis and on a curve/volume basis.

Current Limitations

Not all combinations of intersection types and topology are supported for 3D cases. An end, corner, or reversal may not span multiple curves in a single volume. A possible workaround is to composite the curves to make a single curve.

Not all meshing schemes may be used in combination with boundary layers. In cases where it is not supported, the boundary layer will be ignored in mesh generation. It is supported with the following schemes:

  • trimesh
  • pave
  • map
  • submap
  • sweep
  • tetmesh
CFD Boundary Conditions

An important step in CFD is setting up internal and/or external boundary conditions. Trelis CFD allows you to apply common CFD boundary conditions, such as walls, inlet/outlet pressure, velocity, fans, and more.

Global Element and Node IDs

New to Trelis 14.0 is full support for the Element and Node ID Maps in the Exodus file format. This means that for the first time Trelis u sers will be able to track nodes and elements through the entire analysis process using a single consistent set of IDs.

In version 14.0 when either an element or an element's owning geometry is placed into an element block, the element is assigned an additional ID called the Global Element ID. Global Element IDs are exported to the Genesis/Exodus file as the Exodus Global Element ID.

A new set of commands: "draw element ", "locate element ", "list element ", etc., has been added to allow the user to to identify an element by its Global ID. Global Element IDs are also visible in the Properties Page in the GUI. As in previous Trelis versions, when an element is created it is still given a hex id, tet id, face id, tri id, etc.

Paver Improvement

The Paving algorithm has been improved to remove small edges in cases where two 3-valent nodes are close together in the mesh. This can be especially helpful when having small edges in the mesh would drive up analysis run-times. An example of the improvements is shown in the following figures.

Pave 13.2Pave 14.0

Fix for Random Dense Mesh in Skeleton Sizing

A new option facet_extract_ang has been added to skeleton sizing command to control the faceted representation of NURBS model. Increasing this angle might generate invalid facets at curved regions. Decreasing this angle might create too many facets in curved regions, thus slowing down the skeleton sizing. By default (i.e. time_accuracy_level = 2) facet angle of 10 degree has been set, which seem to work reasonably in most cases. On complex model with high curvature region, it is recommended to use lower angle if you see random dense meshes.

Skeleton sizing on surfaces:

Surface Sizing Function Skeleton
{[scale <1 to 10 = 7>] [time_accuracy_level <1 to 3 = 2>]
[min_depth <3 to 8 = 5>] [max_depth <4 to 9 = 7>] [facet_extract_ang <1 to 30 = 10>]
[min_num_layers_2d < 1 to N = 1>] [min_num_layers_1d < 1 to N = 1>]
[max_span_ang_surf <5.0 to 75.0 = 45.0 degrees>]
[max_span_ang_curve <5.0 to 75.0 = 45.0 degrees>]
[min_size ] [max_size ] [max_gradient ]}

Skeleton sizing on volumes:

Volume Sizing Function Skeleton
{[scale <1 to 10 = 7>] [time_accuracy_level <1 to 3 = 2>]
[min_depth <3 to 8 = 5>] [max_depth <4 to 9 = 7>] [facet_extract_ang <1 to 30 = 10>]
[min_num_layers_3d < 1 to N = 1>] [min_num_layers_2d < 1 to N = 1>]
[min_num_layers_1d < 1 to N = 1>]
[max_span_ang_surf <5.0 to 75.0 = 45.0 degrees>]
[max_span_ang_curve <5.0 to 75.0 = 45.0 degrees>]
[min_size ] [max_size ] [max_gradient ]}

Refine Parallel

Refine parallel command now creates groups to visualize the association between mesh entities (edge, tri, and quads ) and geometric entities (curves & surfaces). There are three types of groups that exist for each mesh entity type edge, tri, and quad. First group contains unique 1-1 map between mesh entity and geometric entity. Note that issuing "Debug 212" command before calling the refine parallel command, will create separate group for each geometric entity containing unique mesh entities. Next group contains mesh entities that point to multiple geometric entities. And the final group contains mesh entities not associated with any geometric entity.

Refine Parallel [Fileroot <'root filename'>] [Overwrite] [No_geom] [No_execute] [Processors <int>] [Numsplit <int>] [Version <'Sierra version'>]

Regular Triangle Refinement Setting

The default behavior of triangle refinement attempts to maximize element quality using the basic one-to-four template. This can sometimes result in an irregular pattern, where one or more edges are swapped. To enforce regularity of the triangle refinement pattern, regardless of quality, the folowing setting may be used.

Set Triangle Refine Regular {on|OFF}

New Skinning Options

Two options were added to the skinning command (command syntax shown below). The Individual keyword tells Trelis to skin Blocks or Volumes one by one independently of each other, even if they share merged surfaces. The omake keyword tells Trelis to not create any kind of grouping of the mesh faces resulting from the skinning operation.

Skin {Block|Volume} <range> [Individual] [Nomake]

Skin {Hex|Tet|Block|Volume} <range> [Nomake]


ACIS Version 22.2

Trelis 14.0 contains an upgraded version of ACIS: version 22.2. This new version of ACIS contains various improvements and fixes. As with any upgrade to the ACIS solid modeling kernel there is the potential for minor geometry id changes in Trelis when compared to previous ACIS versions.

Uniting Meshed Volumes

Trelis 14.0 contains a new capability for uniting meshed volumes. This allows the user to decompose the geometry for meshing purposes and then reunite it after it is meshed. One of the big benefits of doing this is that the user can then smooth the mesh without worrying about the artificial boundaries that were introduced when decomposing the volume for meshing.

To use the new capability use the "include_mesh" option in the Unite command:

Unite [Volume|BODY] <id_range> [With [Volume|BODY] <id_range>] [include_mesh]

Webcutting with Cones

A new webcutting options has been added to perform webcuts with conical surfaces. The conical surface is defined by two radii at two locations, where the locations also define the axis of the cone.

To use this option, select With Cone from the Webcut drop-down menu.

Graphics, Utilities, etc.

Draw Block Thickness

New options have been added to the 'draw block' command, allowing users to visualize element block thickness on SHELL and TRISHELL type element blocks. The user can visualize thickness by color, where each block is drawn in a specific color according to thickness, with a corresponding color bar. Or blocks can be drawn with their specified thickness, so they visually have a thickness. This thickness can also be scaled in the draw command. Additionally these SHELL and TRISHELL element blocks can draw with their normals, allowing orientation to be verified.

Draw Block [thickness [offset [scale ]|include_normal]] [Color ] [add]

Draw Locations, Lines, and Polygons

In some cases it may be useful to simply draw a location, line or polygon to the screen to help visualize some aspect of the model. Locations, lines and polygons are not geometry or mesh entities and are only visible until a refresh or display command is issued. Multiple draw commands can be buffered using the no_flush option on each draw command in the series, followed by a graphics flush command.

Draw Location {options}... [color ][no_flush]

Draw Line Location {options} Location {options} ... [color ][no_flush]

Draw Polygon Location {options} Location {options} Location {options} ... [color ][no_flush]


Renumber Command

This command changes global element instead of local id used in each element type. There is a unique global element id for all element types such as hex, tet, quad, tri, etc. Any valid global element id range specification can be used to specify the source ids. There is no requirement that the ids being renumbered are consecutively numbered. The new id numbers will be consecutive beginning at the specified start id. Note that command will swap the element ids if there exists an element that falls within the resultant destination range that starts from start_id.

Renumber {Element} <id_range> Start_id <id>

Block Attributes

To assign more attributes than the number of default attributes use the command below. Trelis will store up to 20 attributes per block.

Block <id_range> Attribute Count <1-20>

Once this command has been executed, individual attributes may be set using the following command:

Block <id_range> Attribute <value>

New APREPRO Functions

NumTypeInGroup("group_name", "entity_type")

This function returns the number of entities of type "entity_type" in group "group_name". Acceptable entity types include: "body", "volume", "surface", "curve", "vertex", "node", "edge", "quad", "face", "tri", "hex", "tet", "wedge", or "pyramid".

GroupMemberId("group_name", "entity_type", index)

This function returns the ID of the entity of type "entity_type" in the group with name "group_name" at the specified index. If the group contains multiple entity types the index will only be relevant for the entity type specified and will behave as if the group only contained that entity type. Acceptable entity types include: "body", "volume", "surface", "curve", "vertex", "node", "edge", "quad", "face", "tri", "hex", "tet", "wedge", or "pyramid".

An example of how these two functions would be used together to loop through all of the surfaces in a group is shown below.

# {_num_surfs = NumTypeInGroup("some_group", "surface")}

# {_cntr=0}

# {Loop(_num_surfs)}

# {_surf_id = GroupMemberId("some_group", "surface", _cntr)}

draw surface {_surf_id}

# {_cntr++}

# {EndLoop}

Fixes & Enhancements

Trelis 14.0.3 Release Notes
Message: Fixed the ITEM export page to bring up the export dialog.
Message: Fixed ITEM when looking for forced sweep solutions. A potentially empty vector was being dereferenced.
Message: Fixed ITEM when a user attempted to access the mesh quality on a volume that has not been meshed.
Message: Fix for crash when using Trelis FEA. If a user just had Trelis FEA (as opposed to Trelis CFD or Trelis Pro), the program would crash on startup due to the boundary layer index being out of range in DisplayInteractTool. Modified DisplayInteractTool to check for TrelisCFD before trying to do anything with boundary layers.
Message: Fix for command: Create {Body|Volume} Surface [HEAL|noheal] [keep] [sheet]. When 'sheet' option is specified and surfaces form a closed-shell, we force it to be a closed-shell with zero volume.
Message: If a user created a custom button with no journal commands, Trelis would crash when the user pressed the custom button.
Message: Modified how the default geometry engine is saved in the settings file. Changed so that the geometry engine will only be saved in the settings file if the change was made through the options dialog. So if you change the engine from the command line by doing something like "set geom engine occ", it will still start with the default engine as specified in the options dialog (acis or facets) the next time you run Trelis.
Message: Fixed crash when a mesh preview is done on a point curve before actual meshing.
Message: Bug fix for the Geom->Volume->Modify panel when doing reset. Anytime after opening the volume modify panel, if a user input the command 'reset', it would journal as 'volume'. Modified the panel implementation to avoid the reentrancy problem.
Message: Improved Patran import functionality. Made changes to read in material data. Also fixed a bug where the blocks were being imported incorrectly. Instead of always importing just one block with an id of 0 (which is invalid anyway), it now reads in the correct number of blocks with appropriate IDs.
Message: Fixed additional memory problem with the GUI and graphics. Fixed an additional memory problem by the GUI and graphics with selected mesh entities that have been deleted during an operation.
Message: Enable undo by default. When a user first runs Trelis (or a new settings file is created), undo will be enabled by default. Users may still disable it, and Trelis will remember that setting next time it is run. Note that this will affect GUI testing too.
Message: Fixed the Create Arc preview so that the previewed arc is displayed with the correct orientation.
Message: Fixed the preview button for Geom->Curve->Create arc or circle so that the '3 Vertices', 'Vertex Center Point', and 'Curve IDs' options display a preview instead of creating the actual curve. Also added the Preview option to their help strings so that users know preview is an option.
Message: Fixed pick widget types in the volume modify command panel.
Message: Fixed the command panels so that focus doesn't jump from the command line to a pick widget after doing the 'reset' command.
Message: Fixed the GeometryRepairTool Heal shortcut button. The heal button at the bottom of this power tool now opens the correct command panel (Volume Heal).
Message: Modify how groups are created in the GUI. Changed the Group Manage command panel to only deal with group names. Also modified group creation in the tree so that when groups are created, the command is journaled. Groups created in the tree are also given the default name "Group_#" where # is the id number of the group, so that there are no spaces in the group name. This allows users to use the group name in commands without quotes.
Message: Bug fix for the volume and surface mesh command panels. Modified the way the mesh command panel obtains ids from Trelis. Previously, it tried to get the id of whatever was selected in the graphics window, which led to a crash bug. Now it uses the ids entered into the pick widget.
Message: Changed the echo command string when journaling is off. When journaling is turned of, the echo command string is now "Finished Command:..." instead of "Journaled Command:...".
Message: Added a warning to the surface mesh panel. If a user tries to do the advanced options with the map or submap schemes on the surface mesh panel, it will give a warning on the panel when a user tries to do more than one surface at a time.
Message: Added topology checks to some command panels. Add topology checks to:
  • Blocks->Manage
  • Sidesets->Manage
  • Nodesets->Manage
  • Mesh->Curve->Quality
  • Mesh->Vertex->Quality
Message: Fixed topology checks for blocks and sidesets. If you created a block or sideset using a volume or surface, the topology checks for model edge, coincident nodes, coincident quads, and coincident tris would fail with an error saying an index was out of bounds. This was because the check was trying to get list of element (or faces or tris) incorrectly. Changed how the functions get these lists, which fixed the problem.
Message: Modified the surface submap and map advanced options. Added a checkbox to display the vertex types when using the advanced options on the surface map and submap panels. Changed the reset button to reset the surface.
Message: Removed unsupported mesh quality checks from command panels. Removed the following topology checks from the command panels:
  • Model Edge Check. Removed from Mesh->Curve, Mesh->Edge, and Exodus->Nodeset.
  • Topology Check. Removed from Mesh->Edge.
  • Coincident Quad Check. Removed from Mesh->Tet, Tri, Edge, Node, and Exodus->Nodeset.
  • Coincident Tri Check. Removed from Mesh->Hex, Quad, Edge, Node, and Exodus->Nodeset.
Message: Modified help strings. Modified the help strings for quality check topology, topology check coincident, and topology check model edge to more accurately reflect which types (group, volume, block, hex, etc.) are supported for these commands.
Message: Modified Acis import dialog to import free surfaces as sheet bodies. The modified dialog will now import free surfaces as sheet bodies by default. However, the user can uncheck this option in the dialog and import a free surface if they wish.
Message: Added a body picker to the Acis export dialog.
Message: Changed the Patran file type to list .neu instead of .ntr. This change mostly affects the export dialog.
Message: Improve error reporting for HASP problems or license problems.
Message: Fixed disappearing labels when changing mesh schemes.
Message: Fixed desktop shortcut on Windows.
Message: Fixed EMS generated file attributes on Linux runtime installer so they are sensible for end users.
Message: Update RTEs. This also adds support for Windows 8.
Message: Fixes for building 32 bit RPM/Debian packages from a 64 bit machine.
Message: Update to include fully functional hasp_update tool.
Message: Modified the power tools GUI so that it starts on the navigation tree.
Message: Update HASP runtime for Linux that includes bug fixes from SafeNet to work on recent Linux distrubutions.
Message: Fixed handling of empty lines in a journal document.
Message: Fixed version numbers in the packages.
Message: Fixed continuation behavior in command window for python.
Message: Revert "Adding checkbox to propagate volume and surface sizing to curves"
Message: Modify how size averaging is done to be more compatible with traditional sizing behavior in Trelis.
  • An entity now reports a NOT_SET size instead of a CALCULATED size by default. Even with a NOT_SET size, one can still ask for a size, in which case an autosized number will be returned.
  • If an entity has no size set on it, it still gets a size by averaging the parent sizes. The difference now is that instead of averaging all parent sizes, we now consider the firmness of the parent sizes.
  • If all parent sizes are NOT_SET, they are all averaged.
  • If parent sizes are a mixture of NOT_SET, CALCULATED and USER_SET, we average only the CALCULATED and USER_SET sizes.

For example, one can pick a surface in a large model, set a size on it, and mesh the one surface, and the set will be respected 100%.
Message: It is no longer possible to select a deleted node.
Message: Fixed coloring issues when using the draw command with sidesets, nodesets, and boundary conditions. Previously the color option was ignored, and the persistent color was used instead.
Message: Fixed Auto-heal rebuild fails on merge.
Message: Fixed imprint with zero length curve that caused crash.
Message: Fixed saving of tris in sidesets in a cub file.
Message: Fixed inconsistency showing auto calculated sizes in the property page.
Message: Remove option added to the block/sideset/nodeset name command, and the block/sideset/nodeset description command. Previously there was no way to remove a name the user had assigned.
Message: Fixed Volume visibility off commands didn't work after a webcut or boolean operations.
Message: Fixed performance problem when reading STEP files, or any file where there are many names. RefEntityName was storing names in a SDLList, and any lookup potentially meant scanning the entire list. This also speeds up downstream operations where name attributes are being propagated, such as merging.
Message: Fixed crash on Windows when calling CubitFileUtil::path_exists with an empty string.
Message: Fixed orientation of CubitFaces when importing sidesets.
Message: Fixed labels drawn wrong with multiple entity types.
Message: Fixed hex selection when both node and hex selection filter is active.
Message: Fixed reverse bias on a curve with curve not meshed.