Manage Handles and Domains for Solid Models

Create handles and domains, divide your solid model, and group, split, merge domains.

You can create a single 3D domain consisting of all the elements in a model. If the model is made up of more than one part, each part is placed in its own 3D domain. The surfaces of each 3D domain are covered with shell elements that are placed in a component named ^morphface. The elements in ^morphface covering each 3D domain are placed into 2D domains. If partition 2D domains is checked, these 2D domains are partitioned according to the settings selected in the parameter subpanel of the Domains panel. Once partitioned, edge domains are placed around the 2D domains and handles are placed at the ends of the edge domains. This procedure is automatic. In many cases, the domains and handles are generated where you want them to be. If they are not, you can add, edit, or delete the handles and domains to meet specific needs.

Create Single 3D Domains

Create a single 3D domain that consists of all the elements in a model.

  1. From the Tools page, click HyperMorph.
  2. Click Domains.
  3. Select the Create subpanel.
  4. Set the selector to 3D domains.
  5. Change the toggle to all elements, or manually select all of the elements in the model.
  6. Click create.


Figure 1. 3D Domain Created for Solid Model. The automatic creation and partitioning of 2D domains on the face of the solid and the creation of edge domains and handles for the 2D domains.

Create 3D Domains with Global Domains and Global Handles

  1. From the Tools page, click HyperMorph.
  2. Click Domains.
  3. Select the Create subpanel.
  4. Set the selector to auto functions.
  5. Click generate.

If there are any domains or handles in the model, you are asked if you want to delete all the current morphing entities. If you click yes, or if there are no morphing entities in the model, 1D, 2D, and 3D domains are automatically generated for the entire model, as well as a global domain and handles.



Figure 2. Automatic Generation of Domains on Solid Model. The addition of a global domain, global handles, and 1D domain, which produces dependent (green) handles.
If you do not select partition 2D domains when you generate a 3D domain, the 2D domain made up of the elements on the surface of the 3D domain will not have edge domains and thus no handles will be generated for it. Without handles, morphing cannot be performed. However, this approach will give you a "blank slate" 2D domain that you can partition by hand. For meshes on which the automatic partitioning does not work well, such as first order tetra meshes, you may find it easier to start with a blank slate rather than editing the automatically created domains. Be sure to try both methods of partitioning, element based and node based, before deciding to partition by hand.
Note: The element based method sometimes works better on second order tetras since it accounts for element curvature. However, if the second order tetras are converted first order tetras and thus have no curvature, the node based partitioning will work better.

Also, for first order tetra meshes, you may find it more effective to ignore curvature when automatically partitioning. To do this, in the parameters subpanel, change the uppermost toggle from curvature based to angle based. You may also want to lower the domain angle to 30 degrees. Partitions will be made only along edges in the model where the domain angle is exceeded. You can then manually divide the 2D domains where the curvature breaks should be located. This method is very helpful for meshes that began as first order tetra meshes but then were then transformed into second order meshes. For these meshes, a curvature break is detected at every element along a curve if the midpoint nodes of the elements have not been modified to capture the curvature. This results in a domain for every element on a curve which makes morphing impractical.

Solving the influence coefficients for 3D domains which contain more than 20,000 elements can become very time consuming even though it is only done after domain editing and during morphing operations such as radius change and map to geom. In these cases you may want to divide the domain into multiple domains using the subdivide 3D function in the update subpanel of the Domains panel, or lower the limit for the large domain solver. The large domain solver limit can be found in the global subpanel of the Morph Options panel. However, even though influence calculations for large domains are more rapid, morphing using the large domain solver can be time consuming, and thus subdividing 3D domains can often be the best solution for efficient morphing. Additionally, if you are only going to morph a part of your 3D mesh, you only need to create domains for that part.

Subdivide Solid Models

  1. From the Tools page, click HyperMorph.
  2. Click Domains.
  3. Select the Update subpanel.
  4. Set the selector to subdivide 3D.
  5. Select the 3D domains to be subdivided.
  6. Select any 2D domains on the surface of the 3D domain that are permissible for HyperMorph to split into more than one 2D domain.
  7. Click subdivide.
HyperMorph automatically subdivides the 3D domains into one or more 3D domains while leaving the 2D domains not selected as being divisible unchanged. Not that in some cases HyperMorph will not be able to subdivide a 3D domain without dividing an indivisible 2D domain. In these cases the 3D domain will be left undivided.

Divide Solid Models Manually

  1. From the Tools page, click HyperMorph.
  2. Click Domains.
  3. Select the Create subpanel.
  4. Set the selector to 3D domains.
  5. Select the elements to be placed into a new 3D domain.
  6. Click create.

When selecting elements for the new domain, you do not need to select only solid elements, other elements are automatically removed before the domain is created. Therefore, you do not need to be concerned about selecting the morphface elements.

Also, it does not matter if the selected elements are already in a 3D domain. When the new domain is created, the elements are moved from the old domains to the new domain. Morphface elements are placed at the internal interface between the new domain and the other domains and create a 2D domain for the interface, but it will not partition the interface. This better accommodates the division of tetra meshes that cannot be divided along flat or curved internal faces and thus would be partitioned into many domains.
Note: When you divide a 3D domain into parts, it has the effect of partitioning the surface of the original 3D domain along seams where the divisions were made. So when you divide your model into 3D domains, make sure that you divide it along lines where you want your 2D domains on the surface to be.
Dividing a 3D domain into many 3D domains can be very useful for controlling the movement of nodes within the domain when the handles on the surface are moved. When some meshes are morphed, the internal elements can become distorted. This is generally caused by handle influences extending too far through the 3D domain. You can divide your 3D domains to restrict the handle influences and control mesh distortion.


