Domains Panel
Use the Domains panel to add and edit domains, or update the domains for a model.
Location: Tools page > HyperMorph module
Each domain contains either elements (for 1D, 2D, 3D, or general domains), a series of nodes (for edge domains), or a group of nodes (for global domains). When the handles move, the shapes of the attached domains are changed, and when the domain changes shape, the positions of the nodes within that domain change.
Domain Types
- General Domains
- General domains can contain any type of element (1D, 2D, or 3D), but edges or faces are not created along with the general domain. General domains will respect 2D and edge domains and you may create edge domains inside general domains if you desire. Handles will be created for general domains where the domains contact other elements whether those elements are in domains or not. Where the general domain contacts elements outside of domains, a handle is created at every node on the interface. Where general domains contact elements in other domains, handles will be created at logical locations to ensure control of the general domain. Once created, general domains can be morphed just like any other domain, even though they may contain different element types.
- Edge Domains
- You are not able to create edge domains that are not attached to any 2D, 3D, or general domains. When 2D, 3D, and general domains are deleted, edge domains that are no longer attached to any 2D/3D/general domains, will be automatically deleted whenever you enter or leave a HyperMorph panel or the Delete panel.
- 1D, 2D, and 3D Domains
- For 1D, 2D, and 3D domains, only elements of the appropriate type will be assigned to the domain. If selected elements of the correct type are already assigned to another domain, then they will be reassigned to the new domain. When 2D domains are created, edge domains will also be created around the edges of the elements for the domains. When 3D domains are created, 2D domains will be created on their faces and edge domains will be created around the edges of the 2D domains. Handles will automatically be created at the ends of the edge domains.
- Global Domains
- You may create more than one global domain in a model, but no node may belong to more than one global domain. Global handles only affect the nodes assigned to their global domain.
Create Subpanel
| Option | Action | 
|---|---|
| domain type | Select the type of
                                    domain to be created. 
 | 
| divide by comps | Create new domains, divided along component boundaries. This can be combined with divide by domains so that one domain will be generated for each combination of component and domain. | 
| divide by domains | Create multiple new domains based on the domains that the
                selected elements already belong to.  Figure 4. Example: Divide by Domains. The different colors represent each domain. | 
| partition 2D domains | Divide created 2D domains based on the settings in the partitioning subpanel. | 
| retain handles | Keep any handles already generated. Clear this checkbox to delete old handles lying within the new domain when creating that domain. | 
Organize Subpanel
Use the Organize subpanel to combine domains and add or remove nodes and elements from domains.
| Option | Action | 
|---|---|
| combine domains / add nodes/elems / remove nodes/elems | Select the type of function to perform. | 
| domain | Select the domain to
                                    which you wish to add or remove nodes or
                                        elements. Note: Available when the function to perform is set
                                        to add nodes/elems or remove nodes/elems. | 
| domains | Select the domains you
                                    wish to combine. Note: Available when the function to perform is
                                        set to combine domains. | 
| elems | Add or remove elems
                                    to/from local domains. Note: Available when the function to
                                        perform is set to add nodes/elems or remove
                                        nodes/elems. | 
| local domains / global domains | Choose the type of
                                    domain. You can add/remove elems to local domains, or nodes to
                                    global domains. Note: Available when the function to perform is
                                        set to add nodes/elems or remove nodes/elems. | 
| nodes | Add or remove nodes
                                    to/from global domains. Note: Available when the function to
                                        perform is set to add nodes/elems or remove
                                        nodes/elems. | 
| retain handles | Keep any handles already generated. Clear this checkbox to delete old handles lying within the specified domain. | 
Edit Edges Subpanel
| Option | Action | 
|---|---|
| domain | When splitting a domain, use this collector to select the domain to split. | 
| domains | When merging domains or adding handles, use this collector to select the domains to merge or add handles to. | 
| node | When splitting a domain, use this collector to select the node at which you wish the split to occur. The node selected when splitting edges must be on the given edge but cannot be on the end of the edge. | 
| retain handles | Do not delete the existing handles when the handles are recalculated. | 
| split / merge / add handles | 
 | 
Update Subpanel
| Option | Action | 
|---|---|
| calc avg | Calculate the average
                                    element size. Note: Available when the function is remesh 2D/3D
                                        and remesh edges is enabled. | 
| divide by comps | Create new domains,
                                    divided along component boundaries. This can be combined with
                                    divide by domains so that one domain will be generated for each
                                    combination of component and domain. Note: Available when the
                                        function is partition. | 
| divide by domains | Create multiple new domains based on the domains that the
                selected elements already belong to.  Figure 5. Example: Divide by Domains. The different colors represent each domain. Note: Available when the function is partition. | 
| divisible 2D domains | Select the 2D domains
                                    that you wish to divide. When subdividing, a 2D domain will not be divided unless it is specified as being a divisible domain. Thus, the original face domains will be preserved. Note: Available when the function is subdivide
                                        3D | 
| domains | Select the domains
                                    that you wish to divide, for which you wish to update the
                                    1D/connector domain method, that you wish partition, or that you
                                    wish to reparameterize. Selected 3D domains will be subdivided into several 3D domains depending on the shape of the 3D domain and the number of divisible 2D domains. The 1D/conn method determines how handles are placed for the 1D and connector domain and how the dependencies are assigned. See the parameters subpanel for an explanation of the different methods. Note: Available
                                        when the function is subdivide 3D, 1D/conn method,
                                        reparameterize, or partition.  | 
| domains / elems (toggle) | Choose either domains
                                    or elements. If you choose elements, you should only select elements that are not inside domains, since doing so would remove those elements from their domains when they are remeshed. Note: Available when the function is remesh
                                        2D/3D or smooth mesh. | 
| elem size = | Specify the desired
                                    element size. Note: Available when the function is remesh 2D/3D
                                        and remesh edges is enabled. | 
| independent / secondary / main / cluster | Choose how handles are
                                    placed for the 1D and connector domain and how the dependencies
                                    are assigned. Note: Available when the function is 1D/conn
                                        method. | 
| iterations | Specify a limit on the
                                    number of iterations when smoothing the mesh. Note: Available
                                        when the function is smooth mesh. | 
| new mesh type | Choose the type of
                                    mesh to use during remeshing. Note: Available when the function
                                        is remesh 2D/3D. | 
| preserve shapes | Preserve morphing
                                    shapes after the remesh. Otherwise, shapes may be
                                        lost. Note: Available when the function is remesh
                                        2D/3D. | 
| retain handles | Do not delete the
                                    existing handles when the handles are
                                        recalculated. Note: Available when the function is subdivided
                                        3D or partition. | 
| size control | Attempt to keep
                                    elements roughly similar in size during meshing. Note: Available
                                        when the function is remesh 2D/3D. | 
| skew control | Avoid producing
                                    highly-skewed elements during meshing. Note: Available when the
                                        function is remesh 2D/3D. | 
| smooth method | 
 Note: Available when the function is smooth mesh. | 
| remesh edges / hold edges | 
 Note: Available when the function is remesh 2D/3D. | 
| update function | Choose the type of
                                    function to perform. 
 | 
Parameters Subpanel
Use the Parameters subpanel to update the morphing parameters.
| Option | Action | 
|---|---|
| 1D domains | Choose a method for 1d
                                        domains. 
 | 
| biasing style | Choose a biasing style
                                    for domain morphing. 
 | 
| edge domains | Select the color to
                                    use when drawing edge domains. Note: Changing the
                                        domain color for all domains of a given type will update the
                                        current color for all domains of that type. It will also be
                                        the new default color for new domains of that
                                    type. | 
| 2D domains | Select the color to
                                    use when drawing 2D domains. Note: Changing the
                                        domain color for all domains of a given type will update the
                                        current color for all domains of that type. It will also be
                                        the new default color for new domains of that
                                    type. | 
| 3D domains | Select the color to
                                    use when drawing 3D domains. Note: Changing the
                                        domain color for all domains of a given type will update the
                                        current color for all domains of that type. It will also be
                                        the new default color for new domains of that
                                    type. | 
| other domains | Select the color to
                                    use when drawing global, general, and 1D domains. Note: Changing the domain color for all domains of a
                                        given type will update the current color for all domains of
                                        that type. It will also be the new default color for new
                                        domains of that type. | 
| domain solver limit | This is the highest
                                    number of elements for which HyperMorph will use the standard domain
                                    solver. Models with a number of elements greater than this will
                                    use the alternative large domain solver. The large domain solver resolves the effects of morphing each time morphing is applied (as opposed to the standard domain solver which runs once), computing influences which are applied each time the handles are moved. The large domain solver is actually slower for domains with few elements - but it is much faster for domains with a large number of elements. | 
| faces | Select the color to use when drawing faces of 3D domains. | 
| handle size = | Specify the radius of a global, independent handle. Independent local handles have a diameter equal to the handle size parameter. Dependent handles, both global and local, are smaller than the handles upon which they are dependent. | 
| handle tolerance = | Specify the tolerance for handle detection operations. This value cannot exceed 5% of the handle size. | 
| minimum influence = | The smallest influence
                                    allowed between a node and a handle. Influences (calculated by the domain solver) determine how far each node moves relative to its assigned handle, and range from 0-1. Influences below this limit are discarded, so morphing with a high minimum influence often results in breaks in the mesh between nodes with influences above the limit (which morph) and those below the limit (which do not morph). However, using a low minimum influence requires more memory and disk space. The large domain solver does not use influence calculations. | 
