On this page:
4.8.1 Collapse Geometry
4.8.1.1 Collapse Angle
4.8.1.1.1 Simple
4.8.1.1.2 Complete
4.8.1.2 Collapse Curve
4.8.1.3 Collapse Surface
4.8.2 Composite Geometry
4.8.2.1 Composite Curves
4.8.2.2 Composite Surfaces
4.8.3 Partitioned Geometry
4.8.3.1 Partitioned Curves
4.8.3.2 Partitioned Surfaces
4.8.3.3 Partitioned Volumes
4.8.3.4 Using Mesh Intersections to Partition Surfaces
4.8.3.5 Removing Partitions
4.8.4 Deleting Virtual Geometry
4.8.5 Simplify Geometry
2022.4+26187-e1209cf7 Apr 14, 2022

4.8 Virtual Geometry

The Virtual Geometry module in Cubit provides a way to modify the topology of the model without affecting the underlying ACIS geometry representation and without making changes to the actual solid model. Virtual Geometry includes the capability to composite or partition geometry as well as creates new virtual geometric entities. Virtual Geometry operations are most often used as a tool for adjusting the geometry to allow mapping, sub-mapping or sweeping mesh generation schemes to be applied.

The advantage to using Virtual Geometry is that all operations are reversible. With standard geometry modification commands, changes are made to the underlying geometry representation and cannot be changed once effected. With virtual geometry, the original solid model topology can be easily restored. This is useful when geometry modifications are made in order to apply a particular meshing scheme. Virtual geometry can be applied and later removed once the part has been meshed.

4.8.1 Collapse Geometry

The collapse geometry commands use virtual geometry to tweak small angles and curves to improve meshability of geometry models. The following options for collapsing geometry are available:

4.8.1.1 Collapse Angle

The collapse operation allows the user to collapse small angles using virtual geometry.

To collapse small angles

  1. On the Command Panel, click on Geometry and then Vertex.

  2. Click on the Modify action button.

  3. Select Collapse Angle from the drop-down menu.

  4. Enter in the appropriate settings for Vertex ID. This can also be done using the Pick Widget function.

  5. Enter in the appropriate setting on this menu for c1 and c2.

  6. Click Apply.

Collapse Angle at Vertex <id> [angle <degrees> ] Curve <id1> [Arc_length1 <length>] Curve <id2> [Arc_length2 <length> | Same_size | Perpendicular | Tangent] [Composite_vertex <angle>] [Preview]

The collapse angle command is used to eliminate small angles at vertices, where curves meet at a tangential point. The command will split each curve at a specified distance (?1 and ?2) as shown in Figure 195, and create two new vertices along those curves. The remaining small angle will be composited into its neighboring surface using virtual geometry.One of two methods may be used for specifying options for the collapse angle command: simple and complete as described below.

4.8.1.1.1 Simple

Curves are not specified for this option. Instead, Cubit will automatically identify the smallest angle at the vertex and collapse it using the tangent option described below (see Figure 198). An optional angle option may also be specified that controls the arc length (δ1) along curve C1 where the curve will be split. If not specified a value of 30 degrees will be used. For the simple option of this command, a range of vertices may be used. The complete version of the command requires exactly one vertex and two curves.

4.8.1.1.2 Complete

The complete options of the command allow you to specify which curves and where to split each curve. You must input a distance for the first curve (δ1), but the second location can be determined based on the length and direction of the first curve.

Figure 195: Collapse angle syntax

The arclength option will split each curve at a specified distance ?1 and ?2, (See Figure 195) measured from the vertex. You must input at least one arclength for each of the options listed below.

The same_size option will split curve 2 so that the two resulting curves, ?1 and ?2, are the same length as shown in Figure 196.

Figure 196: Collapse angle using the same_size option

The perpendicular option will split curve 2 so it is perpendicular to the split location on curve 1, as shown in Figure 197.

Figure 197: Collapse angle using the perpendicular option

The tangent option will split curve 2 where a line tangent to curve 1 at the split location intersects curve 2, as shown in Figure 198.

