On this page:
4.10.1 Basic Group Operations
4.10.2 Groups in Graphics
4.10.3 Group Propagation
4.10.4 Propagated Groups
4.10.5 Propagated Hex Groups
4.10.6 Quality Groups
4.10.7 Seeded Mesh Groups
8.5

4.10 Groups

Groups are collections of geometry and mesh entities. Groups can contain other groups. Groups provide a powerful capability for organizing and performing operations on multiple entities with minimal input. Groups can collect entities according to various criteria, such as position, size, or whether they are meshed. Performing an operation on a group is usually the same as performing that operation on all the entities in that group.

There are several utilities in CUBIT which use groups as a means of visualizing output. These utilities are described elsewhere, but listed here for reference:

4.10.1 Basic Group Operations

4.10.1.1 Geometry Groups

The common syntax to create or modify a group is to give it a name and a collection of entities:

Group ["name"] Equals <list of entities>

The equals operation assigns the group to contain the given list. If the group already existed, its prior contents are overwritten. (Once a group is created, it can be refered to by id as well.) Here, entities can be geometry entities, mesh entities, or both. For example, the command,

group "exterior" equals surface 1 to 2, curve 3 to 5

will create the group named (names are case sensitive). Any command taking entities can also take a group: e.g., mesh exterior, list exterior, or draw exterior.

Geometry entities may specified by name as well. E.g.,

group ’interior’ add surface with name ’bill’ ’john’ ’fred’

will place the surfaces named ’bill’ ’john’ and ’fred’ in the group Interior.

Wildcards (*) can also be used with names. To add all surfaces with the substring ’bob’ in their name, use the command:

group ’interior’ equals surface with name ’*bill*’

There are a variety of operations for modifying the contents of a group, such as adding or removing entities. These can also be used to create a group from scratch by using a new name.

Group ["name" | <id>] Add <entity list>

Group ["name" | <id>] Remove <entity list>

Group ["name" | <id>] Xor <entity list>

4.10.1.2 Group Booleans

Groups may also be created from the contents of existing groups by set booleans: Group A boolean B preposition C. These operations will also overwrite the contents of existing groups. The intersect command will create a new group that contains elements common to both groups: A = B ∩ C. The unite command collects entities that exist in either group: A = B ∪ C. The subtract command collect the entities in one group but not the other: A = C \ B.

Group {<’name’>|<id>} Intersect Group <id> with Group <id>

Group {<’name’>|<id>} Unite Group <id> with Group <id>

Group {<’name’>|<id>} Subtract Group <id> from Group <id>

4.10.1.3 Group Copy and Transform

The contents of a group can be copied and transformed (e.g. moved), or simply transformed. (The group itself is not copied, only the contents.) This works only for groups of geometry entities, or groups of free mesh elements without associated geometry. Groups can collect free mesh entities in much the same way as a geometric entity. If the optional copy keyword is provided, the entities in the group will be copied first, and the copy will be transformed. Geometric and mesh groups behave differently. For geometry groups, if the group contains geometric entities that are meshed, the mesh will also be copied and transformed, unless the optional nomesh keyword is specified. You can copy a single surface of a volume, but you cannot move just it, because geometric entities cannot be transformed unless the parent entity is also. In addition, all merged partners must be contained in the group. However, any geometric entity can be copied and transformed. For mesh groups, transforming the nodes will implicitly transform the elements containing those nodes. The copy keyword is ignored if the group contains mesh entities. These types of mesh groups can only contain free mesh entities; for copying and transforming mesh associated to geometry, use a geometry group. (In the following, recall that an existing group name can always be used in place of ’Group <id>’.)

Group <id> [Copy [nomesh]] [Move <dx> <dy> <dz>]

Group <id> [Copy [nomesh]] [Move {x|y|z} <distance>...]

Group <id> [Copy [nomesh]] [Move <direction> [distance]]

Group <id> [Copy [nomesh]] [Reflect {x|y|z}]

Group <id> [Copy [nomesh]] [Reflect <x> <y> <z>]

Group <id> [Copy [nomesh]] [Rotate <angle> About {x|y|z}]

Group <id> [Copy [nomesh]] [Rotate <angle> About <x> <y> <z>]

