Elas9#

A cantilever beam undergoing dynamic bending deformation.

Elas9
  • elemType: 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 01/52 (1.92 %) 5.95 s
Generate movie 02/52 (3.85 %) 4.82 s
Generate movie 03/52 (5.77 %) 4.83 s
Generate movie 04/52 (7.69 %) 4.76 s
Generate movie 05/52 (9.62 %) 4.66 s
Generate movie 06/52 (11.54 %) 4.64 s
Generate movie 07/52 (13.46 %) 4.47 s
Generate movie 08/52 (15.38 %) 4.29 s
Generate movie 09/52 (17.31 %) 4.19 s
Generate movie 10/52 (19.23 %) 4.08 s
Generate movie 11/52 (21.15 %) 4.00 s
Generate movie 12/52 (23.08 %) 3.93 s
Generate movie 13/52 (25.00 %) 3.89 s
Generate movie 14/52 (26.92 %) 3.76 s
Generate movie 15/52 (28.85 %) 3.65 s
Generate movie 16/52 (30.77 %) 3.57 s
Generate movie 17/52 (32.69 %) 3.46 s
Generate movie 18/52 (34.62 %) 3.39 s
Generate movie 19/52 (36.54 %) 3.24 s
Generate movie 20/52 (38.46 %) 3.16 s
Generate movie 21/52 (40.38 %) 3.09 s
Generate movie 22/52 (42.31 %) 2.97 s
Generate movie 23/52 (44.23 %) 2.89 s
Generate movie 24/52 (46.15 %) 2.79 s
Generate movie 25/52 (48.08 %) 2.71 s
Generate movie 26/52 (50.00 %) 2.57 s
Generate movie 27/52 (51.92 %) 2.48 s
Generate movie 28/52 (53.85 %) 2.36 s
Generate movie 29/52 (55.77 %) 2.26 s
Generate movie 30/52 (57.69 %) 2.15 s
Generate movie 31/52 (59.62 %) 2.04 s
Generate movie 32/52 (61.54 %) 1.98 s
Generate movie 33/52 (63.46 %) 1.91 s
Generate movie 34/52 (65.38 %) 1.79 s
Generate movie 35/52 (67.31 %) 1.67 s
Generate movie 36/52 (69.23 %) 1.59 s
Generate movie 37/52 (71.15 %) 1.58 s
Generate movie 38/52 (73.08 %) 1.40 s
Generate movie 39/52 (75.00 %) 1.31 s
Generate movie 40/52 (76.92 %) 1.21 s
Generate movie 41/52 (78.85 %) 1.08 s
Generate movie 42/52 (80.77 %) 972.00 ms
Generate movie 43/52 (82.69 %) 887.47 ms
Generate movie 44/52 (84.62 %) 794.96 ms
Generate movie 45/52 (86.54 %) 701.98 ms
Generate movie 46/52 (88.46 %) 596.93 ms
Generate movie 47/52 (90.38 %) 496.88 ms
Generate movie 48/52 (92.31 %) 398.23 ms
Generate movie 49/52 (94.23 %) 295.66 ms
Generate movie 50/52 (96.15 %) 195.61 ms
Generate movie 51/52 (98.08 %) 98.22 ms
Generate movie 52/52 (100.00 %) 0.00 µs


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

elemType: QUAD4
Ne: 230
Nn: 282

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

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

solver:scipy

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

Unspecified.

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


W def = 1.15

Svm max = 12.78

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: 8.683 ms
Boundary Conditions: 16.520 µs
Matrix: 6.739 ms
Solver: 151.555 ms
Matplotlib: 24.094 ms
PyVista_Interface: 8.461 s
PostProcessing: 479.833 µs

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

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

Gallery generated by Sphinx-Gallery