オープン CAE 学会論文誌
OpenCAE2018-001

熱伝導問題に関する OpenFOAM の固体・流体熱連成定常解析ソルバの妥当性確認
西 剛伺（オープン CAE 学会 V&V 委員会） 今野 雅（OCAEL）
Validation of OpenFOAM Steady-State Solver with Conjugate Heat Transfer
between Solid and Fluid Regions, targeting for Heat Conduction Problem*1

Koji NISHI*1 and Masashi IMANO*2

V&V Committee, The Open CAE Society of Japan*2
OCAEL Co. Ltd.

Abstract
This paper discusses temperature prediction accuracy of OpenFOAM chtMultiRegionSimpleFoam solver for steadystate heat conduction problem. The concept of thermal resistance and thermal spreading resistance is introduced
and thermal resistance values are calculated from simulation results of cuboid block model with small heated areawith unified heat flux at bottom surface and cooled top surface with boundary condition of the 3rd kind. Analyticalsolutions are utilized to see prediction error in the case that mesh size and heat transfer coefficient value applied asa boundary condition are changed. It is found that thermal spreading resistance accuracy is highly affected by meshsize and varies by heat transfer coefficient value applied as a boundary condition.
Keywords : Heat Conduction, OpenFOAM, chtMultiRegionSimpleFoam, Thermal Spreading Resistance

1. はじめに
近年，工学シミュレーションの品質保証及び V&V（Verification and Validation）の重要性が認識され，欧州ではNAFEMS，米国では米国機械学会，国内では日本計算工学会等が，品質マネージメント，標準手順等に関する規格や文書を発行している[1,2]．そのような中，オープン CAE 学会においても V&V 委員会が立ち上げられ，OpenFOAM の流体ソルバによる流体解析の V&V を中心に活動が開始された[3]．最近では，Code_Aster による構
造解析についても事例[4]が報告されるようになってきている．
OpenFOAM における熱伝導解析の V&V については，森らが有限要素法によるオープンソースソフトウェアや
laplacianFoam を用いた検証事例[5]を報告している．森らの検証事例では，等温面を境界条件とした直線的に熱が流れる熱伝導のケースを扱っている．しかし，電子機器等の実問題では，発熱源である部品が特定の発熱分布，
つまり，熱流束で発熱し，その発熱源からよりサイズが大きいヒートシンクや電子基板に熱が流れる際の温度上昇を求めるのが一般的である．このような問題では発熱源及び解析領域境界は等温であるとは言えず，熱も発熱源から直線的ではなく，拡がるように伝わる．しかし，現状では，上記のようなケースについて，オープンソー
スソフトウェアの妥当性確認に関する事例は見当たらない．
そこで，本稿では，上記のように熱が拡がる系として，底面の矩形領域で発熱，上面全体が第 3 種境界条件で冷却される直方体ブロックの熱伝導問題を対象として，定常熱伝導解析を実施し，その精度について妥当性確認（validation）する．妥当性確認にあたっては，熱抵抗の概念を導入して，その真値が解析解として得られるケースについて，解析解とシミュレーション結果から算出された値を比較する．なお，熱伝導問題は単体ではなく，
熱流体解析の一部として取り扱われることが多いため，OpenFOAM の固体・流体熱連成定常解析ソルバである
chtMultiRegionSimpleFoam を用いて，熱伝導解析を実施することとした．

E-mail address of corresponding author : koji.nishi74@gmail.com
Copyright © The OpenCAE Society of Japan12. 熱の流れと熱抵抗
本章では，熱が直線的に流れる場合と拡がりながら流れるケースについて，
熱抵抗の概念を導入して説明する．
熱が拡がる系には拡大熱抵抗が存在するが，その解析解が得られるケースとして，底面中心部で発熱，上面全体が第 3 種境界条件で冷却される直方体ブロックにおける熱伝導問題を示す．

2.1 伝熱経路と熱抵抗

