Dyna1#

A cantilever beam undergoing dynamic bending deformation.

Dyna1
  • QUAD4: Ne = 230, Nn = 282
  • Boundary conditions
  • $uy^{e}$
  • $\sigma_{vm}^{e}$
0.000 s
0.010 s
0.020 s
0.030 s
0.040 s
0.050 s
0.060 s
0.070 s
0.080 s
0.090 s
0.100 s
0.110 s
0.120 s
0.130 s
0.140 s
0.150 s
0.160 s
0.170 s
0.180 s
0.190 s
0.200 s
0.210 s
0.220 s
0.230 s
0.240 s
0.250 s
0.260 s
0.270 s
0.280 s
0.290 s
0.300 s
0.310 s
0.320 s
0.330 s
0.340 s
0.350 s
0.360 s
0.370 s
0.380 s
0.390 s
0.400 s
0.410 s
0.420 s
0.430 s
0.440 s
0.450 s
0.460 s
0.470 s
0.480 s
0.490 s
0.500 s
Generate movie 0/51
Generate movie 1/51 (1.96 %) 5.79 s
Generate movie 2/51 (3.92 %) 5.60 s
Generate movie 3/51 (5.88 %) 5.49 s
Generate movie 4/51 (7.84 %) 5.36 s
Generate movie 5/51 (9.80 %) 5.25 s
Generate movie 6/51 (11.76 %) 5.13 s
Generate movie 7/51 (13.73 %) 5.04 s
Generate movie 8/51 (15.69 %) 4.90 s
Generate movie 9/51 (17.65 %) 4.78 s
Generate movie 10/51 (19.61 %) 4.69 s
Generate movie 11/51 (21.57 %) 4.59 s
Generate movie 12/51 (23.53 %) 4.54 s
Generate movie 13/51 (25.49 %) 4.39 s
Generate movie 14/51 (27.45 %) 4.27 s
Generate movie 15/51 (29.41 %) 4.18 s
Generate movie 16/51 (31.37 %) 4.06 s
Generate movie 17/51 (33.33 %) 3.97 s
Generate movie 18/51 (35.29 %) 3.85 s
Generate movie 19/51 (37.25 %) 3.74 s
Generate movie 20/51 (39.22 %) 3.60 s
Generate movie 21/51 (41.18 %) 3.49 s
Generate movie 22/51 (43.14 %) 3.45 s
Generate movie 23/51 (45.10 %) 3.24 s
Generate movie 24/51 (47.06 %) 3.13 s
Generate movie 25/51 (49.02 %) 3.02 s
Generate movie 26/51 (50.98 %) 2.91 s
Generate movie 27/51 (52.94 %) 2.78 s
Generate movie 28/51 (54.90 %) 2.67 s
Generate movie 29/51 (56.86 %) 2.61 s
Generate movie 30/51 (58.82 %) 2.55 s
Generate movie 31/51 (60.78 %) 2.32 s
Generate movie 32/51 (62.75 %) 2.21 s
Generate movie 33/51 (64.71 %) 2.09 s
Generate movie 34/51 (66.67 %) 1.94 s
Generate movie 35/51 (68.63 %) 1.85 s
Generate movie 36/51 (70.59 %) 1.74 s
Generate movie 37/51 (72.55 %) 1.62 s
Generate movie 38/51 (74.51 %) 1.50 s
Generate movie 39/51 (76.47 %) 1.36 s
Generate movie 40/51 (78.43 %) 1.37 s
Generate movie 41/51 (80.39 %) 1.17 s
Generate movie 42/51 (82.35 %) 1.05 s
Generate movie 43/51 (84.31 %) 932.56 ms
Generate movie 44/51 (86.27 %) 823.40 ms
Generate movie 45/51 (88.24 %) 705.02 ms
Generate movie 46/51 (90.20 %) 578.13 ms
Generate movie 47/51 (92.16 %) 491.49 ms
Generate movie 48/51 (94.12 %) 349.82 ms
Generate movie 49/51 (96.08 %) 233.09 ms
Generate movie 50/51 (98.04 %) 115.69 ms
Generate movie 51/51 (100.00 %) 0.00 µs


==================== Mesh ====================

Element type: QUAD4
Ne = 230, Nn = 282, dof = 564

==================== Model ====================

ElasIsot:
E = 2.10e+05, v = 0.3
planeStress = True
thickness = 1.30e+01

solver : pypardiso

============= Boundary Conditions =============

Unspecified.

=================== Results ===================


W def = 1.15

Svm max = 12.72

Evm max = 0.01 %

