Skip navigation links
(Wind-US Documentation Home Page) (Wind-US User's Guide) (GMAN User's Guide) (MADCAP User's Guide) (CFPOST User's Guide) (Wind-US Utilities) (Common File User's Guide) (Wind-US Installation Guide) (Wind-US Developer's Reference) (Guidelines Documents)

(Introduction) (Screen Functions) (File Menu) (View Menu) (Create Menu) (Manipulate Menu) (Grid Generation Menu) (Overlapping Menu) (Boundary Conditions Menu) (Macro Menu) (MADCAP Keywords)

Manipulate Menu

The Modular Aerodynamic Design Computational Analysis Process (MADCAP) "Manipulate" library and menus are used to create new objects such as points, curves, surfaces, and zones. Typically, objects created using this menu are derived from existing objects of the same dimension, whereas objects created by using the Create Menu are created from scratch or from other points and curves displayed on screen and used as reference points.

Selection of the "Manipulate" menu item produces the drop down menu shown below.

MADCAP Manipulate drop down menu

There are twenty selections under the Manipulate menu. They are:

Help on these submenus is available below.

Break Objects

Selection of the "Break Objects ..." submenu causes the following window to be displayed.

Break Objects window

This operation breaks a structured object into smaller pieces by specifying indices in the object at which to break it up, or breaks an unstructured object by specifying surfaces or surface groups in the object which should be extracted to create a new object. The window above shows the entry boxes for a surface, in which the user may enter a list of N and M lines at which to break the surface. For curves, the user is presented a single entry box in which to enter point indices to break at, while for zones, the user is presented with three entry boxes in which to enter I, J, and K indices. The user may also use the checkbutton to indicate that the break locations are to be selected graphically.

The radiobuttons at the top right should also be used to indicate whether to generate default names, use a specific name entered in the entry box, or to save the results in the result buffer without writing to file. When the "Break Objects" button is picked, the program prompts for the object to be broken, as well as the break locations if that information is to be selected graphically. The blue and red surfaces in the image below show the result of breaking the green surface at the N = 5 line. (Surfaces have been translated to show the effect of the operation - normally the new surfaces would obscure the original surface.)

Example showing surface broken into two surfaces

When breaking an unstructured object at a sub-surface or sub-surface group, two new objects will be created, one containing the selected sub-surfaces and another containing all of the remaining surfaces. This operation is typically used to extract a surface or group of surfaces to repair. They can later be reinserted in the full unstructured object using the join command.

The text commands generated by this operation are:

   om select {point | curve | surface | usurface | zone} object_definition (To define
      object to be broken)
   om select {point | curve | surface | usurface} object_definition (Multiple instances,
      to define break locations)
   manip break index {m mloc | n nloc | i iloc | j jloc | k kloc}
   file save name objectname

Join Objects

Selection of the "Join Objects ..." submenu causes the following window to be displayed.

Join Objects window

This operation is used to combine curves, surfaces, or zones that share a common edge into a single curve, surface, or zone by eliminating the duplicated edge and creating a single new object. Only two zones may be joined at once. If only two structured surfaces are being joined, they do not need to have their N and M-family curves ordered consistently to be joined - the created surface will follow the ordering of the first surface selected. If more than two surfaces are to be joined, the surface containing the new surface origin must be selected first, and all additional surfaces must follow this orientation. For multiple curves, the order of points on the curves is not important, but the curves should be selected in the order they are to be concatenated. On the window, the user needs only to specify the type of objects to be joined and whether to generate a default name, a specfied name, or save the results in the results buffer without writing to file.

When joining unstructured surfaces, the match tolerance may be used to control how closely the edges of the surfaces must match in order to be joined. The tolerance is a relative tolerance that uses a percentage of the local spacing of the boundary loop curves of the objects being joined. For instance, a value of 0.2 will join any nodes that lie within 20% of the edges on either side of the point being joined. If too large of a tolerance is specified, the surfaces may join in ways that were unintended by the user. If too small of a tolerance is specified, the surface may not join at all points. Note, the objects that are being joined must have the same number of points on either side of the join gap.