Figure 198: Collapse angle using the tangent option

The composite_vertex option automatically composites resulting surfaces if there are only two curves left at the vertex, and the angle is less than a specified tolerance.

The preview option will preview composited surface before applying changes.

Figure 199: An example of a meshed surface that is generated after using the collapse angle command.

4.8.1.2 Collapse Curve

The collapse curve command allows the user to collapse small curves using virtual geometry. It is intended to be used in cases where removing a small curve to simplify topology will facilitate meshing. The operation can be thought of as reconnecting curves from one vertex on the small curve to the other vertex. If the user doesn’t specify which vertex to keep during the operation Cubit will choose one of the vertices. The operation is performed using virtual partitions and composites on the curves and surfaces surrounding the small curve. The command syntax is:

To collapse a curve

  1. On the Command Panel, click on Geometry and then Curve.

  2. Click on the Modify action button.

  3. Select Collapse from the drop-down menu.

  4. Enter in the appropriate settings for Curve ID. This can also be done using the Pick Widget function.

  5. Optionally select Collapse To. If this is done, enter in the appropriate settings for Vertex ID. This can also be done using the Pick Widget function.

  6. Enter in any other appropriate setting on this menu.

  7. Click Apply.

Collapse Curve <id> [Vertex <id>] [Ignore] [Real_split]

The vertex keyword allows the user to specify which vertex on the small curve to keep during the operation or in other words which vertex to "collapse to". Depending on the surrounding topological configuration some vertices cannot currently be chosen so if the user specifies a vertex to collapse to that results in a complex topological configuration that Cubit can’t currently handle the user will be notified and encouraged to pick a different vertex. If the user doesn’t specify a vertex Cubit will attempt to choose the "best" vertex to keep based on surrounding topology and geometry. Currently, the collapse curve command only handles curves where the vertex that is NOT retained has a valence of 3 or 4.

The ignore keyword allows the user to specify whether or not small portions of surfaces that are partitioned off of one surface and composited with a neighboring surface during the collapse curve operation are considered when evaluating the new composite surface. By specifying the ignore option the user tells Cubit that these small surfaces will be ignored in future evaluations of the composite surface. This can be beneficial in cases where the small surface makes a sharp angle with the neighboring surface it is being composited with. These first derivative discontinuities of composite surfaces can make it difficult for the meshing algorithms to proceed and ignoring the small surfaces during evaluation can help remedy this problem. By default the small surfaces will not be ignored.

The real_split option tells Cubit to use the solid modeling kernel’s (ACIS) split surface functionality to do the splitting rather than using virtual partitioning. The result is that you only have virtual composites at the end and no virtual partitions. The main advantage of using this option is that the solid modeling kernel’s split operation is often more reliable than the virtual partition.

Figure 200 shows a typical example where the collapse curve command should be used to simplify the topology for meshing.

Figure 200: Example where the collapse curve operation is needed.

Figure 201 shows the above example after collapsing the small curve.

Figure 201: Above example after collapsing the small curve.

4.8.1.3 Collapse Surface

The collapse surface command allows the user to remove surface boundaries from the model. This is accomplished by splitting the surface at two given locations and combining it into two adjacent surfaces using virtual geometry operations. The command syntax is:

To collapse a surface

  1. On the Command Panel, click on Geometry and then Surface.

  2. Click on the Modify action button.

  3. Select Collapse from the drop-down menu.

  4. Enter in the appropriate settings for Surface ID and Into Surface ID(s). This can also be done using the Pick Widget function.

  5. Select Vertex, Position (X, Y, Z), Node or Location from the From Location menu and enter in the appropriate values.

  6. Select Vertex, Position (X, Y, Z), Node or Location from the To Location menu and enter in the appropriate values.

  7. Click Apply.

Collapse Surface <id> Across Location1 Location 2 With Surface <id_list> [Preview]

The locations option can use any of the general Cubit location commands. However, the vertex and curve options are among the most useful location options. For example, the command

collapse surface 15 across vertex 128 curve 40 with surface 26 117