Group <id> [Copy [nomesh]] [Rotate <angle> About Vertex <Vertex_id1> <Vertex_id2>]

Group <id> [Copy [nomesh]] [Scale <scale> | x <val> y <val> z <val>]

4.10.1.4 Deleting Groups

Groups can be deleted with the following command:

Delete Group <id range> [Propagate]

The option propagate will also delete any contained groups, recursively. That is, if group A contains group B and group B contains group C, then delete group A propagatewill delete groups A, B, and C.

4.10.1.5 Cleaning Out Groups

You can remove all of the entities in a group via the cleanout command:

Group <group_id_range> Cleanout [Geometry|Mesh] [Propagate]

By default all entities will be removed - optionally you can cleanout just geometry or mesh entities. As in delete, the propagate option will cleanout the group specified and all of its contained groups recursively.

4.10.2 Groups in Graphics

In the GUI version of Cubit, groups may be picked with the mouse.

When displaying a group containing hexes, only the outside skin of the hexes will be displayed.

4.10.3 Group Propagation

By default, if a volume or body residing in a group is split into multiple pieces during a geometry modification operation (webcut), all resulting volumes or bodies will be contained in that group.

4.10.4 Propagated Groups

Creating propagated groups is a mechanism for joining groups of elements that meet specific criteria. For hex groups it might be grouping hexes from a hex mesh using sweep-type criteria. For surface elements, it might be grouping faces or tris into sidesets based on angle criteria.

4.10.5 Propagated Hex Groups

Propagated hex groups are a way of grouping hexes from a hex mesh using sweep-type criteria. For example, creating a group containing all hexes between two specified mesh faces.

The first examples below are based on first executing these commands:

brick width 10
volume 1 size 1
mesh volume 1

4.10.5.1 Propagated Hex Group Starting on a Surface

Starting on a surface can end at a surface or can end after the number of times the user specifies.

4.10.5.1.1 Ending at a Surface

Group [’name’ | <id>] Add Hex Propagate Surface <id> Target Surface <id>

Example

group 2 add hex propagate surface 1 target surface 2

Result: Group 2 will be created containing 1000 hexes

4.10.5.1.2 Number of Times

Group [’name’ | <id>] Add Hex Propagate Surface <id> Times <number>

Example

group 2 add hex propagate surface 1 times 4

Result: Group 2 will be created containing 400 hexes

Both methods, ending at surface or number of times, can be used with the "multiple" option which will create several groups depending upon the multiple number specified.

4.10.5.1.3 Ending at a Surface with Multiple

Group [’name’ | <id>] Add Hex Propagate Surface <id> Target Surface <id> Multiple <number>

Example

group 2 add hex propagate surface 1 target surface 2 multiple 2

Result: Five groups will be created and stored with their respective ids of multiple 2, these groups will be stored in the parent group, Group 3, and Group 3 will be stored in the grand parent group, Group 2.

4.10.5.1.4 Number of Times with Multiple

Group [’name’ | <id>] Add Hex Propagate Surface <id> Times <number> Multiple <number>

Example

group 2 add hex propagate surface 1 times 10 multiple 5

Result: Two groups will be created and stored with their respective ids of multiple 5, these two groups will be stored in the parent group, Group 3, and Group 3 will be stored in the grand parent group, Group 2.

If number of times is specified and the direction is ambiguous, the surface direction or the node direction can be specified to direct the propagation. If the end surface is specified, only a node direction can be specified to direct the propagation. When specifying the node direction, the node has to be picked such that when the hexes are propagated, the picked node lies in these propagated hexes. If that node is never reached while propagating, the direction is not found and zero hexes will be included in the specified group.

The examples below, the result can be seen by executing these commands:

brick x 10
vol 1 size 1
brick width 10
body 2 move 10
volume all size 1
merge all
mesh volume all

4.10.5.1.5 Ending at Surface with Direction

Group [’name’ | <id>] Add Hex Propagate Surface <id> Times <number> Direction Node <id>

Example

group 2 add hex propagate surface 6 target surface 12 direction node 1530

Result: Group 2 will be created containing 400 hexes

The direction command and the multiple command can be combined (i.e. group 2 add propagate surface 6 times 4 multiple 2 direction node 1530)

4.10.5.1.6 Number of Times with Direction