When the "Join Objects" button is picked, the program will prompt to select the objects to be joined from the display. The red surface and curve shown in the image below were generated by joining the other surfaces and curves. (Surfaces have been translated to show the effect of the operation - normally the new surface would obscure the original surfaces.)

Example showing curve and surface created by joining other curves and surfaces

In this example, the green curve to the left was selected first, so the final curve generated is ordered as the green curve was. For the surface, the blue surface at the upper left was selected first, and the other three surfaces follow the same ordering convention. The result surface is ordered consistent with all of the selected surface, and the origin is at the origin of the blue surface at the upper left.

The text commands generated by this operation are:

   om select {curve | surface | zone} object_definition (Multiple instances,
      to define objects being joined)
   manip join
   file save name objectname

Insert Object (Structured Grids Only)

Selection of the "Insert Object ..." submenu causes a window similar to the following to be displayed.

Insert Object window

This operation is used to insert the points making up one structured grid object into the definition of another structured grid object of the same or higher dimension. The coordinate values, in the same computational ordering, are used to replace the coordinate values in the target object at a specified location. When inserting a point, only the M, M and N, or I, J, and K values need to be specified for the location to insert the point in the target curve, surface, or zone. When inserting a curve into a surface or zone, the user must specify whether to insert the curve as an N-, M-, I-, J-, or K-varying curve in addition to the location to begin the insertion. When a surface is inserted into a zone, the user must specify whether it is to be inserted as an I, J, or K plane in addition to the location. The insert location may be entered at the entry boxes or picked graphically from the screen. Also, the user must set the radiobutton to indicate whether to overwrite the object being inserted into, generate a default name, use a specified name, or save the results in the result buffer. When the "Insert Object" button is picked, the program prompts first for the object being inserted into, then for the object to insert, and finally for the insert location (unless that information is included in the window entry boxes). The red surface at the bottom shows the result of inserting the blue surface into the green surface at the M = 55, N = 1 location. (The result surface has been translated to avoid overplotting on the original surfaces).

Example showing surface created by inserting one surface into another

The text commands generated are:

   om select {point | curve | surface | zone} object_definition (To define
      object being inserted into)
   om select {point | curve | surface | zone} object_definition (To define
      object being inserted)
   om select point object_definition (To define insert location)
   manip insert type {point | curve | surface | zone} [m mloc | n nloc | \
      i iloc | j jloc | k kloc]
   file save {default | same | name curvename}

Transform Phys. Coords

Selection of the "Transform Phys. Coords" submenu causes the window shown below to be displayed.

Transform Phys. Coords window

This operation is used to transform the physical (x,y,z) coordinates of an object. The user must first set the radiobuttons at the upper left of the window to identify the types of objects that are to be selected from the graphics window and whether a single object or multiple objects are to be transformed. Next, the radiobuttons identifying whether a full transformation matrix is to be entered or a simple exchange of axes is to be performed. For an exchange of axes, any coordinate direction can be transformed into any new coordinate direction. If a transformation matrix is entered, it pre-multiplies the coordinate data to create new coordinate data. The user should also select a radiobutton to indicate whether the object generated should overwrite the transformed object, generate a new default name, a specified name, or save the object in the resutl buffer. In the image below, the red surface shows the result of transforming the z coordinate of the blue surface into "y" and the y coordinate into "−z".

Example showing surface created by transformation of physical coordinates

The text commands generated are:

   om select {zone | surface | curve | point} object_definition (Multiple
      instances)
   manip transform {xyz xyzt xyzt xyzt | matrix m11 m12 m13 m21 m22 m23 \
      m31 m32 m33}
   file save {default | name surfacename | overwrite}

Transform Comp. Coords (Structured Grids Only)

Selection of the "Transform Comp. Coords ..." submenu causes the following window to be displayed.

Transform Comp. Coords window