would split surface 15 by the line that is formed between vertex 128 and the midpoint of curve 40. It would then composite the two parts of surface 15 that are adjacent to surfaces 26 and 117. The result is that three surfaces have been reduced to two.

The collapse surface command is most useful in removing blended surfaces (i.e. fillets and chamfers) from a model. For example, Figure 202 below shows a set of highlighted surfaces on a bracket. By collapsing all these surfaces the model shown in Figure 203 is created. Collapsing the surfaces for this model simplifies the model and allows for the creation of a higher quality mesh.

Figure 202: Bracket with chamfered edges.

Figure 203: Bracket after highlighted edges have been collapsed

4.8.2 Composite Geometry

The virtual geometry module has the capability to combine a set of connected curves into a single composite curve, or a set of connected surfaces into a single surface. The general purpose is to suppress or remove the child geometry common to those entities being composited. For example, compositing a set of curves suppresses the vertices common to those curves, thus removing the constraint that a node must be placed at that vertex location.

To use the composite create operation

  1. On the Command Panel, click on Geometry.

  2. Click on Surface or Curve.

  3. Click on the Modify action button.

  4. Select Composite from the drop-down menu.

  5. Enter in the appropriate settings for Surface ID(s) or Curve ID(s). This can also be done using the Pick Widget function.

  6. Select Create from the Select menu and enter in the appropriate settings.

  7. Click Apply.

Composite Create {Surface|Curve} <id_list>

This command will composite as many surfaces (or curves) as possible, in many cases creating multiple composites.

The entities combined to create the composite must either all be unmeshed or all be meshed. A meshed composite surface can not be removed unless the mesh is first deleted.

Care should be taken when compositing over large C1 discontinuities as it may cause problems for the meshing algorithms and may result in poor quality elements. C1 discontinuities are corners or abrupt changes in the surface normal.

To use the composite delete operation

  1. On the Command Panel, click on Geometry.

  2. Click on Surface or Curve.

  3. Click on the Modify action button.

  4. Select Composite from the drop-down menu.

  5. Enter in the appropriate settings for Surface ID(s) or Curve ID(s). This can also be done using the Pick Widget function.

  6. Select Delete from the Select menu.

  7. Click Apply.

Composite Delete {Surface|Curve} <id>

4.8.2.1 Composite Curves

To use the composite create operation for a curve

  1. On the Command Panel, click on Geometry and then Curve.

  2. Click on the Modify action button.

  3. Select Composite from the drop-down menu.

  4. Enter in the appropriate settings for Curve ID(s). This can also be done using the Pick Widget function.

  5. Select Create from the Select menu.

  6. Enter in the appropriate values for Keep Vertex ID and Max Curve Angle.

  7. Click Apply.

Composite Create Curve <id_range> [Keep Vertex <id_list>] [Angle <degrees>]

Related Commands

Composite delete curve <id_range> [force]

The additional arguments provide two methods to prevent vertices from being removed from the model or composited over. The first method, keep vertex explicitly specifies vertices which are not to be removed. This option can also be used to control which vertex is kept when compositing a set of curves results in a closed curve.

The angle option specifies vertices to keep by the angle between the tangents of the curves at that vertex. A value less than zero will result in no composite curves being created. A value of 180 or greater will result in all possible composites being created. The default behavior is an empty list of vertices to keep, and an angle of 180 degrees.

4.8.2.2 Composite Surfaces

To use the composite create operation for a surface

  1. On the Command Panel, click on Geometry and then Surface.

  2. Click on the Modify action button.

  3. Select Composite from the drop-down menu.

  4. Enter in the appropriate settings for Surface ID(s). This can also be done using the Pick Widget function.

  5. Select Create from the Select menu.

  6. Enter in the appropriate values for Max Surface Angle, Keep Vertex ID and Max Curve Angle.

  7. Click Apply.

Composite Create Surface <id_range> [Angle <degrees>] [Nocurves] [Keep [Angle <degrees>] [Vertex <id_list>]]

Composite delete surface <id_range> [force]

The angle argument prevents curves from being removed from the model or composited over. Composites will not be generated where the angle between surface normals adjacent to the curve is greater than the specified angle.

