Release Notes for Coreform Cubit 2022.11
Coreform Cubit 2022.11 features a number of enhancements to core workflows, including meshing, geometry modification, and import/export. Additionally, numerous customer-reported bugs were fixed. Coreform Cubit 2022.11 is compatible with Sandia Cubit 16.06. (Download Coreform Cubit here.)
Released: 21 November 2022
Table of Contents
Support for Python 2 has been deprecated
Updates to the build uspline
command
Graphical User Interface
Meshing
-
- Superelement support
- Improvements to Exodus sizing
- Select blocks by element type
- Enhanced ability to obtain mesh in blocks, sidesets, and nodesets
- New option in
collapse tet
command - Syntax changes for set node constraint command
- Tetmesh Default
- Triangle remeshing
- Composite surface meshing
- Duplicate corner triangles
- Minimum edge length
- Sizing on discrete curves
- Clean discrete mesh command
- Sculpt enhancements
- Paving with small features
Geometry
Miscellaneous
Defects Fixed in Coreform Cubit 2022.11
Support for Python 2 has been deprecated
Python 2 was sunset on Jan 1, 2020 and does not even receive security bug-fixes. While Python 2 scripts will still work in Coreform Cubit 2022.11, they are no longer officially supported.
Please note: Support for Python 2 will be completely removed from Coreform Cubit by no later than January 2023. Users still using Python 2 are encouraged to update to Python 3 as soon as possible.
Updates to the build uspline command
The build uspline
command no longer supports building mutiple U-splines of different dimensions in the same command. For example,
build uspline surface 1 volume 1 as 1 2
is no longer supported, and users should instead run
build uspline surface 1 as 1
build uspline volume 1 as 2
Graphical User Interface
Model tree performance
The GUI model tree has been refactored to improve performance. The new tree is two times faster than the old tree for most change events. It is ten times faster for block, sideset, and nodeset ID changes.
Increased control of Command panel layout
When using the standard navigation mode in the command panel, the number of buttons per row can now be changed from an Options/Preferences setting. Increasing the number of buttons per row can allow more space for complex command panels where limited vertical space is available.
Meshing
Superelement support
Coreform Cubit now allows importing element blocks of type ‘superelement’ from an Exodus file. Visualization, picking, and listing of superelement blocks is supported. When visualizing superelements, they appear as a collection of nodes.
Coreform Cubit can also export superelement blocks, writing the data just as it was imported.
Improvements to Exodus sizing
Exodus sizing now has higher accuracy when computing a size from a location. It also has better performance by using an element based search tree.
Select blocks by element type
Element blocks can now be specified by element type using the command below. The type needs to be in quotes. Using ‘hex’ will get higher order hex types: ‘hex8’, ‘hex20’ etc.
block with type <element_type>
Enhanced ability to obtain mesh in blocks, sidesets, and nodesets
Mesh in blocks can be specified directly now, instead of needing to identify the geometry in the block. For example, if a block contains a volume, to get the hexes it used to be necessary to type hex in volume in block 1
. Now Coreform Cubit can get the hexes with hex in block 1
.
node|edge|element|face|tri|hex|tet|wedge|pyramid in block|sideset|nodeset <ids>
New option in collapse tet
command
The collapse tet
command has a new option [Interior]. It forces the collapse to happen on the interior of the volume, instead of on the exterior tets. It prevents the collapse command from modifying surface triangles.
Syntax changes for set node constraint command
The syntax for the set node constraint
command has been slightly modified to prevent user error. The options quality and threshold, which are only relevant to the smart
option, can now only be set when specifying the smart
option.
set node constraint [on|off|smart [tet quality NORMALIZED INRADIUS|distortion] [threshold <threshold=0.3>]]
Tetmesh Default
MeshGems MG-Tetra HPC (high performance computing) is now the default tetmesher in Coreform Cubit. Meshgems has recently been putting the bulk of their resources, development, and enhancements into this product rather than the previously-used serial version. With HPC, users can expect to generate higher-quality tet meshes and better adherence to prescribed sizes. The tetmesher may be changed back to the prior serial version using the syntax below:
[set] tetmesher hpc ON|off [threads <value=4>]
Triangle remeshing
The ability to remesh a group of triangles has been added with the command:
remesh tri <id_range> | [quality <tri_metric> [less than|greater than] <value> ...] [inflate <value>][preview]
Remesh commands are a convenient tool to bypass the mesh deletion process and can replace a localized set of deformed elements after analysis. Similar to the remesh tet
command, the new remesh tri
command generates a new triangle mesh after deleting the existing mesh described by the input list of triangles.
Composite surface meshing
The trimesh
scheme has been modified to better handle composite surfaces. If a composite surface has underlying geometric surface definitions, the actual surface definitions will be used by MeshGems hyperpatch meshing capability, allowing hidden curves of the composite to be ignored by the mesh.
Duplicate corner triangles
The triadvance
meshing scheme has been enhanced to prohibit the creation of coplanar and nearly coplanar triangle creation at sharp, knife-edge corners of surfaces. If a vertex contains two triangles sharing three nodes, or two triangles that are nearly coplanar, a simple check is done at the end of meshing to see if swapping an edge of one of the triangles will eliminate this condition, creating volume at the tip.
Minimum edge length
A new command was added to set the minimum edge length for tetmeshing. Setting the minimum edge length prevents other sizing parameters, such as curvature, from producing mesh edges that are too small. However, smaller mesh edges will still be produced if there are any geometry edges smaller than the given size.
[set] tetmesher HPC minimum edge length [<value>]
Sizing on discrete curves
Mesh sizing on curves of a discrete surface are now respected during triangle meshing.
Clean discrete mesh command
An option was added to clean the discrete geometry prior to tri-meshing. This step remeshes the underlying triangles of the discrete geometry surface to improve the representation prior to meshing with user defined sizes. This is useful if the underlying facets representing the discrete surface are not an optimal representation of the surface.
[set] trimesher clean discrete mesh on|OFF
Sculpt enhancements
Two new adapt_type
options have been added: resample
and material
. With the resample option, the input volume fraction data from microstructure file formats (input_micro
, input_cart_exo
and input_spn
) is down sampled, averaging volume fraction data across multiple cells according to the adapt_levels
set. With the material option, refinement is done in cells where the predominant volume fraction is a user specified material ID. To specify that material ID, use the new adapt_material
option. Multiple materials can be used along with an expasion distance where the material adaptivity will occur.A new geometry_and_blocks
option has been added to input_mesh_material
. with this option, the block IDs in the final mesh come from the input genesis blocks and materials from the diatom/STL file.Two new options have been added to use with the free_surface_sideset
option. The first is the new sheet wear method. This option wears a swept input mesh in layers. The second is the crack_min_element_thickness
, which is used with the sheet wear method. It defines the minimum allowed thickness of the elements resolving the side of a crack. The new input_stitch
file format allows Sculpt to read a stitch file. Stitch is a new I/O system that has been added to Sandia’s SPPARKS (Stochastic Parallel PARticle Kinetic Simulator) tool. See dump stitch
and set stitch
for more details. See also options stitch_timestep
, stitch_timestep_id
, stitch_field
, and stitch_info
that support the new input_stitch
capability.
Paving with small features
The paving scheme is more robust in cases where mesh size approaches feature size, especially at holes. Improvements have corrected the algorithm from meshing over small holes. Increased element quality is also another benefit.
Geometry
Webcut with offset surfaces
A new webcut operation has been added that allows a volume to be cut with surfaces offset from its bounding surfaces. This new feature can be used to separate the mesh of the volume boundary.
Specify surfaces by normal
Surfaces can now be specified by a normal at the surface’s center point with the command below. The tolerance is the maximum distance between the tips of the two normalized vectors: the user input vector and actual surface’s normal.
surface with normal <x> <y> <z> [tolerance <value>]
Specify surfaces by location with tolerance
A tolerance option has been added to specifying surfaces at a location. Surfaces with a centroid within tolerance to the input location will be selected.
surface at <x> <y> <z> [tolerance <value>]
STEP export now writes out names
If users have assigned names to geometry entities in Coreform Cubit, those names will be written into a STEP file upon export. Similarly, upon STEP import those names will be assigned to the entities.
Restricted stitch command
A restricted
parameter has been added to the stitch
command. It allows stitching to operate in a restricted mode, in which only the boundary edges of the sheet bodies or volumes participate in the stitch operation. This improves performance for large models.
stitch body|volume <ids> [tolerance <value>] [no_simplify] [no_tighten_gaps] [restricted]
Regularize command keep option
The regularize
command now has a keep option that allows the specified curves and vertices to survive the operation.
regularize body|group|volume|surface|curve|vertex <ids> [keep curve|vertex <ids>]
Imprint with tolerance
A new optional tolerance
parameter has been added to the volume/vertex imprint command.
imprint volume|body <range> [with] vertex <range> [keep] [tolerance <value>]
Include parsing
New options can now be used with the include
parsing keyword: similar
, cavity
, hole
, blend_chain
, chamfer_chain
, continuous
, and nearby
. The parser compares the specified entities and includes additional entities that match the criteria. For example:
draw volume 1 include nearby
select surface 10 include hole
remove surface 20 include blend_chain
Miscellaneous
New draw remove
command
Coreform Cubit has long had the ability to draw a portion of the model with the draw
command. Geometric entities could subsequently be added to the drawn portion. In this release, a new capability was added allowing for geometric entities to be removed from the partially drawn model. This simplifies the commands available when displaying only a portion of the model. Note: The new draw remove
command will not hide a part of the model in normal display mode. It only works when drawing a portion of the model.
Pyramid element support
The Abaqus exporter will now export pyramid elements, and Nastran importer will now read in pyramid elements.
OpenFOAM boundary patches
The output of boundary patches for OpenFOAM export has been fixed. It will now write out the patches with the user-assigned names. The wall boundary condition type is now used by the OpenFOAM exporter as well.
Lite mode improvements
When importing a mesh in lite mode, parsing now supports finding elements attached to nodes. For example, the following now works.
draw hex in node X
New GDF exporter
A new export command has been added to support the GDF (Geographic Data Files) format. The command syntax is:
export gdf <filename> <entity_list>|block <range> [ulen <value=1.0>] [gravity <value=9.80665>] [isx <value=0> ] [isy <value=0>] [overwrite]
New OBJ importer
Coreform Cubit is now able to import OBJ files that contain tessellation of polygonal faces.
import obj <filename> [feature_angle <value>] [surface_feature_angle <value>] [make_elements]
Importing with block names
The import mesh and import mesh geometry commands have a new block_name
option. This option allows the user to import only the mesh from the named blocks.
New CubitInterface functions
Function Name | Description |
---|---|
get_entity_color |
A replacement for CubitInterface::get_entity_color_index . |
get_volume_wedges |
Returns a list (python tuple) of the wedge ids in a volume. |
get_volume_pyramids |
Returns a list (python tuple) of the pyramid ids in a volume. |
get_sideset_edges |
Returns a list (python tuple) of the edges in the sideset. |
get_node_edges |
Returns a list (python tuple) of edge ids adjacent to the node. |
get_quality_values |
Gets the individual quality metrices for a set of elements, instead of a summary. Take advantage of Cubit’s ability to compute quality in parallel. |
get_edges_to_swap |
Given a curve defining a knife edge between two triangle meshed surfaces, find edges on the tris along the curve to swap to open up the knife edge. |
are_adjacent_curves |
Return whether two or more curves share at least one manifold vertex (common vertex is part of exactly two curves). |
snap_locations_to_geometry |
Function has been modified to allow better interoperability with Python. A tuple is now supported for the coordinates of a points and can also be seamlessly used with numpy. |
get_similar_curves |
Gets curves with the same length. |
get_similar_surfaces |
Gets surfaces with the same area and number of curves. |
get_similar_volumes |
Gets volumes with the same volume and number of faces. |
get_similar_curves |
Added tolerance option to this existing command. |
Defects Fixed in Coreform Cubit 2022.11
Ref # | Description |
---|---|
– | Fix memory errors when importing multiple lite mesh files with nodesets |
– | Removal of python tab |
– | Enable Python in cubit_server |
– | Sped up right-click ‘select chamfer chains’ |
– | Webcut with general plane case fixed |
– | Diagnose Geometry tab now correctly considers sheet bodies |
– | Prevent sliver mesh edges when fixing skew with ‘adjust boundary’ command |
– | Better sweeping with reversals |
– | Deletion of orphaned nodes |
– | Improved logic for sizing of curves when triangle meshing. The auto bias sizing function now better matches the meshgems behavior |
– | Better handling of equivalence node when lower id nodes are not owned by geometry |
– | Python version option fixed |
– | Python script execution fixes |
– | Fixed hang in skeleton sizing |
– | Add ‘target’ word in the command for sweep surface target |
– | On cub file open/import, Coreform Cubit no longer modifies locations of higher-order mid-edge nodes |
– | Fixed failure in undo because of block name collision |
– | Fixed failure to import cub file due to extraneous error |
– | Fixed holes not being completely identified |
– | Step color import now works |
– | Fixed error wherein wrong body id returned by cubit.get_last_id( “body”) |
– | Fixed Cubit material commands error occurring when Youngs Modulus >= (2^31) – 1 |
– | Added automatic creation of identically-named sidesets when named boundary conditions are created. |