Note
Go to the end to download the full example code.
Hyperelas4#
A cantilever beam undergoing bending deformation in dynamic.



===== hyperelastic problem at iteration 0 =====
At Newton iteration 1 norm is 1.321961470281e+07
At Newton iteration 2 norm is 9.093944319769e+05
At Newton iteration 3 norm is 1.425886127162e+04
At Newton iteration 4 norm is 1.528342335469e+02
At Newton iteration 5 norm is 1.308350446467e-01
At Newton iteration 6 norm is 2.264433416501e-08
===== hyperelastic problem at iteration 1 =====
At Newton iteration 1 norm is 5.063370201521e+04
At Newton iteration 2 norm is 5.945769422923e+03
At Newton iteration 3 norm is 1.808625373601e+01
At Newton iteration 4 norm is 4.014703839844e-03
At Newton iteration 5 norm is 1.484075923942e-08
===== hyperelastic problem at iteration 2 =====
At Newton iteration 1 norm is 4.978636183249e+03
At Newton iteration 2 norm is 3.685464342499e+04
At Newton iteration 3 norm is 2.448434983687e+01
At Newton iteration 4 norm is 8.768073233435e-05
At Newton iteration 5 norm is 1.316223995923e-08
===== hyperelastic problem at iteration 3 =====
At Newton iteration 1 norm is 8.938665529061e+03
At Newton iteration 2 norm is 7.012222278536e+04
At Newton iteration 3 norm is 7.276664416843e+01
At Newton iteration 4 norm is 1.203266365581e-03
At Newton iteration 5 norm is 1.121310917991e-08
===== hyperelastic problem at iteration 4 =====
At Newton iteration 1 norm is 1.137171002519e+04
At Newton iteration 2 norm is 1.119397616766e+05
At Newton iteration 3 norm is 1.855269808667e+02
At Newton iteration 4 norm is 2.702486272139e-02
At Newton iteration 5 norm is 1.342254673227e-08
===== hyperelastic problem at iteration 5 =====
At Newton iteration 1 norm is 1.171954197748e+04
At Newton iteration 2 norm is 1.595152303518e+05
At Newton iteration 3 norm is 4.163062787087e+02
At Newton iteration 4 norm is 1.100727537487e-02
At Newton iteration 5 norm is 1.383026837657e-08
===== hyperelastic problem at iteration 6 =====
At Newton iteration 1 norm is 1.002040542127e+04
At Newton iteration 2 norm is 1.071125200654e+05
At Newton iteration 3 norm is 1.848234915366e+02
At Newton iteration 4 norm is 5.746142233147e-02
At Newton iteration 5 norm is 2.452830022937e-08
===== hyperelastic problem at iteration 7 =====
At Newton iteration 1 norm is 6.712638577581e+03
At Newton iteration 2 norm is 3.205841852489e+04
At Newton iteration 3 norm is 1.441124162580e+01
At Newton iteration 4 norm is 1.111898109129e-04
At Newton iteration 5 norm is 1.337565349167e-08
Generate movie 1/8 (12.50 %) 919.79 ms
Generate movie 2/8 (25.00 %) 663.81 ms
Generate movie 3/8 (37.50 %) 549.68 ms
Generate movie 4/8 (50.00 %) 436.04 ms
Generate movie 5/8 (62.50 %) 327.02 ms
Generate movie 6/8 (75.00 %) 222.48 ms
Generate movie 7/8 (87.50 %) 109.40 ms
Generate movie 8/8 (100.00 %) 0.00 µs
13 from EasyFEA import Display, Folder, ElemType, Models, Simulations, PyVista
14 from EasyFEA.Geoms import Domain
15
16 if __name__ == "__main__":
17 Display.Clear()
18
19 # ----------------------------------------------
20 # Configuration
21 # ----------------------------------------------
22
23 # outputs
24 folder = Folder.Results_Dir()
25 makeMovie = True
26 result = "uy"
27
28 # geom
29 L = 120
30 h = 13
31
32 # model
33 lmbda = 121153.84615384616 # Mpa
34 mu = 80769.23076923077
35
36 # ----------------------------------------------
37 # Mesh
38 # ----------------------------------------------
39 meshSize = h / 3
40
41 contour = Domain((0, 0), (L, h), meshSize)
42
43 mesh = contour.Mesh_Extrude(
44 [], [0, 0, h], [h / meshSize], ElemType.HEXA8, isOrganised=True
45 )
46 nodesX0 = mesh.Nodes_Conditions(lambda x, y, z: x == 0)
47 nodesXL = mesh.Nodes_Conditions(lambda x, y, z: x == L)
48
49 # ----------------------------------------------
50 # Simulation
51 # ----------------------------------------------
52
53 mat = Models.HyperElastic.SaintVenantKirchhoff(3, lmbda, mu)
54
55 simu = Simulations.HyperElastic(mesh, mat)
56
57 simu.add_dirichlet(nodesX0, [0, 0, 0], simu.Get_unknowns())
58 simu.add_dirichlet(nodesXL, [-h], ["y"])
59
60 # static
61 simu.Solve()
62 simu.Save_Iter()
63
64 # dynamic
65 T = 7
66 dt = T / 7
67 simu.Bc_Init()
68 simu.Solver_Set_Hyperbolic_Algorithm(dt)
69 simu.add_dirichlet(nodesX0, [0, 0, 0], simu.Get_unknowns())
70
71 for _ in range(int(T / dt)):
72 simu.Solve()
73 simu.Save_Iter()
74
75 # ----------------------------------------------
76 # Results
77 # ----------------------------------------------
78
79 PyVista.Plot_BoundaryConditions(simu).show()
80
81 if makeMovie:
82 PyVista.Movie_simu(
83 simu, "uy", folder, "Hyperelas4.gif", deformFactor=1, plotMesh=True
84 )
85
86 PyVista.Plot(simu, "uy", 1, plotMesh=True).show()
Total running time of the script: (0 minutes 3.666 seconds)