Group [’name’ | <id>] Add Hex Propagate Surface <id> Times <number> Direction [surface <id> | node <id>]

Example

group 2 add hex propagate surface 6 times 4 direction surface 4

group 2 add hex propagate surface 6 times 4 direction node 1530

Result: group 2 will be created containing 400 hexes

4.10.5.2 Propagated Hex Group Starting on a Face

When starting on a face, the propagation method can end at a surface, end at a face or can end after the number of times the user specifies:

4.10.5.2.1 Ending at a Surface

Group [’name’ | <id>] Add Hex Propagate [Source] Face <id range> Target Surface <id>

Example

group 2 add hex propagate face 1 11 21 target surface 2

Result: Group 2 will be created containing 30 propagated hexes (10 layers of 3 hexes)

4.10.5.2.2 Ending at a Face

Group [’name’ | <id>] Add Hex Propagate [Source] Face <id> Target Face <id>

Example

group 2 add hex propagate face 1 target face 1721

Result: Group 2 will be created containing 5 propagated hexes (5 layers of 1 hex)

Ending at a face requires starting at one face at one time, but ending at surface allows multiple start faces

4.10.5.2.3 Number of Times

Group [’name’ | <id>] Add Hex Propagate [Source] Face <id range> Times <number>

Example

group 2 add hex propagate face 2 times 4

Result: Group 2 will be created containing 4 propagated hexes (4 layers of 1 hex)

All of these methods, ending at surface, end at a face or number of times, can be used with the "multiple" option which will create a grandparent (top-level), parent (mid-level, contained within the grandparent) and child (bottom level, contained within the parent) groups. The child groups will contain each hex layer (specified number of layers per child group), all organized into a single parent group, which is organized underneath the group ID given to the command. Subsequent propagation commands could then be executed adding to the grandparent group, but creating a new parent and child groups. This way multiple propagation "sets" can be stored in one grandparent group, if desired.

4.10.5.2.4 Ending at a Surface with Multiple

Group [’name’ | <id>] Add Hex Propagate [Source] Face <id> Target Surface <id> Multiple <number>

Example

group 2 add hex propagate face 1 target surface 2 multiple 1

Result: Ten groups will be created and stored with their respective ids, one for each layer of hexes. These groups will be stored in the parent group, Group 3, and Group 3 will be stored in the grand parent group, Group 2. A subsequent propagation command could be executed adding to group 2 (the grandparent), which would create a single group contained in group 2 (the parent), containing the hex layer groups (the children).

4.10.5.2.5 Ending at a Face with Multiple

Group [’name’ | <id>] Add Hex Propagate [Source] Face <id> Target Surface <id> Multiple <number>

Example

group 2 add hex propagate face 1 target face 1721 multiple 1

Result: 5 groups will be created and stored with their respective ids, one for each layer of hexes. These groups will be stored in the parent group, Group 3, and Group 3 will be stored in the grand parent group, Group 2. A subsequent propagation command could be executed adding to group 2 (the grandparent), which would create a single group contained in group 2 (the parent), containing the hex layer groups (the children).

4.10.5.2.6 Number of Times with Multiple

Group [’name’ | <id>] Add Hex Propagate [Source] Face <id> Times <number> Multiple <number>

Example

group 2 add hex propagate face 1 times 10 multiple

Result: Two groups will be created and stored with their respective ids, these two groups will be stored in the parent group, Group 3, and Group 3 will be stored in the grand parent group, Group 2.

If the end surface or end face is ambiguous, a node direction can be specified to direct the propagation. When specify the node direction, the node has to be picked such that when the hexes are propagated, the picked node lies in these propagated hexes. If that node is never reached while propagating, the direction is not found and zero hexes will be included in the specified group.

4.10.5.2.7 Ending at Face with Direction

Group [’name’ | <id>] Add Hex Propagate [source] Face <id> Target Face <id> Direction Node <id>

Example

group 2 add hex propagate face 1721 target face 1 direction node334

Result: group 2 will be created containing 6 hexes

4.10.5.2.8 Ending at Surface with Direction

Group [’name’ | <id>] Add Hex Propagate [Source] Face <id range> Target Surface <id> Direction Node <id>

Example

group 2 add hex propagate face 1 target surface 2 direction node 334

