# Combine Pattern Repetition and Pattern Grouping with other Manufacturing Constraints

Pattern repetition is a feature that allows you to define multiple parts of the model that should be characterized by identical or similar designs. Pattern grouping is a feature where you can define a single part of the model that should be designed in a certain pattern.

## Topography Optimization Manufacturability

Manufacturing methods can place constraints on the types of reinforcement patterns available for a given part.

Some examples of this are: channels, which must have a continuous cross-section; discs, which must be turned on a lathe; and stampings, which cannot have the die lock conditions.

These constraints can be accounted for in topography optimization by using Pattern Grouping Options, and a design with a manufacturable reinforcement pattern can be generated.

### Pattern Repetition

A technique where different structural components can be linked together so as to produce similar topographical layouts.

To achieve this goal, a main DTPG card needs to be defined, followed by any number of secondary DTPG cards which reference the main. The main and secondary components are related to each other through local coordinate systems, which are required, and through scaling factors, which are optional.

Other manufacturing constraints, such as pattern grouping, can be applied to the main DTPG card. These constraints will then automatically be applied to the secondary DTPG card(s).

- Create a main DTPG card.
- Apply other manufacturing constraints as needed.
- Define the local coordinate system associated to the main DTPG card.
- Create a secondary DTPG card.
- Define the local coordinate systems associated to the secondary DTPG card.
- Apply scaling factors as needed.
- Repeat steps 4-6 for any number of secondary DTPG cards.

#### Local Coordinates Systems

`CAID`- Defines the anchor point for the local coordinates system.
`CFID`- Defines the direction of the X-axis.
`CSID`- Defines the XY plane and indicates the positive sense of the Y-axis.
`CTID`- Indicates the positive sense of the Z-axis.

`CID`field, and by defining an anchor point in the

`CAID`field.

`CFID`,

`CSID`,

`CTID`, and

`CID`are left blank, then the global coordinates system is used by default. The anchor point

`CAID`, however, is always required.

#### Scaling Factors

### Pattern Grouping Options

There are over 70 pattern grouping options and variations available for topography optimization.

Variable grouping pattern | Pattern Option | Type # | Required Vector Definitions | Description |
---|---|---|---|---|

None | - | 0 | - | Variables grouped as points. |

One plane symmetry | - | 10 | One | Reflection of variables across one plane normal to first vector. |

Two plane symmetry | - | 20 | Two | Reflection of variables across two planes, one normal to the first vector and one normal to second vector. |

Three plane symmetry | - | 30 | Two | Reflection of variables across three planes, one normal to first vector, one normal to the second vector and one perpendicular to both vectors. |

Linear | - | 1 | One | Variables grouped as lines extending in direction of first vector. |

+1 plane | 21 | Two | Reflection of variables across one plane normal to second vector. | |

+2 planes | 31 | Two | Reflection of variables across two planes, one normal to second vector and one perpendicular to both vectors. | |

Circular | - | 2 | One | Variables grouped as circles around anchor node lying in a plane normal to first vector. |

+1 plane | 12 | One | Reflection of variables across one plane normal to first vector. | |

Planar | - | 3 | One | Variables grouped as planes extending normal to first vector. |

+1 plane | 13 | One | Reflection of planes across plane normal to first vector. | |

Radial 2D | - | 4 | One | Variables grouped as rays extending radially and normal to first vector. |

+1 plane | 14 | One | Reflection of rays across plane normal to first vector. | |

+2 planes | 24 | Two | Reflection of rays across two planes, one normal to the first vector and one normal to second vector. | |

+3 planes | 34 | Two | Reflection of rays across three planes, one normal to first vector, one normal to the second vector and one perpendicular to both vectors. | |

Cylindrical | - | 5 | One | Variables grouped as endless cylinders extending along and centered around first vector. |

Radial 2D & Linear | - | 6 | One | Variables grouped as a combination of radial and linear patterns. |

+1 plane | 26 | Two | Reflection of radial planes across plane normal to second vector. | |

+2 planes | 36 | Two | Reflection of radial planes across plane normal to both first and second vectors. | |

Radial 3D | - | 7 | - | Variables grouped as rays extending radially outward from anchor node. |

+1 plane | 17 | One | Reflection of rays across plane normal to first vector. | |

