[Solved] AERO4630 Project2- Conducting a Tensile Test

$25

File Name: AERO4630_Project2-_Conducting_a_Tensile_Test.zip
File Size: 414.48 KB

SKU: [Solved] AERO4630 Project2- Conducting a Tensile Test Category: Tag:
5/5 - (1 vote)

Problem 1: Conducting a Tensile Test

Part 1a: Lame Parameters

For E = 200 GPa = 200 109 N/m2 and = 0.3, the Lame parameters and can be calculated as

(1)

and

(2)

Equations 1 and 2 yield = 1.153 1011 N/m2 and = 7.69 1010 N/m2.

Part 1b: Tensile Test

The Paraview output for with stress plotted over the right face of the beam is show in Fig 1

The Slice, ExtractSurface, and IntegrateVariables filters were used to determine that the total force on the face in the x-direction is 936 kN.

Part 1c: Average Stress vs Strain

The average stresses and strains for displacements of the right hand side ranging from 0.001 mm to 0.004 mm were plotted, and are shown in Fig 2

The code used for Problem 1 is shown in Appendix 1.

Figure 1: Paraview output for problem 1b

Figure 2: Paraview output for problem 1b

Problem 2: Applying a Force on a Beam Clamped at Both Ends

Part 2a: Vertical Displacement given Force Application Area

A force was applied to an area at the center of beam of length (L2a) and width w, where a is L/4. The resulting vertical deflection at the middle is 2.322 108 m.

The Python code used for problem 2a is shown in Appendix 2a.

Part 2b: Changing Applied Force Application Area

Next, displacements at the center of the beam were calculated for different force application areas. The length along the beam at the center at which the force was distributed was a = L/N for N = 3,4,5 and 6. A plot of vertical displacement of the beam over N is shown in Fig 3

Figure 3: Error vs Mesh Sizing for Problem 2a

The code used in part 2b is provided in Appendix 2b.

Appendix 1a: Code for Problem 1

Python script for Problem 1 of Project 2

Original Author : Vinamra Agrawal

Date : January 25 , 2019

Edited By: Omkar Mulekar

Date : February 10 , 2019

from future import print function from fenics import from ufl import nabla div

length = .150;

W = 0.025;

H = 0.025;

mu = 7.69 e10

rho = 7800 lambda = 1.153 e11 g = 10

mesh = BoxMesh( Point (0 ,0 ,0) , Point ( length ,W,H) ,10 ,3 ,3) V = VectorFunctionSpace (mesh , P ,1) tol = 1E14

def boundary left (x , on boundary) : return (onboundary and near (x [0] ,0) )

def boundary right (x , on boundary) : return on boundary and near (x [0] , length )

bcleft = DirichletBC (V, Constant ((0 ,0 ,0) ) , boundary left ) bc right = DirichletBC (V, Constant ((0.004 ,0 ,0) ) , boundary right )

def epsilon (u) :

return 0.5( nabla grad (u) + nabla grad (u) .T)

def sigma(u) :

return lambda nabla div (u)Identity (d) + mu( epsilon (u) + epsilon (u) .T)

u = TrialFunction (V) d = u. geometric dimension () v = TestFunction (V)

f = Constant ((0 ,0 ,0) ) T = Constant ((0 ,0 ,0) )

a = inner (sigma(u) , epsilon (v) )dx L = dot( f , v)dx + dot (T, v)ds

u = Function (V)

solve (a == L, u, [ bc left , bc right ])

vtkfileu = File ( deflection . pvd ) vtkfile u << u

W = TensorFunctionSpace (mesh , Lagrange , 1) stress = lambda nabla div (u)Identity (d) + mu( epsilon (u) + epsilon (u) .T)

vtkfiles = File ( stress . pvd ) vtkfile s << project ( stress ,W)

s = sigma(u) (1./3)tr (sigma(u) )Identity (d) # deviatoric stress von Mises = sqrt (3./2 inner (s , s ) )

X = FunctionSpace (mesh , P , 1) vtkfile von = File ( von Mises . pvd ) vtkfile von << project ( von Mises , X)

Appendix 2a: Code for Problem 2a

Python script for Part 1b of Project 2a

Original Author : Vinamra Agrawal

Date : January 25 , 2019

Edited By: Omkar Mulekar

Date : February 10 , 2019

from future import print function from fenics import import matplotlib

matplotlib . use (Agg)

import matplotlib . pyplot as plt from ufl import nabla div

length = .150;

W = 0.025;

H = 0.025;

F = 10 A = length / 4

mu = 7.69 e10

rho = 7800 lambda = 1.153 e11 g = 10

mesh = BoxMesh( Point (0 ,0 ,0) , Point ( length ,W,H) ,10 ,3 ,3) V = VectorFunctionSpace (mesh , P ,1) tol = 1E14

def boundary left (x , on boundary) : return (onboundary and near (x [0] ,0) )

def boundary right (x , on boundary) :

