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

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.