Thermal2#

Transient thermal simulation.

Thermal2$T$
0.000 s
0.100 s
0.200 s
0.300 s
0.400 s
0.500 s
0.600 s
0.700 s
0.800 s
0.900 s
1.000 s
1.100 s
1.200 s
1.300 s
1.400 s
1.500 s
1.600 s
1.700 s
1.800 s
1.900 s
2.000 s
2.100 s
2.200 s
2.300 s
2.400 s
2.500 s
2.600 s
2.700 s
2.800 s
2.900 s
3.000 s
3.100 s
3.200 s
3.300 s
3.400 s
3.500 s
3.600 s
3.700 s
3.800 s
3.900 s
4.000 s
4.100 s
4.200 s
4.300 s
4.400 s
4.500 s
4.600 s
4.700 s
4.800 s
4.900 s
5.000 s
5.100 s

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

Element type: HEXA8
Ne = 940, Nn = 1584, dof = 4752

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


Thermal :
thermal conductivity (k)  : 1
thermal mass capacity (c) : 1

solver : pypardiso

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

Unspecified.

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

Unspecified.

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

Mesh : 67.801 ms
Boundary Conditions : 22.173 µs
Matrix : 22.875 ms
Solver : 1.516 s
Display : 194.329 ms
PyVista_Interface : 12.657 s

Generate movie 0/51
Generate movie 1/51 (1.96 %) 7.07 s
Generate movie 2/51 (3.92 %) 6.89 s
Generate movie 3/51 (5.88 %) 6.78 s
Generate movie 4/51 (7.84 %) 6.64 s
Generate movie 5/51 (9.80 %) 6.49 s
Generate movie 6/51 (11.76 %) 6.35 s
Generate movie 7/51 (13.73 %) 6.20 s
Generate movie 8/51 (15.69 %) 6.07 s
Generate movie 9/51 (17.65 %) 5.93 s
Generate movie 10/51 (19.61 %) 5.82 s
Generate movie 11/51 (21.57 %) 5.69 s
Generate movie 12/51 (23.53 %) 5.50 s
Generate movie 13/51 (25.49 %) 5.36 s
Generate movie 14/51 (27.45 %) 5.23 s
Generate movie 15/51 (29.41 %) 5.10 s
Generate movie 16/51 (31.37 %) 4.93 s
Generate movie 17/51 (33.33 %) 4.79 s
Generate movie 18/51 (35.29 %) 4.66 s
Generate movie 19/51 (37.25 %) 4.51 s
Generate movie 20/51 (39.22 %) 4.37 s
Generate movie 21/51 (41.18 %) 4.24 s
Generate movie 22/51 (43.14 %) 4.08 s
Generate movie 23/51 (45.10 %) 3.95 s
Generate movie 24/51 (47.06 %) 3.80 s
Generate movie 25/51 (49.02 %) 3.67 s
Generate movie 26/51 (50.98 %) 3.55 s
Generate movie 27/51 (52.94 %) 3.37 s
Generate movie 28/51 (54.90 %) 3.24 s
Generate movie 29/51 (56.86 %) 3.09 s
Generate movie 30/51 (58.82 %) 2.98 s
Generate movie 31/51 (60.78 %) 2.83 s
Generate movie 32/51 (62.75 %) 2.67 s
Generate movie 33/51 (64.71 %) 2.56 s
Generate movie 34/51 (66.67 %) 2.42 s
Generate movie 35/51 (68.63 %) 2.26 s
Generate movie 36/51 (70.59 %) 2.15 s
Generate movie 37/51 (72.55 %) 2.00 s
Generate movie 38/51 (74.51 %) 1.85 s
Generate movie 39/51 (76.47 %) 1.70 s
Generate movie 40/51 (78.43 %) 1.57 s
Generate movie 41/51 (80.39 %) 1.43 s
Generate movie 42/51 (82.35 %) 1.29 s
Generate movie 43/51 (84.31 %) 1.15 s
Generate movie 44/51 (86.27 %) 996.99 ms
Generate movie 45/51 (88.24 %) 856.44 ms
Generate movie 46/51 (90.20 %) 714.16 ms
Generate movie 47/51 (92.16 %) 573.00 ms
Generate movie 48/51 (94.12 %) 427.20 ms
Generate movie 49/51 (96.08 %) 285.61 ms
Generate movie 50/51 (98.04 %) 142.51 ms
Generate movie 51/51 (100.00 %) 0.00 µs

 12 from EasyFEA import (
 13     Display,
 14     Folder,
 15     Models,
 16     plt,
 17     np,
 18     Mesher,
 19     ElemType,
 20     Simulations,
 21     PyVista,
 22 )
 23 from EasyFEA.Geoms import Line, Domain, Point
 24
 25 if __name__ == "__main__":
 26     Display.Clear()
 27
 28     # ----------------------------------------------
 29     # Configuration
 30     # ----------------------------------------------
 31
 32     # outputs
 33     folder = Folder.Join(Folder.RESULTS_DIR, "Thermal", "Thermal2")
 34     makeMovie = True
 35     result = "thermal"
 36
 37     # geom
 38     R = 10
 39     e = 2
 40     h = 10
 41     a = 1
 42
 43     # load
 44     Tmax = 5
 45     N = 50
 46     dt = Tmax / N
 47
 48     # ----------------------------------------------
 49     # Mesh
 50     # ----------------------------------------------
 51     domain = Domain(Point(R), Point(R + e, h), e / 2)
 52     axis = Line(Point(), Point(0, 1, 0))
 53
 54     # Generate the mesh based on the specified dimension
 55     angle = 360 * 3 / 4
 56     mesh = Mesher().Mesh_Revolve(
 57         domain,
 58         [],
 59         axis,
 60         angle,
 61         [angle * np.pi / 180 * R / domain.meshSize],
 62         elemType=ElemType.HEXA8,
 63         isOrganised=True,
 64     )
 65
 66     nodesY0 = mesh.Nodes_Conditions(lambda x, y, z: y == 0)
 67     nodesYH = mesh.Nodes_Conditions(lambda x, y, z: y == h)
 68
 69     # ----------------------------------------------
 70     # Simulation
 71     # ----------------------------------------------
 72     thermalModel = Models.Thermal(k=1, c=1)
 73     simu = Simulations.ThermalSimu(mesh, thermalModel, False)
 74     simu.rho = 1
 75
 76     simu.add_surfLoad(nodesY0, [5], ["t"])
 77     simu.add_surfLoad(nodesYH, [5], ["t"])
 78
 79     # Set the parabolic algorithm for the solver
 80     simu.Solver_Set_Parabolic_Algorithm(alpha=0.5, dt=dt)
 81
 82     simu._Set_solutions(simu.problemType, np.ones(mesh.Nn) * -10)
 83
 84     print()
 85     t = -dt  # init time
 86     while t < Tmax:
 87         t += dt
 88
 89         simu.Solve()
 90         simu.Save_Iter()
 91
 92         print(f"{t:.3f} s", end="\r")
 93
 94     # ----------------------------------------------
 95     # Results
 96     # ----------------------------------------------
 97     print(simu)
 98
 99     Display.Plot_Result(simu, result, plotMesh=True, nodeValues=True, folder=folder)
100
101     if makeMovie:
102         PyVista.Movie_simu(simu, result, folder, f"{result}.gif", plotMesh=True)
103
104     plt.show()

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

Gallery generated by Sphinx-Gallery