.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "examples/LinearizedElasticity/Elas8.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. .. rst-class:: sphx-glr-example-title .. _sphx_glr_examples_LinearizedElasticity_Elas8.py: Elas8 ===== A cantilever beam undergoing dynamic bending deformation. .. GENERATED FROM PYTHON SOURCE LINES 11-130 .. image-sg:: /examples/LinearizedElasticity/images/sphx_glr_Elas8_001.gif :alt: Elas8 :srcset: /examples/LinearizedElasticity/images/sphx_glr_Elas8_001.gif :class: sphx-glr-single-img .. rst-class:: sphx-glr-horizontal * .. image-sg:: /examples/LinearizedElasticity/images/sphx_glr_Elas8_002.png :alt: QUAD4: Ne = 230, Nn = 282 :srcset: /examples/LinearizedElasticity/images/sphx_glr_Elas8_002.png :class: sphx-glr-multi-img * .. image-sg:: /examples/LinearizedElasticity/images/sphx_glr_Elas8_003.png :alt: Boundary conditions :srcset: /examples/LinearizedElasticity/images/sphx_glr_Elas8_003.png :class: sphx-glr-multi-img * .. image-sg:: /examples/LinearizedElasticity/images/sphx_glr_Elas8_004.png :alt: $uy^{e}$ :srcset: /examples/LinearizedElasticity/images/sphx_glr_Elas8_004.png :class: sphx-glr-multi-img * .. image-sg:: /examples/LinearizedElasticity/images/sphx_glr_Elas8_005.png :alt: $\sigma_{vm}^{e}$ :srcset: /examples/LinearizedElasticity/images/sphx_glr_Elas8_005.png :class: sphx-glr-multi-img .. rst-class:: sphx-glr-script-out .. code-block:: none 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 %) 6.23 s Generate movie 02/52 (3.85 %) 5.19 s Generate movie 03/52 (5.77 %) 4.96 s Generate movie 04/52 (7.69 %) 4.76 s Generate movie 05/52 (9.62 %) 4.69 s Generate movie 06/52 (11.54 %) 4.58 s Generate movie 07/52 (13.46 %) 4.51 s Generate movie 08/52 (15.38 %) 4.35 s Generate movie 09/52 (17.31 %) 4.39 s Generate movie 10/52 (19.23 %) 4.32 s Generate movie 11/52 (21.15 %) 4.18 s Generate movie 12/52 (23.08 %) 4.09 s Generate movie 13/52 (25.00 %) 4.02 s Generate movie 14/52 (26.92 %) 4.18 s Generate movie 15/52 (28.85 %) 3.90 s Generate movie 16/52 (30.77 %) 3.67 s Generate movie 17/52 (32.69 %) 3.57 s Generate movie 18/52 (34.62 %) 3.41 s Generate movie 19/52 (36.54 %) 3.36 s Generate movie 20/52 (38.46 %) 3.25 s Generate movie 21/52 (40.38 %) 3.19 s Generate movie 22/52 (42.31 %) 3.09 s Generate movie 23/52 (44.23 %) 2.93 s Generate movie 24/52 (46.15 %) 2.83 s Generate movie 25/52 (48.08 %) 2.73 s Generate movie 26/52 (50.00 %) 2.62 s Generate movie 27/52 (51.92 %) 2.54 s Generate movie 28/52 (53.85 %) 2.45 s Generate movie 29/52 (55.77 %) 2.34 s Generate movie 30/52 (57.69 %) 2.21 s Generate movie 31/52 (59.62 %) 2.11 s Generate movie 32/52 (61.54 %) 2.08 s Generate movie 33/52 (63.46 %) 1.95 s Generate movie 34/52 (65.38 %) 1.83 s Generate movie 35/52 (67.31 %) 1.72 s Generate movie 36/52 (69.23 %) 1.63 s Generate movie 37/52 (71.15 %) 1.54 s Generate movie 38/52 (73.08 %) 1.41 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.11 s Generate movie 42/52 (80.77 %) 1.03 s Generate movie 43/52 (82.69 %) 921.62 ms Generate movie 44/52 (84.62 %) 804.78 ms Generate movie 45/52 (86.54 %) 710.91 ms Generate movie 46/52 (88.46 %) 604.12 ms Generate movie 47/52 (90.38 %) 504.03 ms Generate movie 48/52 (92.31 %) 408.57 ms Generate movie 49/52 (94.23 %) 304.17 ms Generate movie 50/52 (96.15 %) 201.53 ms Generate movie 51/52 (98.08 %) 101.81 ms Generate movie 52/52 (100.00 %) 0.00 µs ==================== Mesh ==================== Element type: 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 : 1.324 s Boundary Conditions : 1.329 ms Matrix : 7.058 s Solver : 2.499 m Display : 950.814 ms PostProcessing : 591.478 ms Resolution hyperelastic : 5.848 s PyVista_Interface : 25.617 s Paraview : 1.136 s | .. code-block:: Python :lineno-start: 12 from EasyFEA import ( Display, Folder, Models, plt, ElemType, Simulations, PyVista, Paraview, ) from EasyFEA.Geoms import Domain if __name__ == "__main__": Display.Clear() # ---------------------------------------------- # Configuration # ---------------------------------------------- dim = 2 # outputs folder = Folder.Results_Dir() makeParaview = False makeMovie = True result = "uy" # geom L = 120 # mm h = 13 b = 13 # time Tmax = 0.5 N = 50 dt = Tmax / N time = -dt # Dumping coefM = 1e-3 coefK = 1e-3 # ---------------------------------------------- # Mesh # ---------------------------------------------- meshSize = h / 5 if dim == 2: domain = Domain((0, -h / 2), (L, h / 2), meshSize) mesh = domain.Mesh_2D([], ElemType.QUAD4, isOrganised=True) area = mesh.area - L * h elif dim == 3: domain = Domain((0, -h / 2, -b / 2), (L, h / 2, -b / 2), meshSize=meshSize) mesh = domain.Mesh_Extrude([], [0, 0, b], [3], ElemType.HEXA8, isOrganised=True) volume = mesh.volume - L * b * h area = mesh.area - (L * h * 4 + 2 * b * h) nodes_0 = mesh.Nodes_Conditions(lambda x, y, z: x == 0) nodes_L = mesh.Nodes_Conditions(lambda x, y, z: x == L) nodes_h = mesh.Nodes_Conditions(lambda x, y, z: y == h / 2) # ---------------------------------------------- # Simulation # ---------------------------------------------- material = Models.Elastic.Isotropic(dim, thickness=b) simu = Simulations.Elastic(mesh, material) simu.rho = 8100 * 1e-9 # static simulation simu.Bc_Init() simu.add_dirichlet(nodes_0, [0] * dim, simu.Get_unknowns(), description="Fixed") simu.add_dirichlet(nodes_L, [-10], ["y"], description="dep") simu.Solve() simu.Save_Iter() Display.Plot_Mesh(simu, deformFactor=1) # dynamic simulation simu.Solver_Set_Hyperbolic_Algorithm(dt) simu.Set_Rayleigh_Damping_Coefs(coefM=coefM, coefK=coefK) simu.Bc_Init() simu.add_dirichlet(nodes_0, [0] * dim, simu.Get_unknowns(), description="Fixed") while time <= Tmax: time += dt simu.Solve() simu.Save_Iter() print(f"{time:.3f} s", end="\r") # ---------------------------------------------- # Results # ---------------------------------------------- Display.Plot_BoundaryConditions(simu) if makeParaview: Paraview.Save_simu(simu, folder) if makeMovie: PyVista.Movie_simu( simu, f"{result}", folder, f"{result}.gif", deformFactor=1, plotMesh=True, ) print(simu) Display.Plot_Result(simu, f"{result}", deformFactor=1, nodeValues=False) Display.Plot_Result(simu, "Svm", plotMesh=False, nodeValues=False) plt.show() .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 9.574 seconds) .. _sphx_glr_download_examples_LinearizedElasticity_Elas8.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: Elas8.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: Elas8.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: Elas8.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_