Release Notes for Coreform Cubit 2024.3
Coreform is pleased to announce Coreform Cubit 2024.3, featuring faster performance on critical commands, an improved Python interface, and numerous feature enhancements and bugfixes. Additionally, the documentation of the DAGMC neutronics workflow supported by Coreform Cubit is significantly improved. (Download Coreform Cubit here.)
Released: 1 January 0001
Table of Contents
Geometry
2x – 10x faster imprint performance
The imprint and merge functionality is one of Coreform Cubit’s most-used features, as it allows for the creation of conformal meshes across volumes. In this release, we have significantly improved the speed of the imprint and merge workflow by replacing multiple O(n^2) operations with O(n) operations (n being the number of bodies), yielding speed-ups between 2x and 10x on several benchmarks, such as those shown below. Actual speed improvements will vary depending on the number and complexity of bodies being imprinted.
Improved machine learning geometry preparation capabilities
Enhanced reduce bolt patch command
The reduce bolt patch command aids in the structural dynamics idealization of fasteners for simulation. It converts fasteners into circular patches and corresponding sidesets centered on the bolt axis. In the 2024.3 release of Coreform Cubit, the command was enhanced on several fronts including hole specification, explicit surface identification, radius factor, surface patch naming, incremental ID with start ID, and robustness improvements.
- Hole Specification: You can now specify hole surfaces if a bolt is not present.
- Explicit Surface Identification: If Coreform Cubit cannot auto-detect contact surfaces, you can specify them manually.
- Radius Factor: New option to set the radius as a factor multiplied by the bolt shaft radius, or the hole radius if a bolt is not present.
- Surface Patch Naming: The resulting circular surface patches can be named for easier referencing in later scripts or journal commands.
- Incremental ID with Start ID: The increment ID feature now allows a separate starting ID, enabling the same patch to be added to multiple sidesets.
- Robustness Improvements: Enhancements to handle cases where up to three volumes are fastened by the same fastener.
For more information see: Reduce Bolt Patch
J2G Bolt reduction more robust
Several enhancements have been added to make J2G bolt reduction more robust, including:
- Handling through-holes in the lower bolt hole volume (previously the lower hole had to be a blind hole)
- Curves of bolt holes can splines (previously curves could only be arcs)
- Bolt hole loops can now have multiple curves (previously loops could only contain one curve)
For more information see: Reduce Bolt Spider
Improved hole feature identification
Hole feature recognition is improved to find more cases such as the one illustrated in this image. More accurate identification will assist in rapidly finding holes and removing them.
For more information see: Geometry Power Tool > Traits
Validate command accepts SGM geometry
Geometry that has been imported to Coreform Cubit with the SGM geometry libararies can now be checked using the validate command:
validate {body|volume|surface|curve|vertex|group} <id_range>
This is the same command used for checking ACIS geometry. Any errors found validating the geometry will be printed to the command window.
Remove surface consistency
The remove surface
command now gives consistent results when the connected_sets
options is used. Previously, curves resulting from the remove operation would have inconsistent IDs. Now, if a journal file containing this command is replayed, resulting IDs will be consistent.
For more information see: Removing Surfaces
Meshing
New Mesh Intersection Removal
Coreform Cubit now has the ability to reposition nodes of 3D elements to remove intersection. Where intersecting elements have nodes on a volume boundary (vertices, curves, and surfaces), intersection removal moves those nodes slightly off geometry, along surface normals, to remove intersection. The capability is only meant for slight intersection (less than 50% of element volumes), as removing large intersection can significantly compromises element quality. The detail option displays the ten nodes most moved, giving the user an idea of the maximum movement.
Before (left) and after (right) mesh intersection removal.
Mesh Intersection Detection Improvements
Performance improvements have been to the mesh intersection detection. On large meshes (2 million elements), users can see up to a 4X speed improvement. Additionally, bugs have been fixed in the routine, allowing for more consistent and accurate results.
For more information see: Finding Intersecting Mesh
Node equivalencing defect corrected
When equivalencing a node on geometry with a node not on geometry, elements were incorrectly deleted. A correction was made to preserve the elements during the equivalencing operation.
For more information see: Equivalence Node
Default sizing function adjustment for curves
The default sizing function for curves when triangle meshing gives better size transition along curves while taking into account sizing on the adjacent surfaces. The following image illustrates an example where a spherical surface is given a small size and 2 flat surfaces are given larger sizes. With the improved sizing function, the straight curve will have size transitions to match adjacent surfaces.
Corrected sizing on straight edge shown on the right.
New surface proximity option for triangle meshing
Mesh refinement on thin surfaces while triangle meshing is now possible with a new surface proximity option. Also available is a ratio
option to scale mesh sizes after proximity calculations. The image below illustrates a mesh without surface proximity enabled, and another mesh with surface proximity enabled and a ratio of 2. In both cases, the constraining geometry is highlighted.
Left: triangle mesh without surface proximity. Right: triangle mesh with surface proximity.
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
Other improvements
Automated transfer of boundary conditions accelerates design workflows
The new capability shown in the below figure automates the transfer of sidesets and nodesets from the source mesh (e.g. design domain model) to the target mesh (e.g. topology optimized shape). Transfer of sidesets and nodesets was a major user-intensive, error-prone, bottleneck in the topology optimization design workflow. Users were required to go through the painful step of manually selecting elements to define equivalent sidesets on the topology optimized shape. The command given below streamlines running physics codes on the topology optimized shapes with model attribution.
transfer sideset onto {tri |face |tet |hex } [tolerance ] [log] transfer nodeset onto {tri |face |tet |hex } [tolerance ]
Improved DAGMC documentation
Direct Accelerated Geometry Monte Carlo (DAGMC) is a software package that allows users to perform Monte Carlo radiation transport directly on CAD models. The DAGMC community previously developed a Coreform Cubit plugin, which was integrated into Coreform Cubit in 2023.11. In connection with the release of Coreform Cubit 2024.3, Coreform has collaborated with the DAGMC developers to improve the DAGMC documentation. This documentation is available here: DAGMC documentation.
Ability to aggregate machine learning classification training data
User-defined/created classification data can be merged into Coreform Cubit’s existing data with the command:
classify aggregate [model category]
For more information see: Part Classification with Machine Learning
Support for Windows 11
Coreform Cubit is now tested and supported for Windows 11
Defects Fixed in Coreform Cubit 2024.3
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. |