Impact - Wiki - Tutorial 1 - Stress Analysis

From PeformIQ Wiki
Jump to navigation Jump to search

Tutorial 1 - Stress Analysis

IMPACT Stress Analysis Tutorial for the Impact GUI (Graphical User Interface)
Created by Kumar - 10th June 2006 (Revised 13th June 2006)

(CAVEAT: This page is currently under construction and therefore incomplete or inaccurate)

OBJECTIVE:
In this tutorial you will create a meshed rectangular plate using Impact's built in powerful geometry creation tools, mesh it with 4 noded shell elements, then apply boundary constraints (BCs) and loads. We will run a time stepped analysis and display the results.

The geometry is intended to be similar to the optimization demo that Yuriy has created, except we will be running a dynamic stress analysis.

START IMPACT:

Change to the subdirectory where you installed Impact and start it by typing the following command in a terminal window:

./ImpactGUI.sh > /tmp/Test-Rect.log

(This will cause all error & status output to be logged to the file /tmp/Test-Rect.log)

IMPACT will start and display a window that looks like this:

Screenshot1.png

On the top you will see 5 tabs for the sequential steps of a Finite Element Analysis
1. PreProcessor (For constructing the geometry, meshing, apply BCs and loads
2. Processor (the solver)
3. Post Processor (for displaying the results)
4. Graph (Not covered in this tutorial)
5. Help (Built in limited help manual)

On the left is a Hierarchy Window where the Hierarchical Tree Structure is displayed. On the right is the Graphical Window, where the geometry you create will be displayed.

CREATE THE GEOMETRY:
(The major steps consist of creating 4 points and using the points to create a rectangle)

We are going to draw a rectangle much like the one in Yuriy's optimization study, so we will draw 4 points at the co-ordinates (0,0) (20,0) (20,30) & (0,30). All Z-axis values are zero.

Make sure you are in the draw (not modify) mode. Click on the "Draw" tab just above the "Point" button if you are not in the draw mode. To draw the first point click on the "Point" button and you will see the point creation Dialog Box just under the hierarchy window pane. As shown below. Click on the "Add" button, since the default values in the dialog already are X=0, Y=0 & Z=0.

Screenshot2.png

The Graphical window will display a small rectangular box depicting the first point you have just created as shown below:

Screenshot3.png

Do the same for the other three points using the appropriate values for X & Y, namely (20,0) (20,30) & (0,30), confirmining each point by clicking on the "Add" button. After all 4 points have been created you will see them on the display window as shown below:

Screenshot4.png

(Notice the Hierachy window on the left lists the 4 points that have been created.)
Click on the "Zoom All" button to zoom all the points into optimal view.

Screenshot5.png

MESH GENERATION:

Click on the "Bilinear Surface Between Edge Points" button. In the Dialog Box that appears, it expects the Lower Left (LL), Lower Right (LR), Upper Right (UR) and Upper Left (UL) points to be specified. Note that we are declaring them sequentially, going in a counterclockwise (CCW) direction. The button "<<" besides the "LL" entry is already highlighted, so if you click on the point "1" in the graphical area, it will be entered into the dialog box. The next "<<" button will then be highlighted and it is waiting for you to click on the next point, for which you should click on point "2". Complete the remaining two "UR" and "UL" as well as shown below:


Screenshot6.png


Screenshot7.png



Screenshot8.png

In this same Dialog Box ensure that
1) the Mesh size is 1.0,
2) Shell_BT_4 is the element type,
3) Thickness is 1.0 (thickness of our rectangular plate)
4) and pick a material such as "SteelANSIC1020"

then press the "Add" button.

(A mesh size of 1.0 will create 20 x 30 = 600 4 noded shell type elements.)


Screenshot9.png

You should see a meshed rectangle as shown below represented as a surface:

Screenshot10.png

Click on the "Wireframe" option of the drop down views to change it to show our rectangle as a wireframe instead of a surfaced representation as seen below:

Screenshot11.png

You may click on the little icon (that looks like what I called a "door handle") besides the "BLSurface ID =5" of the hierarchy window pane to expand the entities that make up our rectanglar meshed surface.


Screenshot12.png

We have created a simple rectangular plate. Next we need to apply boundary constraints & loads.

APPLY CONSTRAINTS:

We will fix 4 nodes along the top & bottom regions along the vertical left edge of our rectangle. Then we will apply downward loads (Force Fy = -5) on the 4 right most nodes of the top edge.

Switch to the modify mode by clicking on the "Modify" tab (above the graphical area).

Screenshot13.png


Click on the "Constraints for..." button.

Screenshot14.png

Expand the Hierarchy tree by clicking on the small (rather tiny "Door Handle") icon beside "Nodes" so it looks like this:

Screenshot15.png