伝熱経路において伝熱量 Q が流れ，そこに温度差 ΔT が生じる場合，熱抵抗 Rth を用いて，以下のように表現することができる．

T  Rth Q

(1)

熱抵抗は単位伝熱量あたり部材がどの程度温度上昇するか示したものである．
熱が部材中を直線的に流れる場合，
その熱抵抗はフーリエの法則から簡単に導き出すことができる．

Rth , material 

l
kA

(2)

ここで，k は伝熱方向の部材の熱伝導率，l は伝熱方向の部材の長さ，A は伝熱方向に直交する部材の断面積である．このように，熱が部材中を直線的に流れる場合には，熱抵抗は境界条件による影響を一切受けず，部材の熱伝導率と寸法から一義的に求めることができる．
一方，熱が直線的ではなく，拡がるように伝わる場合，熱が拡がる際に温度差が生じる．この熱の拡がりによる温度差を表す熱抵抗を拡大熱抵抗という．2 つの異なる断面積を有する部材が隣接する場合，その隣接面において，断面積の小さい部材の平均温度を Tsmall ，断面積の大きい部材の平均温度を Tlarge とすると，拡大熱抵抗
Rth, spreading は以下のように定義できる[6,7]．

Rth , spreading 

Tsmall  TlargeQ(3)

ここで，平均温度は 2 つの部材の隣接面における温度を面積分したもので，隣接面の面積を A とすると，

T 

1
TdA
A face(4)のように記述することができる．なお，拡大熱抵抗は，式(3)の定義にある面間の平均温度の差ではなく，特定点における温度と平均温度の差を分子とする場合もある[8,9]が，本稿では，拡大熱抵抗を式(3)の定義に限定して使用する．

(a) without Thermal Spreading Resistance(b) with Thermal Spreading ResistanceFig. 1 Thermal Network without/with Thermal Spreading Resistance.
Copyright © The OpenCAE Society of Japan2

拡大熱抵抗の有無による影響は，図 1 で説明することができる．伝熱経路を構成する部材 A，B の断面積が等しい場合，その隣接面は一致しており，部材 A，B の総熱抵抗はそれぞれの部材の熱抵抗の和となる（図 1 (a)）．
一方，部材 B’の断面積が部材 A よりも大きい場合，部材 A から部材 B’に熱が移動する際，その断面積が大きくなる分熱が拡がるため，その部分に温度差が生じる．よって，部材 A，B’の総熱抵抗はそれぞれの部材の熱抵抗と部材間に生じる拡大熱抵抗の和となる（図 1 (b)）．以上より，適切な精度で温度予測を行うには，各部材の熱抵抗だけでなく，拡大熱抵抗についても適切な精度で算出する必要がある．
拡大熱抵抗は，式(3)の定義の通り，面積の異なる隣接する面の平均温度と伝熱量のバランスによって決まる．
そのため，すべてのケースで解析解が得られるわけではないが，単純な系においてはフーリエ級数として解析解が得られることが知られている．

2.2 直方体ブロックにおける熱抵抗の解析解
図 2 (a)及び(b)に示す一様な熱伝導率をもつ直方体ブロック状の部材において，底面の矩形領域が一様な熱流束で発熱，上面の温度勾配と熱流束の関係を第 3 種境界条件で表現できる場合，底面における拡大熱抵抗の値を解析解として得ることができる[6]．

8
abk

  f (m , X , c) f (m , X , c) g (m )m 1

Rth , spreading   f ( n , Y , d ) f ( n , Y , d ) g ( n )

(5)

n 1

 

 8 f (m , X , c) f (m , X , c) f ( n , Y , d ) f ( n , Y , d ) g (  mn )
m 1 n 1


ここで，

m
a
n
n 
b

m 

(6)
(7)

 mn  m 2   n 2(a) Side View

(8)(b) Bottom View(c) Thermal Network

Fig. 2 Cuboid Block with Heated Bottom Area and Cooled Top Surface.
Copyright © The OpenCAE Society of Japan3f ( , X , d ) g ( )  ( ) 11
cos(X ) sin( d )
d
2