This operation is used to transform the computational coordinates of an object. For zones, the user specifies a new computational assignment for each of I, J, and K. For surfaces, the computational indices are N and M. For curves, the only transformation possible is to switch the direction of points on the curve. The results of computational transformations are only visible if the Highlight Object Origins mode is set, since there is no change to the data itself, only to its organization. The user should specify the type of object to transform, whether one or multiple objects or to be transformed, and how to save the result object. The red surface in the image below shows the result of transforming the N direction of the blue surface into +M, and the M direction into −N. (The result object has been translated to avoid overplotting the original object).

Example showing origin change resulting from transformation of computational coordinates

The text commands generated are:

   om select {zone | surface | curve | point} object_definition (Multiple
      instances)
   manip transform {ijk ijkt ijkt ijkt | nm nmt nmt}
   file save {default | name surfacename | overwrite}

Rotate Objects

Selection of the "Rotate Objects ..." menu causes the following window to be displayed.

Rotate Objects window

This operation is used to rotate an object a given angular distance about an arbitrary line. Any type of object can be rotated, and the user can specify that either a single object or multiple objects be rotated at once. The two endpoints for the rotation line can either be selected graphically or keyed in on the window. Optionally, rather than a second endpoint being specified, the object can be rotated about a line parallel to one of the principal axes at the first endpoint. The amount of angular rotation, between −360 and 360 degrees, should be entered in the entry box on the bottom left. The user must also select a radiobutton indicating the results sould overwrite the original object, be stored with a default name, a specified name, or saved in the results buffer. When the "Rotate Objects" button is selected, the user will be prompted for the objects to rotate and the endpoints of the rotation line if they are to be seleted graphically. In the image below, the red surface has been generated by rotating the blue object 90 degrees about the vertical axis at the singular edge at the top of the object.

Example showing rotation of a surface

The text commands generated are:

   om select {zone | surface | curve | point} object_definition (Multiple
      instances)
   om select point point_definition (One or two instances, to define
      rotation axis)
   manip rotate parallel_to {x | y | z | line} angle angle
   file save {default | name objectname | overwrite}

Translate Objects

Selection of the "Translate Objects ..." submenu causes the window below to be displayed.

Translate Objects window

This operation is used to translate an object a given distance. Any object type can be translated, and a single object or multiple objects may be translated at once. The translation can be entered as x, y, and z translation components or by graphically selecting two points on the screen to define the translation vector. The user must also select a radiobutton indicating the results sould overwrite the original object, be stored with a default name, a specified name, or saved in the results buffer. When the "Translate Objects" button is selected, the user will be prompted to select the objects to translate, and for the points defining the translation vector if this data is to be entered graphically. In the image below, the red surface resulted from a translation of the blue surface. The translation vector was defined by selecting the upper left corner of the surface as the vector origin and the lower right corner of the surface as the vector termination.

Example showing translation of a surface

The text commands generated are:

   om select {zone | surface | curve | point} object_definition (Multiple
      instances)
   om select point point_definition (Two instances, to define translation
      vector)
   manip translate [x x y y z z]
   file save {default | name objectname | overwrite}

Scale Objects

Selection of the "Scale Objects ..." submenu causes the window below to be displayed.

Scale Objects window

This option is used to create a scaled version of an object. The scale factors are applied after subtracting off a "scale center" from the coordinates. This center is then added back on after the scale factors have been applied. Any object type can be scaled, and a single object or multiple objects can be scaled at once. The scale center can be defined either in the entry boxes in the window or selected graphically. The user should enter the desired scale factors for each coordinate direction in the entry boxes at the bottom. By entering non-uniform scale factors, objects may be stretched or compressed in addition to being simply scaled. The user must also select a radiobutton indicating the results sould overwrite the original object, be stored with a default name, a specified name, or saved in the results buffer. When the "Scale Objects" button is selected, the user will be prompted to select the objects to be scaled, and for a scale center if this is to be defined graphically. The red surface in the image below was generated by scaling the blue surface by 0.5 in the x direction, 1.0 in the y direction, and 2.0 in the z direction, with a scale center located at the upper left corner of the surface.

Example showing scaling of a surface