When a composite surface is created, the default behavior is also to composite curves on the boundary of the new composite surface.

Curves are automatically composited if the angle between tangents at the common vertex is less than 15 degrees. The nocurves option can be used to prevent any composite curves from being created.

The keep keyword can be used to change the default choice of which curves to composite. The arguments following the keep keyword behave the same as for explicit composite curve creation. The nocurves and keep arguments are mutually exclusive.

4.8.2.2.1 Controlling the Surface Evaluation Method for Composite Surfaces

It typically takes longer to mesh a single composite surface than to mesh the surfaces used in the creation of the composite. To improve speed, composite surfaces use an approximation method to evaluate the closest point to a trimmed surface. However, this evaluation method may give poor results for composites of highly convoluted surfaces.

The virtual geometry module provides a way to change the way surfaces are evaluated using the following command:

Composite Closest_pt Surface <id> {Gme|Emulate}

The default behavior is to use the emulate method, as it is typically considerably faster. Specifying the gme option will force the specified composite surface to use the exact calculation of the closest point to a trimmed surface, as provided by the solid modeler. The gme option, however, can be considerably slower.

4.8.2.2.2 Composite Determination

The composite create surface command is non-deterministic in some circumstances. When three or more adjacent surfaces are to be composited, all the surfaces may not be able to be composited into a single surface as illustrated in Figure 204. In this case different subsets of the surfaces may be composited and the command will choose arbitrary subsets to composite. As an example, there are three surfaces A, B, and C, all adjacent to each other. The common curve between A and B is AB, the common curve between B and C is BC, and the common curve between A and C is CA. If the curve BC cannot be removed, either due to the angle specified in the composite command, or because there is a fourth surface, D, also using that curve, the command will arbitrarily choose to either composite A and B or A and C.

composite.gif

Figure 204: In some cases, the program will make a determination of which surfaces to composite.

4.8.3 Partitioned Geometry

Partitioning provides a method to introduce additional topology into the model, to better constrain meshing algorithms. This is accomplished by splitting, or partitioning, existing curves or surfaces.

4.8.3.1 Partitioned Curves

There are four methods for specifying locations at which to partition curves:

The first two forms of the command create additional vertices and use those vertices to split a curve. The third form of the command uses existing vertices to split the curve. The fourth form of the command uses existing nodes to split the curve.

To partition curves by using vertices

  1. On the Command Panel, click on Geometry and then Curve.

  2. Click on the Modify action button.

  3. Select Partition from the drop-down menu.

  4. Select Create Using Vertices from the drop-down menu.

  5. Enter in the appropriate values for Cure ID(s) and Vertex ID(s). This can also be done using the Pick Widget function.

  6. Click Apply.

Using the fraction option, vertices are created at the specified fractions along the curve (in the range [0,1].) Subsequently, the curve is split at each vertex, resulting in n+1 new curves, where n is the number of fraction values specified.

To partition curves by using a fraction list

  1. On the Command Panel, click on Geometry and then Curve.

  2. Click on the Modify action button.

  3. Select Partition from the drop-down menu.

  4. Select Create Using Fraction List from the drop-down menu.

  5. Enter in the appropriate values for Cure ID(s). This can also be done using the Pick Widget function.

  6. Enter in the appropriate values for Fraction List.

  7. Click Apply.

Using the position option, vertices are created at the closest location along the curve to each of the specified position. Subsequently, the curve is split at each vertex, resulting in n+1 new curves, where n is the number of positions specified.

To partition curves by using coordinates

  1. On the Command Panel, click on Geometry and then Curve.

  2. Click on the Modify action button.

  3. Select Partition from the drop-down menu.

  4. Select Create Using Coordinates from the drop-down menu.

  5. Enter in the appropriate values for Cure ID(s). This can also be done using the Pick Widget function.

  6. Enter in the appropriate values for X Position, Y Position and Z Position.

  7. Click Apply.

If the node option is used, meshed curves may be partitioned. The specified nodes must lie on the curve to be partitioned. The curve is split at each node specified, and any other mesh entities are divided appropriately amongst the curve partitions.

