Eastsheng's Wiki

温度依赖热导率的多层结构

2025-10-24 17:00:28

[toc]

温度依赖热导率的多层结构

  • 温度依赖热导率的多层结构

    要求模块: DevEdit 3D / Thermal 3D
    最低版本: Atlas 5.28.1.R
    输出文件: thermalex03_plot0、thermalex03_plot1

    本示例模拟了一个两层结构中包含 8 个热源的热传导过程,其中第 1 区域(第一层)和第 10 区域(第二层)导热率随温度变化

    该示例的结构和语法与前一个示例完全相同,唯一区别在于导热率的定义方式:

    * 第 1 区域(region #1) 的导热率通过指令
    tcon.polynom
    定义为温度的多项式函数
    这意味着导热率将按手册中描述的多项式关系随温度变化。

    * 第 10 区域(region #10) 的导热率使用了更简单的幂函数关系(power law)
    通过参数
    tcon.power
    来启用这种模型,并使用
    tc.c0tc.npow
    设置幂函数的系数和指数。
    相关方程的详细形式可参见 Thermal 3D 模型说明 中的内容。

    运行示例步骤

    1. DeckBuild 中选择 Load(加载) 按钮。
      这将把输入文件和所需支持文件复制到当前工作目录。

    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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
# (c) Silvaco Inc., 2019
go devedit

#
# ATLAS 3D Thermal simulation
# 2 layer structure with 8 elements dissipating energy
#

DevEdit version="2.0" library="1.14"

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

# SILVACO Library V1.14

region reg=1 mat=Silicon color=0xffc000 pattern=0x4 Z1=0 Z2=10 \
points="0,0 1000,0 1000,1000 0,1000 0,0"
#
constr.mesh region=1 default

region reg=2 mat=Silicon color=0xffc000 pattern=0x4 Z1=0 Z2=2 \
points="500,500 600,500 600,600 500,600 500,500"
#
constr.mesh region=2 default

region reg=3 mat=Silicon color=0xffc000 pattern=0x4 Z1=0 Z2=2 \
points="700,280 870,280 870,400 700,400 700,370 830,370 830,310 700,310 700,280"
#
constr.mesh region=3 default

region reg=4 mat=Silicon color=0xffc000 pattern=0x4 Z1=0 Z2=2 \
points="100,90 260,90 260,160 100,160 100,90"
#
constr.mesh region=4 default

region reg=5 mat=Silicon color=0xffc000 pattern=0x4 Z1=0 Z2=2 \
points="60,790 350,790 350,850 170,850 170,930 60,930 60,790"
#
constr.mesh region=5 default

region reg=6 mat=Silicon color=0xffc000 pattern=0x4 Z1=0 Z2=2 \
points="800,50 860,50 860,90 800,90 800,50"
#
constr.mesh region=6 default

region reg=7 mat=Silicon color=0xffc000 pattern=0x4 Z1=0 Z2=2 \
points="800,850 920,850 920,870 800,870 800,850"
#
constr.mesh region=7 default

region reg=8 mat=Silicon color=0xffc000 pattern=0x4 Z1=0 Z2=2 \
points="800,800 920,800 920,820 800,820 800,800"
#
constr.mesh region=8 default

region reg=9 mat=Silicon color=0xffc000 pattern=0x4 Z1=0 Z2=2 \
points="800,900 920,900 920,920 800,920 800,900"
#
constr.mesh region=9 default

region reg=10 mat="Silicon Oxide" color=0xff pattern=0x2 Z1=10 Z2=200 \
points="0,0 1000,0 1000,1000 0,1000 0,0"
#
constr.mesh region=10 default

region reg=11 name=substrate mat=Aluminum elec.id=1 work.func=0 color=0xffc8c8 pattern=0x7 Z1=200 Z2=201 \
points="0,0 1000,0 1000,1000 0,1000 0,0"
#
constr.mesh region=11 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=100 \
max.width=100 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
#
constr.mesh region=5 default
#
constr.mesh region=6 default
#
constr.mesh region=7 default
#
constr.mesh region=8 default
#
constr.mesh region=9 default
#
constr.mesh region=10 default
#
constr.mesh region=11 default
#
# Perform mesh operations
#

refine mode=both x1=26.3157894736842 y1=29.4117647058824 x2=315.789473684211 y2=246.130030959752
refine mode=both x1=755.417956656347 y1=9.28792569659443 x2=896.284829721362 y2=171.826625386997
refine mode=both x1=668.730650154799 y1=210.526315789474 x2=891.640866873065 y2=473.684210526316
refine mode=both x1=450.46439628483 y1=430.340557275542 x2=679.566563467492 y2=613.003095975232
refine mode=both x1=766.25386996904 y1=721.362229102167 x2=961.300309597523 y2=975.232198142415
refine mode=both x1=29.4117647058824 y1=726.006191950464 x2=388.544891640867 y2=973.684210526316

imp.refine min.spacing=0.02 z=0

constr.mesh max.angle=90 max.ratio=300 max.height=100 \
max.width=100 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=2 spacing=1
#
z.plane z=10 spacing=2.5
#
z.plane z=200 spacing=40
#
z.plane max.spacing=1000000 max.ratio=100

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=thermalex03.str

go atlas

mesh infile=thermalex03.str

models thermal
method
# 定义region=1材料热导率与温度关系,该区域的导热率(thermal conductivity, k)是温度的多项式函数。
material region=1 tcon.polynom
material region=2 power=1.3
material region=3 power=2.0
material region=4 power=1.5
material region=5 power=1.8
material region=6 power=0.2
material region=7 power=0.3
material region=8 power=0.4
material region=9 power=0.3
# 定义第 10 个区域(Region #10)材料的热导率模型,使其随温度变化,但这里采用的是幂函数形式(power law),而不是多项式
material region=10 tcon.power tc.c0=1. tc.npow=1.2

solve t1=300 outf=thermalex03_0.str
tonyplot3d thermalex03_0.str -set thermalex03_0.set
tonyplot3d thermalex03_0.str -set thermalex03_1.set

quit

理解代码

见in文件

模拟结果

image-20251024170417008