(9)

1
 ( )

(10)

 sinh( l )  h k cosh(l )(11) cosh(l )  h k sinh( l )である．a，b はそれぞれ部材の x 及び y 方向の長さ，l は部材の厚み，h は直方体ブロック上面における熱伝達率，k は直方体ブロックの熱伝導率，c，d は矩形の発熱面の x 及び y 方向の長さ，X，Y は部材端を座標ゼロとした際の発熱面の中心座標である．なお，ξ は変数であり，式(5)に示すように実際には λm，δn，βmn のいずれかを代入する．
この熱伝導問題には，図 2 (c)に示すように，発熱面側から，直方体ブロック底面における拡大熱抵抗，直方体ブロックの熱抵抗，第 3 種境界条件で表される熱伝達による熱抵抗が存在する．直方体ブロック底面における拡大熱抵抗については式(5)を，直方体ブロックの熱抵抗については式(2)を，直方体ブロック上面における熱伝達による熱抵抗については以下の式を用いて算出することができる．

Rth , convection 

1
hA

(12)

3. chtMultiRegionSimpleFoam による熱伝導解析
2 章で示した熱抵抗の解析解と比較することで，熱伝導解析の妥当性確認を実施する．アルミ合金製の直方体
ブロック[10]を例に，chtMultiRegionSimpleFoam ソルバ（以下，ソルバ）を実行し，シミュレーション結果から熱抵抗を算出する．得られた熱抵抗値を解析解と比較することで，メッシュサイズによる温度予測値への影響について確認する．実行ハードウェア環境の概要は表 1 の通りである．また，OS，使用した主要なソフトウェアのバージョンは表 2 の通りである．

3.1 解析領域の寸法，諸条件及び試行
図 2 で示した直方体ブロック全体を解析領域として，底面発熱部に一様熱流束，上面に第 3 種境界条件として熱伝達率を与える．直方体ブロックの寸法，熱伝導率及び発熱面の情報を表 3 に示す．また，初期温度，環境温
度はともに 300K とした．一方，直方体ブロック上面に与える熱伝達率，メッシュサイズについては，節によって異なる設定を用いるため，別途示す．なお，ソルバに適用する境界条件のタイプは表 4 の通りである．ここで，compressible::turbulentHeatFluxTemperature は熱流束，zeroGradient は断熱，externalWallHeatFluxTemperature は第 3

Table 1 Computer Hardware Specification.
ResourceCPU
Main Memory
Graphics Card
Hard Drive

Table 2 OS and Software Configuration.

Specification

SoftwareVersionAMD Athlon II X4 640

OSLinux Mint 18 “Sarah” (64-bit)(Quad Core, 3.0GHz)

OpenFOAM

OpenFOAM v4.x

DDR3 16.0GB

ParaView

paraview-5.0.1

AMD Radeon HD 7700

GCC

gcc 5.4.0(1.0GHz, GDDR5 1.0GB)
HDD 2.0TB

Copyright © The OpenCAE Society of Japan4