To partition curves by using nodes

  1. On the Command Panel, click on Geometry and then Curve.

  2. Click on the Modify action button.

  3. Select Partition from the drop-down menu.

  4. Select Create Using Nodes from the drop-down menu.

  5. Enter in the appropriate values for Cure ID(s) and Node ID(s). This can also be done using the Pick Widget function.

  6. Click Apply.

Partition Create Curve <curve_id> {Fraction <fraction_list> | Position <xpos> <ypos> <zpos> | [with] <vertex_list> | <node_list> }

Related Commands

Partition delete curve <curve_id>

4.8.3.2 Partitioned Surfaces

There are several forms of the command to partition a surface. A surface may be partitioned using hard points, curves, polylines, mesh edges, mesh faces or mesh triangles.

4.8.3.2.1 Partitioning with Vertices and Nodes
4.8.3.2.1.1 Partitioning with Hard Points

There are two methods of partitioning a surface using vertices and nodes. The first method is to create a set of hard points using nodes, vertices, or coordinates that constrain the mesh to particular points on the surface.

To partition a surface using vertices and nodes

  1. On the Command Panel, click on Geometry and then Surface.

  2. Click on the Modify action button.

  3. Select Partition from the drop-down menu.

  4. Select Create With Nodes or Create With Verticies from the drop-down menu.

  5. Enter in the appropriate value for Surface ID(s) as well as Vertex ID(s) or Node ID(s). This can also be done using the Pick Widget function.

  6. Click Apply.

Partition Create Surface <id> Vertex <id_list> [Individual]

Partition Create Surface <id> Node <id_list> [Individual]

4.8.3.2.1.2 Partitioning with Polylines

The second method is to define a polyline using a set of vertices or coordinates. This method splits the surface using a polyline defined by a list of positions specified as either coordinate triples, or existing vertices. The polyline is projected to the surface to define the curve for splitting the surface. If only one position is specified a zero-length curve with a single vertex will be created The syntax is identical to above WITHOUT the individual option.

To partition a surface using coordinates

  1. On the Command Panel, click on Geometry and then Surface.

  2. Click on the Modify action button.

  3. Select Partition from the drop-down menu.

  4. Select Create Using Coordinates from the drop-down menu.

  5. Enter in the appropriate value for Surface ID(s). This can also be done using the Pick Widget function.

  6. Enter in the appropriate values for Position (X,Y,Z).

  7. Click Apply.

Partition Create Surface <id> Position <x> <y> <z> [[Position] <x> <y> <z> ...]

To partition a surface using a set of vertices

  1. On the Command Panel, click on Geometry and then Surface.

  2. Click on the Modify action button.

  3. Select Partition from the drop-down menu.

  4. Select Create With Verticies from the drop-down menu.

  5. Enter in the appropriate values for Surface ID(s) and Vertex ID(s). This can also be done using the Pick Widget function.

  6. Click Apply.

Partition Create Surface <id> Vertex <id_list>

In the following simple example, the surface is partitioned using both methods. On the left half of the object, the surface is partitioned using the individual option (vertices 11 12 15 13). On the right half, a polyline is used (vertices 9 10 16 14). All of the free vertices can then be deleted, leaving the virtual curves shown in the second picture. Vertices 19 20 21 and 22 are all zero-length curves. The small ’v’ in parentheses is to indicate that it is virtual geometry. The resulting mesh is shown in the third picture. Notice that the polyline constrains the entire curve to the mesh, while the hardpoints constrain only that individual point.

Figure 205: Partitioning a Surface Using Vertices

4.8.3.2.2 Partitioning with Curves

This form of the command splits the existing surface into several surfaces by creating curves that approximate the projection of the specified existing curves onto the surface.

To partition a surface with curves

  1. On the Command Panel, click on Geometry and then Surface.

  2. Click on the Modify action button.

  3. Select Partition from the drop-down menu.

  4. Select Create With Curves from the drop-down menu.

  5. Enter in the appropriate values for Surface ID(s) and Curve ID(s). This can also be done using the Pick Widget function.

  6. Click Apply.