Ux max = 3.73e-03
Ux min = -3.73e-03

Uy max = 0.00e+00
Uy min = -5.04e-02

=================== TicTac ===================

Mesh : 129.747 ms
Boundary Conditions : 675.440 µs
Matrix : 92.991 ms
Solver : 1.262 s
Display : 386.631 ms
PostProcessing : 225.860 ms
PyVista_Interface : 24.421 s

 12 from EasyFEA import (
 13     Display,
 14     Folder,
 15     Models,
 16     plt,
 17     ElemType,
 18     Simulations,
 19     PyVista,
 20     Paraview,
 21 )
 22 from EasyFEA.Geoms import Domain
 23
 24 if __name__ == "__main__":
 25     Display.Clear()
 26
 27     # ----------------------------------------------
 28     # Configuration
 29     # ----------------------------------------------
 30     dim = 2
 31
 32     # outputs
 33     folder = Folder.Join(Folder.RESULTS_DIR, "Dynamics", "Dyna1")
 34     makeParaview = False
 35     makeMovie = True
 36     result = "uy"
 37
 38     # geom
 39     L = 120  # mm
 40     h = 13
 41     b = 13
 42
 43     # time
 44     Tmax = 0.5
 45     N = 50
 46     dt = Tmax / N
 47     time = -dt
 48
 49     # Dumping
 50     coefM = 1e-3
 51     coefK = 1e-3
 52
 53     # ----------------------------------------------
 54     # Mesh
 55     # ----------------------------------------------
 56     meshSize = h / 5
 57
 58     if dim == 2:
 59         domain = Domain((0, -h / 2), (L, h / 2), meshSize)
 60         mesh = domain.Mesh_2D([], ElemType.QUAD4, isOrganised=True)
 61
 62         area = mesh.area - L * h
 63
 64     elif dim == 3:
 65         domain = Domain((0, -h / 2, -b / 2), (L, h / 2, -b / 2), meshSize=meshSize)
 66         mesh = domain.Mesh_Extrude([], [0, 0, b], [3], ElemType.HEXA8, isOrganised=True)
 67
 68         volume = mesh.volume - L * b * h
 69         area = mesh.area - (L * h * 4 + 2 * b * h)
 70
 71     nodes_0 = mesh.Nodes_Conditions(lambda x, y, z: x == 0)
 72     nodes_L = mesh.Nodes_Conditions(lambda x, y, z: x == L)
 73     nodes_h = mesh.Nodes_Conditions(lambda x, y, z: y == h / 2)
 74
 75     # ----------------------------------------------
 76     # Simulation
 77     # ----------------------------------------------
 78
 79     material = Models.ElasIsot(dim, thickness=b)
 80     simu = Simulations.ElasticSimu(mesh, material)
 81     simu.rho = 8100 * 1e-9
 82
 83     # static simulation
 84     simu.Bc_Init()
 85     simu.add_dirichlet(nodes_0, [0] * dim, simu.Get_unknowns(), description="Fixed")
 86     simu.add_dirichlet(nodes_L, [-10], ["y"], description="dep")
 87     simu.Solve()
 88     simu.Save_Iter()
 89     Display.Plot_Mesh(simu, deformFactor=1)
 90
 91     # dynamic simulation
 92     simu.Solver_Set_Hyperbolic_Algorithm(dt)
 93     simu.Set_Rayleigh_Damping_Coefs(coefM=coefM, coefK=coefK)
 94
 95     simu.Bc_Init()
 96     simu.add_dirichlet(nodes_0, [0] * dim, simu.Get_unknowns(), description="Fixed")
 97
 98     while time <= Tmax:
 99         time += dt
100
101         simu.Solve()
102         simu.Save_Iter()
103
104         print(f"{time:.3f} s", end="\r")
105
106     # ----------------------------------------------
107     # Results
108     # ----------------------------------------------
109
110     Display.Plot_BoundaryConditions(simu)
111
112     if makeParaview:
113         Paraview.Save_simu(simu, folder)
114
115     if makeMovie:
116         PyVista.Movie_simu(
117             simu,
118             f"{result}",
119             folder,
120             f"{result}.gif",
121             deformFactor=1,
122             plotMesh=True,
123         )
124
125     print(simu)
126     Display.Plot_Result(simu, f"{result}", deformFactor=1, nodeValues=False)
127     Display.Plot_Result(simu, "Svm", plotMesh=False, nodeValues=False)
128
129     plt.show()

Total running time of the script: (0 minutes 10.533 seconds)

Gallery generated by Sphinx-Gallery