種境界条件を設定する境界条件である． bottomInner は直方体ブロック底面中心部の矩形領域の patch で発熱面を設定している．bottomOuter は直方体ブロック底面のうち bottomInner の外側領域の patch で断熱条件を設定している．top は直方体ブロック上面全体で第 3 種境界条件を設定している．その他の領域境界には断熱条件を設定している．
メッシュは，部材の形状が単純であるため，blockMesh のみを用いて生成する．本稿では，メッシュサイズによる精度への影響を捉えやすくするため，各方向を単純に等分割することとした．一例として，x, y 方向のメッ
シュサイズを 2.5mm，z 方向のメッシュサイズを 1.25mm とし，直方体ブロック上面に与える熱伝達率を200W/(m2·K)としてソルバを実行した際のメッシュ分割状態及び温度コンタを図 3 に示す．
各節では，シミュレーション結果から直方体ブロック底面における拡大熱抵抗，直方体ブロックの熱抵抗，直方体ブロック上面における熱伝達による熱抵抗を算出し，2 章で示した解析解と比較，検証する．なお，ソルバ
実行に当たり，tolerance 設定による収束具合への影響を事前確認した．一例として，x, y, z 各方向のメッシュサ
イズを 0.5mm，直方体ブロック上面に与える熱伝達率を 200W/(m2·K)とし，tolerance 設定を 1.0 から 1.0×10-6 まで変化させてソルバを実行した際の熱抵抗値の遷移を図 4 に示す．tolerance 設定が大きい場合，熱抵抗値は解析解と比較して小さな値を採る．ソルバが実行を開始すると，各部の温度は，初期温度から反復計算を繰り返す中で少しずつ上昇するが，tolerance 設定が大きいと解析解に近づく前に収束判定を満たし，計算が終了してしまう．
このとき，熱の流れの下流に位置する部位の温度ほど温度上昇が遅く，解析解から得られる温度よりも低い温度であるため，下流に位置する熱抵抗も解析解よりも小さい値を採る．図 4 からも分かる通り，tolerance 設定を
1.0×10-6 とすることで，3 つの熱抵抗ともに解析解とほぼ一致する．そこで，本稿では，次節以降のすべてのケースについて，tolerance 設定を 1.0×10-6 としてソルバを実行することとした．

3.2 メッシュサイズによる熱抵抗値への影響
本節では，メッシュサイズによる熱抵抗値への影響について定量的に評価する．試行するメッシュ条件を表 5に示す．x 及び y 方向には同一のメッシュサイズを設定，z 方向のメッシュサイズも変化させることで，平面方向
及び厚み方向双方のメッシュサイズによる影響を確認することとした．
Table 3 Cuboid Block Dimensions and Heated Area Information.

Table 4 Boundary Conditions of Temperature Fieldon chtMultiRegionSimpleFoam Solver Execution.

Dimensions & Conditions

Value

Patch/Boundary

Type of Boundary Conditions

Outer Dimensions [mm]50.0 (a) × 50.0 (b) × 5.00 (l)Thermal Conductivity [W/(m·K)]

209 (k, Isotropic)

Heated Area [mm]10.0 (c) × 10.0 (d)bottomOuter

zeroGradientCenter Offset [mm]25.0 (X), 25.0 (Y)topexternalWallHeatFluxTemperature

OtherszeroGradient2

Heat Flux [W/m ]4

1.00×10 (q, 10W in total)bottomInnercompressible::turbulentHeatFluxTemperature

Fig. 3 Mesh Generation and Temperature Contour Example of Cuboid Block.
Copyright © The OpenCAE Society of Japan5

Table 5 Mesh Size Configurations.

Direction

Mesh Sizex and y10mm, 5.0mm, 2.5mm, 2.0mm, 1.0mm,

Directions

