Element Block Specification

Element blocks are the method CUBIT uses to group related sets of elements into a single entity. Each element in an element block must have the same basic and specific element type.

The preferred method for defining blocks is to use geometric entities such as volumes, surfaces or curves. Blocks can also be defined using mesh entities. If a block is defined at a geometric entity, each of the elements owned by the geometry are automatically assigned to the block. Deleting or remeshing the geometry automatically changes the set of elements grouped into the block. If mesh entities are used to specify a block, deleting the mesh will also delete the elements from the block.

Some important notes regarding Element Blocks are as follows:

Creating Element Blocks

Element blocks are defined with the following Block commands.

Block <block_id> {Vertex | Curve | Surface | Volume} <range> [Remove]

Block <block_id> {Hex|Tet|Pyramid|Face|Tri|Edge|Node} <range> [Remove]

Block <block_id> Group <range> [Remove]

The first command defines the block based on a list of geometric entities, while the second uses specific lists of mesh entities. Since a block can only contain a single element type, usually entities of the same type are defined on the same block. The third option provides for assigning groups of entities to a single block. This is useful, for example, when several entities of the same type can be grouped together. The Block Group command simplifies the specification of the block.

By using the Remove argument to the block command, the specified geometry or mesh entity can be removed from the block definition.

Assigning a Name or Description to an Element Block

The following commands can be used to assign a name or description to an element block. Assigning a name to a block can be more intuitive than using traditional integer IDs, and the name and description are preserved in DART metadata-enabled applications (like SIMBA). This command is also available for nodesets and sidesets.

Block<ids> name "<new_name>"

Block<ids> description "<description>"

Defining the Element Type

Each block must have a specific element type associated with it. To assign an element type to a block, use the following command:

Block <block_id_range> Element Type <type>

Available element types are defined by the Exodus II file format specification (Schoof, 95). CUBIT supports the following element types:

Nodes: SPHERE SPRING

Curves: BAR BAR2 BAR3 BEAM BEAM2 BEAM3 TRUSS TRUSS2 TRUSS3

Surfaces: QUAD QUAD4 QUAD5 QUAD8 QUAD9 SHELL SHELL4 SHELL8 SHELL9 HEXSHELL TRI TRI3 TRI6 TRI7 TRISHELL TRISHELL3 TRISHELL6 TRISHELL7

Volumes: HEX HEX8 HEX9 HEX20 HEX27 PYRAMID TETRA TETRA4 TETRA8 TETRA10 TETRA14

If the element type is not assigned for an element block, it will be assigned a default type depending on which type of geometry entity is contained in the block. The default values used for element type are:

Volume: 8-node hexahedral elements (HEX8) will be generated for hex meshes. TETRA4 will be generated for tet meshes.

Surface: 4-node shell elements (SHELL4) will be generated for quad meshes and TRISHELL3 for tri meshes.

Curve: 2-node bar elements (BAR2) will be generated.

Node: 1-node elements (SPHERE) will be generated.

Higher order nodes are moved to curved geometry by default. To change this, use the following command:

set Node Constraint [ON|off]

On means higher order nodes snap to curved geometry. Off means higher order nodes are placed at the average location of the element nodes: for edges, this means on the line containing the edge; for 2d elements, this usually means on the plane containing the element. Several examples of specifying various types of element blocks are given in the Appendix.

Default Element Blocks

When exporting an ExodusII file, if the user has not specified any Element Blocks, by default element blocks will be written for any meshed volumes. This default behavior can be changed, to write surface, volume, or no meshes by default. This option can be set using the command

Set Default Block [ON|off|Volume|Surface]

Default behavior, ON, is for the blocks to automatically be written based on their owning geometry. When the OFF setting is used, only the mesh contained in blocks created by the user will be exported. Mesh not in an element block at export time, will not be exported. The export will still succeed and no error will be thrown. If Volume is specified, only elements contained in volumes will have default blocks specified. Similarly, the Surface argument indicates that only surfaces containing elements will use default blocks.

When default blocks are used, the IDs for the resulting blocks will be defined as follows based upon the type of geometry:

Volume: The default block ID will be set to the Volume ID

Surface: The block ID will be set to 0

Curve: The block ID will be set to

Assigning Attributes to Blocks

It may be necessary to associate attributes with a specific element block. Attributes are generally integer or floating point values that represent some physical property in the region occupied by the block, such as material properties or shell thickness. To assign an attribute to an element block, use the following command:

Block <block_id_range> Attribute <value>

The default number of attributes of an element block is dependent on the element type of the element block. Except for the element blocks of the element types below, all element blocks contain zero attributes by default.

Element Type
Number Default Attributes
SPHERE
1
BAR
1
BEAM
3
TRUSS
1
SPRING
1
SHELL
1
TRISHELL
1

To assign more attributes than the number of default attributes use the following command:

Block <id_range> Attribute Count <1-10>

CUBIT will store up to 10 attributes per block. Specify the maximum number of attributes to be stored on the block with this command. Once this command has been executed, individual attributes may be set using the following command:

Block <id_range> Attribute Index <index> <value>

