Settings for controller based shape optimization

Shape optimization in SIMULIA Tosca Structure operates with a controller-based method. The controller has been given numerous default settings that deliver satisfying results for a variety of optimization models. Usually, these default settings do not need to be changed by the user. However, using a specific configuration of the controller for a given optimization task can lead to a modified controller response and consequently the optimization procedure can be improved.

Related Topics
In Other Guides
OPT_PARAM
Parameters for controller-based topology optimization

The user can set several optimization parameters using the OPT_PARAM command and thereby influence the controller response.

  • In Tosca ANSA® environment, the settings are available in the task manager (New > SETTINGS command on SHAPE_OPTIMIZATION_CONTROLLER item) or using the OPT_PARAM button in the modules buttons.


  • In Tosca Structure.gui, the settings are defined in OPT_PARAM command.

Each OPT_PARAM command has a unique name (ID_NAME parameter) and references a previously defined optimization job (OPTIMIZE command). The specified parameters only relate to the given optimization task. A typical OPT_PARAM command appears as follows:

OPT_PARAM
 ID_NAME = param_for_shape_optimization
 OPTIMIZE = shape_optimization
 ...
END_

Six parameters can be set by the user for shape optimization:

  • Scaling of the allowed amount of displacement
  • Treatment of the midside nodes during the optimization
  • Curvature based modification of the optimization movement vector
  • Filtering of the optimization displacements
  • Updating of the normal vectors (optimization displacement vector)
  • Control of the increments according to the allowed displacements

Note: The OPT_PARAM command is also used in topology optimization. However, the optimization parameters that can be set depend on the type of optimization. The only parameters that can be set here are those allowed for shape optimization.

Scale of displacement (SCALE)

The controller provides an automatic increment control of the optimization displacements. An initial increment is first determined based on the mesh of the FE start model. The size of the increment is then automatically adjusted in every design cycle. Usually, the user does not need to modify the increment control manually. The user can increase or decrease the increment using a scaling factor (SCALE parameter):

 ...
 SCALE = <REAL_value>
 ...

The default setting is SCALE=1.0, i.e. the optimization displacements are applied in increments determined by the controller. If the selected scaling factor has a value greater than one, the increment size determined by the controller will increase correspondingly, i.e. the optimization is accelerated. On the other hand, if the selected scaling factor has a value less than one, the increment size determined by the controller will decrease accordingly, i.e. the optimization is slowed down.

Example: With SCALE=2.0 the increment size as determined by the controller is doubled. With SCALE=0.8 the increment size of the controller is reduced to 80% of the initial increment size.

The scaling factor can be split in a factor for growth and a factor for shrinkage:

 ...
 SCALE = <grow_value>, <shrink_value>
 ...

Important:
  • It is highly recommended to perform the first optimization run with the default increment size (SCALE=1.0). From evaluating the obtained results, it can be decided if the optimization should be accelerated or slowed down.
  • Increasing the increment size can be useful when several optimization steps in the same direction are performed in the beginning of the optimization and hardly any change in the increment size is observed. Especially, for tight FE meshes with small element edge lengths, the increment size is relatively small which leads to numerous design cycles with relatively small changes in the model in each design cycle. If the selected increment size is too large, the possibility that the optimum will be bypassed exists and the optimization will not converge. In addition, the mesh quality decreases with increasing increment size. In extreme cases individual elements may collapse.
  • Decreasing the increment size is recommended when the start model is close to optimum at the start. A decrease of the increment size can also be helpful when numerous restrictions with link conditions (DVCON_SHAPE with CHECK_ LINK) are contained in the optimization task. A decrease of the increment size can also be of advantage when the mesh quality is poor.
  • With a license for the module SIMULIA Tosca Structure.nonlinear a negative scale factor can be executed. In this case, the calculated nodal displacements are multiplied with the scale factor and the direction of the displacement changed. The controller strategy can be inverted (i.e. high stress = shrinkage, low stress = growth). This functionality allows the optimization of contact surfaces as an example.

Curvature based modification of optimization displacements

The nodal optimization movement vector is modified in areas of high curvature to prevent a collapse of the mesh for large volume changes (CURV_SMOOTH). A bigger radius causes a bigger curvature based modification of the optimization movement vector. (Default=5.0 * element edge lengths; OFF=0.0)

 ...
 CURV_SMOOTH = 5.0
 ...


Filter function for the optimization displacements (FILTER)

To smooth local peaks of the nodal reference stresses, the item FILTER can be specified to activate a filter function:

 ...
 FILTER = <radius>, <sigma>, <exponent>
 ...

The filter is given by:

Φj=i=1NΦiBiji=1NBij

Bij=(rjdji)p

rj=rmaxe0,5(κmax/σ)

κmax=max(|nj×nR|)

Φ is the filter value for node j. The main filter function (B) decreases with the distance (d) between node i and j. The maximal radius (rmax) defines the maximum distance for the nodes i to influence the filter value. The curvature dependency (rj) defines a weight function to reduce the radius at higher local surface curvature (κmax) approximated by the vector product of the node normal (nj) to the neighboring nodes (nk).

SIGMA (σ) and EXPONENT (p) are optional with the default values (0.2 and 1., respectively). The smaller the SIGMA, the larger is the influence of the surface curvature. To avoid this effect, use a large SIGMA value (e.g. 10000).

The exponent value defines the weight function which controls the influence depending on the distance from the node.

To smooth local peaks of the nodal reference stresses, use the DRESP OPER=FILTER which gives the user the possibility to define filters that correspond to single design responses. Example:

DRESP
 ID_NAME    = DRESP_MISES_FILTERED
 DEF_TYPE     = OPER
 VAR_OPER     = FILTER
 VAR_A        = DRESP_MAX_MISES
 RADIUS      = 30.0
 EXPONENT    = 1.0
 SIGMA       = 1.0
END_

The parameters RADIUS, EXPONENT and SIGMA have the same meaning as in the filtering of nodal displacements.

Important: Large values of RADIUS may increase CPU-time.

Control of the amount of optimization displacement (DISP)

Based on the current FE mesh, an allowed amount of displacement is determined for every design node. This displacement variable limits the amount of the optimization displacement, i.e. optimization displacements that are greater than the allowed displacements are scaled back automatically to the allowed value node by node. This is intended for avoiding the collapse of a neighboring element when having a large optimization displacement of one node.

The controller provides automatic increment control of the optimization displacements. The increment size is dependent on the allowed displacements of the design nodes. A decrease of the allowed displacements (a decrease in the quality of the FE mesh) automatically leads to a decrease in the increment size of the controller. The increment size of the controller is automatically adjusted in every design cycle.

The DISP parameter enables the user to specify which allowed displacement is to be used in the increment control:

 ...
 DISP  =  [ MINIMUM | AVERAGE ]
 ...

DISP=AVERAGE is the mean value of the allowed amount of displacement for the design nodes used in the increment control; DISP=MINIMUM (default) is the smallest value used. The setting DISP=AVERAGE delivers a larger increment size and consequently a faster approximation to the optimum. However, this opens for the possibility that nodes for which only small displacements are allowed move too little causing ‘undesirable corners’ in the design area.