A preliminary design of stiffeners in the form of ribs for an automotive splash shield will be generated in this tutorial. The objective is to increase the natural frequency of the first normal mode using topology to identify locations for ribs in the designable region (shown in red).
Finite element mesh containing designable (red) and non-designable (blue) material.
The optimization problem for this tutorial is stated as:
Objective:
|
Maximize frequency of mode number 1.
|
Constraint:
|
Upper bound constraint of 40% for the designable volume.
|
Design variables:
|
Density of each element in the design space.
|
The following exercises are included:
• | Setting up the normal modes analysis in HyperMesh |
• | Post-processing the initial results in HyperView |
• | Setting up the optimization in HyperMesh |
• | Post-processing the optimization results in HyperView |
• | Setting up the final normal modes analysis in HyperMesh |
• | Post-processing the final results in HyperView |
• | Comparing the final results with initial results |
The following file found in the optistruct.zip file is needed to perform this tutorial. Refer to Accessing the Model Files.
sshield_opti.fem
|
Original ASCII OptiStruct input deck.
|
Exercise
Setting Up the Normal Modes Analysis in HyperMesh
Step 1: Launch the HyperMesh Desktop, Load the User Profile, and Retrieve a File
1. | Launch HyperMesh Desktop. |
2. | Choose OptiStruct in the User Profiles dialog and click OK. |
3. | From the File menu on the toolbar, select Import > Solver Deck. An Import tab is added to your tab menu. |
4. | Click the Select Files icon . |
5. | Select the sshield_opti.fem file you saved to your working directory from the optistruct.zip file and click Open. Refer to Accessing the Model Files. |
6. | Click Import. The sshield_opti.fem OptiStruct input file is loaded into the current HyperMesh session. |
7. | Click Close to exit the Import tab menu. |
Step 2: Create an EIGRL Load Collector
1. | In the Model browser, right-click and select Create > Load Collector. |
2. | For Name, enter constraints. |
3. | Click Color, and select a color from the palette. |
4. | For Card Image, leave the field set to None. |
5. | In the Model browser, right-click and select Create > Load Collector. |
7. | Click Color, and select a color from the palette. |
8. | For Card Image, select EIGRL. The Entity Editor updates to show the fields for the EIGRL card. Click in the entry field, and enter the value. |
9. | For V2, enter the value 3000.000. |
10. | For ND, enter the value 2. |
A load collector was just created, which defines data needed to perform real eigenvalue analysis (vibration or buckling) and specified the solver to calculate the first two modes between a frequency range of 0 and 3000 Hz.
Step 3: Create Constraints at the Bolt Locations
1. | From the Model browser, expand Load Collector, right-click constraints, and click Make Current. The load collector name changes to bold to signify that it is now the current load collector. |
2. | From the Analysis page, click constraints. |
3. | Make sure the create subpanel is selected using the radio buttons on the left-hand side of the panel. |
4. | Click the entity selection switch and select nodes from the pop-up menu. |
6. | Enter the value 1075 (beside id=) and press ENTER. |
7. | Enter the value 1076 and press ENTER. |
Dofs with a check will be constrained, while dofs without a check will be free.
Dofs 1, 2, and 3 are x, y, and z translation degrees of freedom.
Dofs 4, 5, and 6 are x, y, and z rotational degrees of freedom.
Two constraints are created. Constraint symbols (triangles) appear in the graphics window at the selected nodes. The number 123456 is written beside the constraint symbol, indicating that all dofs are constrained.
10. | Click return to go to the main menu. |
Step 4: Create a Loadstep (also referred to as a subcase)
1. | From the Analysis page, click loadsteps. |
2. | Click name = and enter frequencies. |
3. | Click the type switch and select normal modes from the pop-up menu. |
4. | Check the box preceding SPC. An entry field appears to the right of SPC. |
5. | Click on the entry field and select constraints from the list of load collectors. |
6. | Check the box preceding METHOD(STRUCT). An entry field appears to the right of METHOD. |
7. | Click on the entry field (=) and select EIGRL from the list of load collectors. |
8. | Click create. An OptiStruct loadstep has been created which references the constraints in the load collector spc and the eigenvalue extraction data in the load collector EIGRL. |
9. | Click return to go to the main menu. |
Step 5: Run the Analysis
1. | From the Analysis page, click OptiStruct. |
2. | Click save as. 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, sshield_analysis.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 sshield_analysis.fem file displays in the input file: field.
5. | Set the export options: toggle to all. |
6. | Click the run options: switch and select analysis. |
7. | Set the memory options: toggle to memory default. |
8. | Let the options: field be blank. |
9. | Click OptiStruct. This launches the OptiStruct job. |
If the job is successful, new results files can be seen in the directory where the OptiStruct model file was written. The sshield_analysis.out file is a good place to look for error messages that will help to debug the input deck if any errors are present.
The default files written to your directory are:
sshield_analysis.html
|
HTML report of the analysis, giving a summary of the problem formulation and the analysis results.
|
sshield_analysis.out
|
OptiStruct output file containing specific information on the file set up, the set up of the optimization problem, estimates for the amount of RAM and disk space required for the run, information for all optimization iterations, and compute time information. Review this file for warnings and errors.
|
sshield_analysis.res
|
HyperMesh binary results file.
|
sshield_analysis.stat
|
Summary of analysis process, providing CPU information for each step during analysis process.
|
sshield_analysis.h3d
|
HyperView results file.
|
sshield_analysis.mvw
|
HyperView session file.
|
sshield_analysis_frames.html
|
HTML file used to post-process the .h3d with HyperView Player using a browser. It is linked with the _menu.html file.
|
sshield_analysis_menu.html
|
HTML file to post-process the .h3d with HyperView Player using a browser.
|
Post-processing the Initial Results in HyperView
Eigenvector results are output from OptiStruct for a normal modes analysis by default. This section describes how to view the results in HyperView.
Step 6: View the First Mode Shapes in HyperView
1. | While still in the OptiStruct panel, click HyperView. This launches HyperView in page 2 of the HyperWorks Desktop and loads the session file sshield_analysis.mvw that is linked with the sshield_analysis.h3d file. |
A Message Log pop-up will inform about the result files loaded into HyperView.
2. | Click Close to exit the Message Log window. |
3. | Set the animation type to Modal . |
4. | Click the drop-down menu, as shown in the following image of the Results browser. The window appears showing the calculated first two natural frequencies between 0 and 3000Hz. |
5. | Click Mode 1 to select those mode results. |
6. | Click the Deformed toolbar icon . |
7. | Make or verify the following settings in the Deformed panel. |
Result Type:
|
Eigen mode (v)
|
Scale:
|
Model Units
|
Type:
|
Uniform
|
Value:
|
10
|
9. | Click the Animation Controls toolbar icon. |
10. | Move the Max Frame Rate: slider between 60 and 1 to increase or decrease the animation speed. |
You can also change the default values for Angular Increment: to refine your animation.
11. | Click the Play/Pause Animation icon to start the animation. An animation of the mode shape should be seen for the first frequency. |
12. | Click the Play/Pause Animation icon again to stop the animation. |
13. | On the Page Control toolbar, click the Page Delete icon to delete the HyperView page as seen in the figure below. |
Setting Up the Optimization in HyperMesh
Step 7: Create Design Variables for Topology Optimization
1. | Once back in HyperMesh, click return to exit the OptiStruct panel. |
2. | From the Analysis page, click optimization. |
3. | Enter the topology panel. |
4. | Select the create subpanel using the radio buttons on the left-hand side of the panel. |
5. | Click desvar = and enter shield. |
7. | Check the box next to design and click select. |
8. | Set the type toggle to PSHELL. |
9. | Click base thickness = and change the value to 0.300. |
A topology design space definition, shield, has been created. All elements referring to the design property collector (elements organized into the "design" component collector) are now included in the topology design space. The thickness of these shells can vary between 0.3 (base thickness defined above) and the maximum thickness defined by the T (thickness) field on the PSHELL card.
The object of this exercise is to determine where to locate ribs in the designable region. Therefore, a non-zero base thickness is defined, which is the original thickness of the shells. The maximum thickness, which is defined by the T field on the PSHELL card, should be the allowable depth of the rib.
Currently, the T field on the PSHELL card is still set to 0.3 (the original shell thickness). You will change this to 1.0 so that the ribs of a maximum height of 0.7 units can be obtained by the topology optimization.
11. | Click return to go back to the Optimization panel. |
12. | In the Model browser, open the Property folder and select the design property. |
13. | In the Entity Editor, replace 0.300 in the T field with 1.000. |
Step 8: Create Responses
A detailed description of the available responses can be found in the OptiStruct User's Guide, under Responses.
Two responses will be defined here: the first frequency will be the objective function and a volume fraction response that will be used as a constraint.
1. | Select the responses panel. |
2. | Click response = and enter freq1. |
3. | Click on the switch below response type and select frequency from the pop-up menu. |
4. | Click Mode Number: and enter 1 (this is the default value). |
5. | Click create. A response, freq1, is defined for the frequency of the first mode extracted. |
6. | Click response = and enter volfrac. |
7. | Click on the switch below response type and select volumefrac from the pop-up menu. |
8. | Set the total/regional toggle to total. |
9. | Click create. A response, volfrac, is defined for the volume fraction of the design space. |
10. | Click return to go to the Optimization Setup panel. |
Step 9: Define the Objective Function
In this step, the objective is to maximize the response, 'freq1', which was defined in the previous section.
1. | Enter the objective panel from within the Optimization panel. |
2. | Click on the switch in the upper left corner of the panel, and select max from the pop-up menu. |
3. | Click response= and select freq1 from the list of responses. |
4. | Click loadstep and select the frequencies loadstep previously defined. |
6. | Click return to go back to the Optimization panel. |
Step 10: Define the Constraints
A response defined as the objective cannot be constrained. In this case, you cannot constrain the response freq1.
An upper bound constraint is to be defined for the response volfrac.
1. | Enter the dconstraints panel from the Optimization panel. |
2. | Click constraint= and enter volume_constr. |
3. | Check the box to the left of upper bound =. |
4. | Click upper bound = and enter the value 0.40. |
5. | Click response = and select volfrac from the response list. |
A constraint is defined on the response volfrac. The constraint is an upper bound with a value of 0.40. The constraint applies to all subcases as the volumefrac response is a global response. In this step you are allowing the topology optimization to use additional volume with which it can come with ribsvconstr.
7. | Click return to return to the Optimization panel. |
Step 11: Run the OptiStruct Analysis
1. | From the Analysis page, enter the OptiStruct panel. |
2. | Click save as following the input file: field. |
3. | Select the directory where you would like to write the OptiStruct model file and enter the name for the model, sshield_optimization.fem, in the File name: field. The .fem extension is used for OptiStruct input decks. |
The name and location of the sshield_optimization.fem file displays in the input file: field.
5. | Set the export options: toggle to all. |
6. | Click the run options: switch and select optimization. |
7. | Set the memory options: toggle to memory default. |
8. | Click OptiStruct. This launches the OptiStruct job. |
If the job is successful, new results files can be seen in the directory where the OptiStruct model file was written. The sshield_optimization.out file is a good place to look for error messages that will help to debug the input deck if any errors are present.
The default files written to the directory are:
sshield_optimization.hgdata
|
HyperGraph file containing data for the objective function, percent constraint violations and constraint for each iteration.
|
sshield_optimization.his_data
|
The OptiStruct history file containing iteration number, objective function values, and percent of constraint violation for each iteration.
|
sshield_optimization.HM.comp.cmf
|
HyperMesh command file used to organize elements into components based on their density result values. This file is only used with OptiStruct topology optimization runs.
|
sshield_optimization.HM.ent.cmf
|
HyperMesh command file used to organize elements into entity sets based on their density result values. This file is only used with OptiStruct topology optimization runs.
|
sshield_optimization.html
|
HTML report of the optimization, giving a summary of the problem formulation and the results from the final iteration.
|
sshield_optimization.oss
|
OSSmooth file with a default density threshold of 0.3. You may edit the parameters in the file to obtain the desired results.
|
sshield_optimization.out
|
OptiStruct output file containing specific information on the file setup, the setup of your optimization problem, estimates for the amount of RAM and disk space required for the run, information for all optimization iterations, and compute time information. Review this file for warnings and errors.
|
sshield_optimization.sh
|
Shape file for the final iteration. It contains the material density, void size parameters and void orientation angle for each element in the analysis. The .sh file may be used to restart a run and, if necessary, to run OSSmooth files for topology optimization.
|
sshield_optimization.stat
|
Summary of analysis process, providing CPU information for each step during analysis process.
|
sshield_optimization.mvw
|
HyperView session file.
|
sshield_optimization_frames.html
|
HTML file used to post-process the .h3d with HyperView Player using a browser. It is linked with the _menu.html file.
|
sshield_optimization_menu.html
|
HTML file used to post-process the .h3d with HyperView Player using a browser.
|
sshield_optimization_des.H3D
|
HyperView binary results file that contains: Density results from topology optimizations, Shape results from topography or shape optimizations and Thickness results from size and topology optimizations.
|
sshield_optimization_s1.H3D
|
HyperView binary results file that contains: Displacement results from linear static analysis, Element strain energy results from normal mode analysis and Stress results from linear static analysis, etc.
|
Post-processing the Optimization Results in HyperView
With topology optimization of shell elements, Element Density and Element Thickness results are output from OptiStruct for all iterations. In addition, Eigenvector results are output for the first and last iterations by default. This section describes how to view those results in HyperView.
Step 12: View a Static Plot of the Density Results
1. | While in the OptiStruct panel, click HyperView. This launches HyperView with the HyperWorks Desktop and loads the session file sshield_optimization.mvw that is linked with the sshield_optimization_des.h3d and the sshield_optimization_s1.h3d files. |
A Message Log window opens, indicating the location of the .h3d file.
2. | Click Close to exit the Message Log window. |
3. | Enter the Contour panel by clicking the Contour toolbar icon . |
4. | Set the Result type: to Element Thickness(s). |
6. | From the Results browser, select the last iteration. |
Each element of the model is assigned a legend color, indicating the thickness of each element for the selected iteration.
Have most of your elements converged to a thickness close to 1 or 0?
If there are many elements with intermediate densities (represented by intermediate thickness), the discrete parameter may need to be adjusted. The DISCRETE parameter (set in the Opti control panel on the Optimization panel) can be used to push elements with intermediate densities towards 1 or 0 so that a more discrete structure is given.
Regions that need reinforcement tend towards a density of 1.0. Areas that do not need reinforcement tend towards a density of 0.0.
Is the max = field showing 1.0e+00?
In this case, it is. If it is not, the optimization has not progressed far enough. Allow more iterations and/or decrease the OBJTOL parameter (set in the Opti control panel).
If adjusting the DISCRETE parameter, incorporating a checkerboard control, refining the mesh, and/or decreasing the objective tolerance does not yield a more discrete solution (none of the elements progress to a density value of 1.0), you may want to review the set up of the optimization problem. Some of the defined constraints may not be attainable for the given objective function (or visa-versa).
Where would you place your ribs?
Contour plot of element densities at iteration 6 with all components except the designable component turned off. (top view)
7. | On the Page Control toolbar, click the Page Delete icon to delete the HyperView page. |
Setting Up the Final Normal Modes Analysis in HyperMesh
Based on the topology results obtained above, a number of ribs were added to the model. The new design sshield_newdesign.fem, which includes these ribs can be found in the optistruct.zip file.
Step 13: Delete the Current Model
1. | Once back in HyperMesh, click return to exit the OptiStruct panel. |
2. | Click the New Model icon to clear the session. |
Deleting the current model clears the current HyperMesh database. Information stored in .hm files on your disk is not affected.
Step 14: Import the OptiStruct Input File sshield_newdesign.fem
1. | From the File menu, select Import > Solver Deck. An Import tab is added to your tab menu. |
2. | Select the Files icon . |
3. | Select the sshield_newdesign.fem file you saved to your working directory from the optistruct.zip file. |
The sshield_newdesign.fem OptiStruct input file is loaded into the current HyperMesh session. The ribs which were added are in the ribs component collector.
Step 15: Run OptiStruct Analysis
1. | From the Analysis page, click OptiStruct. |
2. | Click save as following the input file: field. |
3. | Select the directory where you would like to write the OptiStruct model file and enter the name for the model, sshield_newdesign.fem, in the File name: field. |
The name and location of the sshield_newdesign.fem file displays in the input file: field.
5. | Set the export options: toggle to all. |
6. | Set the run options: toggle to analysis. |
7. | Set the memory options: toggle to memory default. |
8. | Leave the options: field blank. |
Post-processing the Final Results in HyperView
Step 16: View the Mode Shapes
1. | While in the OptiStruct panel, click HyperView. This launches HyperView in the HyperMesh Desktop and loads the file sshield_newdesign.mvw that is linked with the file sshield_newdesign.h3d. |
A Message Log window opens, indicating the location of the .h3d file.
2. | Click Close to exit the Message Log window. |
3. | Set the animation mode to Modal . |
4. | In the Results browser, select Mode 1. |
5. | Click the Deformed toolbar icon . |
6. | Make or verify the following settings in the Deformed panel. |
Result Type:
|
Eigen mode (v)
|
Scale:
|
Model Units
|
Type:
|
Uniform
|
Value:
|
10
|
8. | Click Pause/Play Animation to start the animation . An animation of the mode shape should be seen for the first frequency. |
9. | Click Pause/Play Animation again to stop the animation. |
Comparing the Initial and Final Results
What is the percentage increase in frequency for your first mode (sshield_analysis.fem vs. sshield_newdesign)?
You have seen that the frequency of the structure for the first mode has increased from 43.63 Hz to 84.88 Hz.
How much mass has been added to the part (check the mass of your ribs in the mass calc panel in the Tool page)?
What is the percentage increase in mass?
See Also:
OptiStruct Tutorials