Partition Create Surface <id> Curve <id_list>

4.8.3.2.3 Partitioning with Mesh Edges

Meshed surfaces may be partitioned with mesh edges. The specified mesh edges must be owned by the surface to be partitioned. The shape of the curve(s) used to split the surface is specified by a set of mesh edges.

If the split location is specified by a series of mesh edges, and the specified mesh edges form a closed loop, the node option may be used to control which node the vertex is created at.

To partition a surface using edges

  1. On the Command Panel, click on Geometry and then Surface.

  2. Click on the Modify action button.

  3. Select Partition from the drop-down menu.

  4. Select Create With Edges from the drop-down menu.

  5. Enter in the appropriate values for Surface ID(s) and Edge ID(s). This can also be done using the Pick Widget function.

  6. Optionally select Specify Nodes and enter the Node ID(s).

  7. Click Apply.

Partition Create Surface <id> Edge <id_list> [Node <node_id>]

4.8.3.2.4 Partitioning with Faces or Triangles

Surfaces may also be partitioned by specifying a list of triangles or faces (quads). The boundary of the list will automatically be detected and new curves and vertices created at the appropriate locations. Curves are created from the mesh edges and used to split the surface. The surface mesh is split and assigned to the appropriate surface partitions.

To partition a surface using faces or triangles

  1. On the Command Panel, click on Geometry and then Surface.

  2. Click on the Modify action button.

  3. Select Partition from the drop-down menu.

  4. Select Create With Quads or Create With Tris from the drop-down menu.

  5. Enter in the appropriate values for Surface ID(s). This can also be done using the Pick Widget function.

  6. Enter in the appropriate values for Tris ID(s) or Quad/Face ID(s). This can also be done using the Pick Widget function.

  7. Click Apply.

Partition Create Surface <id> Face|Tri <id_list>

4.8.3.2.5 Deleting Partitioned Surfaces

Partition delete surface <surface_id>

4.8.3.3 Partitioned Volumes

To partition a volume by giving a center and radius:

Partition Create Volume <id> Center [Location] {options} Radius <val>

This command splits the existing volume into two volumes. All volume elements that lie within the specified radius of the specified center location are identified, and the exterior faces of these elements are used to create a surface and partition the volume. The center can be specified with any of the location options.

Figure 206 shows an example of a partitioned volume. A cube that has been map meshed is partitioned using a center at one of its vertices. The result is two distinct volumes with a surface separating the two. The interface surface is composed of the faces of the interior hex elements.

Figure 206: A partitioned volume

This command may be useful for separating small regions of a meshed volume so that remeshing or mesh improvement may be performed locally.

Related Commands

Partition delete volume <volume_id>

4.8.3.4 Using Mesh Intersections to Partition Surfaces

To assist in various mesh editing tasks such as joining, a mesh-based imprinting capability is provided. The command

Imprint Mesh {Body | Volume} <id_list>

determines imprint locations using the mesh on the surfaces of the specified bodies or volumes. Regions of coincidence between the surfaces is determined by searching for coincident nodes in the mesh of the surfaces. Virtual geometry is then used to partition the surfaces and curves at the boundary of these regions of coincident mesh.

The imprint mesh functionality differs from a normal geometric imprint in the following ways:

The following is a trivial example of this capability. The following commands create two meshed blocks:

brick width 10
brick width 6
body 2 move x 8
volume 1 2 size 1
mesh volume 1 2

Figure 207 shows the results of these commands.

Figure 207: Two adjacent meshed volumes. The coincident meshes will form the basis of the imprint operation.

The mesh of the blocks can be joined by first doing a mesh-based imprint and then merging:

imprint mesh body 1 2
merge body 1 2

Figure 208. shows the results of the imprint operation. A meshed surface is created at the interface between the two meshed volumes. The nodes on the new surface are shared by the neighboring hexahedra of both volumes.

Figure 208: The imprinted surface. Adjacent volume meshes joined at the interface surface.

4.8.3.5 Removing Partitions