In this tutorial, shape optimization on an example of aluminum fins (as shown in the following image) is performed. The base of the fins experiences a constant heat flux of q=8000 W/m2. The temperature of the surrounding air is 10˚C with a corresponding heat transfer coefficient of H = 40 W/m2 • K. The heat conduction coefficient is K = 221 W/m • K. The temperature distribution within the fins is determined by solving the heat conduction and convection load case.
Model review
The formulation of the optimization problem is listed below.
Objective:
|
Minimize the temperature at the center of the base
|
Constraints:
|
Volume < 1.0e-5 m2
|
Design variables:
|
Shape design variables
|
Step 1: Load the OptiStruct user profile and import the model
1. | Launch HyperMesh Desktop. |
2. | Select OptiStruct in the User Profiles dialog and click OK. This loads the user profile. It includes the appropriate template, macro menu, and import reader, paring down the functionality of HyperMesh to what is relevant for generating models OptiStruct. |
User Profiles can also be accessed from the Preferences menu on the toolbar.
3. | From the File menu, select Import > Solver Deck. |
4. | The File type: is OptiStruct. |
5. | Click the open file icon in the File: field. A Select OptiStruct file browser window opens. |
6. | Select the fins.fem file you saved to your working directory from the optistruct.zip file. Refer to Accessing the Model Files. |
7. | Click Open. The location of fins.fem displays in the file: field. |
8. | Click Apply. The fins.fem database is loaded into the current HyperMesh session. |
9. | Click Close to close the message window. |
Step 2: Create shapes in HyperMorph
The Freehand module in HyperMorph creates the shapes. For a more detailed description of the functionality of HyperMorph, refer to the HyperMorph section of the HyperMesh documentation.
1. | From the Analysis page, enter the optimization panel. |
4. | Select the move nodes subpanel using the radio buttons on the left side of the panel. |
5. | Set the movement option as translate. |
6. | Input the translation distance in the basic coordinate system, x=0.03, y=0.0, z=0.0. You only want to extend the fins in x-direction. |
8. | Click the highlighted nodes and click by sets on the pop-up window. |
9. | Check the small box in front of node set sh1_move and click select. The selected moving nodes are highlighted on the screen. |
11. | Click the highlighted nodes and click by sets on the pop-up window. |
12. | Check the small box in front of node set sh1_fix and click select. The selected fixed nodes are highlighted on the screen. |
13. | Select affected elements. |
14. | Click the highlighted elems and click by sets on the pop-up window. |
15. | Check the small box in front of element set sh1_elem and click select. The selected elements are highlighted on the screen. |
16. | Click morph. The fin is extended in the x direction. |
17. | Go to the save shape subpanel. |
18. | Input name= sh1 and toggle the option to as node perturbations. |
19. | Click save. The shape, shp1, for shape design variable is created. |
21. | Repeat steps 5 through 16 to create shapes sh2 and sh3 on the original model. The corresponding node sets (sh2_move/fix and sh3_move/fix) and element sets (sh2_elem and sh3_elem) are predefined. |
22. | Click return twice back to the optimization panel. |
Step 3: Create shape design variables
1. | Select the shape panel. |
2. | Select the desvar subpanel. |
3. | Switch the design variable option from single desvar to multiple desvars. |
4. | Click the highlighted shapes. |
5. | Check the boxes next to sh1, sh2, and sh3 and click select. |
6. | Input initial value = 0.0, lower bound = -1.0, upper bound = 2.0. |
7. | Click create. Three shape design variables are created from the shapes created in the previous step. |
8. | Click return to go to the optimization panel. |
Step 4: Create design responses
A volume response is created and then defined as the constraint of the optimization problem.
1. | Go to the responses panel. |
2. | Input response = volume. |
3. | Click the response type switch and select volume from the pop-up menu. Make sure the total volume is selected. |
4. | Click create. The total volume of the fins is created as the response. |
5. | Input response = temperature. |
6. | Select temperature as the response type. |
7. | Click nodes and click by id, in the node ID field, enter 2450 and press ENTER. |
8. | Click create. The temperature response at node 2450 is created. |
9. | Click return twice and go back to the Analysis page. |
Step 5: Define the optimization constraint
1. | Go to the dconstraints panel. |
2. | Input constraint = vol. |
3. | Click response = and select volume. |
4. | Activate the upper bound and enter 1.0e-5. |
5. | Click create. A volume constraint with the upper bound of 1.0e-5 is created. |
Step 6: Define the objective function
2. | Toggle the option to min. |
3. | Click response = and select temperature. |
4. | Click loadsteps and select heat transfer subcase. |
5. | Click create. The objective function of minimizing the temperature at node 2450 is created. |
Step 7: Define the SHAPE card
Only the analysis results are available in the _s#.h3d file by default. In order to obtain analysis results on top of the shape change that was applied to the model in HyperView, a SHAPE card needs to be defined.
1. | From the Analysis page, select the control cards panel. |
2. | Click next to find SHAPE and click it. |
3. | Set format to h3d and set both TYPE and OPTION to ALL. |
4. | Click return twice to go back to the main menu. |
Step 8: Submit the Job
1. | Select the OptiStruct panel on the Analysis page. |
2. | Click save as following the input file: field. A Save file browser window opens. |
3. | Select the directory where you would like to write the OptiStruct model file and enter the name for the model, fins_opt.fem, in the File name: field. The .fem file name extension is the suggested extension for OptiStruct input decks. |
The name and location of the fins_opt.fem file displays in the input file: field.
5. | Set the memory toggle toggle to memory default. |
6. | Set the run options toggle to optimization. |
7. | Set the export options toggle to custom. |
8. | Click OptiStruct. This launches the OptiStruct job. |
If the job was successful, new results files can be seen in the directory where the OptiStruct model file was written. The fins_opt.out file is a good place to look for error messages that will help to debug the input deck if any errors are present. Make sure the process is complete before checking the results files.
Step 9: Post-process the results in HyperView
The following steps demonstrate how to review the contour plot of the temperatures with the optimized shape in HyperView.
1. | Launch HyperView by clicking HyperView in the OptiStruct panel. |
2. | In the Load model and results panel, load the fins_opt_s1.h3d file in both model and results fields. |
3. | Click Apply. The h3d file containing both the analysis and optimization results is loaded. |
4. | Make sure Iteration 0 is selected in the HyperView Results browser. |
5. | Go to the Contour panel. |
6. | Select Grid Temperatures (s) as the Result type and click Apply. |
The initial temperature distribution contour in the aluminum fins is displayed.
7. | Select the last iteration in the Results browser. |
8. | In the Contour panel, select Shape Change (v) as the Results type and click Apply. |
The optimized shape at final iteration is loaded.
9. | Select Grid Temperatures (s) as the Result type and click Apply. |
The contour plot of grid temperature is applied on top of the optimized shape now.
The following plot shows the temperature distributions of the original design and the optimized design.
See Also:
OptiStruct Tutorials