The text commands generated are:

   om select {zone | surface | curve | point} object_definition (Multiple
      instances)
   om select point point_definition (To define scale center)
   manip scale {x xscale y yscale z zscale}
   file save {default | name objectname | overwrite}

Reflect Objects

Selection of the "Reflect Objects ..." submenu causes the following window to be displayed.

Reflect Objects window

This option is used to reflect an object about any arbitrary plane. Any object type can be reflected, and a single object or multiple objects can be reflected at once. The user must specify on the window whether to reflect about a constant x, y, or z plane or a completely arbitrary plane. For a reflection about a constant x, y, or z plane, only one point is required to define the reflection plane, while three points are required for an arbitrary plane. These points may be defined in the window or selected graphically. The user must also select a radiobutton indicating the results sould overwrite the original object, be stored with a default name, a specified name, or saved in the results buffer. When the "Reflect Objects" button is selected, the user will be prompted for the objects to reflect, and for the point(s) defining the reflection plane if they are to be defined graphically. The red surface in the image below is the reflection of the blue surface about a constant vertical plane located at the upper right corner of the blue surface.

Example showing reflection of a surface

The text commands generated are:

   om select {zone | surface | curve | point} object_definition (Multiple
      instances)
   om select point point_definition (One to three instances, to define
      reflection plane)
   manip reflect {x | y | z | arb}
   file save {default | name objectname | overwrite}

Move Points

Selection of the "Move Points ..." submenu causes the following window to be displayed.

Move Points window

This option is used to move points that are members of any object type to a new coordinate location while leaving the other points on the object unchanged. Multiple points on an object may be selected to be moved. Also, an option may be set such that all points withing a given tolerance from a selected point should be moved. The destination point can either be selected graphically or keyed in on the window. The user must also select a radiobutton indicating the results sould overwrite the original object, be stored with a default name, a specified name, or saved in the results buffer. When the "Move Points" button is selected, the user will be prompted for the object containing the points to move, and then for the points themselves. If the destination point is to be selected graphically, the program will then prompt for that point as well. In the image below, the red surface shows the result of moving all of the points on the top edge of the surface to a single point to generate a singular edge on the surface. (The result surface has been translated to avoid overplotting the original surface.)

Example showing result of moving points on a surface

The text commands generated are:

   om select point point_definition (Multiple instances, to define points
      to be moved and destination point)
   manip movepoint [tol tolerance]
   file save {default | name objectname | overwrite}

Delete Indices

Selection of the "Delete Indices ..." submenu causes the following window to be displayed.

Delete Indices window

This option is used to delete specific points from a curve, lines from a structured surface, planes from a structured zone or surfaces from an unstructured object. The option for the type of delete should be set on the radiobuttons at the upper left. The specific entities to delete from an object may then be selected graphically or by entering the indices on the entry boxes. The example above shows the window when the "delete lines from surface" option is selected. The entry boxes are modified for the other two options to allow deletion of the appropriate type of indices. The user must also select a radiobutton indicating whether the result should be stored with a default name, a specified name, or saved in the results buffer. When the "Delete Indices" button is selected, the user will be prompted for the object containing the indices to delete, and then for the entities to be deleted themselves if they are to be specified graphically. In the image below, the red surface shows the result of deleting two N-lines and two M-lines from the blue surface. (The result surface has been translated to avoid overplotting the original surface.)

Example showing result of deleting lines from a surface

The text commands generated are:

   om select {curve | surface | zone} object_definition
   om select {point | curve | surface} object_definition (Multiple instances,
      to define indices to be deleted)
   manip delete [I indices] [J indices] [K indices] [M indices] [N indices]
   file save {default | name objectname}

Add Indices (Structured Grids Only)

Selection of the "Add Indices ..." submenu causes the following window to be displayed.

Add Indices window

