Release Notes for Coreform Cubit 2022.4
Coreform is pleased to announce the release of Coreform Cubit 2022.4, which includes an updated geometry kernel, improved meshing and geometry features, and expanded Python interface functionality. (Download Coreform Cubit here.)
Released: 14 April 2022
Table of Contents
U-splines
Coreform Cubit now supports U-spline construction on volumes meshed with the following mesh schemes:
- Map
- SubMap
- Sweep
- Sphere
- Polyhedron
- TetPrimitive
Graphical User Interface
The right click menu now provides an option to select entities that share the same name. It will select entities that have the same prefix up to the “@” character.
Select chamfer chain
When selecting a chamfer surface, the ‘select chamfer chain’ option is available in the right-click context menu.
Meshing
New Mass Increase Ratio metric added to Cubit
The Mass Increase Ratio metric is based on the timestep metric and can be used as a guide to determine how much an element’s mass can be scaled during analysis, to typically increase timestep. Users specify a minimum ‘target timestep’ and then use this metric to see how much an element’s mass will be scaled by to meet the specified timestep. Available for use on tets and hexes.
Geometry-Aware Spider Blocks
If geometry (surface|curve|vertex) is referenced when creating spider blocks with the command
[Vertex <id> | Node <id>] Spider {Surface|Curve|Vertex|Face|Tri|Node} <range> [preview][Element Type{ bar | bar2 | bar3 | BEAM | beam2 | beam3 | truss | truss2 | truss3 }]
the spider block is linked to that geometry, allowing the spider to update/regenerate the BAR elements if the mesh on the geometry is delete, remeshed, or translated.
Python API
Improved Python interface
A single script file can now support both Python statements and Coreform Cubit commands. Additionally, the script windows in the user interface are consolidated into one, and the console version of Coreform Cubit now supports Python. Batch processing with scripts can now be done using Python syntax, Coreform Cubit syntax, or both. The command window in Coreform Cubit can be switched between a Python or Coreform Cubit mode either by pushing a GUI button, or by issuing #!python
or #!cubit
statements. Using the console version of Coreform Cubit is now recommended when running scripts in non-interactive batch processes. The following image illustrates the new Command window containing both Python and Coreform Cubit syntax.
For more information see: Command Line Workspace
New Python API for hole, chamfer, blend feature identification
Finding hole, chamfer and blend features is now possible using a Python script. The new APIs are: get_surface_hole_collections
, get_chamfer_chain_collections
, get_blend_chain_collections
. Each of these APIs will accept a radius or thickness threshold value. These functions may be useful if wanting to find features and remove them in a script.
For more information see: Python API
Geometry
ACIS kernel updated to Version 2021.1.0.1
The ACIS geometry kernel has been updated to Version 2021.1.0.1.
Note: Changes to the ACIS kernel can result in changes in entity IDs, which may break journal files that rely on entity IDs. For mission-critical applications, we encourage users to either:
- use IDless journal files, or
- use the Python API to create ID-less Python scripts.
Sculpt
New Sculpt options
stitch_parallel
option combines parallel files when no Nemesis data is includedmatch_sidesets_nodeset
to more precisely define boundary between sides when using ‘match_sidesets’ option.material_name
,sideset_name
, andnodeset_name
added to define names on materials, sidesets, and nodesets respectively.sideset
andnodeset
to allow for user-defined sidesets and nodesets based on xyz bounding box boundaries.large_exodus
to generate output Exodus file(s) to allow IDs greater than 2^31 (2.14 billion).input_mesh
option under the gen_sidesets option. Used with theinput_mesh
option where an Exodus file is used as the base grid. Only sidesets and nodesets defined in the input Exodus mesh are transferred to the output mesh.
Graphics, Utilities, etc.
Enhancements to free entity selection
The ability to select free surfaces (sheet bodies) has been added to the command
[surface <id_list>] [curve <id_list>] [vertex <id_list>] [add|remove]
Added support for Corvid Velodyne files
Cubit now supports exporting files for use in Corvid Velodyne, via the command
export velodyne '<filename>' [overwrite]
New CubitInterface functions
CubitInterface is Cubit’s Python module, which provides extensive capability for querying and modifying data in Cubit. The following functions were added to CubitInterface for version 2022.4.
Function Name | Description |
---|---|
get_total_bounding_box |
Get the bounding box for a list of entities. |
gather_surfaces_by_orientation |
Gathers connected surfaces to those specified, that use shared curves in an opposite sense. |
get_overlapping_surfaces_bodies |
Returns a list of lists of overlapping surfaces. First surface in each list overlaps with all others in that list. |
get_chamfer_surfaces |
Get the list of chamfer surfaces for a list of volumes |
get_chamfer_chains |
Returns the chamfer chains for a surface |
get_blend_chain_collections |
Returns the collections of surfaces that comprise blend chains in the specified volumes. Filter by radius threshold |
get_chamfer_chain_collections |
Returns the collections of surfaces that comprise chamfers in the specified volumes. Filter by thickness of chamfer |
get_overlapping_curves |
For every occurance of two overlapping curves, two curve IDs are returned. |
get_overlapping_surfaces_surface |
Get the list of overlapping surfaces for a single surface |
get_volume_gaps |
For every occurance of a gap between volumes, two surfaces IDs are returned. |
get_coincident_entity_pairs |
Get the list of coincident vertex-vertex, vertex-curve, and vertex-surface pairs and distances from a list of volumes |
get_nearby_volumes_volume |
Get the list of nearby volumes for a single volume within a specified distance |
get_blunt_tangency_depth |
get default depth value for blunt tangency operation |
is_chamfer_surface |
Return whether a given surface is a chamfer |
measure_between_entities |
Returns the distance between two specified entities |
get_tetmesh_growth_factor get_tetmesh_parallel get_tetmesh_num_anisotropic_layers get_tetmesh_optimization_level get_tetmesh_insert_mid_nodes get_tetmesh_optimize_mid_nodes get_tetmesh_optimize_overconstrained_tets get_tetmesh_optimize_overconstrained_edges get_tetmesh_minimize_slivers get_tetmesh_minimize_interior_points get_tetmesh_relax_constraints |
Retrieve the current tetmesh global settings (Meshgems) |
get_trimesh_tar get_min_size get_trimesh_geometry_sizing get_trimesh_num_layers get_trimesh_split_edges get_trimesh_tiny_length get_trimesh_ridge_angle |
Retrieve the current trimesh global settings (Meshgems) |
get_all_ids_from_name |
Get all IDs of a geometry type with the prefix given by string. |
get_hole_surfaces |
Given a surface, returns all adjacent surface defining a hole. |
get_surface_hole_collections |
Given a volume(s), returns the collections of surfaces that define holes. |
is_hole_surface |
Return whether the surface is part of a hole. |
best_edge_to_collapse_interior_node |
Given a node owned by a surface, returns the id of the best edge to collapse, so that the node is no longer on the surface. |
get_continuous_curves |
Gets a list of continuous curves that have tangents with 180 degrees +/- and defined tolerance. |
get_n_largest_distances_between_meshes |
Computes the ‘n’ largest distance from the nodes of the first entity to the elements of the second |