+2 planes | 27 | Two | Reflection of rays across two planes, one normal to the first vector and one normal to second vector. | |

+3 planes | 37 | Two | Reflection of rays across three planes, one normal to first vector, one normal to the second vector and one perpendicular to both vectors. | |

Vector defined | - | 8 | - | Variables grouped along vectors defined by the draw vectors of the individual nodes. |

+1 plane | 18 | One | Reflection of variables across plane normal to first vector. | |

+2 planes | 28 | Two | Reflection of variables across two planes, one normal to the first vector and one normal to second vector. | |

+3 planes | 38 | Two | Reflection of variables across three planes, one normal to first vector, one normal to the second vector and one perpendicular to both vectors. | |

Cyclical
^{3} |
- | 40,41 | Two | Cyclical repetition of variables about axis defined by first vector. |

+1 plane | 50,51 | Two | Reflection of variables across one plane normal to first vector. | |

+ linear | 60,61 | Two | Cyclically repeated variables grouped as lines extending in direction of first vector. | |

+ radial | 70,71 | Two | Cyclically repeated variables grouped as rays extending radially and normal to first vector. | |

+ radial & linear | 80,81 | Two | Cyclically repeated variables grouped as a combination of radial and linear patterns. |

- Cross-section Optimization of a Spot Welded Tube
- Optimization of the Modal Frequencies of a Disc Using Constrained Beading Patterns
- Multi-plane Symmetric Reinforcement Optimization for a Pressure Vessel
- Shape Optimization of a Stamped Hat Section
- Shape Optimization of a Solid Control Arm
- Using Topography Optimization to Forge a Design Concept Out of a Solid Block

### None

If no variable grouping pattern is selected, OptiStruct will automatically generate circular bead variable definitions throughout the design variable domain.

### Two Planes

For two planes of symmetry (`TYP`=20),
the planes of symmetry are defined normal to both the first and
second vectors.

### Three Planes

For three planes of symmetry (`TYP`=30), the
symmetry plane definitions are identical to those for two planes of symmetry with the third
plane being placed perpendicular to the first two and located at the anchor
node.

### One Plane - Simple Symmetry Options

For a single plane of symmetry (`TYP`=10), the
plane is defined normal to the first vector and is located at the anchor node.

### Linear

Linear pattern grouping allows you to force OptiStruct to create beads in a given direction along the entire length of the part.

This can be very useful for optimizing the shape of extruded parts which must maintain a constant cross section. It is also very useful when optimizing the side walls of stamped plates whose beads must run from the top to the bottom so that the part can be drawn from the die. In solid models, where the variable needs to control the movement of all grids through the thickness, linear pattern grouping is also very useful.

`TYP`=1, 21, or 31), OptiStruct generates shape variables that run along a line parallel to the first vector. These shape variables have a width equal to the minimum bead width parameter but have no limit on length. For simple linear pattern grouping, the anchor point and first vector can be located anywhere.

`TYP`=21), the second vector defines the symmetry plane (since the first vector has been used to define the direction of the pattern).

`TYP`=31), the symmetry planes are defined by the second vector and the cross product of the first and second vectors (Figure 9). There is no three plane linear pattern grouping since the pattern is automatically symmetric in the direction of the first vector.

### Circular

Circular pattern grouping allows you to force OptiStruct to create beads that form concentric circles around a user-defined axis.

This can be very useful for optimizing the shape of circular parts that must have a circular reinforcement pattern such as a part turned on a lathe.

`TYP`=2 or 12), OptiStruct generates shape variables that form circles about an axis defined by the first vector. These circular beads have a width equal to the minimum bead width parameter. The anchor point can be located anywhere, but the first vector must be collinear with the desired central axis for the circular beads. The simple circular pattern grouping (

`TYP`=2):

`TYP`=12), the circular patterns are reflected about a plane located at the anchor node and defined by the first vector. One plane circular symmetry ensures that nodes equal distances above and below the plane of symmetry will be grouped into the same variables.

### Planar

Planar pattern grouping allows you to force OptiStruct to create variables that consolidate the perturbations of active grids in a given plane.

This can be very useful in forming beads that run in a fixed direction across an uneven part or in solid models to control the changes in the shape of a cross section.