This option is used to add points to a curve, lines to a structured surface, or planes to a structured zone. The option for the type of addition should be set on the radiobuttons at the upper left. The specific locations to add indices to an object may then be selected graphically or by entering the indices on the entry boxes. Locations in text mode are defined by a real number in index coordinates. For example, to add a new N-line halfway between N = 5 and N = 6, an add location of N = 5.5 should be specified. The window above shows the entry boxes when the "add lines to surface" option is selected. The entry boxes are modified for the other two options to allow addition of the appropriate type of indices. Since coordinate data will be added at the specified location, the user must also indicate whether the interpolation on the surface should be perfromed linearly or nonlinearly. The user must also select a radiobutton indicating whether the result should be stored with a default name, a specified name, or saved in the results buffer. When the "Add Indices" button is selected, the user will be prompted for the object to be added to and then for the locations to add indices if they are to be defined graphically. In the image below, the red surface shows the result of adding an N-line and an M-line to the blue surface between the first two indices in each direction. (The result surface has been translated to avoid overplotting the original surface.)

Example showing result of adding lines to a surface

The text commands generated are:

   om select {curve | surface | zone} object_definition
   manip add {[I indices] [J indices] [K indices] [M indices] [N indices]} \
      interp {linear | nonlinear}
   file save {default | name objectname}

Abut Surface Edges (Structured Grids Only)

Selection of the "Abut Surface Edges ..." submenu causes the following window to be displayed.

Abut Surface Edges window

This option is used to force the edges of two structured surfaces to abut by moving the points on the edge of one surface to match the points on the edge of a second surface, or by moving the points on both edges to an average location between the two edges. A user-defined tolerance is used to assist in locating the two abutting edges. Edges separated by more than this tolerance will not be detected as possibly abutting. The desired tolerance is entered in the entry box at the bottom of the window. The user must also select a radiobutton indicating whether the result should be stored with a default name, a specified name, or saved in the results buffer. When the "Abut Edge Points" button is selected, the user will be prompted for the two surfaces to be abutted. In the image below, the red surface shows the result of abutting the green surface to the blue surface. (The result surfaces have been translated to avoid overplotting the original surfaces.)

Example showing result of abutting one surface to another

For unstructured surfaces, see the Abut Loop Edges command.

The text commands generated are:

   om select surface surface_definition (Two instances)
   manip abut mode {first | second | average} tolerance tol
   file save {default | name surfname}

Abut Loop Edges

Selection of the "Abut Loop Edges ..." submenu causes the following window to be displayed.

Abut Loop Edges window

This option is used to force the edges of two unstructured surface boundary loops to abut by moving the points on one loop to match the points on the of a second loop. A user-defined tolerance is used to assist in locating the corners of the two abutting edges. The nodes along one loop are projected to the second loop and the distance between the original node and the projected node are compared against the tolerance. Once the two corners of the common section between the two loops is determined, the nodes on one loop between the corner points are replaced with the nodes from the second loop. The desired tolerance is entered in the entry box at the bottom of the window. The "Force single abutment between matching ends" button will force the abut operation to merge all of the points between the two corners of the matching region regardless of the distance of these points. In this case, the tolerance will only be used to determine the corner points.

The user must also select a radiobutton indicating whether the result should be stored with a default name, a specified name, or saved in the results buffer. When the "Abut Edge Points" button is selected, the user will be prompted for the two boundary loops to be abutted. Note that the boundary loops can be directly selected from the unstructured surface mesh and do not need to be extracted first. In the image below, the boundary loop from the red surface is abutted to the boundary loop of the blue surface. The resulting boundary loop is shown in the middle picture. The picture on the right shows the result after using the new boundary loop to make a new unstructured surface.

Example showing result of abutting one boundary loop to another

Flip/Align Surface Normals (Unstructured Grids Only)

Selection of the "Align Surface Normals ..." or the "Flip Surface Normals ..." submenus causes the following window to be displayed.

Flip/Align Surface Normals window

This option is used to align the normal direction of all faces in a surface to point in a consistent direction. Surfaces created within MADCAP will already have this property. This capability is useful for fixing surfaces that are imported from other programs. In the image below, the blue surface mesh has non-aligned normal vectors as evident from the shaded image. After aligning the surface normals, the shaded surface is shown on the right.

Wireframe of unstructured mesh    Shaded surface with non-aligned normals   

