Note
Go to the end to download the full example code.
Elas2#
Bending bracket component.
==================== Mesh ====================
Element type: TETRA10
Ne = 2088, Nn = 3537
==================== Model ====================
ElasIsot:
E = 2.10e+05, v = 0.3
solver : scipy
============= Boundary Conditions =============
Unspecified.
=================== Results ===================
W def = 4.04
Svm max = 10.53
Evm max = 0.01 %
Ux max = 2.12e-03
Ux min = -2.88e-03
Uy max = 5.15e-05
Uy min = -1.01e-02
Uz max = 2.47e-04
Uz min = -2.41e-04
=================== TicTac ===================
Mesh : 294.774 ms
Boundary Conditions : 762.224 µs
Matrix : 2.134 s
Solver : 2.326 s
Display : 380.306 ms
PostProcessing : 135.772 ms
Resolution hyperelastic : 3.863 s
PyVista_Interface : 11.820 s
12 from EasyFEA import Display, Models, plt, np, ElemType, Simulations
13 from EasyFEA.Geoms import Point, Points
14
15 if __name__ == "__main__":
16 Display.Clear()
17
18 # ----------------------------------------------
19 # Configuration
20 # ----------------------------------------------
21
22 # geom
23 dim = 3
24 L = 120 # mm
25 h = L * 0.3
26
27 # model
28 E = 210000 # MPa (Young's modulus)
29 v = 0.3 # Poisson's ratio
30 coef = 1
31
32 # load
33 load = 800
34
35 # ----------------------------------------------
36 # Mesh
37 # ----------------------------------------------
38
39 # Define points and crack geometry for the mesh
40 pt1 = Point(isOpen=True, r=-10)
41 pt2 = Point(x=L)
42 pt3 = Point(x=L, y=h)
43 pt4 = Point(x=h, y=h, r=10)
44 pt5 = Point(x=h, y=L)
45 pt6 = Point(y=L)
46 pt7 = Point(x=h, y=h)
47
48 contour = Points([pt1, pt2, pt3, pt4, pt5, pt6], h / 3)
49
50 if dim == 2:
51 mesh = contour.Mesh_2D([], ElemType.TRI3)
52 elif dim == 3:
53 mesh = contour.Mesh_Extrude([], [0, 0, -h], [4], elemType=ElemType.TETRA10)
54
55 nodes_x0 = mesh.Nodes_Conditions(lambda x, y, z: x == 0)
56 nodes_xL = mesh.Nodes_Conditions(lambda x, y, z: x == L)
57
58 # ----------------------------------------------
59 # Simulation
60 # ----------------------------------------------
61
62 material = Models.ElasIsot(dim, E, v, planeStress=True, thickness=h)
63 simu = Simulations.ElasticSimu(mesh, material)
64
65 simu.add_dirichlet(nodes_x0, [0] * dim, simu.Get_unknowns())
66 simu.add_surfLoad(nodes_xL, [-800 / (h * h)], ["y"])
67
68 sol = simu.Solve()
69 simu.Save_Iter()
70
71 # ----------------------------------------------
72 # Results
73 # ----------------------------------------------
74 print(simu)
75
76 Display.Plot_Mesh(simu, h / 2 / np.abs(sol).max())
77 Display.Plot_BoundaryConditions(simu)
78 Display.Plot_Result(simu, "Svm", nodeValues=True, coef=1 / coef, ncolors=20)
79
80 plt.show()
Total running time of the script: (0 minutes 0.869 seconds)