return on boundary and near (x [0] , length )

bcleft = DirichletBC (V, Constant ((0 ,0 ,0) ) , boundaryleft ) bc right = DirichletBC (V, Constant ((0 ,0 ,0) ) , boundary right )

def epsilon (u) : return 0.5( nabla grad (u) + nabla grad (u) .T)

def sigma(u) :

return lambda nabla div (u)Identity (d) + mu( epsilon (u) + epsilon (u) .T)

u = TrialFunction (V) d = u. geometric dimension () v = TestFunction (V)

f = Constant ((0 ,0 ,0) )

T = Expression (( 0.0 , (x [0] >= a && x [0] <= (La) && near (x [1] ,W) ) ? (F/(H(L2a) ) ) : 0.0 , 0.0 ) ,L=length , a=A,F=F,W=W,H=H, degree=1)

a = inner (sigma(u) , epsilon (v) )dx L = dot( f , v)dx + dot (T, v)ds

u = Function (V)

solve (a == L, u, [ bc left , bc right ])

w = u( length /2.0 ,W/2.0 ,H/2.0)

print(w[1])

vtkfileu = File ( deflection . pvd ) vtkfile u << u

W = TensorFunctionSpace (mesh , Lagrange , 1) stress = lambda nabla div (u)Identity (d) + mu( epsilon (u) + epsilon (u) .T)

vtkfiles = File ( stress . pvd ) vtkfile s << project ( stress ,W)

s = sigma(u) (1./3)tr (sigma(u) )Identity (d) # deviatoric stress von Mises = sqrt (3./2 inner (s , s ) )

X = FunctionSpace (mesh , P , 1) vtkfile von = File ( von Mises . pvd ) vtkfile von << project ( von Mises , X)

Appendix 2a: Code for Problem 2b

Python script for Part 1b of Project 2b

Original Author : Vinamra Agrawal

Date : January 25 , 2019

Edited By: Omkar Mulekar

Date : February 10 , 2019

from future import print function from fenics import import matplotlib

matplotlib . use (Agg)

import matplotlib . pyplot as plt from ufl import nabla div

length = .150;

W = 0.025;

H = 0.025; F = 10

n = [3 ,4 ,5 ,6]

# v e r t i c a l d e f l e c t i o n = [ ] len (n) w = [0] len(n)

for i in range(len(n) ) : print( i )

A = length / n[ i ]

mu = 7.69 e10

rho = 7800 lambda = 1.153 e11 g = 10

mesh = BoxMesh( Point (0 ,0 ,0) , Point ( length ,W,H) ,10 ,3 ,3) V = VectorFunctionSpace (mesh , P ,1) tol = 1E14

def boundary left (x , on boundary) : return (onboundary and near (x [0] ,0) )

def boundary right (x , on boundary) : return on boundary and near (x [0] , length )

bcleft = DirichletBC (V, Constant ((0 ,0 ,0) ) , boundaryleft ) bc right = DirichletBC (V, Constant ((0 ,0 ,0) ) , boundary right )

def epsilon (u) : return 0.5( nabla grad (u) + nabla grad (u) .T)

def sigma(u) :

return lambda nabla div (u)Identity (d) + mu( epsilon (u) + epsilon (u) .T)

u = TrialFunction (V) d = u. geometric dimension () v = TestFunction (V)

f = Constant ((0 ,0 ,0) )

T = Expression (( 0.0 , (x [0] >= a && x [0] <= (La) && near (x

[1] ,W) ) ? (F/(H(L2a) ) ) : 0.0 , 0.0 ) ,L=length , a=A,F=F,W=W ,H=H, degree=1)

a = inner (sigma(u) , epsilon (v) )dx L = dot( f , v)dx + dot (T, v)ds

u = Function (V)

solve (a == L, u, [ bc left , bc right ])

w[ i ] = u( length /2.0 ,W/2.0 ,H/2.0) [1]

print(w[1])

# v e r t i c a l d e f l e c t i o n [ i ] = w[1]

vtkfileu = File ( deflection . pvd ) vtkfile u << u

W = TensorFunctionSpace (mesh , Lagrange , 1) stress = lambda nabla div (u)Identity (d) + mu( epsilon (u) + epsilon (u) .T)

vtkfiles = File ( stress . pvd ) vtkfile s << project ( stress ,W) s = sigma(u) (1./3)tr (sigma(u) )Identity (d) # deviatoric stress

von Mises = sqrt (3./2 inner (s , s ) ) X = FunctionSpace (mesh , P , 1) vtkfilevon = File ( von Mises . pvd ) vtkfile von << project ( von Mises , X) W = 0.025

plt . figure (1) plt . plot (n,w, bx ) plt . xlabel ( N ) plt . ylabel ( Vertical Deflection [m] )

plt . savefig ( 2 afig1 . png )

Reviews

There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.

Shopping Cart
[Solved] AERO4630 Project2- Conducting a Tensile Test
$25