Figure 3. 3D Domain Split into Four 3D Domains. The influences of the handles will not extend across the boundaries between the domains.

Influences must be recalculated every time handles, domains, or symmetries are added, edited, or deleted. They are also recalculated during radius changes and geometry mapping. These calculations occur when you enter or leave a HyperMorph panel or when you leave the delete panel. For large models you will want to make all of your domain changes before exiting the Domains panel. The influences for handles are only recalculated in regions that have been edited.

If the domains are not created exactly the way you want them, you can edit them in the Domains panel. The create subpanel allows you to create new domains. The organize subpanel allows you to edit domains by adding and removing elements to or from a domain and by grouping domains together. The edit edges subpanel allows you to split, merge, and place handles along edge domains. Since creating or editing 3D domains results in the creation of 2D and edge domains, and creating or editing 2D domains results in the creation and deletion of edge domains, you should perform the tasks in the following order:
  1. Create and edit all the 3D domains that you want first.
  2. Create and edit the 2D domains.
  3. Create and edit the edge domains.

Automatic partitioning does not always divide a mesh in the most useful ways. Occasionally, elements end up in domains adjacent to where you want them or placed in their own domain. Some cleanup may be required.

Organize Elements in Domains

Move elements from one domain to another.

  1. From the Tools page, click HyperMorph.
  2. Click Domains.
  3. Select the Organize subpanel.
  4. Change the selector to add nodes/elements.
  5. Select the elements to be moved.
  6. Select the target domain.
  7. Click organize.
The elements are moved from their current domain to the selected domain. The edge domains around both domains are refreshed, as well as the 2D domains at the interface if solid elements are being organized. New handles may also be created during this process, and if retain handles is not checked, handles may be deleted. You should keep retain handles unchecked unless you have created shapes for the model that use the handles on the domains that you are editing.


Figure 4. Move Elements. The model on the left shows problems that partitioning can encounter for some meshes. The model on the right has been corrected using the organize subpanel of the Domains panel. For this example, the retain handles option was left unchecked, resulting in the elimination of handles that are no longer on the corners of the 2D domains.
Note: Holding the mouse button down when the mouse is either over the icon for a 2D or 3D domain or over an element inside a domain, will highlight the edge domains surrounding the domain. This allows you to visualize the domain that you are selecting. The domain icon is placed at the centroid of the domain, and for some domains it can end up away from the elements of the domain and near other domain icons. Having the edges for the domain highlighted during selection is often necessary to tell which icon goes with which group of elements.

Group Domains

Group two or more domains.

  1. From the Tools page, click HyperMorph.
  2. Click Domains.
  3. Select the Organize subpanel.
  4. Change the selector to combine domains.
  5. Select the domains to be grouped.
  6. Click organize.

The selected domains are combined into a single domain, and the surrounding domains and handles are updated.

Edge domains are automatically partitioned when they are created. They are also updated whenever a change occurs for a domain of which they are on the edge. This is why you should edit the edge domains after the other domains have been edited. If you perform edge editing first, your changes may be erased when you edit the 2D and 3D domains.

Edge domains are used to make radius changes, so it is important to make sure that any radius in the model that you intend to change be captured correctly by edge domains. HyperMorph attempts to partition edge domains where curvature begins and ends, but in some cases, it will not identify the proper starting and ending points. You will need to correct this by hand.

Split Edge Domains

  1. From the Tools page, click HyperMorph.
  2. Click Domains.
  3. Select the Edit Edges subpanel.
  4. Change the selector to split.
  5. Select an edge domain.
  6. Select a node on that domain that is not on the edge.
  7. Click split.
The selected edge domain is split into two edge domains at the selected node. A handle is created at the selected node.


Figure 5. Split Edge Domains. The lower edge domain has been split at the gray node (left model), which becomes a handle (right model). Now the radius of each new edge domain may be modified independently of the other.

Merge Edge Domains

  1. From the Tools page, click HyperMorph.
  2. Click Domains.
  3. Select the Edit Edges subpanel.
  4. Change the selector to merge.
  5. Select any number of edge domains.
  6. Click merge.

The two edge domains are merged into one edge domain. This function only allows you to merge edge domains that lie end-to-end such that the resultant merged edge domain is a continuous series of nodes.

You may also create dependent handles along an edge domain. This feature helps save time when you are changing the radius for the edge domain. If a model is very large, you may find it more efficient to place dependent handles on the edge domains whose radii you wish to change before you enter the morphing panel.
Note: You can also merge edge domains in the organize subpanel.

Create Dependent Handles along Edge Domains

  1. From the Tools page, click HyperMorph.
  2. Click Domains.
  3. Select the Edit Edges subpanel.
  4. Change the selector to add handles.
  5. Select one or more domains.
  6. Click create.
    Dependent handles are created on the selected edge domains. These handles are dependent on the independent handles to either side of them along the edge domain.


    Figure 6. Dependent Handles Created using the Handles on Edge Feature

    Creating dependent handles in this way has two significant effects. The first is that since they are dependent, movements applied to any of the independent handles on the edge are transparently applied to the dependent handles. It will be as if they were not there. Secondly, when you make a radius change to an edge domain that has a handle at each of its nodes, the influences do not need to be recalculated, which makes the radius change process much faster for large models.

  7. When you are satisfied with your domains, click return.
    The influences for the handles is calculated and you are ready to begin morphing.
    Note: During influence calculation for large models you might run out of available memory. This generally happens when a given domain is too large and it contains too many handles. In these cases, you should divide large domains, delete unnecessary handles, or lower the limit of the large domain solver.