Shaded surface with aligned normals

Swap Surface Edges (Unstructured Grids Only)

Selection of the "Swap Surface Edges..." submenu causes the following window to be displayed.

Swap Surface Edges window

This function allows the edge between two neighboring triangles to be swapped. The user must specify whether to swap edges in a surface or a zone or either as selected, and also whether to swap a single edge or to swap multiple edges. The user must also select a radiobutton indicating whether the result should be stored with a default name, a specified name, or saved in the results buffer. When the "Swap Edges" button is picked, the user will be prompted to select an unstructured object, and then to select an edge or edges to swap. Note that if adjacent edges are to be swapped, they should be swapped one at a time. In the figure below, a single edge (highlighted by the circle) has been swapped. The resulting object is shown on the right.

Unstructured grids showing effect of swapping one edge

Merge Points (Unstructured Grids Only)

Selection of the "Merge Points..." submenu causes the following window to be displayed :

Merge Points window

This function allows a node within an unstructured object to be combined with another node. Any degenerate faces or edges that result from this operation are automatically removed from the resulting object. Duplicate nodes are also removed. Although similar to the move nodes function, merge nodes should always be used when combining nodes within an unstructured object. The user must select the type of object to merge nodes within. The user must also select a radiobutton indicating whether the result should be stored with a default name, a specified name, or saved in the results buffer. When the "Merge Points" button is picked, the user will be prompted to select an unstructured object. The user will then be prompted to select pairs of nodes for merging. The first node in each node pair will be moved to the second node. In the image below, the two nodes highlighted by the circle have been merged. The resulting object is shown on the right.

Unstructured grids showing effect of merging two nodes

Edit Unstructured Object (Unstructured Grids Only)

This menu allows the user to define surface or curve groups in an unstructured object or to assign properties (such as boundary conditions for the unstructured volume grid generation) to surfaces, curves or surface or curve groups. When entering this menu, first you must select the unstructured object to edit by left clicking on the "Pick Object" button. After selecting and unstructured object from the graphics display or file list, the following window will be displayed.

Edit Unstructured Object window

All of the available curves, surfaces, curves groups, surface groups in the selected unstructured object are shown on the left side of this menu under the "Entity Types" box. By selecting one of the radio buttons, all of the curves, curve groups, surfaces, or surface groups in the object can be listed. Before defining a new group or assigning properties, the entities that are to be operated on should be selected by moving them into the "Entity Types" Selected Entities list on the right of the form. To do this, highlight the surface/curves in the "Available Entities" list on the left side of the form and then select a radio button of the type of entity to select on the right side of the form. Left click on the ===> button to move the selected entities to the "Selected Entities" list on the right of the form.

Once the desired entites are in the "Selected Entities" list, you can Assign boudary conditions properites by selecting one of the radio buttons "undefined, viscous wall, symmetry or interior" and then left click on the "Assign Properties" button.

Groups can be defined by entering a new name in the "Group name" text entry box and then left clicking on the "Create Group" button. You can assign properties and define a group at the same time by left clicking on the "Create Group & Assign Properties" button.

Curve or Surface groups can be deleted by selecting the curve or surface group(s) to be deleted in the "Available Entities" list and then clicking on the "Delete Group" button.

Convert Structured to Unstructured

Selection of the "Convert Structured to Unstructured ..." submenu causes the following window to be displayed.

Convert Structured to Unstructured window
This function allows a structured surface or volume mesh to be converted to an unstructured mesh. The user must select whether to convert a surface or volume mesh. If a surface mesh is selected, then the user has the option to convert faces directly (leave quad faces as quads), or to convert all faces to triangular faces. If a volume mesh is selected, the user has the option to convert all cells to tetrahedral elements or to leave cells as they are. Note that degenerate cells or faces are converted to the highest element type without duplicate nodes. In the image below, a structured surface mesh is converted to a triangular surface mesh. When converting structured zones to unstructured zones, the boundary conditions of the structured zone will be used to define the sub-surfaces of the resulting unstructured zone.

Structured and unstructured meshes


Last updated 11 June 2007