The index is an integer from 1 to the maximum count specified in the Block Attribute Count command. The value may be any valid floating point number.

Displaying Element Blocks

Blocks can be viewed individually with CUBIT by employing the following command:

Draw Block <block_id_range> [Color <color_spec>] [add]

Block colors can also be changed using the following command:

Color Block <block_id_range> {color|Default}

Deleting Element Blocks

All Nodesets, Sidesets and Blocks may be deleted from the model using the following command:

Reset Genesis

To remove only Blocks, the following may be used:

Reset Block

To remove a specific block, use:

Delete Block <block_id_range>

Automatically Assigning Mesh Edges to a Block (Rebar)

After a mesh has been defined within a volume, it may be useful to use the existing mesh edges as the basis for an element block. Such an element block might be composed of bars or truss type elements that might propagate through a solid medium such as rebar placed in reinforced concrete. Although the Block <id> Edge <range> command could be used for this task, it would prove extremely tedious defining the individual edges to add to the block. To make this process easier, the following command can be used:

Rebar Start <x> <y> <z> Direction <x> <y> <z> [Length <value>] Block <id> [Element Type {bar|bar2|bar3|BEAM|beam2|beam3|truss|truss2|truss3}]

The Rebar command allows the user to specify a starting location for a set of edges and an initial direction. The program will find the closest existing node in the mesh to Start <x> <y> <z> and begin propagating through the mesh in the specified Direction <x> <y> <z>, adding edges to the block as it propagates through the mesh. The edge that is attached to the last node and is within a fixed 30 degrees of the specified direction is added to the block. The Propagation of the edges continues until either the optional Length value is reached or an edge does not meet the Direction criteria. Also required with this command is a block ID. An Element Type can also be specified.

Similarly, you can use the following command which will use the 30 degree cone described above to gather edges from a surface into a single block using the Cartesian x, y, and/or z vectors.

Rebar Surface <range> [x] [y] [z] Block <id> [Element Type {bar|bar2|bar3|BEAM|beam2|beam3|truss|truss2|truss3}] [propagate]

Diagonal and Orthogonal Rebar Blocks

Another method for generating rebar blocks include the Diagonal/Orthogonal option. This command can only be used on surfaces that have been meshed with the mapping scheme. This command will create a block of edges from the mapped mesh by starting in one corner and gathering edges orthogonally, or creating new edges diagonally based on the option specified, using the parametric coordinate system dictated by the mapping scheme on the surface. The spacing option dictates how many edges are skipped over before starting the next set of rebar edges.

Rebar Surface <range> {Diagonal|Orthogonal} [Spacing <int>] [Block <id> [Element Type {bar|bar2|bar3|BEAM|beam2|beam3|truss]

CUBIT> rebar surf 1 diagonal spacing 2 block 2

CUBIT> rebar surf 1 orthogonal spacing 3 block 3

Specifying a set of nodes

A final rebar option allows the user to create or group rebar edges into a specified block using nodes. Edges are created, or gathered, using the ordered list of nodes specified in the command.

Rebar Node <range> [Target Block <id>] [Element Type {bar|bar2|bar3|BEAM|beam2|beam3|truss]

CUBIT> rebar node 113 105 97 89 81 73 65 57 49 target block 1

A related command for creating curve geometry directly from mesh edges is the Create Curve from Mesh command. See Curve creation for more details.

Creating Beam Blocks (Spider)

The block creation tool also allows the user to create a special block of bar elements that can be used as part of the boundary specification. This command creates beam type elements directly without creating any underlying geometry.

The command for creating this type of block is:

Block <id> Joint Node <id> Spider {Surface|Face|Node} <range> [preview]    [Element Type {bar|bar2|bar3|BEAM|beam2|beam3|truss|truss2|truss3}]

The joint node is the starting location of the bar elements and the spider location is the terminating location of the bar elements.  You can specify the terminating location as either a node, geometric surface or the face of a mesh entity. Some analysis codes refer to these bar elements as tied contacts or rigid bar elements.  They can be used to tie models together or to enforce specific kinds of boundary conditions.  For example, in the figure below a block of beam elements is used to tie a node at the center of the circle to every node on the edge of the circle.  This arrangement can be used to enforce circularity but still allow for displacement of the entire circle. This may occur if there are additional structures above the cylinder that are being excluded from the current finite element model.  The beam elements were created by a series of commands of the form

block 10 joint node 1 spider node 2

The preview option can be included to draw the location of the beam blocks on the screen without actually executing the command.

Figure 1. Beam elements created with the Spider command

2D Elements

CUBIT is a 3d mesh generator by default. Element types, by default, are respectively TRISHELL and SHELL for triangle and quad elements. If a 2d mesh is desired, blocks types must be explicitly set to TRI or QUAD.

Example:

create brick x 10
surface 1 scheme trimesh
mesh surface 1
block 1 surface 1
block 1 element type tri
export mesh "mymesh.exo"

Sideset 1 will be based on the TRI and QUAD elements in blocks 1 and 2, with the side numbering referring to the edges of the triangles and quads.