Eastsheng's Wiki

温度步进的简单热仿真

2025-10-24 21:00:28

[toc]

温度步进的简单热仿真

要求: DevEdit 3D / Thermal 3D
最低版本: Atlas 5.28.1.R

本示例演示了 两个晶体管的热仿真。主要的顺序任务如下:

  1. 在 DevEdit 3D 中指定两个相邻晶体管区域
  2. 在 DevEdit 3D 中指定散热器
  3. 与 Atlas 接口
  4. 选择热模型和材料参数
  5. 指定温度步进参数
  6. 求解温度分布

本示例中的结构是使用 DevEdit 3D 定义的。最初结构是通过 DevEdit 3D 的图形模式定义的。生成网格后,可将 DevEdit 3D 中的命令文件保存,以便在 DeckBuild 中重新创建结构。

这里使用的结构由 两个嵌入在衬底材料中的相邻晶体管 组成。对于热建模,仅将晶体管视为热源,不考虑晶体管的内部细节。在衬底材料底部定义了一个 铝区域作为电极,在 Atlas 中它作为热边界条件而非电边界条件。

1
go atlas

语句会自动将 DevEdit 3DAtlas 接口连接。在读取三维网格文件后,Atlas 会自动进入 3D 模式

1
material

语句用于定义各区域的热导率,使用 tc.const 参数。该参数为热导率设置一个常数值。后续示例会展示具有温度依赖热导率的区域。power 参数用于设置该区域的热输出,自然将这些区域定义为热源。

1
models thermal

命令即可启用 3D 热计算

最终阶段使用:

1
solve t1=300

这定义了热沉(或电极)1 的温度。在本示例中,通过添加 TEMPSTEPNSTEPSelectrode 参数来进行电极温度步进。

  • TEMPSTEP:定义温度步长
  • NSTEPS:定义温度步数
  • electrode:指定哪个电极进行步进(solve 语句可定义多个电极温度)

3D 热分布会保存到 outfile 参数指定的文件中。输出文件名的最右侧字符会按字母数字顺序递增,因此每步都会保存为不同文件,可在 TonyPlot 3D 中查看。

要加载并运行此示例:

  1. 在 DeckBuild 中点击 Load 按钮 > Examples,这会将输入文件和相关支持文件复制到当前工作目录。
  2. 点击 Run 按钮执行示例。

输入文件内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# (c) Silvaco Inc., 2019
go devedit

#
# ATLAS 3D Thermal simulation
# Two power transistor simulation
#

DevEdit version="2.0" library="1.14"

work.area left=0 top=0 right=200 bottom=200

# SILVACO Library V1.14
# 定义区域、材料、显示颜色、z方向
region reg=1 mat=Silicon color=0xffc000 pattern=0x4 Z1=0 Z2=100 \
points="0,0 200,0 200,200 0,200 0,0"
# 默认划分区域1网格
constr.mesh region=1 default

region reg=2 mat=Silicon color=0xffc000 pattern=0x4 Z1=0 Z2=2 \
points="20,30 85,30 85,90 20,90 20,30"
#
constr.mesh region=2 default

region reg=3 mat=Silicon color=0xffc000 pattern=0x4 Z1=0 Z2=2 \
points="130,30 165,30 165,140 140,140 140,55 130,55 130,30"
#
constr.mesh region=3 default
# 定义铝电极区域1
region reg=4 mat=Aluminum elec.id=1 color=0xffc0c0 pattern=0x7 Z1=100 Z2=102 \
points="0,0 200,0 200,200 0,200 0,0"
#
constr.mesh region=4 default



# Set Meshing Parameters
#
base.mesh height=1000000 width=1000000
#
bound.cond !apply max.slope=28 max.ratio=300 rnd.unit=0.001 line.straightening=1 align.points when=automatic
#
imp.refine min.spacing=0.02 z=0
#
constr.mesh max.angle=90 max.ratio=300 max.height=20 \
max.width=20 min.height=0.0001 min.width=0.0001
#
constr.mesh type=Semiconductor default
#
constr.mesh type=Insulator default
#
constr.mesh type=Metal default
#
constr.mesh type=Other default
#
constr.mesh region=1 default
#
constr.mesh region=2 default
#
constr.mesh region=3 default
#
constr.mesh region=4 default
#
# Perform mesh operations
#

refine mode=both x1=8.04953560371517 y1=22.9102167182663 x2=91.0216718266254 y2=96.594427244582
refine mode=both x1=123.529411764706 y1=22.6006191950464 x2=174.922600619195 y2=145.510835913313
refine mode=both x1=99.6904024767802 y1=21.671826625387 x2=113.931888544892 y2=107.430340557276

imp.refine min.spacing=0.02 z=0

constr.mesh max.angle=90 max.ratio=300 max.height=20 \
max.width=20 min.height=0.0001 min.width=0.0001
#
constr.mesh type=Semiconductor default
#
constr.mesh type=Insulator default
#
constr.mesh type=Metal default
#
constr.mesh type=Other default

z.plane z=0 spacing=0.5
#
z.plane z=2 spacing=0.5
#
z.plane z=50 spacing=10
#
z.plane z=100 spacing=20
#
z.plane max.spacing=1000000 max.ratio=10

base.mesh height=1000000 width=1000000

bound.cond !apply max.slope=28 max.ratio=300 rnd.unit=0.001 line.straightening=1 align.Points when=automatic

Mesh Mode=MeshBuild

struct outfile=thermalex05.str

go atlas

mesh infile=thermalex05.str

material region=1 tc.const=1.2
material region=2 tc.const=1.0 power=0.35
material region=3 tc.const=1.1 power=0.4
#
models thermal
method
#
solve t1=300 TEMPSTEP=10 NSTEPS=5 electrode=1 outf=thermalex05_0.str
tonyplot3d thermalex05_0.str -set thermalex05_0.set
tonyplot3d thermalex05_0.str -set thermalex05_1.set
tonyplot3d thermalex05_0.stt -set thermalex05_2.set
tonyplot3d thermalex05_0.stw -set thermalex05_3.set

quit


理解代码

见in文件

模拟结果