0.5mm (# of Meshes : 5, 10, 20, 25, 50, 100)z Direction

5.0mm, 2.5mm, 1.25mm, 0.5mm, 0.25mm(# of Meshes : 1, 2, 4, 10, 20)

Fig. 4 Thermal Resistance Value Difference by Tolerance.

ブロック上面に与える熱伝達率を 200W/(m2·K)とする．このとき，直方体ブロック底面における拡大熱抵抗，直方体ブロックの熱抵抗，直方体ブロック上面における熱伝達による熱抵抗の解析解は，6 桁精度でそれぞれ
0.229917K/W，9.56938×10-3K/W，2.00000K/W である．
シミュレーション結果から算出した熱抵抗値と解析解に対する誤差を表 6 に示す．ここで，解析解に対する誤差は，熱抵抗値が解析解と一致するとき 0%，解析解よりも大きい場合に正の値を採る．直方体ブロック底面における拡大熱抵抗はメッシュサイズによって値が大きく変化しているのに対して，直方体ブロックの熱抵抗，直方体ブロック上面における熱伝達による熱抵抗は，メッシュサイズに依らず，値は常に解析解に近い．つまり，tolerance 設定が適切であれば，直方体ブロックの熱抵抗及び直方体ブロック上面における熱伝達による熱抵抗はメッシュサイズに依らず，常に解析解に近い値を採る．以上より，メッシュサイズは，特に拡大熱抵抗を考慮して決定すべきであると言える．以下，拡大熱抵抗についてさらに考察する．
総メッシュ数に対する拡大熱抵抗値の変化を図 5 に示す．メッシュサイズが大きいと，シミュレーション結果から算出した拡大熱抵抗の値は解析解よりも大きく，
メッシュサイズが小さくなるに従って，
徐々に小さくなる．
その際，平面（x, y）方向のメッシュサイズのみを小さくしていっても，厚み（z）方向のメッシュサイズも小さ
くないと熱抵抗値は解析解よりも大きな値に収束してしまうことが分かる．また，図表には示さないが，厚み方向のメッシュサイズを小さくするに従って，ソルバが収束するまでの反復計算回数が急激に増えることを確認した．効率良く計算を実行するには，必要とされる精度に合わせて，主に厚み方向のメッシュサイズを考慮しながら、全体のメッシュ数を決定する必要があると言える．

3.3 熱伝導率を変化させた際の拡大熱抵抗値の変動と誤差
直方体ブロック上面に与える熱伝達率を変化させると，式(4)より，拡大熱抵抗値も変動する．本節では，熱伝達率を変化させた際の，拡大熱抵抗値とシミュレーション結果から算出した拡大熱抵抗値の誤差の変動について検証する．メッシュ条件は，前節の結果を参考に，ブロック上面に与える熱伝達率が 200W/(m2·K)の際に，直方体ブロック底面における拡大熱抵抗値の誤差が 10%以内（10% Error Test Case），5%以内（5% Error Test Case），1%以内（1% Error Test Case）に収まる設定を用いることとした（表 7）．熱伝達率を 10 W/(m2·K)から 1.0×108W/(m2·K)
まで変化させた 7 つのケースについてソルバを実行し，得られた結果から拡大熱抵抗値を算出する．
拡大熱抵抗と直方体ブロックの熱伝導率の積 Rth, spreading・k は，式(4)より，直方体ブロック上面に与える熱伝達率と直方体ブロックの熱伝導率の比 h/k の関数として扱うことができる．上記の形式でまとめたシミュレーショ
ン結果を解析解とともに図 6 に示す．まず破線の解析解が示す通り，Rth, spreading・k は h/k に対して単調減少する関数であり，h/k が小さいとき，及び大きいときにそれぞれ異なる値に漸近することが分かる．また，シミュレーシ
ョン結果から算出した Rth, spreading・k はいずれも解析解より大きい値を採り，誤差は h/k が大きくなるにつれて大きくなる．h/k の値によって，10% Error Test Case では 8.4%～10.9%，5% Error Test Case では 5.5%～6.6%，1% Error
Copyright © The OpenCAE Society of Japan

6

Test Case では 0.7%～1.1%誤差が変動した．以上より，熱伝達率が変化すると拡大熱抵抗の解析解が変動するとともに，シミュレーション結果から算出した拡大熱抵抗値の誤差も変動するため，メッシュサイズを決定する際には注意が必要であると言える．

Table 6 Thermal Resistance Values and Errors Calculated from Simulation Results with h=200W/(m2·K).
Mesh Size

Mesh Size

Number

Thermal Spreading

Material Thermal

Convective Thermalin z

in x and yof Total

ResistanceResistanceResistanceDirections

MeshesDirection

5.0mm

Value [K/W]

Error [%]

25

0.403340

75.4

9.56955×10

0.0

1.99999

0.0

0.316975

37.9

9.56939×10-3

0.0

1.99999

0.0

27.5

-3

0.0

1.99997

0.0

-3

0.0

1.99995

0.0

-3

0.0

1.99983

0.0

-3

0.0

1.99931

0.0

61.7

-3

9.56925×10

0.0

1.99998

0.0

23.1

-3

0.0

1.99998

0.0

-3

0.0

1.99996

0.0

-3

0.0

1.99995

0.0

8.1

-3

9.56886×10

0.0

1.99982

0.0

7.6

-3

0.0

1.99931

0.0

-3

0.0

1.99994

0.0

-3

2.5mm
2.0mm

5.0mm
2.5mm
2.0mm
1.0mm
0.50mm
10mm

400
625
2500
10000
50
200
800
1250
5000
20000
100

0.2931780.290202
0.286173
0.285153
0.371692
0.282942
0.253499
0.253499
0.248627
0.247347
0.363470

26.2
24.5
24.0

11.8
10.3

58.1

9.56926×10
9.56923×10
9.56898×10
9.56777×10
9.56954×10

9.56929×10
9.56924×10
9.56771×10

9.56919×10

5.0mm

400

0.273732

19.1

9.56910×10

0.0

1.99994

0.0

2.5mm

1600

0.246528

7.2

9.56921×10-3

0.0

1.99993

0.0

5.6

-3

0.0

1.99991

0.0

-3

0.0

1.99979

0.0

-3

0.0

1.99927

0.0

-3

0.0

1.99963

0.0

-3

0.0

1.99966

0.0

-3

0.0

1.99965

0.0

-3

0.0

1.99964

0.0

-3

0.0

1.99952

0.0

-3

0.0

1.99900

0.0

-3

0.0

1.99846

-0.1

-3

0.0

1.99860

-0.1

-3

0.0

1.99863

-0.1

-3

2.0mm
1.0mm
0.50mm
10mm
5.0mm
2.5mm
2.0mm
1.0mm
0.50mm10mm
5.0mm

0.25mmError [%]

-3

100

10mm

0.50mmValue [K/W]

10mm

0.50mm

1.25mmError [%]

5.0mm

1.0mm

2.5mm

Value [K/W]

2.5mm

2500
10000
40000
250
1000
4000
6250
25000
100000
500
2000
8000

0.242709
0.237099
0.235535
0.361143
0.271085
0.243418
0.239440
0.233401
0.231587
0.360809
0.270704
0.242966

3.1
2.4
57.1
17.9
5.9
4.1
1.5
0.7
56.9
17.7
5.7

9.56917×10
9.56881×10

9.56766×10
9.56871×10
9.56862×10
9.56853×10
9.56846×10
9.56822×10
9.56694×10
9.56562×10
9.56604×10

9.56607×10

2.0mm

12500

0.238960

3.99.56607×10

0.0

1.99862

-0.1

1.0mm

50000

0.232836

1.3

9.56572×10-3

0.0

1.99850

-0.1

0.4

-3

-0.1

1.99799-0.1

0.50mm2000000.230951

9.56455×10

Copyright © The OpenCAE Society of Japan

7

Table 7 Mesh Size Configurations for Variable Heat
Transfer Coefficient Simulation.
Test Cases

Mesh Size

10% Error

2.5mm (x), 2.5mm (y), 1.67mm (z)Test Case(# of Meshes : 20 × 20 × 3, 1200 total)

5% Error

2.0mm (x), 2.0mm (y), 1.0mm (z)Test Case(# of Meshes : 25 × 25 × 5, 3125 total)

1% Error

0.50mm (x), 0.50mm (y), 0.50mm (z)Test Case(# of Meshes : 100 × 100 × 10, 100000 total)

Fig. 5 Thermal Spreading Resistance Variations by Mesh.

Fig. 6 Thermal Spreading Resistance Variation and Simulation Error.

4. 結言
本稿では，OpenFOAM の固体・流体熱連成定常解析ソルバである chtMultiRegionSimpleFoam を対象として，熱が拡がる系における熱伝導解析を実行した．シミュレーション結果から熱抵抗を算出し，解析解と比較すること
で，その精度について検証した．得られた知見は以下の通りである．
-

tolerance 設定が適切であれば，直方体ブロックの熱抵抗及び直方体ブロック上面における熱伝達による熱抵-

抗はメッシュサイズに依らず，常に解析解に近い値を採る．
tolerance 設定が適切であっても，直方体ブロック底面における拡大熱抵抗はメッシュサイズによって値が大きく変化する．

-

熱伝達率が変化すると拡大熱抵抗の解析解が変動するとともに，シミュレーション結果から算出した拡大熱
抵抗値の誤差も変動するため，メッシュサイズを決定する際には注意が必要である．

Copyright © The OpenCAE Society of Japan8

文献[1] 白鳥正樹，“工学シミュレーションの品質保証”, 基調講演，オープン CAE シンポジウム 2015 (2015).
[2] 白鳥正樹，越塚誠一，吉田有一郎，中村均，堀田亮年，高野直樹，“工学シミュレーションの品質保証とV&V”,ISBN978-4-621-08628-5, 丸善出版 (2013).
[3] 今野雅，“V&V 委員会の概要説明”, オープン CAE シンポジウム 2013 (2013).
[4] 藤岡照高，“構造解析ソルバ検証用参照解の整備(低合金鋼引張試験の Code-Aster による再現)”, オープン CAE
シンポジウム 2015 (2015).
[5] 森一浩，“OpenFOAM の熱設計機能検証～熱伝導、熱流体、固体流体熱連成機能検証～”, オープン CAE シン
ポジウム 2013 (2013).
[6] Y. S. Muzychka, J. R. Culham and M. M. Yovanovich, “Thermal Spreading Resistance of Eccentric Heat Sources on
Rectangular Flux Channels”, Journal of Electronic Packaging, Vol. 125 (2003), 178–185.
[7] 西剛伺，畠山友行，石塚勝，“熱回路網によるマイクロプロセッサのシリコンダイの非定常温度予測”, 第 49
回日本伝熱シンポジウム論文集 (2012), C312.
[8] S. Lee, S. Song and V. Au, “Constriction/Spreading Resistance Model for Electronics Packaging”, Proceedings of the
ASME-JSME Thermal Engineering Joint Conference, Vol. 4 (1995), 199-206.
[9] 矢澤和明，中川慎二，石塚勝，“温度場伝播の情報可視化によるヒートスプレッダ内非定常温度予測モデルの開発”, 可視化情報学会論文集, Vol. 25, No. 7 (2005), 33-38.
[10] K. Nishi, T. Hatakeyama and M. Ishizuka, “Steady and Transient Heat Transfer Analysis of The Microprocessor System
Using One-Dimensional Thermal Network”, InterPACK2013 (2013), IPACK2013-73052.

Copyright © The OpenCAE Society of Japan

9

Appendix
A.1 格子生成設定ファイル（system/blockMeshDict, OpenFOAM 4.x 用）// VariablesnXInner 20;
nYInner 20;
nXOuter1 40; // Should be 2x of nXInnernXOuter2 40; // Should be 2x of nXInner
nYOuter1 40; // Should be 2x of nYInner
nYOuter2 40; // Should be 2x of nYInnernZ 10;

convertToMeters 0.001;

vertices(( -5 -5 0)// 0( 5 -5 0)

// 1

( 5

5 0)

// 2

( -5

5 0)

// 3

(-25 -25 0)// 4( 25 -25 0)// 5( 25 25 0)// 6(-25 25 0)// 7( -5 -25 0)// 8( 5 -25 0)// 9( 25 -5 0)

// 10

( 25

5 0)

// 11

( 5 25 0)// 12( -5 25 0)

// 13

(-25

5 0)

// 14

(-25 -5 0)// 15( -5 -5 5)// 16( 5 -5 5)

// 17

( 5

5 5)

// 18

( -5

5 5)

// 19

(-25 -25 5)// 20( 25 -25 5)// 21( 25 25 5)// 22(-25 25 5)// 23( -5 -25 5)// 24( 5 -25 5)// 25( 25 -5 5)

// 26

( 25

5 5)

// 27

( 5 25 5)// 28

Copyright © The OpenCAE Society of Japan10

( -5 25 5)

// 29

(-25

5 5)

// 30

(-25 -5 5)

// 31

);

blocks(hex ( 0 1 2 3 16 17 18 19) ( $nXInner $nYInner $nZ) simpleGrading (1 1 1) // Inner Areahex ( 4 8 0 15 20 24 16 31) ($nXOuter1 $nYOuter1 $nZ) simpleGrading (1 1 1) // Outer Area0hex ( 8 9 1 0 24 25 17 16) ( $nXInner $nYOuter1 $nZ) simpleGrading (1 1 1) // Outer Area1hex ( 9 5 10 1 25 21 26 17) ($nXOuter2 $nYOuter1 $nZ) simpleGrading (1 1 1) // Outer Area2hex ( 1 10 11 2 17 26 27 18) ($nXOuter2 $nYInner $nZ) simpleGrading (1 1 1) // Outer Area3hex ( 2 11 6 12 18 27 22 28) ($nXOuter2 $nYOuter2 $nZ) simpleGrading (1 1 1) // Outer Area4hex ( 3 2 12 13 19 18 28 29) ( $nXInner $nYOuter2 $nZ) simpleGrading (1 1 1) // Outer Area5hex (14 3 13 7 30 19 29 23) ($nXOuter1 $nYOuter2 $nZ) simpleGrading (1 1 1) // Outer Area6hex (15 0 3 14 31 16 19 30) ($nXOuter1 $nYInner $nZ) simpleGrading (1 1 1) // Outer Area7
);

edges
(
);

boundary(bottomInner{
type patch;
faces((0 1 2 3));}
bottomOuter{
type patch;faces(( 4 8 0 15) // Outer Area0( 8 9 1 0) // Outer Area1( 9 5 10 1) // Outer Area2( 1 10 11 2) // Outer Area3( 2 11 6 12) // Outer Area4( 3 2 12 13) // Outer Area5(14 3 13 7) // Outer Area6(15 0 3 14) // Outer Area7

Copyright © The OpenCAE Society of Japan

11

);
}
top
{
type patch;
faces((16 17 18 19) // Inner Area
(20 24 16 31) // Outer Area0(24 25 17 16) // Outer Area1(25 21 26 17) // Outer Area2(17 26 27 18) // Outer Area3(18 27 22 28) // Outer Area4(19 18 28 29) // Outer Area5(30 19 29 23) // Outer Area6(31 16 19 30) // Outer Area7);});

mergePatchPairs();

A.2 境界条件設定ファイル（system/changeDictionaryDict, OpenFOAM 4.x 用）
Boundary{bottomInner{
type

patch;}
bottomOuter{
type

patch;

type

patch;

internalField

uniform 300;

}
top
{

}
}

T
{

Copyright © The OpenCAE Society of Japan12

boundaryField
{
".*"
{
type

zeroGradient;

value

uniform 300;}
"material_to_.*"{type

compressible::turbulentTemperatureCoupledBaffleMixed;

Tnbr

T;

kappaMethod

solidThermo;

value

uniform 300;}
bottomInner{
typecompressible::turbulentHeatFluxTemperature;

heatSource

power; // 'power' [W] or 'flux' [W/m^2]q10; // [W]kappaMethod

solidThermo; // inherited by default

kappanone; // inherited by default

Qrnone; // inherited by default}
bottomOuter{
typezeroGradient;

value

uniform 300;

type

externalWallHeatFluxTemperature;

}
top
{

Ta

uniform 300.0;huniform 200.0;

value

uniform 300.0;

kappaMethod

solidThermo;

kappa

none;

}
}
}

Copyright © The OpenCAE Society of Japan

13