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
On the Command Panel, click on Geometry and then Vertex.
Click on the Modify action button.
Select Collapse Angle from the drop-down menu.
Enter in the appropriate settings for Vertex ID. This can also be done using the Pick Widget function.
Enter in the appropriate setting on this menu for c1 and c2.
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.
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 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
On the Command Panel, click on Geometry and then Curve.
Click on the Modify action button.
Select Collapse from the drop-down menu.
Enter in the appropriate settings for Curve ID. This can also be done using the Pick Widget function.
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.
Enter in any other appropriate setting on this menu.
Click Apply.
Collapse Curve <id> [Vertex <id>] [Ignore] [Real_split]
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.
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
On the Command Panel, click on Geometry and then Surface.
Click on the Modify action button.
Select Collapse from the drop-down menu.
Enter in the appropriate settings for Surface ID and Into Surface ID(s). This can also be done using the Pick Widget function.
Select Vertex, Position (X, Y, Z), Node or Location from the From Location menu and enter in the appropriate values.
Select Vertex, Position (X, Y, Z), Node or Location from the To Location menu and enter in the appropriate values.
Click Apply.
Collapse Surface <id> Across Location1 Location 2 With Surface <id_list> [Preview]
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 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
On the Command Panel, click on Geometry.
Click on Surface or Curve.
Click on the Modify action button.
Select Composite from the drop-down menu.
Enter in the appropriate settings for Surface ID(s) or Curve ID(s). This can also be done using the Pick Widget function.
Select Create from the Select menu and enter in the appropriate settings.
Click Apply.
Composite Create {Surface|Curve} <id_list>
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
On the Command Panel, click on Geometry.
Click on Surface or Curve.
Click on the Modify action button.
Select Composite from the drop-down menu.
Enter in the appropriate settings for Surface ID(s) or Curve ID(s). This can also be done using the Pick Widget function.
Select Delete from the Select menu.
Click Apply.
Composite Delete {Surface|Curve} <id>
4.8.2.1 Composite Curves
To use the composite create operation for a curve
On the Command Panel, click on Geometry and then Curve.
Click on the Modify action button.
Select Composite from the drop-down menu.
Enter in the appropriate settings for Curve ID(s). This can also be done using the Pick Widget function.
Select Create from the Select menu.
Enter in the appropriate values for Keep Vertex ID and Max Curve Angle.
Click Apply.
Composite Create Curve <id_range> [Keep Vertex <id_list>] [Angle <degrees>]
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
On the Command Panel, click on Geometry and then Surface.
Click on the Modify action button.
Select Composite from the drop-down menu.
Enter in the appropriate settings for Surface ID(s). This can also be done using the Pick Widget function.
Select Create from the Select menu.
Enter in the appropriate values for Max Surface Angle, Keep Vertex ID and Max Curve Angle.
Click Apply.
Composite Create Surface <id_range> [Angle <degrees>] [Nocurves] [Keep [Angle <degrees>] [Vertex <id_list>]]
Composite delete surface <id_range> [force]
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.
Composite Closest_pt Surface <id> {Gme|Emulate}
4.8.2.2.2 Composite Determination
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
On the Command Panel, click on Geometry and then Curve.
Click on the Modify action button.
Select Partition from the drop-down menu.
Select Create Using Vertices from the drop-down menu.
Enter in the appropriate values for Cure ID(s) and Vertex ID(s). This can also be done using the Pick Widget function.
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
On the Command Panel, click on Geometry and then Curve.
Click on the Modify action button.
Select Partition from the drop-down menu.
Select Create Using Fraction List from the drop-down menu.
Enter in the appropriate values for Cure ID(s). This can also be done using the Pick Widget function.
Enter in the appropriate values for Fraction List.
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
On the Command Panel, click on Geometry and then Curve.
Click on the Modify action button.
Select Partition from the drop-down menu.
Select Create Using Coordinates from the drop-down menu.
Enter in the appropriate values for Cure ID(s). This can also be done using the Pick Widget function.
Enter in the appropriate values for X Position, Y Position and Z Position.
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
On the Command Panel, click on Geometry and then Curve.
Click on the Modify action button.
Select Partition from the drop-down menu.
Select Create Using Nodes from the drop-down menu.
Enter in the appropriate values for Cure ID(s) and Node ID(s). This can also be done using the Pick Widget function.
Click Apply.
Partition Create Curve <curve_id> {Fraction <fraction_list> | Position <xpos> <ypos> <zpos> | [with] <vertex_list> | <node_list> }
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
On the Command Panel, click on Geometry and then Surface.
Click on the Modify action button.
Select Partition from the drop-down menu.
Select Create With Nodes or Create With Verticies from the drop-down menu.
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.
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
On the Command Panel, click on Geometry and then Surface.
Click on the Modify action button.
Select Partition from the drop-down menu.
Select Create Using Coordinates from the drop-down menu.
Enter in the appropriate value for Surface ID(s). This can also be done using the Pick Widget function.
Enter in the appropriate values for Position (X,Y,Z).
Click Apply.
Partition Create Surface <id> Position <x> <y> <z> [[Position] <x> <y> <z> ...]
On the Command Panel, click on Geometry and then Surface.
Click on the Modify action button.
Select Partition from the drop-down menu.
Select Create With Verticies from the drop-down menu.
Enter in the appropriate values for Surface ID(s) and Vertex ID(s). This can also be done using the Pick Widget function.
Click Apply.
Partition Create Surface <id> Vertex <id_list>
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
On the Command Panel, click on Geometry and then Surface.
Click on the Modify action button.
Select Partition from the drop-down menu.
Select Create With Curves from the drop-down menu.
Enter in the appropriate values for Surface ID(s) and Curve ID(s). This can also be done using the Pick Widget function.
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
On the Command Panel, click on Geometry and then Surface.
Click on the Modify action button.
Select Partition from the drop-down menu.
Select Create With Edges from the drop-down menu.
Enter in the appropriate values for Surface ID(s) and Edge ID(s). This can also be done using the Pick Widget function.
Optionally select Specify Nodes and enter the Node ID(s).
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
On the Command Panel, click on Geometry and then Surface.
Click on the Modify action button.
Select Partition from the drop-down menu.
Select Create With Quads or Create With Tris from the drop-down menu.
Enter in the appropriate values for Surface ID(s). This can also be done using the Pick Widget function.
Enter in the appropriate values for Tris ID(s) or Quad/Face ID(s). This can also be done using the Pick Widget function.
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
Partition Create Volume <id> Center [Location] {options} Radius <val>
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.
Partition delete volume <volume_id>
4.8.3.4 Using Mesh Intersections to Partition Surfaces
Imprint Mesh {Body | Volume} <id_list>
The imprint mesh functionality differs from a normal geometric imprint in the following ways:
The location of the imprint is determined from coincidence of mesh nodes.
The mesh remains intact through the imprint operation.
Virtual geometry is used to create the imprint.
The imprinting can be done on all types of geometry (including mesh-based geometry, merged geometry, and virtual geometry.)
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.
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.