Controller-Based Combined Terms

For the controller-based shape optimization, basically any operator is allowed for the definition of the objective function, but here one must be cautious because the operation is only performed on the scalar nodal values. This is explained in the following two examples:

Example 1:

We want to apply the von Mises stress in the optimization relative to the von Mises in the first iteration (σ0):

σi,rel=σiσ0

Now, if we use this term in the objective function all nodal von Mises stresses will be divided by the von Mises stress from the first iteration.

To define the above statement use the following commands:

VARIABLE
 ID_NAME        = von_mises
 DEF_TYPE       = SYSTEM
 TYPE           = SIG_MISES
 ND_GROUP       = ALL_NODES
 LC_SET         = ALL,1,All
 GROUP_OPER     = Max
 UPDATE         = EVER
END_
VARIABLE
 ID_NAME        = von_mises_first
 DEF_TYPE       = SYSTEM
 TYPE           = SIG_MISES
 ND_GROUP       = ALL_NODES
 LC_SET         = ALL,1,All
 GROUP_OPER     = Max
 UPDATE         = FIRST
END_
DRESP
 ID_NAME        = relative_von_mises
 DEF_TYPE       = OPER
 VAR_OPER       = DIV
 VAR_A          = von_mises
 VAR_B          = von_mises_first
END_

Example 2:

In a second example, the sum of the von Mises stress from two load cases, say LC1 and LC2, should be used as the design response:

σsum=σLC1+σLC2

The above is NOT a sum of the stress tensors upon which the von Mises criteria is calculated. It is simply a sum of the two resulting values of the von Mises stress for each node.

The scalar summation can be done using following commands:

DRESP
 ID_NAME        = von_mises_LC1
 DEF_TYPE       = SYSTEM
 TYPE           = SIG_MISES
 ND_GROUP       = ALL_NODES
 LC_SET         = ALL,1,All
 GROUP_OPER     = Max
END_
DRESP
 ID_NAME        = von_mises_LC2
 DEF_TYPE       = SYSTEM
 TYPE           = SIG_MISES
 ND_GROUP       = ALL_NODES
 LC_SET         = ALL,2,All
 GROUP_OPER     = Max
END_
DRESP
 ID_NAME        = scalar_sum_von_mises
 DEF_TYPE       = OPER
 VAR_OPER       = ADD
 VAR_A          = von_mises_LC1
 VAR_B          = von_mises_LC2
END_

Other Operators for Controller-Based Shape Optimization

The operators

VAR_OPER = FILTER

VAR_OPER = CUT_OFF

VAR_OPER = NORM

VAR_OPER = NORM_FIRST

refer to a vector and require additional parameters. They can be used to filter values of a vector, cut them at a certain value or normalize them (standard normalization or with reference to maximum of first iteration).

VAR_OPER = NROOT

VAR_OPER = NPOWER

allow to calculate the nth root or power of a single value.