`TYP`=3 or 13), OptiStruct generates a series of parallel planar shape variables that are defined by the first vector. These shape variables have a width equal to the minimum bead width parameter, but have no limit on length. Beads formed using planar pattern grouping can turn vertical corners. For simple planar pattern grouping, the anchor point and first vector can be located anywhere.

`TYP`=13), the planes are symmetric about a plane located at the anchor point. There is no need for two and three plane planar symmetry.

### Radial 2D

Radial (2D) pattern grouping allows you to force OptiStruct to create beads in a radial direction extending outward from a central axis.

This can be very useful for optimizing circular parts in which radial reinforcements are desired.

`TYP`=4, 14, 24, and 34), OptiStruct generates shape variables that run radially away from a central axis defined by the first vector. Radial beads, at their closest point to the central axis, have a width equal to the minimum bead width parameter. The width of the beads increases with distance from the center. There is no limit on the bead length. The anchor point can be located anywhere, but the first vector must be collinear with the desired central axis for the radial beads. The simple radial (2D) pattern grouping (

`TYP`=4).

`TYP`=14), the radial patterns are reflected about a plane located at the anchor node and defined by the first vector. One plane radial symmetry ensures that nodes equal distances above and below the plane of symmetry will be grouped into the same variables.

`TYP`=24 and o), two symmetry planes are determined by the first and second vectors.

### Cylindrical

Cylindrical pattern grouping allows you to force OptiStruct to create variables that consolidate the perturbations of active grids along the surface of a cylinder.

This can be useful in assigning a circular pattern grouping through the thickness of a solid model.

For a cylindrical pattern grouping (`TYP`=5), OptiStruct generates a series
of concentric cylinders that run parallel to and
are positioned about the first vector. The
cylindrical pattern grouping is essentially the
linear pattern grouping combined with the circular
pattern grouping. The anchor point can be located
anywhere, but the first vector must be collinear
with the desired central axis for the
cylinders.

### Radial 2D and Linear

Radial linear pattern grouping allows you to force OptiStruct to create variables that consolidate the perturbations of active grids along planes running radially from a central axis.

This can be useful for assigning radial pattern groupings through the thickness of a solid model.

For a radial linear pattern grouping (`TYP`=6), OptiStruct generates a series
of planes that run radially away from, and in the
same plane as, the first vector. The radial linear
pattern grouping is essentially the linear pattern
grouping combined with the radial pattern
grouping. The anchor point can be located
anywhere, but the first vector must be collinear
with the desired central axis for the radial
planes.

One and two planes of radial linear pattern grouping (`TYP`=26
and 36) can be created by using
the second vector to define the planes of
symmetry. The symmetry planes are assigned in a
manner similar to that for two and three plane
radial symmetry.

### Radial 3D

Radial (3D) pattern grouping allows you to force OptiStruct to create variables that consolidate the perturbations of active grids in a radial direction away from a central point.

This can be very useful for optimizing spherical models with solid elements.

For radial (3D) pattern grouping (`TYP`=7, 17,
27, and 37),
OptiStruct generates
shape variables that run radially away from a
central point defined by the anchor node. Radial
beads, at their closest point to the central axis,
have a width equal to the minimum bead width
parameter. The width of the beads increases with
distance from the center. There is no limit on the
bead length. The anchor point can be located
anywhere, but is ideally located at the center of
a sphere.

The planes for one, two, and three plane radial (3D) symmetry are established in a manner
identically to one, two and three plane symmetry
without radial (3D) pattern grouping
(`TYP`=10,
20, and 30).

### Vector Defined

Vector defined pattern grouping allows you to force OptiStruct to create variables which are grouped according to the direction and magnitude of the individual draw vectors of the grids.

This pattern grouping option is similar to the linear pattern grouping option except that the linear vector is not constant for the entire model. Instead, the direction of the draw vector for each grid is used to determine the variable groupings in place of a global linear vector. Additionally, unlike the linear pattern grouping option, the lengths of the beads are not infinite. The lengths of the beads are equal to the magnitude of the draw vectors for the grids. This pattern grouping option can be very effective for optimizing the shape of amorphous solid models.