Result: group 2 will be created containing 10 hexes

The direction command and the multiple command can be used together (i.e. group 2 add propagate face 1721 end face 1 multiple 2 direction node 334)

If number of times is specified and the direction is ambiguous, a surface direction or a node direction can be specified to direct the propagation. The node direction has the same condition as when ending at a surface or face and that is it must lie in the propagated hexes.

4.10.5.2.9 Number of Times with Direction

Group [’name’ | <id>] Add Hex Propagate [Source] Face <id> Times <number>Direction [surface <id> | node <id>]

Example

group 2 add hex propagate face 110 times 4 direction surface 2

group 2 add hex propagate face 1 times 4 direction node 269

Result: group 2 will be created contained 4 hexes

The direction command and the multiple command can be used together. (i.e. group 2 add propagate face 1721 times 4 multiple 2 direction surface 1)

4.10.5.3 Naming Convention for Propagated Hex Groups

A special naming convention can be used for the propagated hex groups, best described by an example.

The following command will create a hierarchy of logically named groups, as follows.

group ’W1P1T1’ add propagate surf 1 end surf 2 multiple 1

The hierarchy looks like this:

W1

└─ W1P1

   ├─ W1P1T1

   ├─ W1P1T2

   ├─ W1P1T3

   ├─ ...

   └─ W1P1T10

Where W1P1 is contained within W1, and W1P1T1, W1P1T2, etc.. are contained within W1P1.

The software simply looks for numerical numbers in the group name and parses out the correct grandparent, parent and child names from the substrings. There must be exactly 3 substrings in the group name, each ending with an integer for the command to work properly.

A subsequent command:

group ’W1P2T1’ add propagate surf 3 end surf 5 multiple 1

will add a parent group to W1, called W1P2, and the subsequent child groups:

W1

├─ W1P1

  ├─ W1P1T1

  ├─ W1P1T2

  ├─ W1P1T3

  ├─ ...

  └─ W1P1T10

└─ W1P2

   ├─ W1P2T1

   ├─ W1P2T2

   ├─ W1P2T3

   ├─ ...

   └─ W1P2T10

4.10.6 Quality Groups

Groups can also be formed from the hexes or faces obtained from the quality command. Each group formed using quality can be drawn with its associated quality characteristics {i.e. jacobian low .2 high .3} automatically.

Group {<’name’>|id} {Add|Equals|Remove|Xor} Quality { Hex | Tet | Face | Tri | Volume | Surface | Group } <id_range> { quality metric name (default is SHAPE) } [ High <value> ] [ Low <value> ] [ Top <number> ] [ Bottom <number>]

The following example illustrates the use of quality groups:

group 2 add quality volume 1 jacobian

In this case, if the meshed brick from the section Propagated Hex Groups is used, Group 2 will be created and it will contain 1000 hexes with quality characteristics.

The quality metric names can be found in the Quality Assessment section of the documentation.

4.10.7 Seeded Mesh Groups

It is also possible to automatically group surface mesh elements based on feature angles. Given a seed element, the algorithm will loop over all adjacent elements and create groups of elements whose surface normals are similar, or which fall within a certain radius. The command syntax is:

Group {<’name’>|<id>} {Add|Equals|Remove|Xor} Seed <mesh_entities> {Feature_angle <angle> [Divergence]|Depth <number>}

The seed element may be a quad, tri, or node element. There are two methods of angle comparison for this command. The feature angle option will compare angles of the each element to its adjacent elements by comparing surface normals. In the case of nodes, the seed node surface normal will be the average of the adjacent faces or tris. Nodes will be added if their attached faces meet the angle requirements. The divergence option will compare angles to the original seed element’s surface normal. The depth option will add elements within a certain radius.

The following figures illustrate the use of the seed method to create mesh groups using the feature angle and divergence methods.

Figure 206: group ’mygroup1’ add seed face 269 feature-angle 45

Figure 207: group ’mygroup2’ add seed face 269 feature-angle 45 divergence

The seed method of creating groups is particularly useful for creating groups on free meshes for the purpose of assigning nodesets and sidesets.

The GUI command panel for this command is found by selecting

"Mode-Meshing", "Entity-Group", "Action-Manage Groups", then "Create with Seed." The command panel is shown below:

Figure 208