Structural Analysis/OptiStruct

76_Topology Optimization using Optistruct

elif 2024. 2. 14. 21:48

In the last post(75_A 99 line topology optimization code written in Matlab), I wrote a review about paper on topolgy optimization using MATLAB. Today, I will proceed with topology optimization in Optistruct, setting the boundary conditions and constraints identically to those presented in the MATLAB code from that paper.

 

The code feature in the paper is commonly referred to as the "99line". In the 99line, the boundary conditionas for MBB-beam are set by defalt, and modifications to the code are required for other examples by adjusting the constraint conditions. Therefore, let's first address the basic MBB-beam example.

 

Initially, the 99line takes ${\text{nelx, nely, volfrac, penal}}$ and ${{\text{r}}_{\min }}$ as inputs. Setting each to 60, 20, 0.5, 3.0, and 1.5, respectively, yields a shape as follows. At this time, the tolerance for volume change rate is above 0.01.

 

 

The total number of iterations was 94, the objective function was 203.3, and the execution time took 7.4s.

 

After launching Hypermesh, create nodes at coordinates (0,0,0), (60,0,0), (60,20,0), and (0,20,0), respectively, and connect these to form a closed curve to create the design domain for the MBB-beam.

 

 

Set the material and property identical to those in the 99line.

 

E(Young's modulus): 1

Nu(Poisson's ratio): 0.3

Card Image: PSHELL

shell tickness: 1

 

Create a surface inside along the line, and generate elements of size 1 using 2D-automesh.

 

 

To set the constraint conditions and loads, create a load collector and name it SPC. Then, through BCs-Create-Constraints, constrain the movement along the x-axis and all rotations for nodes at x=0, and constrain the movement along the y-axis and all rotations for the bottom right node. Similarly, create another load collector, rename it to load, and through BCs-Create-Force, apply a unit load of -1 in the y-direction at the node located at the top left (0,20,0).

 

 

To define design variables, go to Analysis -> optimization -> topology and create the design variables. The type is PSHELL.

 

In the responses tab, specify volumefrac and weighted comp to be used as constraint conditions and objective functions. Then, in the objective tab, set it to minimize the weighted comp response you created. Afterwards, in the dconstraints tab, use the created volumefrac as a response and set the upper bound to 0.5.

 

Finally, in the opti control tab, where various optimization conditions can be set, configure DISCRETE and CHECKER, which act as filtering roles, to 3 and 1, respectively, and set the OBJTOL, which determines tolerance, to 0.01, identical to the 99line. The results are as follows.

 

 

When conducting topology optimization in Optistruct, the total number of iterations was 11, the objective function was 144.0, and the execution time was 13 seconds.

Compared to the 99 line, the objective function differs due to the different filtering techniques used, so I do not consider it an exact comparison. Additionally, tolerance values typically used in Optistruct are below 0.005, hence the result might not fully converge as shown in the picture.

I plan to write a more accurate comparison using different codes in the future.

'Structural Analysis > OptiStruct' 카테고리의 다른 글

77_Topology Optimization using Optistruct(2)  (0) 2024.02.15
22_Mid rail analysis  (1) 2023.12.22
21_Fluid Structure Coupling(2)  (1) 2023.12.21
20_Fluid Structure Coupling  (0) 2023.12.20
14_Pendulums(2)  (0) 2023.12.14