19 三角网格等值线 tricontour
19 三角网格等值线 tricontour
用途
不规则节点场的等值线,有限元结果的标准画法。
示例(5 张)
19-1 不规则网格上的温度场等值线

19-2 不规则网格上的电位等值线

19-3 不规则网格上的电场强度等值线

19-4 地形起伏下的风速等值线

19-5 不规则网格上的铁损分布等值线

代码
以下 5 个函数取自 code/第三批_场与三角网格261107.py,直接调用即可出图。样式(宋体 + Times、10 磅、刻度朝内四边、留白自检)由 code/公共配置261107.py 的 setup_cn_style() 和 save() 统一提供,本节不再重复。
# 摘自 code/第三批_场与三角网格261107.py
def tc_01():
"""不规则网格上的温度场等值线。"""
fig, ax = new_fig(left=0.19, bottom=0.21, right=0.86)
tri = _tri(1901, n=160)
z = 30 + 26 * np.exp(-((tri.x - 0.45) ** 2 + (tri.y - 0.5) ** 2) / 0.09) + 6 * tri.y
cs = ax.tricontour(tri, z, levels=10, cmap=CMAP_SEQ, linewidths=0.8)
ax.clabel(cs, fmt="%.0f", fontsize=FS - 3, inline=True)
ax.set_xlabel("横向坐标 " + IT["x"] + " / m")
ax.set_ylabel("纵向坐标 " + IT["y"] + " / m")
ax.set_aspect("equal")
cbar(fig, ax, cs, "温度 " + IT["T"] + " / °C")
save(fig, "19_三角等值线", "19_三角等值线_不规则网格温度场")
def tc_02():
"""不规则网格上的电位等值线。"""
fig, ax = new_fig(left=0.19, bottom=0.21, right=0.86)
tri = _tri(1902, n=150)
V = np.zeros_like(tri.x)
for gx, gy, k in [(0.3, 0.35, 1.0), (0.72, 0.6, 0.85)]:
V += k / np.sqrt((tri.x - gx) ** 2 + (tri.y - gy) ** 2 + 0.012) * 1.1
cs = ax.tricontour(tri, V, levels=10, cmap=CMAP_SEQ, linewidths=0.8)
ax.clabel(cs, fmt="%.0f", fontsize=FS - 3, inline=True)
ax.set_xlabel("东向距离 " + IT["x"] + " / m")
ax.set_ylabel("北向距离 " + IT["y"] + " / m")
ax.set_aspect("equal")
cbar(fig, ax, cs, "电位 " + IT["U"] + " / V")
save(fig, "19_三角等值线", "19_三角等值线_不规则网格电位")
def tc_03():
"""不规则网格上的电场强度等值线。"""
fig, ax = new_fig(left=0.19, bottom=0.21, right=0.86)
tri = _tri(1903, n=170)
E = 40 * np.exp(-np.abs(tri.x - 0.5) / 0.18) * (1 - 0.4 * tri.y) + 8 * tri.y
cs = ax.tricontour(tri, E, levels=10, cmap=CMAP_SEQ, linewidths=0.8)
ax.clabel(cs, fmt="%.0f", fontsize=FS - 3, inline=True)
ax.set_xlabel("横向位置 " + IT["x"] + " / mm")
ax.set_ylabel("纵向位置 " + IT["y"] + " / mm")
ax.set_aspect("equal")
cbar(fig, ax, cs, "场强 " + IT["E"] + " / (kV/mm)")
save(fig, "19_三角等值线", "19_三角等值线_不规则网格电场")
def tc_04():
"""地形起伏下的风速等值线。"""
fig, ax = new_fig(left=0.19, bottom=0.21, right=0.86)
tri = _tri(1904, n=150)
v = 6 + 5 * np.exp(-((tri.x - 0.6) ** 2 + (tri.y - 0.55) ** 2) / 0.05) + 0.8 * tri.y
cs = ax.tricontour(tri, v, levels=10, cmap=CMAP_SEQ, linewidths=0.8)
ax.clabel(cs, fmt="%.1f", fontsize=FS - 3, inline=True)
ax.set_xlabel("东向距离 " + IT["x"] + " / km")
ax.set_ylabel("北向距离 " + IT["y"] + " / km")
ax.set_aspect("equal")
cbar(fig, ax, cs, "风速 " + IT["v"] + " / (m/s)")
save(fig, "19_三角等值线", "19_三角等值线_地形风速等值线")
def tc_05():
"""不规则网格上的铁损分布等值线。"""
fig, ax = new_fig(left=0.19, bottom=0.21, right=0.86)
tri = _tri(1905, n=160)
p = 2.0 + 1.2 * np.sin(tri.x * 5.2) * np.cos(tri.y * 4.4) + 0.6 * tri.x
cs = ax.tricontour(tri, p, levels=9, cmap=CMAP_SEQ, linewidths=0.8)
ax.clabel(cs, fmt="%.1f", fontsize=FS - 3, inline=True)
ax.set_xlabel("铁心长度 " + IT["x"] + " / mm")
ax.set_ylabel("铁心高度 " + IT["y"] + " / mm")
ax.set_aspect("equal")
cbar(fig, ax, cs, "单位损耗 / (W/kg)")
save(fig, "19_三角等值线", "19_三角等值线_铁损分布等值线")
说明
- 图片尺寸 1181×944 px(100 mm × 80 mm @ 300 dpi),三维图为 1181×1122 px。
- 图内不放标题,图题由本文件的二级/三级标题承担。
- 数据为贴近广东实际量级的仿真算例,随机种子固定,重跑结果一致。

浙公网安备 33010602011771号