Highlight the four nodes (0 - 3) in the hierarchy tree by clicking on the first and clicking on the last while holding down the shift key.


Screenshot16.png

Ensure that the FIXED_ALL boundary condition is highlighted in the Dialog Box and press the "Set" button.
The word "FIXED_ALL" will appear besides the 4 nodes you had selected. As seen below:

Screenshot17.png

Repeat the procedure for the top four nodes on the same edge, till your rectangle is constrained along the left edge (near the top & bottom) as we had intended (see below):


Screenshot18.png

Your fully constrainted rectangle should look like this the figure below:


Screenshot20.png

APPLY LOADS:

Next apply loads on the 4 right most nodes on the upper edge of the rectangle. Select each of the 4 nodes in the Hieracrchy Window. You maybe able to hold down the Control key to "...Cherry Pick..." while clicking on the node numbers to highlight the appropriate nodes, then click on the "Loads" button. I have found doing them one at a time more reliable. Although I can see this becoming quite cumbersome in complicated models. Somebody correct me if there is a better method. I am told one can also place a "box" around the nodes of interest such that all nodes "captured" inside the box will get selected.

Screenshot21.png

In the Dialog Box specify "FORCE_Y=-5" and press the "Update" button for each one, until your rectangle looks like this one below:

Screenshot22.png



Screenshot22.png

SAVE THE MODEL:

Your model is ready to be saved. Click on the "Save File" button and specify a file name "Test-Rect.in" in the "File Save" pop-up window and specify a "Node Merge Distance" value for adjacent (duplicate) nodes to be merged. The default value should work fine.

Screenshot23.png

RUNNING THE ANALYSIS (PROCESSOR or SOLVER):

Switch to the Processor tab and click on the "Open Model *.in" button and select the file that you had saved previously, namely "Test-Rect.in" Your screen should look like this:

Screenshot24.png

Notice that the name of the file that was read is shown in the Message Box and the contents of the file are shown in a vertical window below it. (The messages appearing in the Message Box can also be found in the file "/tmp/Test-Rect.log" that we had re-directed output to, when we started the Impact shell script.)

To the top right is the area for Optimization studies which is the subject of another tutorial. For now we will only be running a Dynamic stress analysis.

Click on the "Zoom All" button to optimize the view of the model.

Screenshot25.png

VIEWING THE RESULTS (in the POSTPROCESSOR):

Click on the green "Start / Stop" button once to start the analysis (solver). You may press this same button if you want to stop a long analysis that seems to be running longer than your patience will allow, as we are about to find out later!

The status of the analysis will be displayed in the Message Box area.

Screenshot26.png

When the analysis is complete (may be several minutes or hours) or when you have clicked the "Start/Stop" button again you may click on the Post-Processing tab and read in the results file (Test-Rect.flavia.res) which is a GiD (a semi-commercial FEA Pre/Post Processor software) compatible output file. Click on the "File Open" icon that looks like a partiall open folder to select the results file. The model may show up in your graphical window as a very small (dark) rectangle as shown below:

Screenshot28.png

Click on the "Zoom All" button to enlarge your model to an optimal size and click on one of the time steps on the left to display the deformed shape as shown below:


Screenshot30.png

EXTRA STUFF:

To create an animated GIF file like Yuriy has created, you need a program that can take snapshots of your screen. I used a program that places files called Snapshot.png in my home folder. I sequentially numbered each one as I took each time-step snapshot. Then I used ImageMagick's excellent command line tools to convert them. The gist of my steps are:

After running an analysis one can take sequential snapshots of the screen and crop each one as shown below (change the pixel numbers to suit your screen resolution and cropping requirements):

convert Screenshot.png -crop 550x750+450+200 Screenshot.gif

Or even scale them down simultaneously (change the pixel numbers to suit your screen resolution and cropping requirements):

convert Screenshot.png -crop 550x750+450+200 -scale 50% Screenshot.gif

The above steps allow one to convert each image one at a time. But I found a script which I modified for use here that might work for you in converting several snapshots at once, i.e. find every PNG Screenshot file from 100 to 199; crop them, reduce each one to 50% and convert them to corresponding gif files (while echo'ing the file name as well). Remember to change the pixel numbers to suit your screen resolution and cropping requirements.

find ./ -name 'Screenshot[0-9][0-9].png' -exec sh -c 'convert "{}" -crop 550x750+450+200
-scale 50% `dirname "{}"`/`basename "{}" | sed "s/png/gif/"` ; echo {}' \;

( Note that the above command is one long line. Cut and paste it so no symbols are missed! )

The next command takes every gif file created above and makes it a browser compatible single animated file called /tmp/test.gif.

convert $(ls Screenshot[0-9][0-9].gif) -loop 0 /tmp/test.gif

View the animation using your favorite browser (mine is Firefox):

firefox /tmp/test.gif

Enjoy!