| morph volumes | Select the color to use when drawing morph volumes. | 
| symmetry | Select the color to
                                    use when drawing symmetries. Note: Changing the
                                        domain color for all domains of a given type will update the
                                        current color for all domains of that type. It will also be
                                        the new default color for new domains of that
                                    type. | 
| symmetry size = | The size that symmetries are drawn. | 
Partitioning Subpanel
| Option | Action | 
|---|---|
| add to geometry | Merge the partitions
                                    of elements that lie on surfaces with the partitions that do
                                    not. That is, if a half of a flat mesh lies on a surface and
                                    half does not, the mesh will not be subdivided. This option will
                                    not merge two partitions which lie on different
                                        surfaces. Note: Can only be used along with the use geometry
                                        option. | 
| curvature based / angle based | 
 | 
| curve tolerance = | Specify the amount of
                                    change of the angle between elements (measured from one side of
                                    an element to the other) above which a domain will be
                                    subdivided. The lower this parameter is, the more partitions you
                                    will get. Note: Available for curvature based
                                        partitioning. | 
| domain angle = | Specify the angle between elements at which domains are broken into smaller domains. The lower this parameter is, the more partitions you will get. | 
| global influences | The first switch
                                    controls the way that global handles affect the nodes inside a
                                    global domain or morph volume. 
 
 Note: A practical upper limit on the number of
                                        handles you can have in a global domain that uses kriging is
                                        3000. Computers with above average memory and CPU available
                                        may be able to support a larger number of handles
                                        comfortably.  | 
| quad/mixed meshes: | Choose the algorithm
                                    used for partitioning domains. The element based algorithm is
                                    generally more successful for quad and mixed meshes while the
                                    node based method is more successful for tria based meshes.
                                    Either algorithm will work on both types of meshes. Note: Partitioning is not an exact science and thus
                                        you may have to manually correct the domains, using the
                                        organize subpanel, once they have been partitioned.If
                                    the number of trias/tetras exceeds 2/3 of the total number of
                                    elements, the mesh is considered a tria/tetra mesh; otherwise it
                                    is considered a mixed mesh. | 
| tria/tetra meshes: | Choose the algorithm used for partitioning domains, and set a different algorithm for tria/tetra meshes than for quad or mixed meshes. | 
| use geometry | Use model geometry, rather than only the curvature of the mesh, in determining domain partitions. For elements whose nodes are associated with surfaces, such as elements created by automeshing surfaces, domain boundaries will be drawn along the edges of those surfaces. The 2D domains will match one to one with those surfaces. Elements whose nodes do not lie on surfaces are partitioned according to the above parameters. | 
Command Buttons
| Button | Action | 
|---|---|
| add | On the create subpanel, this auto-function will create local domains for any elements outside existing domains. | 
| create | On the create subpanel, this creates the new domain according to your specifications. | 
| delete all domains | On the update subpanel, this deletes all morphing domains. | 
| delete all morph entities | On the update subpanel, this deletes all morph entities, including domains, constraints, shapes, handles, and so on. | 
| generate | On the create subpanel, this auto-function will create domains for all nodes and elements in the model. | 
| merge | On the edit edges panel, this performs the edge merge. | 
| organize | On the organize subpanel, this performs the specified organization task. | 
| partition | On the update subpanel, this performs the partitioning operations. | 
| redo last | On the partitioning
                                    subpanel, if you do not like the results of your domain
                                    generation, enter new values in the subpanel, and then click
                                        redo last. The most recent domain
                                    creation will be redone using the new partitioning values that
                                    you have chosen. Note: This feature does not work if
                                        you have exited and returned to the Domains panel since
                                        generating the domains, or already performed commands within
                                        other subpanels of the Domains panel. | 
| reject | Undo the creation or deletion of any entity, such as a domain. | 
| remesh | On the update subpanel, this performs the remesh. | 
| reparam | On the update subpanel, this performs the reparameterization. | 
| reset parms | On the partitioning subpanel, this resets all of the partitioning parameters to their default values. | 
| review | On the organize subpanel when using add nodes/elems, this allows you to review the elements or nodes that are included in the selected domain. | 
| smooth | On the update subpanel, this performs the mesh smoothing operation. | 
| split | On the edit edges panel, this performs the edge split. | 
| subdivide | On the update subpanel, this subdivides 3D domains. | 
| update | On the create
                                    subpanel, this auto-function will update the domains if their
                                    elements have been changed. Note: Domains will
                                        automatically be updated when you enter or leave a morphing
                                        panel, making this feature unnecessary in most cases.
                                     | 



