CUBIT™ 15.9 Release Notes

  1. Product Description
  2. Product Highlights
  3. Contact Information
  4. New Features
  5. Defects Fixed
  6. Documentation
  7. Contents of Release
  8. Platforms Supported

Product Description

CUBIT™ is a full-featured software toolkit for robust generation of two- and three-dimensional finite element meshes (grids) and geometry preparation. Its main goal is to reduce the time to generate meshes, particularly large hex meshes of complicated, interlocking assemblies.

Product Highlights

Meshing: CUBIT™ is a solid-modeler based preprocessor that meshes volumes and surfaces for finite element analysis. Mesh generation algorithms include quadrilateral and triangular paving, 2D and 3D mapping, hex sweeping and multi-sweeping, tet meshing, and various special purpose primitives. CUBIT™ contains many algorithms for controlling and automating much of the meshing process, such as automatic scheme selection, interval matching, sweep grouping and sweep verification, and also includes state-of-the-art smoothing algorithms.

Geometry Preparation: One of CUBIT™’s strengths is its ability to import and mesh geometry from a variety of CAD packages. CUBIT™ currently integrates the ACIS and Catia geometry kernels directly within its code base, allowing direct manipulation of the native CAD geometry format within CUBIT™. This reduces the errors and anomalies so often associated with geometry translation. CGM (Common Geometry Module) also boasts a facet-based geometry kernel developed at Sandia that can be used for remeshing or editing old mesh files or models defined by triangle facets. In addition, CUBIT™ has developed a comprehensive virtual geometry capability that permits local composites and partitions to geometry without modifying the underlying native geometry representation. The user can choose to ignore, clean-up or add features to the model allowing greater flexibility to meshing algorithms to generate better quality elements.

CUBIT™ Environment: CUBIT™ has developed both a convenient command line interface with an extensive command language as well as a polished graphical user interface environment. The GUI is based upon the cross-platform standard Qt, which allows the same look and feel on all supported platforms. Also included is a graphical environment based upon the VTK graphics standard which has been optimized for display and manipulation of finite element data and geometry. Fast, interactive manipulation of the model is a tremendous advantage for models with thousands of parts or millions of elements.

For more information on CUBIT™, including licensing arrangements and terms see the CUBIT™ website

New Features in CUBIT™ 15.9

Index of New Features

Graphical User Interface



Machine Learning

File I/O, UMR, etc.

Graphical User Interface

Enhanced reduce panel

The reduce command panel now has options for reducing springs.

Image of reduce_spring_gui
The GUI for the reduce spring command.

Enhanced geometry power tool

The geometry power tool now shows solutions for bolt and spring categories.

A new type of navigation has been added to the command panels. In order to save space for the command panel widgets, an interactive breadcrumb trail has been added to the top of the panels to replace the rows of buttons. There is a setting to change back to the button rows if desired. The new breadcrumb trail shows where you are in the command panel hierarchy. The panel below the trail shows either a command panel or a list of possible commands or categories. The following figure shows how to navigate to the “create brick” command panel in “classic” layout.

Image of breadcrumb_flow
Breadcrumb navigation workflow

New uniform mesh refinement panel

The UMR (Uniform Mesh Refinement) tool now has a command panel in CUBIT™. It sets up a run, or a sequence of runs, using the current meshed model. The UMR tool only supports tetrahedral elements at this time.

Image of umr_gui
UMR command panel

Enhanced pick widget context menu

The GUI pick widget, which is used to select entities for command panels, has been improved to better support standard cut, copy, and paste. When multiple entities are selected, the IDs displayed are compressed using the “to” syntax that can be used when typing the command in manually.


Minimum edge length

A new command was added to set the minimum edge length for tet-meshing. 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.

Image of dicrete_curve_respect

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.

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.

Image of image-4
Image of image-5


Restricted stitch command

A ‘restricted’ parameter has been added to the stitch command. It allows stitching to operate in ‘restricted’ mode, where only the boundary edges of the sheet bodies or volumes participate in the stitch operation. This improves performance for large models.

Stitch {body <ids>|volume <ids>} [tolerance <value>] [no_simplify] [no_tighten_gaps] [restricted]

New reduce spring command

