TA8: Maksimum Deflection of a Simply Supported Beam
A simply supported beam is subjected to a distributed load, p. The beam is made of wood and modulus of elasticity is known. Height, width and length of the beam is also given. We are asked to find the maximum deflection of the beam.
E = 10 GPa
L = 3 m, b = 0.06 m, h = 0.125 m
p = 2000 N/m
2.MODEL SETUP AND SOLUTION
The following sections describe the setup and solution steps for this tutorial:
1.First we will import our libraries, that we will use almost in each tutorial, from Simularge Libraries to our empty Python page .
1from TwinAPI.SimulationTools import Solver 2from TwinAPI.SimulationTools import Mesher
Material properties are significant factors that affect the result. Therefore, we should be able to define them easily. Below I will explain how to use and write Material Library elaborately. Furthermore, the libraries which has to be imported for this problem is given below.
1from TwinAPI.MaterialLibrary import MaterialManager 2from TwinAPI.MaterialLibrary.Units import units
2.2. General Settings
After the necessary libraries are imported into the analysis, the analysis is defined.
1.Define the name of the analysis as “SimSupBeam”
2.Calculix is used for solid mechanics problems in TwinAPI. Hence, we define Calculix as the solver for this analysis.
Analysis is defined successfully into TwinAPI system.
There are two different options to define the geometry on TwinAPI system. You can create the geometry on TwinAPI by using Mesher Library which is one of Simularge libraries or you can import your own CAD geometry.
1 b=0.06 2 h=0.125 3 L=3 4 NodeX=200 5 NodeY=10 6 NodeZ=10 7 directionX=">" 8 directionY="<>" 9 directionZ="<>" 10 TypeX="uniform" 11 TypeY="uniform" 12 TypeZ="uniform" 13 TransX=0 14 TransY=0 15 TransZ=0 16 17 box=Mesher.box(L,NodeX,TypeX,directionX,h,NodeY,TypeY,directionY, b,NodeZ,TypeZ,directionZ, TransX,TransY,TransZ)
With the script given above, you can create your geometry and mesh.
L= Length in the x-direction
NodeX= Node Number in the x-direction
TypeX= Mesh type inthe x-direction.
TransX= Translation in the x-irection
All of given above is valid for y- and z-direction.
We create a box geometry with the name “box” from given inputs.
We told you that you can also create this geometry by importing 3D CAD file apart from using MESHER. Code should be written like this;
If we are not sure how the created geometry is and want to see the geometry before starting analysis;
Click Preview Button
Before we start, there are lots of parameters which will affect the result of the problem. We are going to explain which parameters are required for this problem and some parameter instances will be given.
We call the Material class in the Material Manager library and name the material as “TwinAPI”. At the same time, we give the information that the material behaves as wood by typing “wood”.
Our material will behave elastically, therefore we type “Elastic”. Only modulus of elasticity is required for this problem.
1 material = MaterialManager.Material("TwinAPI","wood") 2 3 material.SetMechanicType("Elastic") 4 material.SetMechanicData("youngsModulus",1e10 ,units["pa"])
Other examples of parameters in Material Library are given below.
1 material.SetGeneralData("density", 7860, units["kg/m3"]) 2 3 material.SetMechanicData("poissonsRatio", 0.39)
After defining the material into our system, we should combine geometry defined above and material using AddPart.
1SimSupBeam.AddPart(box,material) 2 3SimSupBeam.Assemble()
2.5. Boundary Conditions
After adding material and geometry to the analysis, we are ready to set the boundary conditions.
1.First of all, we will create a step with the name “Step1”.
2.We need to choose whether this step is computed depending on time or not. Since our problem is steady-state, the code below should be used.
If the problem was transient, type of the problem and time for the analysis would be written in a similar manner to the code given below.
3.Since a simply supported beam has a pin support at one end and a roller support at the other end, we define the boundary conditions as given below. We define the load as “Pressure” and the distributed load is divided by the width of the beam to calculate the pressure.
1Step1.AddBC("Fix",[box.right],[("X",0)],"") 2Step1.AddBC("Fix",[box.right],[("Y",0)],"") 3Step1.AddBC("Fix",[box.right],[("Z",0)],"") 4 5Step1.AddBC("Fix",[box.left],[("Y",0)],"") 6 7Step1.AddBC("Pressure",[box.top],[("Y",-2000/0.06)],"N/m2")
After defining our boundary conditions, we need to combine our defined domain and the steps containing boundary conditions.To complete this task;
Now,the problem is ready to be solved.
Let’s review what we have done.
Click Run Button and gears will rotate on the right side while problem is being solved.
2.After problem solved;
We can see the result;
Click Result Button
3.If we want to see the detailed result of the problem;
Output tab shows us the results that we desire to see.
1Disp=SimSupBeam.Result(Variable="Displacement Y", Set=box.top) 2print("Maximum Deflection:" ,max(Disp))
Log tab tells us respectively what happened in the analysis.
Error tab shows us if there is an error in the script, it tells us what the error is and where it is.
Files tab includes the files imported using Upload button.
Graph tab shows us analysis result viewed graphically. (It will be shown in other examples.)
In this tutorial, we learned how to set up and solve a problem involving a simply supported beam. We also learned how to perform postprocessing in an engineering manner.
The table given below shows comparison of the result of theoritical solution and the result obtained from TwinAPI.
Maximum Deflection, mm
4. SOURCE CODE
1from TwinAPI.MaterialLibrary import MaterialManager 2from TwinAPI.MaterialLibrary.Units import units 3from TwinAPI.SimulationTools import Solver 4from TwinAPI.SimulationTools import Mesher 5 6SimSupBeam= Solver.Analysis(Verbose=True) 7SimSupBeam.SetSolver("Calculix") 8 9b=0.06 10h=0.125 11L=3 12NodeX=150 13NodeY=10 14NodeZ=10 15directionX=">" 16directionY="<>" 17directionZ=directionY 18TypeX="uniform" 19TypeY=TypeX 20TypeZ=TypeX 21TransX=0 22TransY=0 23TransZ=0 24 25box=Mesher.box(L,NodeX,TypeX,directionX,h,NodeY,TypeY,directionY, b,NodeZ,TypeZ,directionZ, TransX,TransY,TransZ) 26 27material = MaterialManager.Material("TwinAPI","wood") 28 29material.SetMechanicType("Elastic") 30material.SetMechanicData("youngsModulus",1e10,units["pa"]) 31 32SimSupBeam.AddPart(box,material) 33 34SimSupBeam.Assemble() 35Step1=Solver.CreateStep("new") 36Step1.Time("SteadyState",[0,0.5,0.1]) 37 38Step1.AddBC("Fix",[box.right],[("X",0)],"") 39Step1.AddBC("Fix",[box.right],[("Y",0)],"") 40Step1.AddBC("Fix",[box.right],[("Z",0)],"") 41 42Step1.AddBC("Fix",[box.left],[("Y",0)],"") 43 44Step1.AddBC("Pressure",[box.top],[("Y",-2000/0.06)],"N/m2") 45 46SimSupBeam.Build([Step1]) 47SimSupBeam.Solve() 48 49Disp=SimSupBeam.Result(Variable="Displacement Y", Set=box.top) 50print("Maximum Deflection:" ,max(Disp))
Keywords: Maximum Deflection, Simply Supported Beam, Distributed Load
Problem Reference: R. C. Hibbeler, Mechanics Of Materials, 10th Edition in SI Units, Pearson Education, Inc., London, England, 2018, pg. 611, F12-4.
Author: Ilknur Akica