`TYP`=8, 18, 28, and 38), OptiStruct generates shape variables by consolidating the perturbations of active grids that are within a cylindrical region about evenly spaced grids in the model. For a selected grid, a cylindrical zone of influence is created around it which has a radius defined by the minimum bead width and draw angle parameters, a length defined by twice the draw vector for the selected grid, and is oriented in the direction of the draw vector (Figure 18).

For solid models, the internal grids will move along with the surface grids provided that the internal grids have draw vectors associated with them. This allows for large scale perturbations both inward and outward from the surface of a solid part while maintaining an acceptable mesh quality.

You must create perturbations for all of the grids in the model to effectively use vector defined pattern grouping. If perturbations are defined for the surface grids only, those grids may end up passing through the second layer of grids if the variables are perturbed inward. The best way to use this pattern grouping option is to create a single shape variable by uniformly collapsing all of the grids in a solid model towards the center and then creating a DTPG card which points at the DESVAR for that shape variable.

### Cyclical

The cyclical pattern grouping allows you to force OptiStruct to create a series of symmetric shape variables about a
central axis that repeat a number of times determined by you (with the
`UCYC` field).

This can be useful in assigning a reinforcement pattern in a circular plate that matches an angularly repeated load in a symmetric fashion.

`TYP`=40 and 41), OptiStruct generates a series of symmetric shape variables about an axis defined by the cross product of the first and second vectors. The axis of rotation is positioned at the anchor point. The first vector defines a plane establishing one side of the cyclical wedge. The other side of the cyclical wedge is defined by the angle of repetition. Figure 19 shows cyclical pattern grouping for three "wedges".

OptiStruct allows any number of repeated cyclical wedges by entering
the number of desired wedges into field 30 (`UCYC`). OptiStruct internally calculates the repetition angle
according to the formula 360.0/`UCYC`. For example, setting
`UCYC` to three results in three wedges of 120.0 each, and
setting `UCYC` to 6 results in six wedges of 60.0 each.

`TYP`options ending in '1' (41, 51, 61, 71, and 81). If the symmetric wedge option is selected, OptiStruct will force each wedge to be symmetric about its centerline. Selecting one of the cyclical options ending in '0' (40, 50, 60, 70, and 80) will result in the wedges being non-symmetric (Figure 20 and Figure 21).

#### Other Forms of Cyclical Pattern Grouping

OptiStruct supports the combination of cyclical pattern grouping with
one plane symmetry, linear pattern grouping, radial pattern grouping, and radial
linear pattern grouping. Each option is specified with a different base
`TYP` number to which the number denoting the repetition angle
is added.

`TYP`=50 and 51), the cyclical patterns are reflected about a plane located at the anchor node and defined by the cross product of the first and second vectors. One plane cyclical symmetry ensures that nodes equal distances above and below the plane of symmetry will be grouped into the same variables (Figure 22).

`TYP`=60 and 61), OptiStruct generates shape variables that run along a line parallel to the cross product of the first and second vectors. These shape variables have a width equal to the minimum bead width parameter but have no limit on length. The full lengths of the linearly drawn shape variables will be cyclically symmetric:

`TYP`=70 and 71), OptiStruct generates shape variables that run radially away from a central axis defined by the cross product of the first and second vector. Radial beads have a width equal to the minimum bead width parameter but have no limit on length. The width of the beads does not change depending on the distance from the center. The full lengths of the radially drawn shape variables will be cyclically symmetric:

For radial linear cyclical pattern grouping (`TYP`=80 and
81), OptiStruct generates a series
of planes that run radially away from and in the same plane as the first vector. The
radial linear cyclical pattern grouping is essentially the linear cyclical pattern
grouping combined with the radial pattern grouping. The full lengths of the radially
drawn shape variables will be cyclically symmetric.

^{1}Pattern grouping can be combined with draw direction constraints, but you should use caution in order to achieve manufacturable designs.

^{2}For extrusion, pattern repetition generates identical cross-sections for different components. Therefore, scaling is not supported for this combination.

^{3}For cyclical symmetry, the UCYC parameter (field 30) controls the number of repetitions (and thus the repetition angle) for the cycles. If the TYP option selected for cyclical symmetry is 40, 50, 60, 70, or 80, the cyclical repetition pattern will be non-reflective. If the TYP option selected for cyclical symmetry is 41, 51, 61, 71, or 81, the cyclical repetition pattern will be reflective.