The new reduce spring command has the ability to reduce a 3D spring volume to a series of curves.

Reduce {volume <ids>} spring [combine] [mesh [size {<value>}]] [keep] [block_id {<value>|Default}] [increment_block_id] [block_name {<string>|Default}] [preview]
Image of reduce_spring
Before and after spring reduction

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 <ids>|group <ids>|volume <ids>| surface <ids>|curve <ids>|vertex <ids>} [keep {curve <ids>|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

Machine Learning

New “thin” category

A new category has been added to the machine learning classification categories: thin. This new category can be used to identify thin regions of the model.

New training commands

Several new commands have been added to support machine learning categorization.

Classify {volume <ids>} [confidence][features [importance]]

This computes the current classification prediction. The ‘confidence’ option displays prediction confidence for each category. The ‘features’ and ‘importance’ options list internal values used for machine learning training along with their relative importance to classification.

Classify {volume <ids>} “<string>” [export_acis]

This command adds volume(s) to the user training data with the specified string as its category. The ‘export_acis’ option exports one ACIS file per specified volume into the user training directory.

Reclassify {volume <ids>} “<string>”

This command removes volume(s) from their existing classification and reclassifies them to the category specified by ‘string’.

Classify List

This command invokes training with all current training data. It lists accuracy and support for each category.

Classify Reset [“<string>”]

This command removes all user training data with the category specified by ‘string’.  If no ‘string’ is specified, all user training data will be removed.

Categories in extended parsing

Machine learning categories can now be used in extended parsing. The ‘with “category” ‘ syntax can be used to find entities of a category. For example:

draw volume with category “spring”

Note: this will be slow if many volumes exist since machine learning will process all volumes to determine which ones are springs.

File I/O, UMR, etc.

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

Cubit is now able to import OBJ files that contain tessellation of polygonal faces.

Import Obj <string> [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.

Exodus ID map control

The export exodus command now has an option to control whether or not the ID map is written to the exodus file. By default, the map is written out. Add the “no_ids” option to the command to prevent the map from being written.

Export [Genesis | Mesh] '<filename>' [Dimension {2|3}] [Block <id_list>] [Qualityfile] [no_ids] [Overwrite] [XML ['<xml_filename>']]

Parallel consistency in UMR

UMR (Uniform Mesh Refinement) has been improved to generate a consistent refined mesh.

New CubitInterface functions

CubitInterface is CUBIT™’s python module that provides extensive capability for querying and modifying data in CUBIT™. The following functions were added to CubitInterface for version 15.9.

Function NameDescription
get_bolt_diameterGets diameter of bolt shank
get_bolt_axisGets axis vector of bolt
get_num_volume_shellsGets the number of shells in a volume
get_ML_classification_modelsGets the available classification ML model names
get_ML_regression_modelsGets the available regression ML model names
get_ML_model_IDGets a unique ID for the given operation/model name
get_ML_model_nameGets the name for the given operation/model ID
get_similar_curvesGets curves with the same length
get_similar_surfacesGets surfaces with the same area and number of curves
get_similar_volumesGets volumes with the same volume and number of faces
get_similar_curvesAdded tolerance option to this existing command

Defects Fixed in CUBIT™ 15.9

The following items are the user-reported bugs fixed since the last release of CUBIT™. For more information contact Roshan Quadros (

Ref #Description
MESH-520Open exodus file in lite or no_geom mode
MESH-3930Fix for bug in sculpt option ‘mesh_void’
MESH-4337Cubit 15.5 and Python 3 on Mac startup issue
MESH-4495Add python “group_names_ids” to  documentation
MESH-4503Launch Error with 15.5 on Mac OS 10.14.6
MESH-4562Add support for functional selection set even with graphics disabled
MESH-4751‘Unite volume include_mesh’ changes owned entities from volumes to hexes
MESH-4773HO element type not kept during copy
MESH-5026‘set copy_block_on_geometry_copy on’ behavior incorrect
MESH-5107Fix for hang in spider command
MESH-5251Coloring spider elements by block
MESH-5290Fix difference between “cubit -h” and “cubit -help”
MESH-5319Add exodus export transformation to GUI
MESH-5346Losing printed strings with python 3
MESH-5384If no cubit.init set Cubit should have a fall back
MESH-5385Open graphics window from python script
MESH-5392Add PyCubed_User_Documentation to site-packages directory
MESH-5478Added option to remove explicit node map on output
MESH-5479Crash while meshing or interacting with graphics window
MESH-5498Fix for cubit-python enhancements broken in 15.8, alpha and beta
MESH-5500Switch between internal and external python scripts – via GUI switch
MESH-5504Easier hardcopy in both interactive and from workflows
MESH-5506Added unique_genesis_ids as a menu option
MESH-5507Open file in cubit – make the list of options the same as that from the import command
MESH-5508Click on a volume and have the block ID highlight if the volume is part of a block
MESH-5523No Cubit after module load sierra
MESH-5538Ability to import named block in import mesh command
MESH-5564Fix for crash when collapsing selected tet
MESH-5565Performance issue with right click context menu
MESH-5595Duplicate IDs in model tree – refresh event needed
MESH-5599‘Select similar’ feature requests
MESH-5609Put Coreform collapsing command button code into Cubit
MESH-5614Fix ‘find curve overlap’ slowdown
MESH-5629Nodesets getting returned with sidesets
MESH-5632Keyword names when importing SAT files
MESH-5662Bug fixes in ‘reduce bolt’ functionality
MESH-5666Python’s “quit()” function in the “clarox” executable causes an error message
MESH-5697False positive bad Euler number, invalid mesh
MESH-5716Sideset and nodeset character limit in GUI

*The defects listed above are only those user-reported issues deemed “critical” or “blocker”. For information on other known defects contact Roshan Quadros.

Documentation Updates

The CUBIT™ 15.9 online documentation may be found here. A PDF version is also available for download. The CUBIT™ GUI installation also includes the full user documentation included with the program. The user’s manual may be accessed from the Help menu.

CUBIT™ 15.9 Contents of Release

CUBIT™ Program: The installation package includes executables and libraries, packaged in tar.gz files for Linux machines. For Windows, the package is in a self-installing executable, and for Mac OS X a .dmg file is provided. Both a command line and GUI version of CUBIT™ are included with the installation package for all platforms.

Documentation: Linux, Windows and Mac versions include full online documentation. Windows also includes .chm (Windows Help File), of the complete documentation that can be run separately from CUBIT™.

Platforms Supported

CUBIT™ 15.9 supports the following Platforms:

  • Linux RedHat Enterprise 7 and 8
  • Windows 10, 8 and 7
  • macOS 10.11+

Non-Sandia Users

CUBIT™ is freely available for United States government use. For more information on licensing CUBIT™, including academic, commercial, and all other use, go to our licensing page. For current CUBIT™ users, CUBIT™ 15.9 may be downloaded from the CUBIT™ download page.

Sandia Personnel Only

CUBIT™ 15.9 may be downloaded from the CUBIT™ download page.


Download a Windows installation file and double-click to install.


Download a Mac OS X disk image file. After the disk image is opened, click and drag the CUBIT™ folder to /Applications.


Check with your local LAN administrator for instructions on how to access CUBIT™ on your local LAN. In most cases typing one of the following commands at the UNIX prompt should allow you to execute CUBIT™.  In some cases, the full path will need to be specified:

cubitThe latest released version (15.9) of CUBIT™ deployed to the LAN.
cubit -noguiThe latest released version (15.9) with just the Command Line and graphics window
cubit -nogui -nographicsThe latest released version (15.9) with just the Command Line
cubit-15.9Version 15.9 with GUI
cubit-betaThe latest beta version still in development

Contact Information


For general technical questions including download, installation and CUBIT™ technical assistance.

CUBIT™ Licensing and Passwords


CUBIT™ Support Lead

Trevor Hensley
Phone: 505-284-7756

CUBIT™ Project Lead

Roshan Quadros
Sandia National Laboratories
Computational Simulation Infrastructure (org. 1543)
Phone: 505-844-0408

Sandia National Laboratories is a multi-mission laboratory managed and operated by National Technology & Engineering Solutions of Sandia, LLC., a wholly owned subsidiary of Honeywell International, Inc., for the U.S. Department of Energy’s National Nuclear Security Administration under contract DE-NA0003525. SAND2017-6996 W