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.093944319768e+05
At Newton iteration 3 norm is 1.425886127162e+04
At Newton iteration 4 norm is 1.528342335474e+02
At Newton iteration 5 norm is 1.308350450491e-01
At Newton iteration 6 norm is 2.282536972465e-08
===== hyperelastic problem at iteration 1 =====
At Newton iteration 1 norm is 5.063370201521e+04
At Newton iteration 2 norm is 5.945769422922e+03
At Newton iteration 3 norm is 1.808625373484e+01
At Newton iteration 4 norm is 4.014703411133e-03
At Newton iteration 5 norm is 1.385614188433e-08
===== hyperelastic problem at iteration 2 =====
At Newton iteration 1 norm is 4.978636183250e+03
At Newton iteration 2 norm is 3.685464342497e+04
At Newton iteration 3 norm is 2.448434983804e+01
At Newton iteration 4 norm is 8.768143227018e-05
At Newton iteration 5 norm is 1.410211067259e-08
===== hyperelastic problem at iteration 3 =====
At Newton iteration 1 norm is 8.938665529061e+03
At Newton iteration 2 norm is 7.012222278534e+04
At Newton iteration 3 norm is 7.276664416800e+01
At Newton iteration 4 norm is 1.203266014299e-03
At Newton iteration 5 norm is 1.106949667588e-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.855269808677e+02
At Newton iteration 4 norm is 2.702486307428e-02
At Newton iteration 5 norm is 1.298576476337e-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.163062787086e+02
At Newton iteration 4 norm is 1.100727543078e-02
At Newton iteration 5 norm is 1.467561069364e-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.746142055727e-02
At Newton iteration 5 norm is 2.647926797364e-08
===== hyperelastic problem at iteration 7 =====
At Newton iteration 1 norm is 6.712638577580e+03
At Newton iteration 2 norm is 3.205841852489e+04
At Newton iteration 3 norm is 1.441124162515e+01
At Newton iteration 4 norm is 1.111895360809e-04
At Newton iteration 5 norm is 1.433187803967e-08
Generate movie 1/8 (12.50 %) 681.83 ms
Generate movie 2/8 (25.00 %) 465.49 ms
Generate movie 3/8 (37.50 %) 376.41 ms
Generate movie 4/8 (50.00 %) 306.95 ms
Generate movie 5/8 (62.50 %) 236.25 ms
Generate movie 6/8 (75.00 %) 154.11 ms
Generate movie 7/8 (87.50 %) 77.83 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 2.495 seconds)