如何使用matplotlib绘制2D有限元法结果?
有限元法(FEM)在各种任务中被使用,如对不同材料类型的建模、对复杂几何图形的测试、可视化对设计的一个小区域产生的局部影响。它基本上将一个大的空间域分解成称为“有限元”的简单部分。用于模拟这些有限元的简单方程然后被收集到一个更大的方程系统中,用于模拟整个域。
要使用matplotlib绘制2D FEM结果,可以执行以下步骤 –
- 设置图形大小并调整子图之间和周围的填充。
- 使用numpy创建节点、元素和节点值数据点。
- 转置节点的数据点。
- 使用 tricontourf() 创建一个3D填充轮廓图。
- 要显示图形,请使用 show() 方法。
例如
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
nodes = np.array([
[0.0, 0.0],
[1.0, 0.0],
[2.0, 0.5],
[0.0, 1.0],
[1.0, 1.0],
[1.7, 1.3],
[1.0, 1.7]])
elements = np.array([
[1, 2, 5],
[5, 4, 1],
[2, 3, 6],
[6, 5, 2],
[4, 5, 7],
[5, 6, 7]])
values = [1, 2, 1, 2, 7, 4, 5]
x, y = nodes.T
plt.tricontourf(x, y, elements - 1, values, 12, cmap='copper')
plt.show()
输出
它会产生以下输出: