80
2011 年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析 ‐ 安定化有限要素法の適用と定常問題の解析 ‐ 大阪工業大学 工学部 環境工学科 知能設計工学研究室 F08-037 妹尾 Department of Environmental engineering, Faculty of Engineering Osaka Institute of Technology Ken SENOO 2012 3 31

2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

【2011年度学士卒業論文】有限要素法による熱の移流拡散問題の解析‐ 安定化有限要素法の適用と定常問題の解析 ‐

大阪工業大学 工学部 環境工学科 知能設計工学研究室F08-037 妹尾 賢

Department of Environmental engineering, Faculty of EngineeringOsaka Institute of Technology

Ken SENOO

2012年 3月 31日

Page 2: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

目 次

第 1章 緒言 31.1 はじめに . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2 ヒートパイプについて . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.3 研究の手段・方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.4 研究の意義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.5 論文の構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.6 伝熱現象について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

第 2章 熱の移流拡散問題の定式化 52.1 移流拡散現象の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2 拡散方程式 (Diffusion equation)の導出 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.3 移流方程式 (Advection equation)の導出 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.4 移流拡散方程式 (Advection Diffusion equation)の導出 . . . . . . . . . . . . . . . . . . . . . . . . . 92.5 本研究で扱う問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

第 3章 有限要素法の適用 123.1 有限要素法とは . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.2 二次元定常移流拡散方程式への有限要素法の適用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.2.1 場の方程式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.2.2 重み付き残差法 (Weighted Residual Method,WRM)の適用 . . . . . . . . . . . . . . . . . . 123.2.3 弱形式 (weak form)の導出 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.2.4 Galerkin法の適用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.2.5 有限要素方程式 (finite element equation)の導出—四角形要素の適用— . . . . . . . . . . . . 163.2.6 境界条件の組み込み . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.2.7 多元連立方程式の解法—ガウスの消去法 (Gauss elimination)— . . . . . . . . . . . . . . . . . 18

3.3 座標変換 · 内挿関数の設定 ·積分の計算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203.3.1 局所座標系の設定と要素の次数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203.3.2 座標変換とアイソパラメトリック要素 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.3.3 ガウスの数値積分 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

第 4章 安定化有限要素法の適用 234.1 解の不安定さと Peclet数—一次元定常移流拡散問題の厳密解の例— . . . . . . . . . . . . . . . . . . 234.2 Galerkin 法と Upwind Galerkin法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244.3 Upwind Petrov-Galerkin法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284.4 SUPG(Streamline Upwind/Petrov-Galerkin)法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.5 要素サイズの検討 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304.6 二次元定常移流拡散方程式への SUPG法の適用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

第 5章 三角形要素での解析 345.1 三角形要素での近似関数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345.2 安定化を施した有限要素式への適用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

第 6章 熱の移流拡散方程式の解析 406.1 問題の設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

6.1.1 場の方程式と有限要素方程式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406.1.2 解析対象の物性値 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

6.2 解析システムの構築 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426.3 プログラムでの解析と結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

6.3.1 4要素での解析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436.3.2 一次元定常移流拡散問題での検証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446.3.3 二次元定常移流拡散問題での検証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

1

Page 3: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

第 7章 結言 547.1 結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547.2 今後の課題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

7.2.1 移流項の計算と非定常問題への拡大の必要性 . . . . . . . . . . . . . . . . . . . . . . . . . . . 547.2.2 境界積分項の計算での問題点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557.2.3 Upwind Galerkin 法での安定化の実装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557.2.4 三角形要素と四角形要素の計算について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557.2.5 熱伝導率の非等方性の取り扱い . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557.2.6 その他—三次元問題への拡大、発熱率や流速及び物性値の取り扱い— . . . . . . . . . . . . . 56

参考文献 57

謝辞 58

付 録A 付録 59A.1 プログラム fem2dh steady AD の構造 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59A.2 プログラムのルーチンの説明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59A.3 解析プログラム fem2dh steady AD のソースコードの掲載 . . . . . . . . . . . . . . . . . . . . . . . 60A.4 入力データ作成支援プログラムmelement4及びmelement3のソースコードの掲載 . . . . . . . . . . 69A.5 fem2dh steady AD におけるルーチンでの変数の役割 . . . . . . . . . . . . . . . . . . . . . . . . . . 74A.6 式に登場する記号 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77A.7 用語集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

2

Page 4: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

第1章 緒言

1.1 はじめに世の中の現象は数式で表すことが可能なことがある。特に自然現象はその典型である。力や熱、電気などは数式で表現することが可能で、今日まで学問として研究される対象となってきた。これらの現象は相互に作用して複雑になると、現象の解明が困難になる。環境工学としては、エネルギーの観点から熱がどのように伝わるのか、どのように利用すれば、高効率であるかを解明することは、持続可能な社会を形成す社会を構築・推進する上で重要な問題である。なぜならば、高効率な熱利用により火力発電や自動車など化石燃料の燃焼によって排出される温室効果のある二酸化炭素(CO2)の低減につながると考えるからである。このような考えのもと、本研究では熱がどのように伝わるかに着目した。そして、熱がどのように伝わり分布するかを解明する目的で研究を行った。また、熱の伝わり方を利用した高効率な熱利用がされている装置としてヒートパイプがある。将来的にはこの装置における熱の現象の解明を行い、この装置の改良や応用に適用することを念頭に置いている。本論文ではヒートパイプについては取り扱えていないが、次節でヒートパイプの説明およびなぜヒートパイプに注目するのかについて触れる。

1.2 ヒートパイプについてヒートパイプと呼ばれる装置が存在する。この装置は高効率な熱輸送装置である。ヒートパイプは構造として、作動流体が密閉された管状の容器となっている。一端が加熱されると、内部の作動流体が蒸発し、周囲から潜熱として熱を奪うことで冷却機能が働く。もう一方で、蒸発した流体が冷やされて凝縮を起こし、潜熱として管壁に熱を放出する。このようにして、物体の潜熱がはたらき状態の遷移が伴わない伝熱(顕熱輸送)と異なり、伝熱が素早く高効率の熱輸送が可能である。この装置の興味深い点はこの装置では、熱、物質、運動量がかかわる複雑な現象が作用して、装置の機能をなしている点である。これら三つの要因については、それぞれフーリエの法則、フィックの法則、ニュートンの法則という法則が存在しており、式で表現することができる。このような複雑な現象を表現し現象の解明ができれば、その他の現象についても適用することができ有用である。それゆえに、ヒートパイプは工学の対象として興味深い装置であり、将来の解析を意識している。

1.3 研究の手段・方法熱の伝わり方を解明する方法としては、測定器具を用いた実験による測定と計算機を用いた数値解析とが考えられる。前者の実験においては個別の事象について、詳細な現象の解明が期待できる。しかし、人が実際に対象に対して測定を行う必要があるため、大きな規模の対象領域に対しては全体の解明が困難であり、また実際に対象が存在し測定できなければ実験できない。一方で、後者の数値解析は物性値や対象とする領域を見積もり設定すれば、想像しうるどのような対象に対しても解明が可能である。そして、実際に実験を行うよりも少ない労力で済む。しかし、物性値や対象とする領域のデータなどをどのように取得するか、解析の精度の問題が生じる。これらの二つの解明方法のうち、本研究では後者の数値解析を解明の手段として用いる。その理由として、次のことを考慮した。現在は過去の実験により、物性値が判明している物質が多く、また将来的には数値解析の方が適用範囲が広く有用であると考えた。数値解析には、有限要素法という方法を用いた。その過程において、コンピューターを用いた計算によって解明を試みる。領域全体の値の分布をみることで現象の解明とする。

1.4 研究の意義熱の伝わり方自体を知るには市販の解析プログラムを使えばこと足りる。しかし、将来的により複雑な現象を扱い、その解析の途中での値を取り出したり、可視化しやすいように出力の形式を変更したり、他の解析プログラムとの複合的な利用をしたいと考えると不都合である。

3

Page 5: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

これらの不都合を解消し対象領域での熱の分布を解明するには、まず解析社が解析の理論を理解することである。そして、それを自ら解析プログラムに落とし込むことで、どのプロセスでどういった処理を行っているかを明確になる。こうすることで、将来改良および他のプログラムと連携させることが容易となる。このようなことを念頭においており、将来の解析プログラムの構築の礎となるところに解析プログラム自作するという本研究の意義があると考える。

1.5 論文の構成本論文ではまず、解析を試みる領域をどのような数式で表現できるか考え、定式化を行い、領域を表す場の方程式を導出する。そして、求めた場の方程式をモデルに、有限要素法の原理の説明・適用を行う。有限要素法の適用された場の方程式に対して、コンピューターを用いた数値計算を行い、解析領域の解明を試みる。そして最後に計算によって得られた結果が妥当であるか検証を行い、開発した解析システムに欠陥がないかどうか確認を行う。このような構成で本論文は構成される。

1.6 伝熱現象について自然界において、熱の伝わり方として伝導(拡散)、対流(伝達)、輻射(放射)の 3形態がある。伝導(拡散)とは、物質内部の原子や分子の運動によって生じる熱の伝わり方である。対流(伝達)とは、液体や気体が移動することでそれらを介して伝わることである。輻射(放射)とは、太陽光をはじめとする電磁波によって伝わることである。本研究では、これらの 3つの伝熱の形態のうち、伝導と対流について着目し、熱の移流拡散問題を解くこととした。

4

Page 6: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

第2章 熱の移流拡散問題の定式化

本章では熱の伝わり方を定量的に解析するために、伝熱現象の定式化を行う。定式化のプロセスとして、まずある領域に対しての熱の収支を伝導と移流とで考えてそれぞれについて式をたてる。そして、最後に両方が混在する式を考えることである領域での移流拡散による伝熱を式で表現する。

2.1 移流拡散現象の概要まず、熱の移流拡散現象について説明する。伝熱における拡散とは、温度の高いところから低いところへ熱が散らばる現象である。熱伝導は物質の内部でおこる現象であるが、熱拡散と同様に温度の高いところから低いところへ熱が移動することから、熱伝導と熱拡散は本質的に同じ現象である。したがって、本論文での拡散という言葉は伝導と置いて解釈してもよい。移流とは、分布を保ったまま流れによって熱が運ばれる現象である。移流拡散は移流と拡散が同時に起こる現象である。これら拡散、移流、移流拡散の 3つの現象はそれぞれ以下の図のようなイメージとなる。

図 2.1: 拡散のイメージ

図 2.2: 移流のイメージ

図 2.3: 移流拡散のイメージ

2.2 拡散方程式 (Diffusion equation)の導出

初めに熱の拡散(伝導)方程式 (Diffusion equation)を導出する。ここでいう拡散とは、温度・熱・物質(濃度)・圧力・運動量などが自発的に散らばり広がる現象を表す。熱の拡散現象はフーリエの法則により記述される。フーリエの法則を言葉で説明すると、次のようになる。「熱は温度の高い側から低い側へ移動する。そして、その移動する熱は温度差に比例する。」また、フーリエの法則を式で表すと次のようになる。

qx = −κ∂T

∂x, qy = −κ

∂T

∂y, qz = −κ

∂T

∂z(2.2.1)

ここで qx, qy, qzはそれぞれ x, y, z方向への単位時間・単位断面積あたりの熱流量であり、このことを熱流束 (HeatFlux)という。単位は [J/(s· m2)=W/m2]である。κはカッパーと読み熱伝導率 [J/(s· m·K)=W/(m·K)]を表す。(書物によっては λや kを熱伝導率の記号に用いている。)熱伝導率は単位時間・単位長さ・単位温度あたりで伝わる熱量を表す。熱伝導率 κは一般的な材質では x, y, z方向において全て同じ値で等方性であるが、例えば異なる熱伝導率の材質を貼り合わせて作った板材などは x, y, z方向への拡散による温度分布はそれぞれ異なる。この場合の熱伝導率を直交異方性熱伝導係数という。また、楕円を回転させたような温度分布をもつ場合を非等方性熱伝導率という。こういった等方性以外の熱伝導率を持つ場合は計算が複雑になる。そこで、本研究では熱伝導率が等方性の場合のみを取り扱った。非等方性の場合の定式化については文献 [6, pp189–

193]などを参考にされたい。また、熱伝導率は温度に依存して変化すると考えられる。しかし、その場合複雑になり解くことが困難である。そのため、本研究では熱伝導率は一定値であるとして取り扱った。ある位置での温度の変化を考えるために、横幅、奥行き、高さが微小でそれぞれ dx, dy, dz[m]の長さの検査体積を考える。この検査体積を図 2.4に示す。検査体積内の温度を T [K]、熱量をQ[J]とする。微小時間 dt[s]経過したとき、この検査体積に x, y, zの各方向から伝導によって入ってくる熱をそれぞれQx,in,dif, Qy,in,dif, Qz,in,dif[J]とする。ここで、dif は拡散の英語 diffusionの意味である。

5

Page 7: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

  

dx

dy

dz

Qx,in,dif

Qx,out,dif

Qz,in,dif

Qz,out,dif

Qy,in,dif

Qy,out,dif

Q, T

 図 2.4: 三次元拡散問題での検査体積

 

検査体積は直方体であるので、x方向に出入りする熱は dydzの面積の分である。同様に、y方向は dxdz、z方向へは dxdyの面積分の熱が出入りする。これを考慮して、x方向・y方向・z方向に流入する熱はフーリエの法則を用いて以下のように示される。

Qx,in,dif = qxdydzdt = −κ∂T

∂xdydzdt

Qy,in,dif = qydxdzdt = −κ∂T

∂ydxdzdt

Qz,in,dif = qzdxdydt = −κ∂T

∂zdxdydt

(2.2.2)

同様に、この検査体積の各方向 x, y, zから微小時間 dtの間に流出する熱をそれぞれQx,out,dif, Qy,out,dif, Qz,out,dif[J]とすると、流入してからそれぞれ dx, dy, dz 移動する間に熱が変化することを考慮して流出する熱を求める。流入時は Qx,in,dif, Qy,in,dif, Qz,in,dif[J]の熱がある。そこからの変化は Qx,in,dif, Qy,in,dif, Qz,in,dif のそれぞれ x, y, z 方向への傾きに幅 dx, dy, dz を掛けることで Qx,in,dif, Qy,in,dif, Qz,in,dif からの変化分を算出できる。それらを足すことでQx,out,dif, Qy,out,dif, Qz,out,difは求まる。したがって、以下のように流出する熱は表される。

Qx,out,dif = Qx,in,dif +∂Qx,in,dif

∂xdxdt = Qx,in,dif − κ

∂2T

∂x2dxdydzdt

Qy,out,dif = Qy,in,dif +∂Qy,in,dif

∂ydydt = Qy,in,dif − κ

∂2T

∂y2dxdydzdt

Qz,out,dif = Qz,in,dif +∂Qz,in,dif

∂zdzdt = Qz,in,dif − κ

∂2T

∂z2dxdydzdt

(2.2.3)

各方向の流出入により検査体積に蓄積される熱 Qx, Qy, Qz は流入から流出を引くことで求まるので、これらQx,in,dif, Qy,in,dif, Qz,in,difとQx,out,dif, Qy,out,dif, Qz,out,difの差で表される。

Qx = Qx,in,dif −Qx,out,dif = Qx,in,dif −(Qx,in,dif − κ

∂2T

∂x2dxdydzdt

)= κ

∂2T

∂x2dxdydzdt

Qy = Qy,in,dif −Qy,out,dif = Qy,in,dif −(Qy,in,dif − κ

∂2T

∂y2dxdydzdt

)= κ

∂2T

∂y2dxdydzdt

Qz = Qz,in,dif −Qz,out,dif = Qz,in,dif −(Qz,in,dif − κ

∂2T

∂z2dxdydzdt

)= κ

∂2T

∂z2dxdydzdt

(2.2.4)

検査体積全体での熱の蓄積はこれらQx, Qy, Qz の和であるので以下のようになる。

Q = Qx +Qy +Qz = κ∂2T

∂x2dxdydzdt+ κ

∂2T

∂y2dxdydzdt+ κ

∂2T

∂z2dxdydzdt

= κ

(∂2T

∂x2+

∂2T

∂y2+

∂2T

∂z2

)dxdydzdt (2.2.5)

6

Page 8: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

ある系の温度を 1K上昇させるのに必要な熱量dQ

dTを熱容量C[J/K]という。熱容量は定圧条件下の場合と定積条

件下の場合とで値が異なる。これらを区別するために、それぞれCp, Cvという記号が用いられる。また、熱容量は物質によって異なる値を示し、ある物質の単位質量あたりの熱容量である比熱容量 c[J/(kg·K)]とその物質の質量m[kg]の積として表される。比熱容量もまた定圧条件下か定積条件下によって値がことなるため区別しそれぞれ cp, cvという記号が用いられる。ここで、以下で示すマイヤーの関係式より定圧比熱と定積比熱は結び付けられる。

cp − cv = R (2.2.6)

Rは気体定数である。したがって、比熱の値としては定積比熱でも定圧比熱であっても換算できるためどちらを使っても問題ない。本研究では定圧比熱容量 cpを使う。検査体積の質量をm[kg]、定圧比熱容量を cp [J/(kg · K]、温度変化 dT [K]とすると、検査体積全体での熱は熱容量の定義より

Q = mcpdT (2.2.7)

に等しい。検査体積の体積が dxdydz[m3]であるので質量は m = ρdxdydz[kg]となる。なお、ここで ρは検査体積の密度

[kg/m3]である。一般的には密度は圧力や温度に依存する。しかし、そう考えると計算が複雑になるため密度は一定とする。同様に、定圧比熱容量も一般的には圧力や温度の関数として表されるが、一定として考える。これらを式(2.2.7)に当てはめると次のように表すことができる。

Q = ρcpdxdydzdT   (2.2.8)

これら式 (2.2.5)および式 (2.2.8)は保存則より等しいので、

κ

(∂2T

∂x2+

∂2T

∂y2+

∂2T

∂z2

)dxdydzdt = ρcpdxdydzdT (2.2.9)

が成り立つ。これを整理する。dT

dt=

κ

ρcp

(∂2T

∂x2+

∂2T

∂y2+

∂2T

∂z2

)(2.2.10)

ここでk =

κ

ρcp(2.2.11)

とする。kは温度伝導率や熱拡散率、温度拡散率といい、単位は [m2/s]である。左辺は T が多変数関数なので、

dT

dt→ ∂T

∂t(2.2.12)

となる。これらを当てはめることで、以下の式で示される三次元非定常熱伝導方程式が導出される。

∂T

∂t= k

(∂2T

∂x2+

∂2T

∂y2+

∂2T

∂z2

)(2.2.13)

表記の簡略のため、ラプラシアン:∆ =∂2

∂x2+

∂2

∂y2+

∂2

∂z2を用いて式 (2.2.13) を表すと以下のようになる。

∂T

∂t= k∆T (2.2.14)

ここまでで、拡散方程式の導出ができた。

2.3 移流方程式 (Advection equation)の導出

移流とは流れによって引き起こされる現象である。物質や圧力・温度・エネルギーなどの物理量が、分布を保ったまま流れによって運ばれることを移流と呼ぶ。拡散方程式の導出と同様に幅、奥行、高さがそれぞれ dx, dy, dzの検査体積を考え、移流方程式 (Advection equation)を導出する。この検査体積を図 2.5に示した。検査体積内の温度を T [K]、熱量をQ[J]とする。微小時間 dt[s]経過したとき、この検査体積に x, y, zの各方向から入ってくる熱をそれぞれQx,in,ad, Qy,in,ad, Qz,in,ad[J]とする。ここで ad は移流の英語 advection を表す。

7

Page 9: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

dx

dy

dzQx,in,ad Q

x,out,ad

Qz,in,ad

Qz,out,ad

Qy,in,ad

Qy,out,ad

Q, T

Tx,0

Ty,0

Tz,0

図 2.5: 三次元移流問題での検査体積

x, y, z方向からの流入による検査体積の内部と外部との温度変化をそれぞれ dTx, dTy, dTz,と表し、温度の基準点を流入する流体の直前の温度 Tx,0, Ty,0, Tz,0(これらは定数)とする。このように考えると、T = T (x, y, z, t)は基準点とそこからの変化分の和で表すことができ以下のようになる。 T = Tx,0 + dTx

T = Ty,0 + dTy

T = Tz,0 + dTz

(2.3.1)

各方向からの流速を vx, vy, vz[m/s]とすると、移流によって流入する熱はそれぞれ熱容量の関係式 (2.2.7)において、移流によって運ばれる質量分である。質量は密度と体積の積として表され、密度は決まっているので流れによって運ばれる体積分の熱が流入する熱である。流れによって運ばれる体積とは、例えば x方向については断面積が dydzであるため、dtの時間で流入する体積は vxdydzdt[m

3]である。y, z方向についても同様に考える。したがって、移流によって流入する熱Qx,in,ad, Qy,in,ad, Qz,in,adは式で書くと以下のようになる。 Qx,in,ad = ρcpdTxvxdydzdt

Qy,in,ad = ρcpdTyvydxdzdtQz,in,ad = ρcpdTzvzdxdydt

(2.3.2)

本来ならば流速も位置や時間によって変化する関数であると考えられる。しかし、速度が時間や位置で変化する関数であると複雑になり計算が困難になるので、本研究では速度は既知の定数とした。出ていく熱Qx,out,ad, Qy,out,ad, Qz,out,adは、検査体積内を移動する間に変化することを考慮して以下のようになる。

Qx,out,ad = Qx,in,ad +∂Qx,in,ad

∂xdx = Qx,in,ad + ρcp

∂(dTx)

∂xdxdydzdt

Qy,out,ad = Qy,in,ad +∂Qy,in,ad

∂ydx = Qx,in,ad + ρcp

∂(dTy)

∂ydxdydzdt

Qz,out,ad = Qz,in,ad +∂Qz,in,ad

∂zdx = Qx,in,ad + ρcp

∂(dTz)

∂zdxdydzdt

(2.3.3)

検査体積で各方向からの流入出で蓄積される熱Qx, Qy, Qz はこれらの差である。よって、次のようになる。

Qx = Qx,in,ad −Qx,out,ad = Qx,in,ad −(Qx,in,ad + ρcpvx

∂(dTx)

∂xdxdydzdt

)= −ρcpvx

∂(dTx)

∂xdxdydzdt

Qy = Qy,in,ad −Qy,out,ad = Qy,in,ad −(Qy,in,ad + ρcpvy

∂(dTy)

∂ydxdydzdt

)= −ρcpvy

∂(dTy)

∂ydxdydzdt

Qz = Qz,in,ad −Qz,out,ad = Qz,in,ad −(Qz,in,ad + ρcpvz

∂(dTz)

∂zdxdydzdt

)= −ρcpvz

∂(dTz)

∂zdxdydzdt

(2.3.4)

8

Page 10: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

検査体積に実際に蓄積される熱QはこれらのQx, Qy, Qz の和である。したがって、次のようになる。

Q = −ρcpvx∂(dTx)

∂xdxdydzdt− ρcpvy

∂(dTy)

∂ydxdydzdt− ρcpvz

∂(dTz)

∂zdxdydzdt

= −ρcp

(vx

∂(dTx)

∂x+ vy

∂(dTy)

∂y+ vz

∂(dTz)

∂z

)dxdydzdt (2.3.5)

ここで式 (2.3.1)より dTx, dTy, dTz を置き直す。

Q = −ρcp

(vx

∂(T − Tx,0)

∂x+ vy

∂(T − Ty,0)

∂y+ vz

∂(T − Tz,0)

∂z

)dxdydzdt

= −ρcp

(vx

∂T

∂x− vx

∂Tx,0

∂x+ vy

∂T

∂y− vy

∂Ty,0

∂y+ vz

∂T

∂z− vz

∂Tz,0

∂z

)dxdydzdt

= −ρcp

(vx

∂T

∂x+ vy

∂T

∂y+ vz

∂T

∂z

)dxdydzdt (2.3.6)

この式は、検査体積全体で熱の流入の前後で比熱容量から定義される熱量と等しいと考えることができる。(この場合の dT は、検査体の流入前の温度 Tf と流入後の温度 Tlの差、つまり流入の前後での温度差と考えることができる。)したがって、次のようになる。

Q = −ρcp

(vx

∂T

∂x+ vy

∂T

∂y+ vz

∂T

∂z

)dxdydzdt = ρcpdTdxdydz (2.3.7)

この式を整理する。dT

dt+

(vx

∂T

∂x+ vy

∂T

∂y+ vz

∂T

∂z

)= 0 (2.3.8)

ここで、T は多変数関数なのでdT

dt→ ∂T

∂tとなり、また v = (vx, vy, vz)と演算子∇ = (

∂x,∂

∂y,∂

∂z)を用いて以

下のように表すことができる。

∂T

∂t+

(vx

∂T

∂x+ vy

∂T

∂y+ vz

∂T

∂z

)=

∂T

∂t+ v · ∇T = 0 (2.3.9)

このようにして三次元非定常移流方程式が求まった。

2.4 移流拡散方程式 (Advection Diffusion equation)の導出

ここから、移流と拡散の両方が存在する移流拡散方程式 (Advection Diffusion equation)を導出していく。移流や拡散方程式を導出したときと同様に、検査体積を考えてそれに流入する熱と流出する熱の収支を考えることで式を導出していく。まず、これまでと同様に幅、奥行、高さがそれぞれ dx, dy, dzの検査体積を考える。この検査体積を図 2.6に示した。移流と拡散の両方が存在するため、流入する熱は拡散(伝導)によるものと移流によって流れ込んでくるものの 2種類が考えられる。、これらを考慮して収支の式を立てる。dt時間でこの検査体に入ってくる熱を方向ごとにQx,in, Qy,in, Qz,inとする。流入する熱は伝導による分Qin,difと、移流による分Qin,adとが考えられる。伝導により x, y, zの各方向から流入する熱Qx,in,dif, Qy,in,dif, Qz,in,difはフーリエの法則により、以下のように表される。

Qx,in,dif = qxdydzdt = −κ∂T

∂xdydzdt

Qy,in,dif = qydxdzdt = −κ∂T

∂ydxdzdt

Qz,in,dif = qzdxdydt = −κ∂T

∂zdxdydt

(2.4.1)

各方向からの流速を vx, vy, vz とする。x, y, z方向からの流入による検査体積の内部と外部との温度変化をそれぞれ dTx, dTy, dTz,と表し、温度の基準点を流入する流体の直前の温度 Tx,0, Ty,0, Tz,0(これらは定数)とする。このように考えると、T = T (x, y, z, t)は基準点とそこからの変化分の和で表すことができ以下のようになる。

9

Page 11: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

dx

dy

dzQx,in,ad Q

x,out,ad

Qz,in,ad

Qz,out,ad

Qy,in,ad

Qy,out,ad

Q, T

Qx,in,dif

Qx,out,dif

Qz,in,dif

Qz,out,dif

Qy,in,dif

Qy,out

Tx,0

Ty,0

Tz,0

図 2.6: 三次元移流拡散問題での検査体積

T = Tx,0 + dTx

T = Ty,0 + dTy

T = Tz,0 + dTz

(2.4.2)

移流によって x, y, zの各方向から流入する熱Qx,in,ad, Qy,in,ad, Qz,in,adは、熱容量の定義より次のように表される。 Qx,in,ad = ρcpdTxvxdydzdtQy,in,ad = ρcpdTyvydxdzdtQz,in,ad = ρcpdTzvzdxdydt

(2.4.3)

各方向から流入する熱は伝導と移流によるものとの和である。したがって以下のようになる。Qx,in = Qx,in,dif +Qx,in,ad = −κ

∂T

∂xdydzdt+ ρcpdTxvxdydzdt

Qy,in = Qy,in,dif +Qy,in,ad = −κ∂T

∂ydxdzdt+ ρcpdTyvydxdzdt

Qz,in = Qz,in,dif +Qz,in,ad = −κ∂T

∂zdxdydt+ ρcpdTzvzdxdydt

(2.4.4)

一方で、流出する熱Qx,out, Qy,out, Qz,outは、検査体内を移動する間に変化することを考慮して、次の式となる。Qx,out = Qx,in +

∂Qx,in

∂xdx

Qy,out = Qy,in +∂Qy,in

∂ydy

Qz,out = Qz,in +∂Qz,in

∂zdz

(2.4.5)

検査体で各方向からの流入出で蓄積される熱Qx, Qy, Qz はこれらの差である。よって、次のようになる。Qx = Qx,in −Qx,out = −∂Qx,in

∂xdx = κ

∂2T

∂x2dxdydzdt− ρcpvx

∂(dTx)

∂xdxdydzdt

Qy = Qy,in −Qy,out = −∂Qy,in

∂ydy = κ

∂2T

∂y2dxdydzdt− ρcpvy

∂(dTy)

∂ydxdydzdt

Qz = Qz,in −Qz,out = −∂Qz,in

∂zdz = κ

∂2T

∂z2dxdydzdt− ρcpvz

∂(dTz)

∂zdxdydzdt

(2.4.6)

検査体に実際に蓄積される熱QはこれらのQx, Qy, Qzの和である。したがって、これらを足すと次のようになる。

Q = κ∂2T

∂x2dxdydzdt− ρcpvx

∂(dTx,in)

∂xdxdydzdt+ κ

∂2T

∂y2dxdydzdt− ρcpvx

∂(dTx,in)

∂xdxdydzd

+κ∂2T

∂z2dxdydzdt− ρcpvx

∂(dTx,in)

∂xdxdydzdt

=

κ

(∂2T

∂x2+

∂2T

∂y2+

∂2T

∂z2

)− ρcp

(vx

∂(dTx,in)

∂x+ vy

∂(dTy,in)

∂y+ vz

∂(dTz,in)

∂z

)dxdydzdt (2.4.7)

10

Page 12: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

ここで式 (2.4.2)より dTx, dTy, dTz を置きなおすと、以下のようになる。

Q =

κ

(∂2T

∂x2+

∂2T

∂y2+

∂2T

∂z2

)− ρcp

(vx

∂(T − Tx,0)

∂x+ vy

∂(T − Ty,0)

∂y+ vz

∂(T − Tz,0)

∂z

)dxdydzdt

Q =

κ

(∂2T

∂x2+

∂2T

∂y2+

∂2T

∂z2

)− ρcp

(vx

(∂T

∂x− ∂Tx,0

∂x

)+ vy

(∂T

∂y− ∂Ty,0

∂y

)+ vz

(∂T

∂z− ∂Tz,0

∂z

))dxdydzdt

Q =

κ

(∂2T

∂x2+

∂2T

∂y2+

∂2T

∂z2

)− ρcp

(vx

∂T

∂x+ vy

∂T

∂y+ vz

∂T

∂z

)dxdydzdt (2.4.8)

ここで、検査体積内で化学反応によって生じる発熱や吸熱、また放射性崩壊による発熱や吸熱、さらには太陽光などによる輻射によって発熱する現象をひっくるめて発熱率 f = f(x, y, z, t)という記号を定義する。発熱率は単位体積、単位時間で生じる熱を表し単位は [J/(m3 · s)]である。この発熱率を考慮すると、検査体積内の熱Qは式 (2.4.8)で表される移流と拡散によって蓄積される熱にさらに検査体積での体積での発熱率を足すことで表現できる。よって、発熱率を考慮した式を次のように示す。

Q =

κ

(∂2T

∂x2+

∂2T

∂y2+

∂2T

∂z2

)− ρcp

(vx

∂T

∂x+ vy

∂T

∂y+ vz

∂T

∂z

)dxdydzdt+ fdxdydzdt (2.4.9)

=

κ

(∂2T

∂x2+

∂2T

∂y2+

∂2T

∂z2

)− ρcp

(vx

∂T

∂x+ vy

∂T

∂y+ vz

∂T

∂z

)+ f

dxdydzdt (2.4.10)

この式は検査体積全体で熱の流入の前後で比熱容量の定義による熱量と等しいので、以下のようになる。

Q =

κ

(∂2T

∂x2+

∂2T

∂y2+

∂2T

∂z2

)− ρcp

(vx

∂T

∂x+ vy

∂T

∂y+ vz

∂T

∂z

)+ f

dxdydzdt = ρcpdTdxdydz (2.4.11)

k = κ/(ρcp)などを利用してこの式を整理すると、以下のようになる。

dT

dt= k

(∂2T

∂x2+

∂2T

∂y2+

∂2T

∂z2

)−(vx

∂T

∂x+ vy

∂T

∂y+ vz

∂T

∂z

)+

f

ρcp(2.4.12)

dT

dt+

(vx

∂T

∂x+ vy

∂T

∂y+ vz

∂T

∂z

)− k

(∂2T

∂x2+

∂2T

∂y2+

∂2T

∂z2

)=

f

ρcp(2.4.13)

ここで、T は多変数関数なので dTdt → ∂T

∂t とし、v = (vx, vy, vz)と演算子∇ =(

∂∂x ,

∂∂y ,

∂∂z

)と∆ = ∂2

∂x2 +∂2

∂y2+ ∂2

∂z2

を用いて以下のように表せる。∂T

∂t+ v · ∇T − k∆T =

f

ρcp(2.4.14)

このようにして、三次元非定常移流拡散方程式が求まった。

2.5 本研究で扱う問題ここまでで、移流拡散方程式の一般式である三次元非定常移流拡散方程式が式 (2.4.13)のように求まった。しかし、この問題は非定常であるため定常の問題が解析できていないのにいきなり取り組むことは無謀である。また、三次元問題であると取り扱うデータが多く、計算の確認を行うことが困難となることが予想される。しかし、一次元問題であれば理論解が比較的簡単に求まるため解析のプログラムを作る必要性が小さい。また、発熱率 f は移流拡散の本質ではないため f = 0とした。基本となる移流拡散問題の解析ができたのちに発熱率の考慮、次元の拡大、非定常問題の処理を行っていくべきだと考えた。したがって、これらのことを考慮して本研究では以下の式で示される二次元定常移流拡散問題を取り扱うこととした。

vx∂T

∂x+ vy

∂T

∂y− k

(∂2T

∂x2+

∂2T

∂y2

)= 0 (2.5.1)

11

Page 13: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

第3章 有限要素法の適用

3.1 有限要素法とは有限要素法(Finite Element Method,FEM)は微分方程式を近似的に解くための数値解析の手法である。有限要素法のおおまかな流れを説明する。領域を要素とよばれる小領域に分割を行う。そして要素ごとに式を立てて計算を行う。領域全体は全ての要素について足し合わせることで表現する。このような流れで計算を行う手法であり、領域を要素に分割するところが特徴的である。有限要素法の大元となる考え方として重み付残差法がある。さらに、重み付残差法にもいくつかの種類が存在し、有限要素法ではGalerkin法を用いる。したがって、有限要素法とは重み付残差法のうちGalerkin法を用いるものであるというように数学的に定義することができる。重み付残差法とは、次のような考えで問題を解く手法である。対象とする場の方程式に対して、近似的な解を代入する。近似的な解を代入するため当然誤差が生じる。この誤差がなくなるように重みをかけて、さらに領域全体で足し合わせて 0になるようにする。未知の関数は形のわかっている関数をある定数倍して足し合わせて合成することで作ることができるという考えに則って、初めに定めた近似解を形のわかっている関数をある定数倍したものの和とする。また、同様に重みについても形のわかっている関数をある定数倍したものの和の合成とする。こうすることで、問題がこれらの係数の値を求めるものに帰結される。Galerkin法は近似関数と重み関数に同じ関数を用いる方法である。これらの形のわかっている関数はもともとの場の方程式を表わす関数が満たす要件である、境界条件を満足するために決める必要がある。なぜならば、境界条件を満たさないと近似したとは言えないからである。そのためには境界ではその境界値を持つように近似解を構成する関数を定めなくてはならない。単純な要素でならば、関数を定めるのは簡単である。しかし、複雑な領域の場合は関数を決めるのは困難である。そこで、領域を比較的単純な要素に分解して、ここの要素について近似解の関数を設定する。それらを足し合わせることで、領域全体の解が値の分布として求まる。この要素に分割する段階で、場の方程式が要素の節点ごとに適用される。そのため、領域全体の節点数分の方程式が形成される。この多次元連立方程式を解き、近似関数を構成する係数を求めることで場の方程式を要素ごとに解いたこととなる。このような考えに則って、有限要素法は構成される。この流れを念頭において、実際に本研究で取り扱う二次元定常移流拡散方程式に有限要素法を適用させる。

3.2 二次元定常移流拡散方程式への有限要素法の適用

3.2.1 場の方程式

移流拡散方程式を有限要素法で解析するために、有限要素式を導出する。本研究で取り扱う二次元定常移流拡散方程式は以下で示される。

vx

∂T

∂x+ vy

∂T

∂y− k

(∂2T

∂x2+

∂2T

∂y2

)= 0  (Ω内) (3.2.1)

T = g1  (Γ1上), ∂T

∂n= g2  (Γ2上) (3.2.2)

Ωは領域全体を表す。領域の全境界を Γとして、Γ1,Γ2はそれぞれ境界のある部分を表し、それぞれ重複はなくΓ = Γ1 +Γ2を満たす。g1, g2は各境界 Γ1,Γ2内で成立する関数である。また、式 (3.2.2)の第一項は第一種境界条件(Dirichret境界条件、ディリクレ境界条件)、第二項は第二種境界境界条件(Neumann境界条件、ノイマン境界条件)と一般的に呼ばれている。nは外向き法線方向を表す。ここで、各種の文字および記号は表 3.1に示した。以下では、この式と条件に基づいて有限要素法を適用していく。

3.2.2 重み付き残差法 (Weighted Residual Method,WRM)の適用

この問題で求めたい値は温度 T [K]である。しかし、T は位置の関数で場の方程式が二階偏微分方程式あるため導出が困難である。そこで、T に領域内でのある座標点 i(xi, yi)での近似解を T として考える。そうすると、T は近似であるため T = T となり、誤差が生じ左辺 = 0となってしまう。ここで、この近似解の右辺を残差 εiとすると、次のようになる。

12

Page 14: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

表 3.1: 記号の意味記号 名称 単位 定義や条件T 温度 K 位置に依存する未知関数 T (x, y)x, y 基準軸 m 対象領域の位置を示すvx, vy x, y方向への流速 m/s 既知の定数とするn 単位法線ベクトル m n = (nx, ny)k 温度伝導率(熱拡散率、温度拡散率) m2/s k = κ/(ρcp)κ 熱伝導率 W/(m · K) 材質内で一定値で等方性とするρ 密度 kg/m3 材質内で一定値とするcp 定圧比熱容量 J/(kg · K) 材質内で一定値とするg1 第一種境界条件値 K 一定値とするg2 第二種境界条件値 K/m 一定値とする

(vx

∂T

∂x+ vy

∂T

∂y

)− k

(∂2T

∂x2+

∂2T

∂y2

)= εi (3.2.3)

この残差 (Residual)εをどうにかして 0にしたいので、点 iでの重み関数 wiをかけて重み付き残差の和が領域全体で 0になるように考える。そうすると以下のようになる。

n∑i=1

wiεi = 0 (3.2.4)

ここでnは考える領域全体での地点数である。この式 (3.2.4)は式 (3.2.1)と近似≈である。シグマ記号は式 (3.2.1)が関数なので領域での積分になる。したがって、これを式で表すと以下のようになる。∫

Ω

(vx

∂T

∂x+ vy

∂T

∂y

)wdΩ− k

∫Ω

(∂2T

∂x2+

∂2T

∂y2

)wdΩ = 0 (3.2.5)

このようにして、関数に近似解を代入してさらに重みをかけた和の誤差を 0にするように式を立てることを重み付き残差法 (Weighted Residual Method,WRM)と呼び、式 (3.2.5)のように重みをかけて積分した式を重み付き残差方程式や重み付き残差式と呼んでいる。求めたい T の近似として T を導入した。この近似の仕方として、予め形のわかっている関数を任意定数倍して足し合わせることで求めたい T の近似とする方法がある。ここで任意のある(既知)関数を ϕi、その関数の係数を aiとすると T の近似関数 T は以下のような式になる。

T = ϕ0 +

m∑i=1

aiϕi (3.2.6)

ここで、ϕ0は式 (3.2.2)の第一項であるDirichlet条件を満たすように関数として設定され、同様に ϕiもDirichlet条件を満たすように設定される。これを式で示すと以下になる。

Γ1上でϕ0 ≈ g1, ϕi = 0  (1 ≤ i ≤ m) (3.2.7)

mは近似に用いる関数 ϕiの数を表す。なお、ϕiは互いに定数倍しても同じにならない条件(このことを一次独立という)を満たす必要がある。なお、この ϕiを基底関数、T を近似関数や試行関数、試験関数と呼んでいる。一方、重み関数 wのみたす条件として以下の 3つがあげられる。

・重み関数は領域内で連続(正則)で微分可能である (3.2.8)

・重み関数は境界上で 0となる (3.2.9)

・重み関数は無次元である (3.2.10)

1つ目の条件は領域全体で積分を実行するために必要な条件である。2つ目の条件は、文献 [5, p.16]に次のように記されている。“一般には重み付き残差法のうちで、境界条件は満足するが場の方程式を満足しない試行関数を用いる方法を内部法 (interior method), 場の方程式を満足するが境界条件を満足しない試行関数を用いる方法を境界法 (boundarymethod), 場の方程式も境界条件も満足しない試行関数を用いる方法を混合法 (mixed method)とよぶ。”境界条件を課したにも関わらず、境界で誤差が生じるのは困るので、境界で誤差が 0となる内部法を採用する。そのため、2つ目の条件が必要である。3つ目の条件は、重み関数には物理的な意味がなく、誤差の調整以外に与式に影響を与えては困るので次元数はない。内部法を採用することで、境界では値が固定される。また、このあとの式を展開していく上での基本となることから、この場合の第一種境界条件 (Dirichlet境界条件)を特に基本境界条件や固定境界条件と呼んでいる。

13

Page 15: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

3.2.3 弱形式 (weak form)の導出

いま考える式は、重み付き残差方程式である∫Ω

(vx

∂T

∂x+ vy

∂T

∂y

)wdΩ− k

∫Ω

(∂2T

∂x2+

∂2T

∂y2

)wdΩ = 0 (3.2.11)

に置き換わった。この式は二階微分の項が入っており、解を求めるのが困難になっている。未知関数の二階微分項が存在すると、あとで未知関数を近似式で表す時に近似するための式の条件がきつくなってしまい問題となる。そこで、多変数関数の部分積分の公式であるGreenの公式またはガウスの発散定理∫

Ω

∂u

∂xiwdΩ =

∫Γniuwdγ −

∫Ωu∂w

∂xidΩ (3.2.12)

を用いて微分の階数を落とした弱形式を導出する。いま扱う問題はこの公式における i = 1 ∼ 2に対応しており、uは T に、x1, x2はそれぞれ x, yに対応し、また、n1, n2は単位法線ベクトルの各成分 nx, ny に対応する。Greenの公式において、u = ∂T/∂xとすると次のような式となる。∫

Ω

∂x

(∂T

∂x

)wdx =

∫Γnx

∂T

∂xwdγ −

∫Ω

∂T

∂x

∂w

∂xdΩ (3.2.13)

この公式を使って、二階微分の項∫Ω

(∂2T

∂x2+

∂2T

∂y2

)wdΩを変形していく。まず、この項を公式に則って展開する。

∫Ω

(∂2T

∂x2+

∂2T

∂y2

)wdΩ =

∫Γnx

∂T

∂xwdγ −

∫Ω

∂T

∂x

∂w

∂xdΩ+

∫Γny

∂T

∂ywdγ −

∫Ω

∂T

∂y

∂w

∂ydΩ (3.2.14)

この式の左辺∫Ω

(∂2T

∂x2+

∂2T

∂y2

)wdΩがくどいので(二階微分の項)と以下の変形の間は表記する。

ここで、Γ = Γ1 + Γ2より、

(二階微分の項)=∫Γ1+Γ2

nx∂T

∂xwdγ −

∫Ω

∂T

∂x

∂w

∂xdΩ+

∫Γ1+Γ2

ny∂T

∂ywdγ −

∫Ω

∂T

∂y

∂w

∂ydΩ (3.2.15)

=

∫Γ1

nx∂T

∂xwdγ +

∫Γ2

nx∂T

∂xwdγ +

∫Γ1

ny∂T

∂ywdγ +

∫Γ2

ny∂T

∂ywdγ −

∫Ω

∂T

∂x

∂w

∂xdΩ−

∫Ω

∂T

∂y

∂w

∂ydΩ

となる。本研究では wは内部法を採用するので境界である Γ1 上で 0であるから

(二階微分の項)=∫Γ2

nx∂T

∂xwdγ +

∫Γ2

ny∂T

∂ywdγ −

∫Ω

∂T

∂x

∂w

∂xdΩ−

∫Ω

∂T

∂y

∂w

∂ydΩ (3.2.16)

となる。また、∂T

∂n= nx

∂T

∂x+ ny

∂T

∂y(3.2.17)

より

(二階微分の項)=∫Γ2

∂T

∂nwdγ −

∫Ω

∂T

∂x

∂w

∂xdΩ−

∫Ω

∂T

∂y

∂w

∂ydΩ (3.2.18)

である。ここで、式 (3.2.2)の第二項の自然境界条件

∂T

∂n= g2 (Γ2上)

より以下のようになる。

(二階微分の項)=∫Ω

(∂2T

∂x2+

∂2T

∂y2

)wdΩ =

∫Γ2

g2wdγ −∫Ω

∂T

∂x

∂w

∂xdΩ−

∫Ω

∂T

∂y

∂w

∂ydΩ (3.2.19)

14

Page 16: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

これをもとの式 (3.2.11)に代入することで次の式となる。∫Ω

(vx

∂T

∂x+ vy

∂T

∂y

)wdΩ− k

(∫Γ2

g2wdγ −∫Ω

∂T

∂x

∂w

∂xdΩ−

∫Ω

∂T

∂y

∂w

∂ydΩ

)= 0 (3.2.20)

この式を整理すると∫Ω

(vx

∂T

∂x+ vy

∂T

∂y

)wΩ+ k

∫Ω

(∂T

∂x

∂w

∂x+

∂T

∂y

∂w

∂y

)dΩ = k

∫Γ2

g2wdγ (3.2.21)

となる。このように、二階偏微分の式を一階微分の式に変形することができた。この式は、微分の階数が弱められていることから弱形式 (weak form)と呼ばれている。今回は元の式に二階微分の項があったため、弱形式を求める中でNeumann境界条件が式 (3.2.21)の右辺に組み込まれた。このように、自然とNeumann境界条件が組み込まれていることからこの場合のNeumann境界条件を自然境界条件と呼んでいる。このように、弱形式を求める段階で自然境界条件が組み込まれていることで、後にNeumann境界条件を組み込むことが容易になっている。もし、元の式において一階部分の項しか存在しない場合は、重み付き残差法を適用する際に、式 (3.2.5)の後にさらに次の処理を施す。式 (3.2.2)の第二項である Neumann境界条件の両辺に重み関数 wをかけて、さらに Γ2で積分をしたものを式 (3.2.5)に足す。こうすることで二階微分の項が元の式に無くても Neumann境界条件を組み込むことができる。

3.2.4 Galerkin法の適用

重み付き残差法の中で、重み関数 wをどう設定するかでいくつかの方式がある。その中で、有限要素法では一般的にGalerkin法が使われている。Galerkin法とは、式 (3.2.6)で表される近似関数 T と同じ基底関数 ϕiを重み関数 wにも導入し、それを任意定数倍して足し合わせることで重み関数 wを近似する方法である。wの近似関数を wとして、係数 biとすると以下の式で表される。

w =

m∑i=1

biϕi  (1 ≤ i ≤ m) (3.2.22)

なお、wは T と同じ基底関数を用いているので、

ϕi(Γ1) = 0  (1 ≤ i ≤ m) (3.2.23)

となり、(3.2.9)より内部法を用いているので重み関数の近似形 wもまた、

w = 0  (Γ1上) (3.2.24)

を満たす。これを、式 (3.2.21)にあてはめる。∫Ω

(vx

∂T

∂x+ vy

∂T

∂y

)wΩ+ k

∫Ω

(∂T

∂x

∂w

∂x+

∂T

∂y

∂w

∂y

)dΩ = k

∫Γ2

g2wdγ (3.2.25)

この式のように、重み付き残差法とGalerkin法によって、未知の関数 T はそれの近似関数 T , wに置き換わり、基底関数 ϕは境界条件を満たすように決めればよいので、これらの係数 ai, biを求める問題へと帰着した。しかし、基底関数 ϕをどのように決めるかという問題が生じる。単純な領域であれば、近似関数が境界条件を満たすように、基底関数を決めることは比較的容易である。しかし、複雑な領域を扱う場合にそのまま基底関数を決定するのは困難である。この問題を解決するために、領域を要素と呼ばれる小領域に分割してそれぞれの要素について近似関数を考える。こうすることで、基底関数をもとの領域に比べて容易に設定することができる。領域全体については、要素ごとに求めた結果を全要素について足し合わせることで求めることができる。要素分割のしかたはさまざまである。二次元問題では三角形や四角形に要素分割が行われる。今回は領域が四角形要素だとして、図 3.1に示すような四角形要素 16個で要素分割を行うものとして進める。要素の端点を節点 (nodal poin または node)といい、節点には節点値として節点 iには未知数が Tiとして与えられている。要素と節点にはそれぞれ順番に番号をつける。これらを要素番号 (element number)及び節点番号(node number)とよぶ。また、各要素ごとに節点番号をつけ、これを要素節点番号 (node number of element)とよぶ。図 3.1においては、[ ]でくくられた数字は要素番号を表し、単なる数字は節点番号を表す。∗のついた数字は要素節点番号を表し、eのついた文字 T e

i , i = 1 ∼ 4はある要素番号 eである要素の要素節点番号 i∗, i∗ = 1 ∼ 4での節点値を表す。なお、要素節点番号は反時計回りに番号付けを行わないといけないという決まりがある。節点番号は通し番号がつけられており、この番号は任意である。そのため、節点番号の対応を考えるのは表記の点からも問題となる。そこで、ある e番目の要素における節点番号と節点値は要素節点番号を使って表現する。例えば、図 3.1では要素番号 10の要素の要素節点番号 1∗ ∼ 4∗はそれぞれ節点番号 12,17,18,13と対応する。同様にして、節点値 T e

1 ∼ T e4 はそれぞれ T12, T17, T18, T13と対応する。

15

Page 17: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

[1]

[2]

[3]

[4]

[5]

[6]

[7]

[8]

[9]

[10]

[11]

[12]

[13]

[14]

[15]

[16]1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

1920

21

22

23

24

25

[e]T1

e

T2

e

T3

e

T4

e

1*

2*

3*

4*

図 3.1: 領域の要素分割図

3.2.5 有限要素方程式 (finite element equation)の導出—四角形要素の適用—

ある要素内での基底関数を内挿関数といいN ei (x, y) = N e

i の記号で表す。内挿関数の性質として一般に対応する節点で 1の値となり、それ以外での節点では 0となる。また内挿関数の和は 1となる。四角形要素を用いる場合は内挿関数はN e

1 , Ne2 , N

e3 , N

e4 の 4つである。どの四角形要素のどの辺が領域の境界にき

ても、境界条件を満たすようにするために、近似関数を以下のように決めることができる。T =

4∑i=1

N ei T

ei = N e

1Te1 +N e

2Te2 +N e

3Te3 +N e

4Te4

w =

4∑i=1

N ei w

ei = N e

1we1 +N e

2we2 +N e

3we3 +N e

4we4

(3.2.26)

ここで T ei , w

ei はそれぞれ要素の要素節点番号 i∗, i∗ = 1 ∼ 4での温度と重みであり定数である。

式 (3.2.26)を式 (3.2.25)に代入すると、以下の式となる。

4∑i=1

4∑j=1

T ei w

ej

∫Ωe

(vx

∂N ei

∂x+ vy

∂N ei

∂y

)N e

jΩ+k

4∑i=1

4∑j=1

T ei w

ej

∫Ωe

(∂N e

i

∂x

∂N ej

∂x+

∂N ei

∂y

∂N ej

∂y

)dΩ = kg2

4∑j=1

wej

∫Γ2

N ej dγ

(3.2.27)この式を行列を使って表す。

weT (Ae +De)Te = we

TFe (3.2.28)

ここで、両辺にweT が存在する。wT

e は重み係数のベクトルであり任意の定数である。そのため、これを除いて考えることができる。そうすると、次のような 4元の連立方程式となることがわかる。

(Ae +De)Te = Fe (3.2.29)

式 (3.2.27)や式 (3.2.29)を(ある要素の)有限要素方程式 (finite element equation)や有限要素式と呼んでいる。Ae,De,Fe はそれぞれ移流項の行列、拡散項の行列、自然境界条件のベクトルである。自然境界条件はフーリエの法則である式 (2.2.1)と同じ形式であることから熱フラックスベクトルともいう。また、拡散項の行列のように二階微分項からなる領域積分項を剛性行列とよぶ慣習がある。それぞれの記号は英語Advection,Diffusion,Fluxのイニシャルを表し、成分は次のように表される。

16

Page 18: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

Ae =

∫Ωe

N e1

(vx

∂N e1

∂x+ vy

∂N e1

∂y

)N e

2

(vx

∂N e1

∂x+ vy

∂N e1

∂y

)N e

3

(vx

∂N e1

∂x+ vy

∂N e1

∂y

)N e

4

(vx

∂N e1

∂x+ vy

∂N e1

∂y

)N e

1

(vx

∂N e2

∂x+ vy

∂N e2

∂y

)N e

2

(vx

∂N e2

∂x+ vy

∂N e2

∂y

)N e

3

(vx

∂N e2

∂x+ vy

∂N e2

∂y

)N e

4

(vx

∂N e2

∂x+ vy

∂N e2

∂y

)N e

1

(vx

∂N e3

∂x+ vy

∂N e3

∂y

)N e

2

(vx

∂N e3

∂x+ vy

∂N e3

∂y

)N e

3

(vx

∂N e3

∂x+ vy

∂N e3

∂y

)N e

4

(vx

∂N e3

∂x+ vy

∂N e3

∂y

)N e

1

(vx

∂N e4

∂x+ vy

∂N e4

∂y

)N e

2

(vx

∂N e4

∂x+ vy

∂N e4

∂y

)N e

3

(vx

∂N e4

∂x+ vy

∂N e4

∂y

)N e

4

(vx

∂N e4

∂x+ vy

∂N e4

∂y

)

(3.2.30)

De = k

∫Ωe

∂N e1

∂x

∂N e1

∂x+

∂N e1

∂y

∂N e1

∂y

∂N e1

∂x

∂N e2

∂x+

∂N e1

∂y

∂N e2

∂y

∂N e1

∂x

∂N e3

∂x+

∂N e1

∂y

∂N e3

∂y

∂N e1

∂x

∂N e4

∂x+

∂N e1

∂y

∂N e4

∂y∂N e

2

∂x

∂N e1

∂x+

∂N e2

∂y

∂N e1

∂y

∂N e2

∂x

∂N e2

∂x+

∂N e2

∂y

∂N e2

∂y

∂N e2

∂x

∂N e3

∂x+

∂N e2

∂y

∂N e3

∂y

∂N e2

∂x

∂N e4

∂x+

∂N e2

∂y

∂N e4

∂y∂N e

3

∂x

∂N e1

∂x+

∂N e3

∂y

∂N e1

∂y

∂N e3

∂x

∂N e2

∂x+

∂N e3

∂y

∂N e2

∂y

∂N e3

∂x

∂N e3

∂x+

∂N e3

∂y

∂N e3

∂y

∂N e3

∂x

∂N e4

∂x+

∂N e3

∂y

∂N e4

∂y∂N e

4

∂x

∂N e1

∂x+

∂N e4

∂y

∂N e1

∂y

∂N e4

∂x

∂N e2

∂x+

∂N e4

∂y

∂N e2

∂y

∂N e4

∂x

∂N e3

∂x+

∂N e4

∂y

∂N e3

∂y

∂N e4

∂x

∂N e4

∂x+

∂N e4

∂y

∂N e4

∂y

(3.2.31)

T e =

T e1

T e2

T e3

T e4

, we =

we1

we2

we3

we4

(3.2.32)

ここで、F は隣接する要素間ではお互いに相殺されるため、要素境界辺での境界積分は、重ね合わせを行った段階で消去され、最終的に領域の境界 Γのみの積分が残ることとなる。例えば、ある要素Ωeの境界 Γ12で自然境界条件が与えられている場合以下のようになる。

F e = kg2

∫Γe

N e

1N e

2N e

3N e

4

dγ = kg2

∫Γe

N e

1N e

200

dγ (3.2.33)

また、いま扱う問題は表 3.1より、流速は既知の定数としている。将来的には流体の解析を行うことで得られる流速の値を適用することを想定する。それゆえに、本研究では流速 vx, vyは領域内で場所によって値が異なる場合も扱えるようにする。これを実現するために要素内では流速 vx, vy も内挿近似する。流速を内挿近似することで以下のような流速の近似式が示される。

vx ≈ vx =

4∑i=1

N ei v

exi = N e

1vex1 +N e

2vex2 +N e

3vex3 +N e

4vex4 (3.2.34)

vy ≈ vy =4∑

i=1

N ei v

eyi = N e

1vey1 +N e

2vey2 +N e

3vey3 +N e

4vey4 (3.2.35)

ここで、vexi, veyiはある要素 eの要素節点番号 i∗での流速である。

式 (3.2.29)を全要素について足し合わせることで、全体の有限要素方程式が以下のように求まる。

(A+D)T = F (3.2.36)

このように、要素ごとに求めた値の和を取ることで全体の近似方程式を組みたてる方法を直接剛性法という。この式は領域での全節点数をNとすると、N元の連立一次方程式となっている。したがって、このように微分方程式が多元の連立一次方程式を解くことに帰着された。

3.2.6 境界条件の組み込み

前節までで、有限要素方程式が導出され、連立方程式を解くことに問題が帰着された。しかし、境界条件をどう組み込むかという問題が生じる。そこで、ここでは基本境界条件と自然境界条件の二種類の境界条件を有限要素方程式に組み込む方法について記述する。

17

Page 19: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

自然境界条件の組み込み

自然境界条件は式 (3.2.2)の第二項∂T

∂n= g2  (Γ2上) (3.2.37)

で表される境界条件である。自然境界条件は未知関数の一階微分ということで、本来なら処理を行うのは困難である。しかし、有限要素法では弱形式を求めたところで式の中に式 (3.2.21)の右辺のように、この条件が組み込まれている。そのため、自然境界条件は、条件のかかっている節点に対応する右辺にその値を入れて足しこめばよい。

基本境界条件の組み込み

基本境界条件は式 (3.2.2)の第一項T = g1  (Γ1上) (3.2.38)

で表される境界条件である。この条件を組み込むには、基本境界条件のかかっている節点に対応する係数行列の行の対角成分のみを 1にして、同じ行の他の列の成分は 0にする。その後、右辺ベクトルの対応する行に基本境界条件値を足しこめばよい。

一次元要素を使った具体例

これらの二種類の境界条件の組み込みを図 3.2の簡単な一次元要素を例に示す。

1 2 3 x

図 3.2: 一次元問題での境界条件

数字は節点番号を示す。この図 3.2において、Γ1,Γ2がそれぞれ節点 1,3に対応しているとして、次のような境界条件を考える。

T = g1  (節点 1上),∂T

∂x= g2  (節点 3上) (3.2.39)

未知数と係数行列の成分を Ti, aij(i, j = 1 ∼ 3)とすると、境界条件を導入する前の連立方程式は次のようになる。a11 a12 a13a21 a22 a23a31 a32 a33

T1

T2

T3

=

000

(3.2.40)

これに、自然境界条件を組み込むと a11 a12 a13a21 a22 a23a31 a32 a33

T1

T2

T3

=

00kg2

(3.2.41)

となる。続いて基本境界条件を組み込む。 1 0 0a21 a22 a23a31 a32 a33

T1

T2

T3

=

g10kg2

(3.2.42)

このようにして境界条件は組み込むことができる。

3.2.7 多元連立方程式の解法—ガウスの消去法 (Gauss elimination)—

3.2.5項の有限要素方程式によって、多元の連立一次方程式を解くことに問題が帰着された。そこでいま説明を簡略にするために解くべき連立一次方程式を以下のように記す。

Ax = b (3.2.43)

18

Page 20: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

ここで、Aは n×nの行列で x, bはベクトルで以下のように示される。

A =

a11 a12 · · · a1na21 a22 · · · a2n...

.... . .

...an1 an2 · · · ann

, x =

x1x2...xn

, b =

b1b2...bn

(3.2.44)

解くべき式 (3.2.43)は二次元や三次元の場合なら手計算でも未知数 xnを求めることは容易である。しかし、これが数十、数百次元ともなると手計算で解くのは困難である。そこで、連立一次方程式を組織的に解く方法として、ガウスの消去法 (Gauss elimination)がある。ここではガウスの消去法について説明する。係数行列Aと右辺ベクトル bの成分を

a(1)ij = aij , b

(1)i = bi (3.2.45)

とすると方程式 (3.2.43)は次のようになる。a(1)11 x1 + a

(1)12 x2 + · · ·+ a

(1)1n xn = b

(1)1 ①

a(1)21 x1 + a

(1)22 x2 + · · ·+ a

(1)2n xn = b

(1)2 ②

· · · · · ·a(1)n1 x1 + a

(1)n2 x2 + · · ·+ a

(1)nnxn = b

(1)n ⃝n

(3.2.46)

上付添え字 (1)はこれから第 1段目の消去が行われることを示す。消去の第 1段では②以下の式から x1を含む項を消去する。消去の前にまず、①の両辺を対角成分(ピボット)である a11

(1)で割る。すると次のようになる。x1 +

a(1)12

a(1)11

x2 + · · ·+ a(1)1n

a(1)11

xn =b(1)1

a(1)11

①′

a(1)21 x1 + a

(1)22 x2 + · · ·+ a

(1)2n xn = b

(1)2 ②

· · · · · ·a(1)n1 x1 + a

(1)n2 x2 + · · ·+ a

(1)nnxn = b

(1)n ⃝n

(3.2.47)

続いて、①’に①’の対角成分の下の項である②の a(1)21 乗じて②から引く。

x1 +a(1)12

a(1)11

x2 + · · ·+ a(1)1n

a(1)11

xn =b(1)1

a(1)11

①′

a(2)22 x2 + · · ·+ a

(2)2n xn = b

(2)2 ②′

· · · · · ·a(1)n1 x1 + a

(1)n2 x2 + · · ·+ a

(1)nnxn+ = b

(1)n ⃝n

(3.2.48)

同様にして、①から下の成分をかけて引く操作を繰り返し、一番下の項である n行目まで行うと次のようになる。x1 +

a(1)12

a(1)11

x2 + · · ·+ a(1)1n

a(1)11

xn =b(1)1

a(1)11

①′

a(2)22 x2 + · · ·+ a

(2)2n xn = b

(2)2 ②′

· · · · · ·a(2)n2 x2 + · · ·+ a

(2)nn xn = b

(2)n ⃝n′

(3.2.49)

ここで、a(2)ij , b

(2)i は次のように定義される。

a(2)ij = a

(1)ij − a

(1)i1

a(1)1j

a(1)11

, i, j = 2, 3, · · · , n

b(2)i = b

(1)i − a

(1)i1

b(1)1

a(1)11

, i = 2, 3, · · · , n(3.2.50)

次に消去の第 2段では式 (3.2.49)の②’より下の式から x2の項を消去する。このための手順は第 1段目の消去と全く同じである。最終的にこの操作を xn−1の項が消えるまで行うことで、次のような左下の成分が 0の行列の式が得られる。

19

Page 21: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

1

a(1)12

a(1)11

· · · a(1)1n

a(1)11

a(2)22 · · · a

(2)2n

. . ....

0 a(n)nn

x1x2...xn

=

b(1)1

a(1)11

b(2)2...

b(n)n

(3.2.51)

ここまでの操作をガウスの消去法における前進消去 (forward elimination)という。前進消去を行うことで、xnは容易に求まり、

xn =b(n)n

a(n)nn

(3.2.52)

と求まる。xn−1は xnの値を使って

xn−1 =b(n−1)n−1 − a

(n−1)n−1n xn

a(n−1)n−1n−1

(3.2.53)

というように求まる。同様にして、x1 ∼ xnは求まる。xnからxn−1を求めることからこの操作を後退代入 (backwardsubstitution)という。このように、ガウスの消去法を使って組織的に連立一次方程式を解くことができる。この項を書くにあたって、文献 [8, pp.52-55]を参考にした。

3.3 座標変換 · 内挿関数の設定 ·積分の計算図 3.1に示したように要素分割を行う際、すべての要素が同じ形状とは限らない。そのため、内挿関数を決める際には要素ごとに関数を設定する必要がある。しかし、要素ごとに内挿関数を設定するのは煩雑で計算機で計算を行う際でも非効率的である。そこで、内挿関数は正規化された局所座標系に対して設定し、その後座標変換によって個別の要素に対応する。

3.3.1 局所座標系の設定と要素の次数

正規化された局所座標系として、図 3.3に示す四角形(正方形)一次要素を用いた。図の ∗のついた数字は要素節点番号を表す。

14*(-1,1) 3*(1,1)

-1

0-1 1

2*(1,-1)1*(-1,-1)

ξ

η

図 3.3: 想定する局所座標系

内挿関数はある要素について設定された基底関数である。基底関数は境界上では境界条件を満たすように設定されなければならない。また、どの要素のどの辺が境界になるかは任意である。したがって、正規化された要素のすべての辺が節点での座標では 1、それ以外では 0となるように関数を設定しなくてはならない。なぜならば、境界条件によって定めた境界上の値はその値となる必要があるからである。内挿関数は要素の境界上では連続性を保つために、境界上で任意の次数の ξ, ηの関数である必要がある。

20

Page 22: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

ここで、要素の節点間をどのように近似するかで要素の種類が異なる。要素を一次式で表す場合を一次要素という。この場合、要素内は節点間で直線近似することになる。同様にして、要素を二次式で表す場合を二次要素という。高次の式で表す場合は、式の係数も増えるため要素の節点も多くなり、解析の精度も向上する。一方で計算も複雑になり、計算時間もその分かかることが想定される。本研究では解析のプログラムを作成することに主眼を置いており、計算の簡単な一次要素を用いる。これらのことを踏まえて、内挿関数には次に示す一次補間式を用いた。

Ni(ξ, η) =1

4(1 + ξξi)(1 + ηηi),  i = 1 ∼ 4 (3.3.1)

ここで、N ei は要素節点番号節点 i∗での内挿関数であり、ξi, ηiは要素節点番号 i∗での座標値を表す。これを参考

に各節点での内挿関数を求めると以下のようになる。

N1(ξ, η) =1

4(1 + ξξ1)(1 + ηη1) =

1

4(1− ξ)(1− η)

N2(ξ, η) =1

4(1 + ξξ2)(1 + ηη2) =

1

4(1 + ξ)(1− η)

N3(ξ, η) =1

4(1 + ξξ3)(1 + ηη3) =

1

4(1 + ξ)(1 + η)

N4(ξ, η) =1

4(1 + ξξ4)(1 + ηη4) =

1

4(1− ξ)(1 + η)

(3.3.2)

3.3.2 座標変換とアイソパラメトリック要素

前項で考えた局所座標系 ξηを全体座標系 x, yに座標変換することを考える。ここで、本研究ではアイソパラメトリック要素の適用を考えた。アイソパラメトリック要素 (isoparametric element)とは、近似関数を近似するときに使った内挿関数と同じ関数を座標変換に用いた要素のことである。アイソパラメトリック要素を用いることで、近似関数を決めた時のように、全体座標 x, yもある要素 eの要素節点番号 i∗での座標値 xei , y

ei と内挿関数をかけたもので表すことができる。

そのため、全体座標系は局所座標系を用いて以下のように変換できる.

x =

4∑i=1

Ni(ξ, η)xei , y =

4∑i=1

Ni(ξ, η)yei (3.3.3)

実際の有限要素法の解析には全体座標系の内挿関数の微分が必要となる。これらを定義より容易に求められる局所座標系の微分を用いて求める。局所座標系の内挿関数の微分は偏微分の公式 (合成関数の微分)より以下のようになる。

∂Ni(ξ, η)

∂ξ=

∂Ni

∂x

∂x

∂ξ+

∂Ni

∂y

∂y

∂ξ,

∂Ni(ξ, η)

∂η=

∂Ni

∂x

∂x

∂η+

∂Ni

∂y

∂y

∂η

これをマトリックス表示すると以下のようになる.∂Ni

∂ξ

∂Ni

∂η

=

∂x

∂ξ

∂y

∂ξ

∂x

∂η

∂y

∂η

∂Ni

∂x

∂Ni

∂y

= [J ]

∂Ni

∂x

∂Ni

∂y

(3.3.4)

ここで [J ]をヤコビの行列 (Jacobian matrix)と呼ぶ。各成分はそれぞれ、式 (3.3.3),式 (3.3.3)を用い計算を行うと以下のような 2行 2列の行列になる (xi,yiは座標値のため微分対象外)。

[J ] =

∂N1

∂ξ

∂N2

∂ξ

∂N3

∂ξ

∂N4

∂ξ

∂N1

∂η

∂N2

∂η

∂N3

∂η

∂N4

∂η

x

e1 ye1

xe2 ye2xe3 ye3xe4 ye4

=

[c11 c12c21 c22

]

式 (3.3.4)を形式的に解くと (全体座標系の微分を局所座標系の微分で表すと)以下のようになる。∂Ni

∂x

∂Ni

∂y

= [J ]−1

∂Ni

∂ξ

∂Ni

∂η

(3.3.5)

21

Page 23: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

ここで、余因子定理を用いると [J ]−1は以下のようになる。

[J ]−1 =1

det[J ]

[c22 −c12−c21 c11

]=

1

c11c22 − c12c21

[c22 −c12−c21 c11

](3.3.6)

また、局所座標系における内挿関数の偏微分は以下のようになる (座標系は図 3.3に従う)。

∂N1

∂ξ=

1

4(−1 + η) ,

∂N2

∂ξ=

1

4(1− η) ,

∂N3

∂ξ=

1

4(1 + η) ,

∂N4

∂ξ=

1

4(−1− η) (3.3.7)

∂N1

∂η=

1

4(−1 + ξ) ,

∂N2

∂η=

1

4(−1− ξ) ,

∂N3

∂η=

1

4(1 + ξ) ,

∂N4

∂η=

1

4(1− ξ) (3.3.8)

3.3.3 ガウスの数値積分

重み付き残差法によって、領域全体で誤差の和を 0にするという考えにしたがって、積分の計算が登場してきた。しかし、いま積分したい関数は要素ごとに異なる内挿関数で表される。そのため、ひとつひとつの要素について関数の形を確認して定義に則って積分した関数を求めていくのは効率が悪く、場合によっては積分した関数を求められないことも考えられる。そこで数値積分を行う。数値積分は積分したい関数に対し、決められた座標での関数値に重みをかけることで積分を近似する手法である。有限要素法ではしばしばガウス・ルジャンドル法(ガウスの数値積分法)が用いられている。本研究でもこの方法を採用する。ガウス・ルジャンドル法だけでは−1 ∼ +1までの範囲の積分範囲しか計算が行えない。しかし、前項で述べた-1∼ +1の範囲の局所座標系を想定し、座標変換を行うため適用可能である。二次元で四角形領域を各方向について二点で積分する場合は図 3.4に示される座標点での関数値を用いる。またこの場合の重みはすべて 1.0である。図では 0.577· · · と書いたが実際には 0.577350269189626の値を使っている。ス

+1-1

+1

-1

η

ξ

η=+0.577…

η=-0.577…

ξ=-0.577… ξ=+0.577…

図 3.4: ガウス・ルジャンドル法での積分点での座標

ペースの都合上このような記号を使って省略した。この問題での積分式は関数 f(ξ, η)と重み関数wを使って、次のように表される。 ∫ +1

−1

∫ +1

−1f(ξ, η)dξdη =

2∑i=1

2∑j=1

f(ξi, ηj)wiwj

= f(−0.577 · · · ,−0.577 · · · )× 1.0× 1.0 + f(−0.577 · · · ,+0.577 · · · )× 1.0× 1.0

+f(+0.577 · · · ,−0.577 · · · )× 1.0× 1.0 + f(−0.577 · · · ,+0.577 · · · )× 1.0× 1.0 (3.3.9)

これを正規化された局所座標系で適用することで、積分の計算を行う。

22

Page 24: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

第4章 安定化有限要素法の適用

式 (4.0.1)に示される一般的な移流拡散問題を解く際に移流の影響が卓越する場合において、解の不安定性が問題となる。ここでは、そのことについて述べこの問題を解決する方法について記述する。

∂T

∂t+

(vx

∂T

∂x+ vy

∂T

∂y+ vz

∂T

∂z

)− k

(∂2T

∂x2+

∂2T

∂y2+

∂2T

∂z2

)= f (Ω上) (4.0.1)

T = g1 (Γ1上),∂T

∂n= g2 (Γ2上) (4.0.2)

なお、本来であれば式 (4.0.1)の右辺は f/(ρcp)であるが、この章に限り表記をきれいにするために右辺を f に置き直した。

4.1 解の不安定さとPeclet数—一次元定常移流拡散問題の厳密解の例—

具体的に比較的簡単に理論解を導出できる、以下で示される境界条件を持つ一次元定常移流拡散問題について考える。

vxdT

dx− k

d2T

dx2= 0 (0 < x < L) (4.1.1)

T (0) = 1, (L) = 0 (4.1.2)

この問題の理論解を考える。この問題は一階線形斉次微分方程式である。よって、

T = eaxaは未知の定数) (4.1.3)

とおいて特性方程式を解く。

vxaeax − a2keax = 0

aeax (vx − ak) = 0 (4.1.4)

ここで、eax = 0より、この式を満たすのはa = 0,=

vxk

(4.1.5)

のときである。よって、これらの値を式 (4.1.3) に代入するとそれぞれ

T = 1,= evxk (4.1.6)

となる。解が複数求まったときは重ね合わせの原理より、それぞれ任意定数倍して足したものが求める式の解である。よって、この問題の一般解は

T = C1 + C2evxkx (C1, C2は任意定数) (4.1.7)

となる。この一般解に式 (4.1.2) の境界条件を当てはめることでこの問題の特殊解を求める。

T (0) = C1 + C2 = 1 (4.1.8)

T (L) = C1 + C2evxkL (4.1.9)

この連立方程式を解く。式 (4.1.8)及び式 (4.1.9)より

C2

(1− e

vxkL)= 1, C2 =

1

1− evxkL

(4.1.10)

23

Page 25: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

である。これらを式 (4.1.8)に代入して

C1 = 1− 1

1− evxkL=

1− evxkL − 1

1− evxkL

=−e

vxkL

1− evxkL

(4.1.11)

となる。これらの C1, C2の値を式 (4.1.7)に代入すると以下の厳密解が求まる。

T =−e

vxkL

1− evxkL+

evxkx

1− evxkL=

1

1− evxkL+

−evxkL

1− evxkL− 1

1− evxkL+

evxkx

1− evxkL

=−e

vxkL

1− evxkL+

evxkx

1− evxkL=

−evxkL + e

vxkx

1− evxkL

=1− e

vxkL − 1 + e

vxkx

1− evxkL

= 1 +−1 + e

vxkx

1− evxkL

T = 1− 1− evxkx

1− evxkL= 1− e

vxkx − 1

evxkL − 1

(4.1.12)

この厳密解を vx = 1, L = 10として、熱拡散率 k変化させた分布を図 4.1に示した。

図 4.1: 熱拡散率 kに対する移流拡散方程式の厳密解の分布

この図 4.1からわかるように、熱拡散率が小さいと境界付近で急激に値が変化する。このように、移流拡散現象は移流項と拡散項の比として表される無次元量であるPeclet数 (Peclet number)

Pe =|vx|Lk

(4.1.13)

に左右される。Peclet数が大きい場合は移流が支配的で、小さいときは拡散が支配的となることが図 4.1からもわかる。厳密解は式 (4.1.12) からもわかるように ePeという形の項が入っている。そのため、Peclet 数が大きくなると値が膨大になり計算が難しくなる。(図 4.1での計算において表計算ソフトのエクセルでは Pe=720付近から計算エラーが発生した。)このように、Peclet 数が大きくなると数値的な不安定性を引き起こし正しい計算結果が得られない。これを回避するために、有限要素法では流れ方向に重みを変化させることで、人工的な拡散を加えて(Peclet数を下げて)安定化を図る Upwind Galerkin 法が考案され、さらに流れの流線方向のみに適切な量の人工拡散を加える SUPG(StreamlineUpwind/Petrov-Galerkin) 法に基づく安定化有限要素法へと発展していった。安定化の手法については文献 [4]『続・有限要素法による流れのシミュレーション』について詳しい記述がある。以下ではこの文献を参考に安定化の理論について述べていく。

4.2 Galerkin 法と Upwind Galerkin法前節で扱った一次元問題を使ってUpwind Galerkin 法について確認する。そのために、まず通常のGalerkin 法を適用して、その後Upwind Galerkin 法について取り上げ違いを見ていく。

24

Page 26: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

重み付き残差法と弱形式 まず、式 (4.1.1) に対して重み付き残差法を適用し、さらに弱形式を求める。重み関数をwとして、これを両辺に掛けて領域全体で積分を行う。すると、重み付き残差方程式は次のようになる。∫ L

0wvx

dT

dxdx− k

∫ L

0wd2T

dx2dx = 0 (4.2.1)

部分積分を施すと拡散項は以下のようになる。∫ L

0wd2T

dx2dx =

[wdT

dt

]L0

−∫ L

0

dw

dx

dT

dxdx (4.2.2)

したがって、式は次のようになる。∫ L

0wvx

dT

dxdx− k

[wdT

dt

]L0

+ k

∫ L

0

dw

dx

dT

dxdx = 0 (4.2.3)

ここで、境界条件を満たすように境界で誤差が生じない内部法を採用するので、重み関数 wは境界上では 0となる。したがって、式は次のようになる。∫ L

0wvx

dT

dxdx+ k

∫ L

0

dw

dx

dT

dxdx = 0 (4.2.4)

このようにして、弱形式は求まった。

Galerkin法の適用と内挿関数の設定及び有限要素方程式の導出 続いて、この弱形式に対してGalerkin 法を適用して有限要素方程式を導く。まず、領域を n個の要素に分割する。Galerkin 法の特徴は近似関数と同じ基底関数を重み関数にも適用することである。いま一次元問題であり、領域分割を行うと図 4.2 に示す線要素となる。

i i+1

T1

e

T2

e

xi=x

1

ex

i+1=x

2

e

he=x2

e - x1

e

図 4.2: 2節点一次線要素

要素内を一次近似する一次要素を採用するため、形状関数は 2つとなる。よって、近似関数と重み関数は要素内で内挿関数N e

1 , Ne2 を使って次のように表される。

T = N e1T

e1 +N e

2Te2 =

2∑i=1

N ei T

ei = N e

i Tei , w = N e

1we1 +N e

2we2 =

2∑i=1

N ei w

ei = N e

i wei (4.2.5)

ここで、式の最後で∑が省略されているが、これは総和規約による表記法であり、同一項において 2つの同じ添

え字が繰り返して現れた場合は、総和規約の表記法を用いる。T e1 , T

e2 はある要素での節点での温度を示し、we

1, we2

はある要素の節点での重み(任意定数)である。要素 e内での内挿関数N e1 , N

e2 は要素が線要素であり一次近似する

ため、次のような形状関数となる。

N e1 =

xe2 − x

he, N e

2 =x− xe1he

(4.2.6)

これらの近似関数 T , w を弱形式に代入して有限要素式を求める。∫ xe2

xe1

2∑j=1

N ejw

ejvx

d∑2

i=1Nei T

ei

dxdx+ k

∫ xe2

xe1

d∑2

j=1Nejw

ej

dx

d∑2

i=1Nei T

ei

dxdx = 0

2∑j=1

2∑i=1

wejT

ei

∫ xe2

xe1

N ej vx

dN ei

dxdx+ k

2∑j=1

2∑i=1

wejT

ei

∫ xe2

xe1

dN ej

dx

dN ei

dxdx = 0 (4.2.7)

25

Page 27: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

これを行列表示すると以下となる。

wTe (Ae +De)T e = 0 (4.2.8)

なおここで、we,Ae,De,T eの成分は以下のように示される。

T e =

T e1

T e2

、we =

we1

we2

(4.2.9)

Ae =

[∫ xe2

xe1N e

1vxdNe

1dx dx

∫ xe2

xe1N e

2vxdNe

1dx dx∫ xe

2xe1N e

1vxdNe

2dx dx

∫ xe2

xe1N e

2vxdNe

2dx dx

], De = k

[∫ xe2

xe1

dNe1

dxdNe

1dx dx

∫ xe2

xe1

dNe2

dxdNe

1dx dx∫ xe

2xe1

dNe1

dxdNe

2dx dx

∫ xe2

xe1

dNe2

dxdNe

2dx dx

](4.2.10)

we1, w

e2は任意の定数であるので、weは両辺で消去して考えることができ次の式となる。

(Ae +De)T e = 0 (4.2.11)

このAe, Deの各成分は計算することができる。例として、各第 11成分の計算を行う。まず、内挿関数の微分は次のようになる。

dN e1

dx= − 1

he,

dN e2

dx=

1

he(4.2.12)

したがってAeの 11成分は以下となる。

∫ xe2

xe1

N e1vx

dN e1

dxdx =

∫ xe2

xe1

x2 − x

he

(− 1

he

)dx = − 1

h2e

[x2x− x2

2

]xe2

xe1

= − 1

h2e

[(x2x2 −

x222

)(x2x1 −

x212

)]= − 1

h2e

[x222

− x2x1 +x212

]= − 1

h2e

(x2 − x1)2

2= −1

2(4.2.13)

また、Deの 11成分も同様に計算ができ以下のようになる。∫ xe2

xe1

dN e1

dx

dN e1

dxdx =

∫ xe2

xe1

(− 1

he

)(1

he

)dx =

1

h2e[x]

xe2

xe1==

1

h2e[xe2 − xe1] =

1

he(4.2.14)

他の第 12,21,22成分についても同様な計算を行うことでAe,Deは次のようになる。

Ae = vx

−1

2

1

2

−1

2

1

2

, De = k

1

he− 1

he

− 1

he

1

he

(4.2.15)

式 (4.2.11)を全要素について足し合わせることで、領域全体の有限要素方程式が次のように得られる。

(A+D)T = 0 (4.2.16)

この有限要素方程式から節点 i に関する部分を取り出す。iに関する部分は、先ほどの問題で考えた要素の節点がiと i+ 1から成る要素と i− 1と iからなる要素についてである。計算を簡単にするために、要素の幅が全て等しくhであるものを考える。ここで、i− 1と iからなる要素の有限要素方程式は以下のようになる。

vx

−1

2

1

2

−1

2

1

2

+k

h

[1 −1−1 1

]Ti−1

Ti

=

vx

(−1

2Ti−1 +

1

2Ti

)+ k

(Ti−1

h− Ti

h

)vx

(−1

2Ti−1 +

1

2Ti

)+ k

(−Ti−1

h+

Ti

h

) =

00

(4.2.17)

26

Page 28: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

また、iと i+ 1からなる要素の有限要素式は以下のようになる。vx

−1

2

1

2

−1

2

1

2

+k

h

[1 −1−1 1

] Ti

Ti+1

=

vx

(−1

2Ti +

1

2Ti+1

)+ k

(Ti

h− Ti+1

h

)vx

(−1

2Ti +

1

2Ti+1

)+ k

(−Ti

h+

Ti+1

h

) =

00

(4.2.18)

領域全体の有限要素式で節点 iに関する式は、式 (4.2.17)の 2行目と式 (4.2.18) の一行目を足し合わせた式である。これらの式を足し合わせたものは以下のようになる。

vxTi+1 − Ti−1

2+ k

−Ti+1 + 2Ti − Ti−1

h= 0 (4.2.19)

この式の両辺を h で割り符号を整理すると次のようになる。

vxTi+1 − Ti−1

2h− k

Ti+1 − 2Ti + Ti−1

h2= 0 (4.2.20)

この式は中心差分による差分法で表される式と同一である。

風上差分法との類似性 文献 [4, p.45]『続・有限要素法による流れのシミュレーション』では、この問題を実際に数値解析で解いた結果が示されている。このとき、Peclet数

Pe =|vx|h2k

(4.2.21)

が大きい (Pe > 1) ときに数値振動が発生している。Peclet数の内、流速 vxや温度伝導率 kは解析対象のデータとして与えられる。解析者が値を決めることができるのは、要素幅 hである。よって、数値振動を回避するにはPeclet数が小さくなる (Pe ≤ 1)要素幅 hになるように要素分割を行う必要がある。しかし、実際には計算機の性能や解析時間など解析者側の都合で要素分割を小さくできない場合がありこのままでは不都合である。この問題を解決するために、当初有限差分法で移流項に対して後退差分することに注目がなされた。有限差分法とは、微分方程式の解を微分の定義に基づいて解を求める方法である。簡単な例として一階微分方程式を考える。

u′(x) = 3u(x) + 2 (4.2.22)

これを解くには差分商u(x+ h)− u(x)

h≈ u′(x) (h → 0) (4.2.23)

を用いてu(x+ h) = u(x) + h(3u(x) + 2) (4.2.24)

と近似する。このようにして差分を使って微分方程式を近似することを差分法という。(例に挙げたような差分のしかたをとくにオイラー法と呼ばれている。)式 (4.1.1)の移流項に対して後退差分、拡散項に対して中心差分を用いた場合の離散化方程式は以下のようになる。

vxTi − Ti−1

h− k

Ti+1 − 2Ti + Ti−1

h2= 0 (4.2.25)

この近似手法は一次精度風上差分法 (upwind difference method)と呼ばれている。この式はGalerkin法での離散化方程式 (4.2.20) と形が似ている。実際に Galerkin 法で離散化された式 (4.2.20)は風上差分法で離散化された式

(4.2.25)に kに ka =|vx|h2だけ余分に加えたものと等しい。よって、式 (4.2.25) は次のように変形できる。

vxTi+1 − Ti−1

2h− (k + ka)

Ti+1 − 2Ti + Ti−1

h2= 0 (4.2.26)

ここで ka =|vx|h2は人工拡散 (artificial diffusion)係数である。中心差分とGalerkin法は等しいので、有限要素法

では人工拡散係数があらかじめ加えられた次式

vx∂T

∂x− (k + ka)

∂2T

∂x2= f in Ω (4.2.27)

27

Page 29: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

に対して、Galerkin法が適用された。(ここで f は発生項である。)つまり、∫ L

0wvx

dT

dxdx+

∫ L

0(k + ka)

dw

dx

dT

dxdx = 0 (4.2.28)

となる。式 (4.2.28)の離散化手法はUpwind Galerkin 法と呼ばれている。しかし、この方法による過剰な人工拡散が入ることによる「なまった」解を与えることが判明した。そこで、kaの代わりに安定性を損なわない必要最小限の人工拡散係数 k0 = kaξ が導入された。ここで、ξは最適な人工拡散係数を与えるパラメータであり、次の離散化方程式

vxTi+1 − Ti−1

2h− (k + k0)

Ti+1 − 2Ti + Ti−1

h2= 0, , k0 =

|vx|h2

ξ (4.2.29)

の解が移流拡散方程式の解と一致するように以下のように示された。

k0 =|vx|h2

ξ(Pe) =|vx|h2

(cothPe −

1

Pe

), Pe =

|vx|h2k

(4.2.30)

ここで、cothxは以下で示される関数である。

cothx =1

tanhx=

coshx

sinhx=

ex−e−x

2ex+e−x

2

=ex − e−x

ex + e−x(4.2.31)

4.3 Upwind Petrov-Galerkin法Upwind Galerkin 法による離散化方程式 (4.2.28)に最適な人工拡散係数 k0をあてはめると次式が得られる。∫ L

0wvx

dT

dxdx+

∫ L

0(k + k0)

dw

dx

dT

dxdx = 0 (4.3.1)

そして、上式を変形すると次のようになる。∫ L

0

(w +

k0vx

dw

dx

)vx

dT

dxdx+

∫ L

0kdw

dx

dT

dxdx = 0 (4.3.2)

このことから、Upwind Galerkin法は移流項に対する重み関数 wの代わりに T と異なる近似形の重み関数

w = w +k0vx

dw

dx(4.3.3)

を用いた重み付き残差方程式になっていると解釈できる。しかし、この方法は支配方程式中に発生項 f が含まれる場合には離散化式∫ L

0wvx

dT

dxdx+

∫ L

0kdw

dx

dT

dxdx−

∫ L

0wfdx = 0 (4.3.4)

は精度が悪いことが指摘された。この原因は移流項と他の光とで異なる重み関数を用いていることにあり、全ての項に wを用いることが提案された。つまり、次のような式である。∫ L

0wvx

dT

dxdx+

∫ L

0kdw

dx

dT

dxdx−

∫ L

0wfdx = 0 (4.3.5)

ここで、

w = w +k0vx

dw

dx= w + τevx

dw

dx(4.3.6)

である。要素ごとに異なるパラメータをもつ τe は安定化パラメータ (stabilization parameter)と呼ばれ、次式で与えられる。

τe =he

2|vx|ξ(Pe), ξ(Pe) = cothPe −

1

Pe, Pe =

|vx|he2k

(4.3.7)

ここに vxは各要素における流速、heは要素サイズ、Peは Peclet数である。

28

Page 30: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

式 (4.3.5)はGalerkin法の重み関数 wの代わりに近似関数 T と異なる近似関数形の重み関数 wを全ての項に用いた重み付き残差式になっている。このように、近似関数と異なる基底関数を重み関数に用いる方法をPetrov-Galerkin法という。式 (4.3.5)に式 (4.3.6)を代入すると次式になる。∫ L

0wvx

dT

dxdx+

∫ L

0kdw

dx

dT

dxdx−

∫ L

0wfdx+

n∑e=1

∫ xe2

xe1

(vx

dw

dx

)(vx

dT

dx− k

d2T

dx2− f

)dx = 0 (4.3.8)

ここで、左辺第 1項から第 3項までは Galerkin 法による離散化と同じなので Galerkin項と呼び、第 4項が新たに付加された安定化項である。なお、安定化項のパラメータ τe は要素ごとに独立であるので、安定化項は各要素Ωe = (xe1, x

e2) の積分を全要素数 nまで総和を取ったものとしている。前項と同様に、2節点一次要素を用いて離散

化すると、各要素における有限要素方程式は次のようになる。

wej

∫ xe2

xe1

vxNej

dN ei

dxdxT e

i +wej

∫ xe2

xe1

kdNj

dx

dNi

dxdxT e

i −wej

∫ xe2

xe1

Njfdx+wejτe

∫ xe2

xe1

vxdN e

j

dxvx

dN ei

dxdxT e

i −wejτe

∫ xe2

xe1

vxdN e

j

dxfdx = 0

(4.3.9)なお、安定化項における拡散項は 1次要素を用いる場合には考慮されない。なぜならば、一次要素を用いると近似関数は一次関数になる、2階微分を施すと 0になるからである。また、重み関数we

j は任意に選んだ関数であるので、有限要素法方程式は次式となる。

∫ xe2

xe1

vxNej

dN ei

dxdxT e

i +

∫ xe2

xe1

αdNj

dx

dNi

dxdxT e

i −∫ xe

2

xe1

Njfdx+ τe

∫ xe2

xe1

vxdN e

j

dxvx

dN ei

dxdxT e

i − τe

∫ xe2

xe1

vxdN e

j

dxfdx = 0

(4.3.10)そして、各要素の有限要素方程式を行列表示すると次式となる。

(Ae +De +Aδe)T e = Ge +Gδe (4.3.11)

ここで、Ge は発生項ベクトル、Aδe とGδe はそれぞれ安定化項における移流行列と発生項ベクトルであり、各形数行列は個々の要素ごとに以下のように表される。

Aδe = τe

∫ xe2

xe1

vxdN e

j

dxvx

dN ei

dxdxT e

i = τev2x

1

he− 1

he

− 1

he

1

he

(4.3.12)

Ge =

∫ xe2

xe1

Njfdx =

fhe2

−fhe2

(4.3.13)

Gδe = τe

∫ xe2

xe1

vxdNj

dxfdx = τevx

−ff

(4.3.14)

なお、Gは発生項の英訳Generation termのイニシャルから名付けている。式 (4.3.11) を全要素について重ね合わせると、全体の有限要素方程式が以下のように得られる。

(A+D +Aδ)T = G+Gδ (4.3.15)

4.4 SUPG(Streamline Upwind/Petrov-Galerkin)法

ここでは多次元の移流拡散方程式である式 (4.0.1) に対する Petrov-Galerkin法の適用について考える。解析領域Ωを n個の 1次要素の要素領域 Ωe(e = 1, 2, · · · , n)に分割する。Petrov-Galerkin法の重み関数 wは式 (4.3.7)の安定化パラメータ τeを含む近似関数として以下のように拡張することができる。

w = w + τev · ∇w = w + τevi∂w

∂xi(4.4.1)

このとき移流拡散方程式 (4.0.1)の定常問題に対して、この重み関数 w を用いた Petrov-Galerkin 法を適用し、さらに安定化パラメータ τeについて整理すれば以下の離散化方程式が得られる。∫

Ωwvi

∂T

∂xidΩ+

∫Ωk∂w

∂xi

∂T

∂xidΩ−

∫ΩwfdΩ+

n∑e=1

τe

∫Ωvi∂w

∂xi

(vj

∂T

∂xj− k

∂2T

∂x2j− f

)dΩ =

∫Γwg2dΩ (4.4.2)

29

Page 31: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

ここで、左辺第 1項から第 3項及び右辺項はGalerkin項、第 4項は付加された安定化項である。右辺項はGalerkin 項の拡散項を部分積分したことにより生じる境界積分項である。なお、一次要素を用いる場合は近似関数が一次関数となり、安定化項の拡散項は 0となり考慮されない結果となる。安定化項における第 1項は

τe

∫Ω

(vi∂w

∂xi

)(vj

∂T

∂xj

)dΩ (4.4.3)

は、係数行列と節点値からなる 2次形式となり、流れの流線方向 (streamline)のみに安定化作用を与える人工拡散となる。このことから、Upwind Galerkin法を多次元に拡張した式 (4.4.2)に基づく方法は、SUPG(StreamlineUpwind/Petrov-Galerkin)法と呼ばれている。なお、多次元問題における安定化パラメータ τeも 1次元問題と同様に以下のように多次元へ拡張して与えられる。

τe =he2|v|

ξ(Pe), ξ(Pe) = cothPe −1

Pe, Pe =

|v|he2k

(4.4.4)

なお、文献 [4, pp.53-54]『続・有限要素法による流れのシミュレーション』によると、T が急激に変化する流線近傍ではオーバーシュートおよびアンダーシュートの挙動がみられる。この問題に対しては、式 (4.4.2)の左辺に次に示す衝撃捕捉項 (shock capturing)と呼ばれる項を付加することにより回避できる。

n∑e=1

τLSIC

∫Ωe

∂w

∂xi

∂T

∂xidΩ (4.4.5)

ここで、

τLSIC =|v|he2

ξ′(Pe), ξ′(Pe) =

Pe

3(Pe ≤ 3)

1 (Pe > 3)(4.4.6)

である。

4.5 要素サイズの検討安定化項を計算する上で、要素サイズ heをどう決定するかという問題がある。これについては文献 [4, pp.81-82]

『続・有限要素法による流れのシミュレーション』に以下のような設定方法が記載されていた。[引用開始]要素の長さを定義する方法として、三角形の場合、

1. 要素面積と同じ面積の円の直径とする.

2. 要素を構成する辺の最長の長さとする.

3. 要素の 2倍の面積と同じ面積の正方形の一片の長さとする.

などが考えれれるが,ここでは,上流化という考えに基づき,流れの方向を考慮して要素長を定義する方法について解説する.流れの方向を考慮した要素長は,以下の式で定義される [1,2].

he = 2

(nen∑α=1

∣∣∣∣( uei||uei ||

)(∂N e

α

∂xi

)∣∣∣∣)−1

[引用終了]この式において、nenは要素での節点数 uei は節点 iでの移流速度、||uei ||は流速の大きさ

||uei || =

√√√√ nd∑i=1

(uei ) (4.5.1)

である。(ndは次元数である。)これを参考に要素サイズの計算においてこの式をあてはめようと試みた。具体的に四角形一次要素のとき、以下のようになる。

he = 2

(4∑

α=1

∣∣∣∣∣ vx√vx2 + vy2

∂N eα

∂x+

vy√vx2 + vy2

∂N eα

∂y

∣∣∣∣∣)−1

(4.5.2)

この式は流速 vx, vy が 0または十分小さいときには要素サイズ heもまた 0となってしまう。そのため、本研究では流速が 0.001[m/s]以下は流速が十分に小さいとして、要素の各辺の長さの平均値を要素サイズとして設定した。

30

Page 32: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

4.6 二次元定常移流拡散方程式へのSUPG法の適用この節では、本研究で取り扱う以下で示される二次元定常移流拡散問題に SUPG法を適用させ、さらに衝撃捕捉項を付加させることで安定化を施した有限要素法の適用を考える。 vx

∂T

∂x+ vy

∂T

∂y− k

(∂2T

∂x2+

∂2T

∂y2

)= 0@(Ω上) (4.6.1)

T = g1Γ1上),  frac∂T∂n = g2@(Γ2上) (4.6.2)

式 (4.6.1)に重み付き残差法を適用させていく。∫Ω

(vx

∂T

∂x+ vy

∂T

∂y

)wdΩ− k

∫Ω

(∂2T

∂x2+

∂2T

∂y2

)wdΩ = 0 (4.6.3)

この式に Petrov Galerkin法を適用させていく。要素分割に四角形一次要素を用いると、要素内での近似関数である内挿関数と重み関数は以下の式になる。

T =

4∑i=1

N ei T

ei = N e

1Te1 +N e

2Te2 +N e

3Te3 +N e

4Te4

w =

4∑i=1

N ei w

ei = N e

1we1 +N e

2we2 +N e

3we3 +N e

4we4

(4.6.4)

ここで Petrov-Galerkin法を適用し、重み関数に

w = w + τev · ∇w = w + τevi∂w

∂xi= w + τe

(vx

∂w

∂x+ vy

∂w

∂y

)(4.6.5)

τe =he2|v|

ξ(Pe), ξ(Pe) = cothPe −1

Pe, Pe =

|v|he2k

(4.6.6)

を使う。これらを式 (4.6.3)にあてはめる。∫Ω

(vx

∂T

∂x+ vy

∂T

∂y

)wdΩ− k

∫Ω

(∂2T

∂x2+

∂2T

∂y2

)wdΩ = 0 (4.6.7)

∫Ω

(vx

∂T

∂x+ vy

∂T

∂y

)(w +

n∑e=1

τe

(vx

∂w

∂x+ vy

∂w

∂y

))dΩ

− k

∫Ω

(∂2T

∂x2+

∂2T

∂y2

)(w +

n∑e=1

τe

(vx

∂w

∂x+ vy

∂w

∂y

))dΩ = 0 (4.6.8)

∫Ωw

(vx

∂T

∂x+ vx

∂T

∂x

)dΩ−

∫Ωk

(w∂2T

∂2x+ w

∂2T

∂2y

)dΩ

+

n∑e=1

τe

∫Ω

(vx

∂w

∂x+ vx

∂w

∂x

)(vx

∂T

∂x+ vy

∂T

∂y− k

∂2T

∂x2− k

∂2T

∂y2

)dΩ = 0 (4.6.9)

ここで、nは全要素数である。この式のGalerkin項に対して、Greenの公式を適用して弱形式を求めると以下のようになる。

∫Ω

(vx

∂T

∂x+ vy

∂T

∂y

)wdΩ+ k

∫Ω

(∂T

∂x

∂w

∂x+

∂T

∂y

∂w

∂y

)dΩ

+

n∑e=1

τe

∫Ω

(vx

∂w

∂x+ vx

∂w

∂x

)(vx

∂T

∂x+ vy

∂T

∂y− k

∂2T

∂x2− k

∂2T

∂y2

)dΩ = k

∫Γ2

g2wdγ (4.6.10)

31

Page 33: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

一次要素を用いる場合は T が一次関数となるため、∂T 2

∂x2=

∂T 2

∂y2= 0 となり安定化項の拡散項は考慮されない結

果となる。さらに左辺に衝撃捕捉項n∑

e=1

τLSIC

∫Ωe

∂w

∂xi

∂T

∂xidΩ =

n∑e=1

τLSIC

∫Ωe

(∂w

∂x

∂T

∂x+

∂w

∂y

∂T

∂y

)dΩ (4.6.11)

を加えて次の式になる。∫Ω

(vx

∂T

∂x+ vy

∂T

∂y

)wdΩ+ k

∫Ω

(∂T

∂x

∂w

∂x+

∂T

∂y

∂w

∂y

)dΩ+

n∑e=1

τe

∫Ω

(vx

∂w

∂x+ vx

∂w

∂x

)(vx

∂T

∂x+ vy

∂T

∂y

)dΩ

+

n∑e=1

τLSIC

∫Ωe

(∂w

∂x

∂T

∂x+

∂w

∂y

∂T

∂y

)dΩ = k

∫Γ2

g2wdγ (4.6.12)

ここで、衝撃捕捉項の安定化パラメータ τLSIC は以下で示される。

τLSIC =|v|he2

ξ′(Pe), ξ′(Pe) =

Pe3 (Pe ≤ 3)1 (Pe > 3)

(4.6.13)

ここで式 (4.6.4)より T , wに内挿近似式を代入していく。

4∑i=1

4∑j=1

T ei w

ej

∫Ωe

(vxN

ej

∂N ei

∂x+ vyN

ej

∂N ei

∂y

)dΩ+ k

4∑i=1

4∑j=1

T ei w

ej

∫Ωe

(∂N e

i

∂x

∂N ej

∂x+

∂N ei

∂y

∂N ej

∂y

)dΩ

+τe

4∑i=1

4∑j=1

T ei w

ej

∫Ωe

(vx

∂N ej

∂x+ vx

∂N ej

∂x

)(vx

∂N ei

∂x+ vy

∂N ei

∂y

)dΩ

+τLSIC

4∑i=1

4∑j=1

T ei w

ej

∫Ωe

(∂N e

j

∂x

∂N ei

∂x+

∂N ej

∂y

∂N ei

∂y

)dΩ =

4∑j=1

wej

∫Γ2

g2Nej dγ (4.6.14)

これを行列表示すると以下となる。

weT (Ae +De +Aδe +Dδe)T e = we

TF e (4.6.15)

ここでweは任意に選んだ定数であるので、両辺を除することができ

(Ae +De +Aδe +Dδe)T e = F e (4.6.16)

となる。この式は 4元連立一次方程式となっている。ここに、Ae,De,Aδe ,Dδe ,T e,F e はそれぞれ、移流行列、拡散行列、安定化行列、衝撃捕捉行列、温度ベクトル、熱フラックスベクトルである。各行列・ベクトルの定義を以下に示す。

Ae =

∫Ωe

N e1

(vx

∂N e1

∂x+ vy

∂N e1

∂y

)N e

2

(vx

∂N e1

∂x+ vy

∂N e1

∂y

)N e

3

(vx

∂N e1

∂x+ vy

∂N e1

∂y

)N e

4

(vx

∂N e1

∂x+ vy

∂N e1

∂y

)N e

1

(vx

∂N e2

∂x+ vy

∂N e2

∂y

)N e

2

(vx

∂N e2

∂x+ vy

∂N e2

∂y

)N e

3

(vx

∂N e2

∂x+ vy

∂N e2

∂y

)N e

4

(vx

∂N e2

∂x+ vy

∂N e2

∂y

)N e

1

(vx

∂N e3

∂x+ vy

∂N e3

∂y

)N e

2

(vx

∂N e3

∂x+ vy

∂N e3

∂y

)N e

3

(vx

∂N e3

∂x+ vy

∂N e3

∂y

)N e

4

(vx

∂N e3

∂x+ vy

∂N e3

∂y

)N e

1

(vx

∂N e4

∂x+ vy

∂N e4

∂y

)N e

2

(vx

∂N e4

∂x+ vy

∂N e4

∂y

)N e

3

(vx

∂N e4

∂x+ vy

∂N e4

∂y

)N e

4

(vx

∂N e4

∂x+ vy

∂N e4

∂y

)

(4.6.17)

De = k

∫Ωe

∂N e1

∂x

∂N e1

∂x+

∂N e1

∂y

∂N e1

∂y

∂N e1

∂x

∂N e2

∂x+

∂N e1

∂y

∂N e2

∂y

∂N e1

∂x

∂N e3

∂x+

∂N e1

∂y

∂N e3

∂y

∂N e1

∂x

∂N e4

∂x+

∂N e1

∂y

∂N e4

∂y∂N e

2

∂x

∂N e1

∂x+

∂N e2

∂y

∂N e1

∂y

∂N e2

∂x

∂N e2

∂x+

∂N e2

∂y

∂N e2

∂y

∂N e2

∂x

∂N e3

∂x+

∂N e2

∂y

∂N e3

∂y

∂N e2

∂x

∂N e4

∂x+

∂N e2

∂y

∂N e4

∂y∂N e

3

∂x

∂N e1

∂x+

∂N e3

∂y

∂N e1

∂y

∂N e3

∂x

∂N e2

∂x+

∂N e3

∂y

∂N e2

∂y

∂N e3

∂x

∂N e3

∂x+

∂N e3

∂y

∂N e3

∂y

∂N e3

∂x

∂N e4

∂x+

∂N e3

∂y

∂N e4

∂y∂N e

4

∂x

∂N e1

∂x+

∂N e4

∂y

∂N e1

∂y

∂N e4

∂x

∂N e2

∂x+

∂N e4

∂y

∂N e2

∂y

∂N e4

∂x

∂N e3

∂x+

∂N e4

∂y

∂N e3

∂y

∂N e4

∂x

∂N e4

∂x+

∂N e4

∂y

∂N e4

∂y

(4.6.18)

32

Page 34: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

Aδe = τe

∫Ωe

(vx

∂N e1

∂x+ vy

∂N e1

∂y

)(vx

∂N e1

∂x+ vy

∂N e1

∂y

) (vx

∂N e2

∂x+ vy

∂N e2

∂y

)(vx

∂N e1

∂x+ vy

∂N e1

∂y

)(vx

∂N e1

∂x+ vy

∂N e1

∂y

)(vx

∂N e2

∂x+ vy

∂N e2

∂y

) (vx

∂N e2

∂x+ vy

∂N e2

∂y

)(vx

∂N e2

∂x+ vy

∂N e2

∂y

)(vx

∂N e1

∂x+ vy

∂N e1

∂y

)(vx

∂N e3

∂x+ vy

∂N e3

∂y

) (vx

∂N e2

∂x+ vy

∂N e2

∂y

)(vx

∂N e3

∂x+ vy

∂N e3

∂y

)(vx

∂N e1

∂x+ vy

∂N e1

∂y

)(vx

∂N e4

∂x+ vy

∂N e4

∂y

) (vx

∂N e2

∂x+ vy

∂N e2

∂y

)(vx

∂N e4

∂x+ vy

∂N e4

∂y

)(vx

∂N e3

∂x+ vy

∂N e3

∂y

)(vx

∂N e1

∂x+ vy

∂N e1

∂y

) (vx

∂N e4

∂x+ vy

∂N e4

∂y

)(vx

∂N e1

∂x+ vy

∂N e1

∂y

)(vx

∂N e3

∂x+ vy

∂N e3

∂y

)(vx

∂N e2

∂x+ vy

∂N e2

∂y

) (vx

∂N e4

∂x+ vy

∂N e4

∂y

)(vx

∂N e2

∂x+ vy

∂N e2

∂y

)(vx

∂N e3

∂x+ vy

∂N e3

∂y

)(vx

∂N e3

∂x+ vy

∂N e3

∂y

) (vx

∂N e4

∂x+ vy

∂N e4

∂y

)(vx

∂N e3

∂x+ vy

∂N e3

∂y

)(vx

∂N e3

∂x+ vy

∂N e3

∂y

)(vx

∂N e4

∂x+ vy

∂N e4

∂y

) (vx

∂N e4

∂x+ vy

∂N e4

∂y

)(vx

∂N e4

∂x+ vy

∂N e4

∂y

)

(4.6.19)

Dδe = τLSIC

∫Ωe

∂N e1

∂x

∂N e1

∂x+

∂N e1

∂y

∂N e1

∂y

∂N e1

∂x

∂N e2

∂x+

∂N e1

∂y

∂N e2

∂y

∂N e1

∂x

∂N e3

∂x+

∂N e1

∂y

∂N e3

∂y

∂N e1

∂x

∂N e4

∂x+

∂N e1

∂y

∂N e4

∂y∂N e

2

∂x

∂N e1

∂x+

∂N e2

∂y

∂N e1

∂y

∂N e2

∂x

∂N e2

∂x+

∂N e2

∂y

∂N e2

∂y

∂N e2

∂x

∂N e3

∂x+

∂N e2

∂y

∂N e3

∂y

∂N e2

∂x

∂N e4

∂x+

∂N e2

∂y

∂N e4

∂y∂N e

3

∂x

∂N e1

∂x+

∂N e3

∂y

∂N e1

∂y

∂N e3

∂x

∂N e2

∂x+

∂N e3

∂y

∂N e2

∂y

∂N e3

∂x

∂N e3

∂x+

∂N e3

∂y

∂N e3

∂y

∂N e3

∂x

∂N e4

∂x+

∂N e3

∂y

∂N e4

∂y∂N e

4

∂x

∂N e1

∂x+

∂N e4

∂y

∂N e1

∂y

∂N e4

∂x

∂N e2

∂x+

∂N e4

∂y

∂N e2

∂y

∂N e4

∂x

∂N e3

∂x+

∂N e4

∂y

∂N e3

∂y

∂N e4

∂x

∂N e4

∂x+

∂N e4

∂y

∂N e4

∂y

dΩ (4.6.20)

T e =

T e1

T e2

T e3

T e4

, we =

we1

we2

we3

we4

(4.6.21)

ここで、F は隣接する要素間ではお互いに相殺されるため、要素境界辺での境界積分は、重ね合わせを行った段階で消去され、最終的に領域の境界 Γのみの積分が残ることとなる。例えば、ある要素Ωeの境界 Γ12で自然境界条件が与えられている場合以下のようになる。

F e = kg2

∫Γe

N e

1N e

200

dγ (4.6.22)

流速 vx, vy は要素内で内挿近似することで以下のような近似式となる。

vx ≈ vx =

4∑i=1

N ei v

exi = N e

1vex1 +N e

2vex2 +N e

3vex3 +N e

4vex4 (4.6.23)

vy ≈ vy =4∑

i=1

N ei v

eyi = N e

1vey1 +N e

2vey2 +N e

3vey3 +N e

4vey4 (4.6.24)

ここで、vexi, veyiはある要素 eの要素節点番号 i∗での流速である。

直接剛性法により、全要素数 nまで足し合わせることで全体の有限要素式が次のように求まる。

(A+D +Aδ +Dδ)T = F (4.6.25)

このようにして SUPG法と衝撃捕捉項による安定化を施した場合の有限要素式が求まった、

33

Page 35: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

第5章 三角形要素での解析

円のように曲線のある領域については四角形要素だけだと領域の形状を再現することが困難な場合がある。そういったときに三角形要素を使うことが有効となる。三角形要素の適用は研究が進んでおり、積分の公式が存在しているため形状関数も比較的簡単で座標変換を行わなくても計算ができる。このように、三角形要素には計算が行いやすい利点がある。一方で、節点が少ないため形状関数を使っての近似が他のものよりも精度が悪いという点もある。本研究ではあくまで四角形での要素分割がメインであるが、ここまでで述べた利点および、解析の段階での他の文献との比較の点からも三角形要素での解析が行えるように実装を試みた。ここでは、実装に当たって必要と思われる三角形要素での形状関数および積分したときの式について中心に記述する。

5.1 三角形要素での近似関数三角形領域における近似した温度 T を式で表現すると次のようになる。

T = α1 + α2x+ α3y (5.1.1)

ここで、α1 ∼ α3は係数である。ある要素 Ωeの要素節点番号 i∗においては次のように表される。

T = T ei = αe

1 + αe2x

ei + αe

3yei (i = 1 ∼ 3) (5.1.2)

ここで、eのついた T ei , x

ei , y

ei はそれぞれある要素 eの要素節点番号 i∗での温度と座標値であり、同様に αe

1 ∼ αe3

はある要素 eの要素節点番号 i∗での係数である。これを図に示すと図 5.1のようになる。この図において数字は要素節点番号を表す。

T1

1* 2*

3*

T3

T2

(x1,y1)

(x3,y3)

(x2,y2)

Ωe

e

e e e e

e ee

e

図 5.1: 三角形要素

式 (5.1.2)を行列表示で書くと次のようになる。1 xe1 ye11 xe2 ye21 xe2 ye3

αe1

αe2

αe3

=

T e1

T e2

T e3

(5.1.3)

これを αについて整理する。

αe1

αe2

αe3

=

1 xe1 ye11 xe2 ye21 xe2 ye3

−1T e1

T e2

T e3

=1∣∣∣∣∣∣

1 xe1 ye11 xe2 ye21 xe2 ye3

∣∣∣∣∣∣

xe2ye3 − xe3ye2 xe3y

e1 − xe1y

e3 xe1y

e2 − xe2y

e1

ye2 − ye3 ye3 − ye1 ye1 − ye2xe3 − xe2 xe1 − xe3 xe2 − xe1

T e1

T e2

T e3

(5.1.4)

34

Page 36: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

ここで、

De =

∣∣∣∣∣∣1 xe1 ye11 xe2 ye21 xe3 ye3

∣∣∣∣∣∣ = xe2y+xe1y

e2 + xe3y

e1 − (xe2y

e1 + xe3y

e2 + xe1y

e3) (5.1.5)

= xe1(ye2 − ye3) + xe2(y

e3 − ye1) + xe3(y

e1 − ye2) (5.1.6)

となる。Deはある三角形要素 Ωeの面積の二倍となっている。

ae∗i = xejyek − xeky

ej , be∗i = yej − yek, ce∗i = xek − xej (i, j, kは偶置換) (5.1.7)

偶置換とは、i=1のとき、j=2,k=3 となり、i=2のとき、j=3,k=1 となり、i=3のとき、j=1,k=2 となることである。上記の記号を用いて、さらに

aei =ae∗iDe

, bei =be∗iDe

, cei =ce∗iDe

(5.1.8)

とすると、次のようになる。

αe1

αe2

αe3

=1

De

ae∗1 ae∗2 ae∗3be∗1 be∗2 be∗3ce∗1 ce∗2 ce∗3

T e1

T e2

T e3

=

ae1 ae2 ae3be1 be2 be3ce1 ce2 ce3

T e1

T e2

T e3

(5.1.9)

これを連立方程式の形で書きなおすと次のようになる。 αe1 = ae1T

e1 + ae2T

e2 + ae3T

e3

αe2 = be1T

e1 + be2T

e2 + be3T

e3

αe3 = ce1T

e1 + ce2T

e2 + ce3T

e3

(5.1.10)

よって、式 (5.1.2)に式 (5.1.10)を代入することで近似関数は次のように表される。

T = ae1Te1 + ae2T

e2 + ae3T

e3 + (be1T

e1 + be2T

e2 + be3T

e3 )x+ (ce1T

e1 + ce2T

e2 + ce3T

e3 )y (5.1.11)

=

3∑i=1

(aei + beix+ ceiy)Tei (5.1.12)

ここで、( )の部分は三角形の面積を表すことから面積座標と呼ばれ、形状関数 Liとする。

Lei (x, y) = aei + beix+ ceiy (i = 1 ∼ 3) (5.1.13)

したがって、

T =3∑

i=1

LeiT

ei (5.1.14)

と近似できる。ここで、形状関数に関連したものを整理する。

Le1 = ae1 + be1x+ ce1y,

∂Le1

∂x= be1,

∂L1

∂y= ce1

Le2 = ae2 + be2x+ ce2y,

∂Le2

∂x= be2,

∂L2

∂y= ce2

Le3 = ae3 + be3x+ ce3y,

∂Le3

∂x= be3,

∂L3

∂y= ce3

(5.1.15)

ae1 =

ae∗1De

=xe2y

e3 − xe3y

e2

De, ae2 =

ae∗2De

=xe3y

e1 − xe1y

e3

De, ae3 =

ae∗3De

=xe1y

e2 − xe2y

e1

De

be1 =be∗1De

=ye2 − ye3De

, be2 =be∗2De

=ye3 − ye1De

, be3 =be∗3De

=ye1 − ye2De

ce1 =ce∗1De

=xe3 − xe2De

, ce2 =ce∗2De

=xe1 − xe3De

, ce3 =ce∗3De

=xe2 − xe1De

(5.1.16)

35

Page 37: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

De =

∣∣∣∣∣∣1 xe1 ye11 xe2 ye21 xe3 ye3

∣∣∣∣∣∣ = xe2ye3 + xe1y

e2 + xe3y

e1 − (xe2y

e1 + xe3y

e2 + xe1y

e3) (5.1.17)

= xe1(ye2 − ye3) + xe2(y

e3 − ye1) + xe3(y

e1 − ye2) (5.1.18)

ここで、ある三角形要素 Ωeの面積を Seとすると、De = 2Seが成立する。面積座標には積分の公式が存在し、以下のようになる。∫ ∫

Lel1 L

em2 Len

3 dxdy = 2Se l!m!n!

(l +m+ n+ 2)!(5.1.19)

Seは三角形要素 eの面積を表し、l,m, nは形状関数の指数を表す。

5.2 安定化を施した有限要素式への適用本研究で取り扱う問題は以下で示される二次元定常移流拡散問題である。

vx∂T

∂x+ vy

∂T

∂y− k

(∂2T

∂x2+

∂2T

∂y2

)= 0  (Ω内) (5.2.1)

T = g1  (Γ1上), ∂T

∂n= g2  (Γ2上) (5.2.2)

この問題に対して三角形要素を使った安定化有限要素法の適用を考える。三角形要素を使うとき、近似関数と近似形の重み関数 T , wは次のようになる。

T =3∑

i=1

N ei T

ei =

3∑i=1

LeiT

ei , w =

3∑i=1

N ei w

ei =

3∑i=1

Leiw

ei (5.2.3)

ここで、安定化を施すため Petrov-Galerkin法を適用し重み関数に次の式を用いる。

w = w + τev · ∇w = w + τevi∂w

∂xi= w + τe

(vx

∂w

∂x+ vy

∂w

∂y

)(5.2.4)

基本的には 4.6節と同じようにして有限要素式が導かれる。式の形として異なる点は内挿関数N ei の数が 3となる

点である。したがって途中の導出過程を省略した。要素分割に三角形要素を用いて、さらに安定化を施した有限要素式は以下のようになる。

(Ae +De +Aδe +Dδe)T e = F e (5.2.5)

各行列とベクトルは以下のようにそれぞれ 3× 3成分の行列と 3行のベクトルなる。

Ae =

∫Ωe

N e

1

(vx

∂N e1

∂x+ vy

∂N e1

∂y

)N e

2

(vx

∂N e1

∂x+ vy

∂N e1

∂y

)N e

3

(vx

∂N e1

∂x+ vy

∂N e1

∂y

)N e

1

(vx

∂N e2

∂x+ vy

∂N e2

∂y

)N e

2

(vx

∂N e2

∂x+ vy

∂N e2

∂y

)N e

3

(vx

∂N e2

∂x+ vy

∂N e2

∂y

)N e

1

(vx

∂N e3

∂x+ vy

∂N e3

∂y

)N e

2

(vx

∂N e3

∂x+ vy

∂N e3

∂y

)N e

3

(vx

∂N e3

∂x+ vy

∂N e3

∂y

)

dΩ (5.2.6)

De = k

∫Ωe

∂N e

1

∂x

∂N e1

∂x+

∂N e1

∂y

∂N e1

∂y

∂N e1

∂x

∂N e2

∂x+

∂N e1

∂y

∂N e2

∂y

∂N e1

∂x

∂N e3

∂x+

∂N e1

∂y

∂N e3

∂y∂N e

2

∂x

∂N e1

∂x+

∂N e2

∂y

∂N e1

∂y

∂N e2

∂x

∂N e2

∂x+

∂N e2

∂y

∂N e2

∂y

∂N e2

∂x

∂N e3

∂x+

∂N e2

∂y

∂N e3

∂y∂N e

3

∂x

∂N e1

∂x+

∂N e3

∂y

∂N e1

∂y

∂N e3

∂x

∂N e2

∂x+

∂N e3

∂y

∂N e2

∂y

∂N e3

∂x

∂N e3

∂x+

∂N e3

∂y

∂N e3

∂y

dΩ (5.2.7)

36

Page 38: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

Aδe = τe

∫Ωe

(vx

∂N e1

∂x+ vy

∂N e1

∂y

)(vx

∂N e1

∂x+ vy

∂N e1

∂y

) (vx

∂N e2

∂x+ vy

∂N e2

∂y

)(vx

∂N e1

∂x+ vy

∂N e1

∂y

)(vx

∂N e1

∂x+ vy

∂N e1

∂y

)(vx

∂N e2

∂x+ vy

∂N e2

∂y

) (vx

∂N e2

∂x+ vy

∂N e2

∂y

)(vx

∂N e2

∂x+ vy

∂N e2

∂y

)(vx

∂N e1

∂x+ vy

∂N e1

∂y

)(vx

∂N e3

∂x+ vy

∂N e3

∂y

) (vx

∂N e2

∂x+ vy

∂N e2

∂y

)(vx

∂N e3

∂x+ vy

∂N e3

∂y

)(vx

∂N e3

∂x+ vy

∂N e3

∂y

)(vx

∂N e1

∂x+ vy

∂N e1

∂y

)(vx

∂N e3

∂x+ vy

∂N e3

∂y

)(vx

∂N e2

∂x+ vy

∂N e2

∂y

)(vx

∂N e3

∂x+ vy

∂N e3

∂y

)(vx

∂N e3

∂x+ vy

∂N e3

∂y

)

dΩ (5.2.8)

Dδe = τLSIC

∫Ωe

∂N e

1

∂x

∂N e1

∂x+

∂N e1

∂y

∂N e1

∂y

∂N e1

∂x

∂N e2

∂x+

∂N e1

∂y

∂N e2

∂y

∂N e1

∂x

∂N e3

∂x+

∂N e1

∂y

∂N e3

∂y∂N e

2

∂x

∂N e1

∂x+

∂N e2

∂y

∂N e1

∂y

∂N e2

∂x

∂N e2

∂x+

∂N e2

∂y

∂N e2

∂y

∂N e2

∂x

∂N e3

∂x+

∂N e2

∂y

∂N e3

∂y∂N e

3

∂x

∂N e1

∂x+

∂N e3

∂y

∂N e1

∂y

∂N e3

∂x

∂N e2

∂x+

∂N e3

∂y

∂N e2

∂y

∂N e3

∂x

∂N e3

∂x+

∂N e3

∂y

∂N e3

∂y

dΩ (5.2.9)

Te =

T e1

T e2

T e3

(5.2.10)

熱フラックスベクトルF eは隣接要素境界辺で流束が相殺されるため、直接剛性法による重ね合わせの段階で要素境界辺での境界積分は消去される。そして最終的には領域の境界のみの積分が残る。したがって、ある要素 Ωeの境界 Γ12で熱フラックスが既知の場合は以下のようになる。

F e = kg2

∫Γe

N e1

N e2

N e3

dγ = kg2

∫Γe

N e1

N e20

dγ (5.2.11)

三角形要素を使うときは内挿関数N ei は形状関数 Le

i となる。本研究で取り扱う問題は 2次元であるため、境界積分においては次元が一次元となる。一次元の場合の面積座標は長さ座標または線座標と呼ばれる。1次元区間 Iにおいては以下で示される長さ座標の積分公式が存在する。

∫ILi1L

j2dx =

i!j!L

(1 + i+ j)!(i, jは整数) (5.2.12)

ここで、Lは区間 Iの長さである。熱フラックスベクトルでの境界積分の各成分に対して長さ座標の積分公式を適用する。各成分は形状関数が 1つしかないので 1行目と 2行目の成分は以下の同じ計算となる。

∫Γe

L11L

02dγ =

∫Γe

L01L

12dγ =

he12(1 + 1)!

=he122

(5.2.13)

ここで、he12は三角形要素の辺 1-2の長さである。したがって、熱フラックスベクトルは以下で示される。

F e = kg2

∫Γe

N e1

N e20

dγ =kg2h

e12

2

110

(5.2.14)

37

Page 39: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

他の行列については、さらに∂N e

i

∂x,∂N e

i

∂yの項も計算することができ次のように表される。

Ae =

∫Ωe

Le1 (vxb

e1 + vyc

e1) Le

2 (vxbe1 + vyc

e1) Le

3 (vxbe1 + vyc

e1)

Le1 (vxb

e2 + vyc

e2) Le

2 (vxbe2 + vyc

e2) Le

3 (vxbe2 + vyc

e2)

Le1 (vxb

e3 + vyc

e3) Le

2 (vxbe3 + vyc

e3) Le

3 (vxbe3 + vyc

e3)

dΩ (5.2.15)

De = k

∫Ωe

be1be1 + ce1ce1 be1b

e2 + ce1c

e2 be1b

e3 + ce1c

e3

be2be1 + ce2c

e1 be2b

e2 + ce2c

e2 be2b

e3 + ce2c

e3

be3be1 + ce3c

e1 be3b

e2 + ce3c

e2 be3b

e3 + ce3c

e3

dΩ (5.2.16)

Aδe = τe

∫Ωe

(vxbe1 + vyce1) (vxb

e1 + vyc

e1) (vxb

e2 + vyc

e2) (vxb

e1 + vyc

e1) (vxb

e3 + vyc

e3) (vxb

e1 + vyc

e1)

(vxbe1 + vyc

e1) (vxb

e2 + vyc

e2) (vxb

e2 + vyc

e2) (vxb

e2 + vyc

e2) (vxb

e3 + vyc

e3) (vxb

e2 + vyc

e2)

(vxbe1 + vyc

e1) (vxb

e3 + vyc

e3) (vxb

e2 + vyc

e2) (vxb

e3 + vyc

e3) (vxb

e3 + vyc

e3) (vxb

e3 + vyc

e3)

dΩ (5.2.17)

Dδe = τLSIC

∫Ωe

be1be1 + ce1ce1 be1b

e2 + ce1c

e2 be1b

e3 + ce1c

e3

be2be1 + ce2c

e1 be2b

e2 + ce2c

e2 be2b

e3 + ce2c

e3

be3be1 + ce3c

e1 be3b

e2 + ce3c

e2 be3b

e3 + ce3c

e3

dΩ (5.2.18)

ここで、いま流速 vx, vy は要素内で節点での流速 vexi, veyiを用いて内挿近似するので、

vx =

3∑i=1

= Leiv

exi = Le

1vex1 + Le

2vex2 + Le

3vex3, vy =

3∑i=1

= Leiv

eyi = Le

1vey1 + Le

2vey2 + Le

3vey3 (5.2.19)

であることに注意する。流速を内挿近似することで、Ae,Aδe の i, j成分をさらに式展開していく。Aeの i, j成分は

Lej (vxb

ei + vyc

ei ) = Le

j

(Le

1vex1 + Le

2vex2 + Le

3vex3)b

ei + (Le

1vey1 + Le

2vey2 + Le

3vey3)c

ei

= Le

jLe1(v

ex1b

ei + vey1c

ei ) + Le

jLe2(v

ex2b

ei + vey2c

ei ) + Le

jLe3(v

ex3b

ei + vey3c

ei ) =

3∑k=1

LejL

ek(v

exkb

ei + veykc

ei )

となる。また、Aδe の i, j成分は全体にかかっている τeを除いて考えると(vxb

ej + vyc

ej

)(vxb

ei + vyc

ei ) = vxvxb

ejb

ei + vxvyb

ejc

ei + vyvxc

ejb

ei + vyvyc

ejc

ei

= (Le1v

ex1 + Le

2vex2 + Le

3vex3)(L

e1v

ex1 + Le

2vex2 + Le

3vex3)b

ejb

ei + (Le

1vex1 + Le

2vex2 + Le

3vex3)(L

e1v

ey1 + Le

2vey2 + Le

3vey3)b

ejc

ei

+(Le1v

ey1 + Le

2vey2 + Le

3vey3)(L

e1v

ex1 + Le

2vex2 + Le

3vex3)c

ejb

ei + (Le

1vey1 + Le

2vey2 + Le

3vey3)(L

e1v

ey1 + Le

2vey2 + Le

3vey3)c

ejc

ei

= Le21 vex1v

ex1 + Le

1Le2v

ex1v

ex2 + Le

1Le3v

ex1v

ex3 + Le

2Le1v

ex2v

ex1 + Le2

2 vex2vex2 + Le

2Le3v

ex2v

ex3

+Le3L

e1v

ex3v

ex1 + Le

3Le2v

ex3v

ex2 + Le2

3 vex3vex3bejbei

+Le21 vex1v

ey1 + Le

1Le2v

ex1v

ey2 + Le

1Le3v

ex1v

ey3 + Le

2Le1v

ex2v

ey1 + Le2

2 vex2vey2 + Le

2Le3v

ex2v

ey3

+Le3L

e1v

ex3v

ey1 + Le

3Le2v

ex3v

ey2 + Le2

3 vex3vey3bejcei

+Le21 vey1v

ex1 + Le

1Le2v

ey1v

ex2 + Le

1Le3v

ey1v

ex3 + Le

2Le1v

ey2v

ex1 + Le2

2 vey2vex2 + Le

2Le3v

ey2v

ex3

+Le3L

e1v

ey3v

ex1 + Le

3Le2v

ey3v

ex2 + Le2

3 vey3vex3cejbei

+Le21 vey1v

ey1 + Le

1Le2v

ey1v

ey2 + Le

1Le3v

ey1v

ey3 + Le

2Le1v

ey2v

ey1 + Le2

2 vey2vey2 + Le

2Le3v

ey2v

ey3

+Le3L

e1v

ey3v

ey1 + Le

3Le2v

ey3v

ey2 + Le2

3 vey3vey3cejcei =

3∑k=1

3∑l=1

2∑α=1

2∑β=1

LekLlv

eαkv

eβl

∂Lej

∂α

∂Lei

∂β(5.2.20)

となる。ここで表記を簡潔にするために、vx, vy の x, yが添え字 1,2に対応すると考え記号 α, βでおきなおした。これらの行列の各成分は積分の式となっている。いま形状関数に面積座標を用いており、面積座標の積分公式∫ ∫

Ll1L

m2 Ln

3dxdy = 2Sl!m!n!

(l +m+ n+ 2)!(5.2.21)

よりさらに計算することができる。なお、三角形の面積は要素ごとに異なるので Seとする。De,Dδe の成分には形状関数 Le

i が登場していないので、積分公式における l,m, n = 0のときと同じとなる。したがって、この二つに関しては三角形の面積 Seを掛けることで積分したことになる。

38

Page 40: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

Ae,Aδe の成分については、Le2i の項とLe

iLej の項とが存在する。Le2

i の項が存在するときは、公式における l,m, n

のいずれか一つのみが 2で他は 0という場合で Lei の添え字 iによらず、∫ ∫

L21L

02L

03dxdy =

∫ ∫L01L

22L

03dxdy =

∫ ∫L01L

02L

23dxdy = 2Se 2!

(2 + 2)!=

4Se

4!=

Se

3 · 2=

Se

6(5.2.22)

となる。同様に LeiL

ej の項も添え字 i, jによらず、∫ ∫

L11L

12L

03dxdy =

∫ ∫L01L

12L

13dxdy =

∫ ∫L11L

02L

13dxdy = 2Se 1!1!

(1 + 1 + 2)!=

2Se

4!=

Se

4 · 3=

Se

12(5.2.23)

となる。本来であれば、L2

i の項の存在する成分とL1i の成分とで場合分けを行って積分の計算をしていく必要がある。しか

し、L2i のある成分では値が Se/6であり、一方 L1

i のある成分は値が Se/12である。これから分かるように、L2i の

ある成分は Se/12を 2回足すことで表現できる。そのため、これらの L2i と L1

i の混ざった成分のあるAe,Aδe の計算は次のように行う。L2

i のある成分はその項の係っている係数を予め Se/12して足しておき、さらに全体を Se/12倍して足す。こうすることで、場合分けを行わずに計算を行える。ここまでのことから、三角形要素を用いた安定化を施した有限要素式の各項は次のようになる。

Ae =Se

12

vex1be1 + vey1ce1 vex2b

e1 + vey2c

e1 vex3b

e1 + vey3c

e1

vex1be2 + vey1c

e2 vex2b

e2 + vey2c

e2 vex3b

e2 + vey3c

e2

vex1be3 + vey1c

e3 vex2b

e3 + vey2c

e3 vex3b

e3 + vey3c

e3

+Se

12

3∑k=1

vexkbe1 + veykce1 vexkb

e1 + veykc

e1 vexkb

e1 + veykc

e1

vexkbe2 + veykc

e2 vexkb

e2 + veykc

e2 vexkb

e2 + veykc

e2

vexkbe3 + veykc

e3 vexkb

e3 + veykc

e3 vexkb

e3 + veykc

e3

(5.2.24)

De = Sek

be1be1 + ce1ce1 be1b

e2 + ce1c

e2 be1b

e3 + ce1c

e3

be2be1 + ce2c

e1 be2b

e2 + ce2c

e2 be2b

e3 + ce2c

e3

be3be1 + ce3c

e1 be3b

e2 + ce3c

e2 be3b

e3 + ce3c

e3

(5.2.25)

Aδe =Seτe12

2∑α=1

2∑β=1

3∑k=1

veαkveβk

∂Le

1

∂α

∂Le1

∂β

∂Le2

∂α

∂Le1

∂β

∂Le3

∂α

∂Le1

∂β∂Le

1

∂α

∂Le2

∂β

∂Le2

∂α

∂Le2

∂β

∂Le3

∂α

∂Le2

∂β∂Le

1

∂α

∂Le3

∂β

∂Le2

∂α

∂Le3

∂β

∂Le3

∂α

∂Le3

∂β

+

Seτe12

2∑α=1

2∑β=1

3∑k=1

3∑l=1

veαkveβl

∂Le

1

∂α

∂Le1

∂β

∂Le2

∂α

∂Le1

∂β

∂Le3

∂α

∂Le1

∂β∂Le

1

∂α

∂Le2

∂β

∂Le2

∂α

∂Le2

∂β

∂Le3

∂α

∂Le2

∂β∂Le

1

∂α

∂Le3

∂β

∂Le2

∂α

∂Le3

∂β

∂Le3

∂α

∂Le3

∂β

=Seτe12

2∑α=1

2∑β=1

3∑k=1

veαk

veβk

∂Le

1

∂α

∂Le1

∂β

∂Le2

∂α

∂Le1

∂β

∂Le3

∂α

∂Le1

∂β∂Le

1

∂α

∂Le2

∂β

∂Le2

∂α

∂Le2

∂β

∂Le3

∂α

∂Le2

∂β∂Le

1

∂α

∂Le3

∂β

∂Le2

∂α

∂Le3

∂β

∂Le3

∂α

∂Le3

∂β

+

3∑l=1

veβl

∂Le

1

∂α

∂Le1

∂β

∂Le2

∂α

∂Le1

∂β

∂Le3

∂α

∂Le1

∂β∂Le

1

∂α

∂Le2

∂β

∂Le2

∂α

∂Le2

∂β

∂Le3

∂α

∂Le2

∂β∂Le

1

∂α

∂Le3

∂β

∂Le2

∂α

∂Le3

∂β

∂Le3

∂α

∂Le3

∂β

(5.2.26)

Dδe = SeτLSIC

be1be1 + ce1ce1 be1b

e2 + ce1c

e2 be1b

e3 + ce1c

e3

be2be1 + ce2c

e1 be2b

e2 + ce2c

e2 be2b

e3 + ce2c

e3

be3be1 + ce3c

e1 be3b

e2 + ce3c

e2 be3b

e3 + ce3c

e3

(5.2.27)

Te =

T e1

T e2

T e3

, F e =kg2h

e12

2

110

(5.2.28)

このように、三角形要素を用いて有限要素方程式を書くことができた。領域全体は直接剛性法により、全要素について足し合わせることで得られる。三角形要素を適用することで、四角形要素とは異なり面積座標の公式を用いることで座標変換やガウス・ルジャンドル法を用いた数値積分を行わずに積分の計算まで行える。

39

Page 41: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

第6章 熱の移流拡散方程式の解析

ここまでで、解析の対象とする場の方程式とそれを計算機で解くための有限要素式の導出ができた。この章では実際に計算機で解くことについて述べる。

6.1 問題の設定解析に移る前にこの節で問題の設定やパラメータの設定などについてまとめておく。

6.1.1 場の方程式と有限要素方程式

本研究で扱う問題は二次元定常移流拡散問題で場の方程式は次のように表される。vx

∂T

∂x+ vy

∂T

∂y− k

(∂2T

∂x2+

∂2T

∂y2

)= 0  (Ω内) (6.1.1)

T = g1  (Γ1上), ∂T

∂n= g2  (Γ2上) (6.1.2)

この問題に SUPG法の適用と衝撃捕捉項の付加を行い、安定化有限要素法の適用を行う。重み付き残差法を適用し、さらに弱形式を求めると以下の式となる。∫

Ω

(vx

∂T

∂x+ vy

∂T

∂y

)wΩ+ k

∫Ω

(∂T

∂x

∂w

∂x+

∂T

∂y

∂w

∂y

)dΩ = k

∫Γ2

g2wdγ (6.1.3)

ある要素 eが nen角形一次要素である要素を使って要素分割を行うと、近似関数と近似形の重み関数 T , wは次のようになる。

T =

nen∑i=1

N ei T

ei w =

nen∑i=1

N ei w

ei (6.1.4)

本研究では、四角形一次要素と三角形一次要素での要素分割を想定するため nenは 3か 4となる。ここで、安定化を施すため Petrov-Galerkin法を適用し重み関数に次の式を用いる。

w = w + τev · ∇w = w + τevi∂w

∂xi= w + τe

(vx

∂w

∂x+ vy

∂w

∂y

)(6.1.5)

これらの近似関数を代入し、さらに衝撃捕捉項を付加することで安定化を施した有限要素式が以下のように求まる。

(Ae +De +Aδe +Dδe)T e = F e (6.1.6)

ここにAe,De,Aδe ,Dδe ,T e,F eはそれぞれ、移流行列、拡散行列、安定化行列、衝撃捕捉行列、温度ベクトル、熱フラックスベクトルである。これらの行列とベクトルの i, j成分は以下で示される。なお、拡散行列のように、二階微分項からなる積分領域を行う行列を剛性行列という慣習がある。

Ae =

∫Ωe

N ej

(vx

∂N ei

∂x+ vy

∂N ei

∂y

)dΩ, De = k

∫Ωe

(∂N e

i

∂x

∂N ej

∂x+

∂N ei

∂y

∂Nje

∂y

)dΩ (6.1.7)

Aδe = τe

∫Ωe

(vx

∂N ej

∂x+ vx

∂N ej

∂x

)(vx

∂N ei

∂x+ vy

∂N ei

∂y

)dΩ, Dδe = τLSIC

∫Ωe

(∂N e

i

∂x

∂N ej

∂x+

∂N ei

∂y

∂Nje

∂y

)dΩ

(6.1.8)

T e = Ti, we = wi (6.1.9)

40

Page 42: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

ここで流速 vx, vy は以下のような内挿近似式として示される。

vx ≈ vx =

nen∑i=1

N ei v

exi, vy ≈ vy =

nen∑i=1

N ei v

eyi (6.1.10)

vexi, veyiはある要素 eの各節点 iでの流速である。

F は隣接する要素間ではお互いに相殺されるため、要素境界辺での境界積分は、重ね合わせを行った段階で消去され、最終的に領域の境界 Γのみの積分が残ることとなる。例えば、ある四角形一次要素Ωeの境界 Γ12で自然境界条件が与えられている場合以下のようになる。

F e = kg2

∫Γe

N e

1N e

2N e

3N e

4

dγ = kg2

∫Γe

N e

1N e

200

dγ (6.1.11)

また、安定化項と衝撃捕捉項の安定化パラメータ τe, τLSIC はそれぞれ以下で示される。

τe =he2|v|

ξ(Pe), ξ(Pe) = cothPe −1

Pe=

1

tanhPe− 1

Pe, Pe =

|v|he2k

(6.1.12)

τLSIC =|v|he2

ξ′(Pe), ξ′(Pe) =

Pe3 (Pe ≤ 3)1 (Pe > 3)

(6.1.13)

安定化パラメータ τe, τLSIC に登場する要素サイズ heは次のように決めた。

he =

2

(m∑

α=1

∣∣∣∣ vx|v| ∂N eα

∂x+

vy|v|

∂N eα

∂y

∣∣∣∣)−1

(|v| > 0.001)

要素の各辺の長さの平均値 (|v| ≤ 0.001)

(6.1.14)

6.1.2 解析対象の物性値

場の方程式にあわれるパラメータとして現れる温度伝導率 kに注目する。kは k =

κ

ρcp[m2/s] で表される物理量である。このうち κ, ρ, cpは物質によって異なる物性値である。したがって、

このパラメータ kは物質によって異なる値であるといえる。地球上でもっとも埋蔵量が多いとされている金属の鉄に関する物性値を解析に用いるとする。この物性値のデータは文献 [7]『理科年表 平成 22(机上版)』より引用し、下記の表に記す。なお物性値の後ろのページ数は文献 [7]の参照ページとなっている。

表 6.1: 物性値元素記号 Fe 単位 参照ページ原子量 55.845 [g/mol] [p.365]密度 ρ 7.874 [103 kg/m−3](20) [p.371]熱伝導率 κ [W·m−1· K−1] [p.405]

定圧モル熱容量 cp [J· K−1· mol−1] [p.488]

ここで熱伝導率と定圧モル熱容量は温度に依存し次の表で示される。

表 6.2: 熱伝導率 κ[W · m−1· K−1]

温度t/[K]

173.25 273.15 373.15 573.15 973.15k 99 83.5 72 56 34

表 6.3: 定圧モル熱容量

温度cp[J · K−1· mol−1]

100K 200 K 298.15 K 400 K 600 Kcp 12.05 21.46 24.97 27.4 32.1

本研究では、定圧モル熱容量は 298.15 Kでの値で他の温度でも一定とし、熱伝導率も 273.15 Kでの値を使い他の温度でも一定とした。なお、定圧モル熱容量を計算しやすいようにmks単位系に換算した、定圧比熱容量に直すと以下のようになる。

24.97÷原子量 55.845 = 0.44713045[J

g K] ≈ 447.13[

J

kgK] (6.1.15)

41

Page 43: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

表 6.4: 入力データの物性値元素記号 Fe 単位 値熱伝導率 κ [W· m−1· K−1] 83.5密度 ρ [ kg/m−3](20) 7874

定圧比熱容量 cp [J· kg−1 K−1 ] 447.13

これらのデータより、入力データに使う値は以下の表 6.4に示した。これらの物性値から、温度拡散率 kを求めると以下のようになる。

k =κ

ρcp=

83.5

7874× 447.13= 2.3716× 10−5[m2/s] (6.1.16)

6.2 解析システムの構築解析システムの構築においてはFortran言語を用いて fem2dh steady ADという名称の解析プログラムを作成した。解析プログラムの作成にあたって、福井が文献 [11]で作成した fem2dh steady testという 2次元定常拡散問題を解析するプログラムをベースに開発を行った。

解析の流れ

計算機を使って解析を行う場合、一般的に次の 3つの処理を行う。

• プリプロセッサ(前処理):入力データの作成

• ソルバ(メインプロセッサ):計算により式を解く

• ポストプロセッサ(後処理):結果の可視化

解析を行うために、定められた形式で入力データを用意することをプリプロセッサと呼んでいる。プリプロセッサから受け取ったデータを使って計算を行うことをソルバと呼んでいる。ソルバとは解くという意味であり、厳密には連立方程式を解く部分のことである。しかし、一般的には入力データを受け取って計算をして結果を出すまでの段階までをさす。(本来の言葉の定義からするとメインプロセッサと呼ぶのがふさわしい)ソルバから出た結果は数値の羅列で人間がそれを見て理解するのは困難である。そこで、その数値の羅列をグラフなどにして可視化することで結果がどうなったかを理解しやすくする処理を行う。この処理をポストプロセッサと呼んでいる。本研究においてこれらの 3つの処理をどう行ったかを示す。

プリプロセッサ プリプロセッサが必要な要件としては、要素の物性値、要素の形状要素の番号と要素を構成する節点の番号、節点の番号と座標値、節点の流速値、境界条件がある。当初はこれらを手入力していた。しかし、要素数を増やして解析を行う際に入力に時間がかかりすぎる。そのため、melement4という長方形の領域全体で均一な四角形要素を作成するためのプログラムを作った。またmelement3という長方形領域全体で均一な直角三角形を要素を作成するためのプログラムを作った。それによって、要素の番号と要素を構成する節点の番号および、節点の番号と座標を設定する。さらに、境界条件については領域の各辺について辺ごとに値を設定するようにもした。

ソルバ ソルバとしては、有限要素法を用いた解析プログラムの fem2dh steady ADにより多元連立一次方程式を形成し、それをガウスの消去法で解く。その結果を節点番号や節点の座標および温度として出力する。

ポストプロセッサ ポストプロセッサとしては、ソルバで出力した座標と温度のデータから、グラフ描画ソフトである gnuplot を使い 3次元のグラフを描画する。gnuplotの使い方は文献 [10]を参考にした。または、もともと fem2dh steady testに実装されていた領域の分割図を表示するサブルーチンである d meshおよび、同じ温度の地点を同色で表示するサブルーチン conterにより出力される結果をそのままポストプロセッサとして採用した。このような構成で解析システムを構築した。

6.3 プログラムでの解析と結果この節では、実際にプログラム fem2dh steady AD を実行して得られた結果について述べる。

42

Page 44: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

6.3.1 4要素での解析

まず、この項では安定化を計算に組み込まずに計算を行い、解の不安定性の以前の問題として、きちんとプログラムができているかの確認を行う。次の図 6.1に示される四角形領域を対象とし、領域を四角形要素(正方形要素)4つに分割して解析を行った。なお、図 6.1において丸数字は節点番号を表し、[ ]で囲まれた数字は要素番号を表す。この領域を対象にして、作成したプログラムの妥当性 (validation)の確認を行った。領域全体で流速を 0とすると、実質的に拡散方程式と同じである。そこで次のような表 6.5に示される条件で解析を行った。

2

0 1 5 x

y

3

② ⑤

[1] [3]

4 ③

⑥ ⑨

[2] [4]

図 6.1: 4要素での解析領域

表 6.5: 入力条件パラメータ 値基本境界条件 T (1, y) = 300, T (5, y) = 200 (0 ≤ y ≤ 2)

自然境界条件∂T (x, y)

∂y= 0 (y = 0, 2)

流速 vx, vy 全節点で 0.0

一次元定常拡散問題との比較

拡散方程式での理論解は場の方程式

κ

(∂2T

∂x2+

∂2T

∂y2

)= 0 (6.3.1)

を解くことで求まる。図 6.1の場合では、自然境界条件と基本境界条件から、x方向に一様に熱が伝わると考えられる。つまり、各 xでの値での y方向の温度は等しくなると考えられ、y方向への温度勾配の ∂T

∂y は 0になり、∂2T∂y2も 0になると考えられ

る。従って図 6.1の場合においては温度を表す関数 T は xにのみ依存すると考えることができる。そのため、一次元定常拡散問題

κ

(d2T

dx2

)= 0 (6.3.2)

となり、これを解くとT = Ax+B(A,Bは積分定数) (6.3.3)

となる。これに基本境界条件を当てはめると、T (1) = 400, T (5) = 200より

300 = A+B

200 = 5A+B

となる。これらを連立させて解くと、A = −25、B = 325となることがわかる。よって、理論解は

T = −25x+ 325 (6.3.4)

であることがわかる。上記の結果を使って、プログラムを実行して得られた結果と理論解を表 6.6にまとめた。この結果から、理論解と値が一致しているため拡散の問題を解くことはできているといえる。拡散問題を解析するプログラムをベースに作成したため当然と言える結果である。

43

Page 45: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

表 6.6: 拡散問題として解析した結果節点番号 座標(x,y) 解析結果 [K] 理論解 [K]

1 1,0 300.00 300.002 1,2 300.00 300.003 1,4 300.00 300.004 3,0 250.00 250.005 3,2 250.00 250.006 3,4 250.00 250.007 5,0 200.00 200.008 5,2 200.00 200.009 5,4 200.00 200.00

表 6.7: 移流拡散問題としての解析結果節点番号 座標(x,y) 解析結果 [K]

1 1,0 300.002 1,2 300.003 1,4 300.004 3,0 434.085 3,2 185.896 3,4 90.767 5,0 200.008 5,2 200.009 5,4 200.00

移流拡散問題として解いた結果

続いて、流速を vx = vy = 1.0として解析を行った結果を載せる。移流が入った問題は非線形であるため、拡散方程式のように理論解を求めるのは困難である。それゆえに、比較となる理論解は求めていない。しかし、与えれた境界条件と表 6.6に示される拡散問題の結果から値が極端に異なっているかどうかの確認ができ、移流拡散の問題が解けているかの確認を目的とした。この表 6.7の結果からわかることとして、境界条件の与えられていない節点 4,5,6において値が急激に変化しており、領域の両端に与えた境界条件よりも値が大きくなったり、小さくなるというような拡散問題の結果からも考えにくい解析結果となっている。したがって、この結果からプログラムが移流拡散問題を解けていないではないかという疑念が生じた。この結果から、次項においてもさらに条件を変更して解析を行い、他の妥当と言える結果と照らし合わせて、本研究で作成したプログラムはどこまでの計算を行え、どこに問題点があるかを探った。

6.3.2 一次元定常移流拡散問題での検証

移流拡散において流速が 0のときである前項で扱った拡散の問題については、理論解と比較して妥当な結果が得られた。そこで、この項では移流拡散問題の理論解との比較を考える。本研究で解析の対象である二次元定常移流拡散方程式は以下で示される。

vx∂T

∂x+ vy

∂T

∂y− k

(∂2T

∂x2+

∂2T

∂y2

)= 0 (6.3.5)

この式の理論解をこのまま求めることは困難である。しかし、4.1節で扱ったように一次元問題になれば理論解を求めることは可能である。そこで、境界条件と流速を一次元問題と同じになるように定めることで、一次元定常移流拡散問題の理論解と解析の結果を比較した。

一次元定常移流拡散問題の理論解

以下で示される境界条件を持つ一次元定常移流拡散問題について考える。

vxdT

dx− k

d2T

dx2= 0 (0 < x < L) (6.3.6)

T (0) = 1, T (L) = 0 (6.3.7)

44

Page 46: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

この問題の特殊解は式 (4.1.12)で既に導出した次の式である。

T = 1− 1− evxkx

1− evxkL= 1− e

vxkx − 1

evxkL − 1

(6.3.8)

この式において、L=1でさらに vx = 1.0, k = 1.0とすると理論解は次のようになる。

T = 1− 1− ex

1− e(6.3.9)

x方向に対する一次元問題との比較

式 (6.3.9)より、一次元移流拡散問題の理論解が求まった。この理論解との比較を行うために、本研究で作成した解析プログラムでも表 6.8に示した一次元定常移流拡散問題となるような条件で解析を行った。要素分割は図 6.2に示したような四角形(正方形)要素 400個による分割で行った。

表 6.8: 一次元移流拡散問題での解析条件流速 全節点で vx = 1.0, vy = 0.0

温度拡散率 k=1.0解析領域 1×1の正方領域要素分割 四角形要素 400個基本境界条件 T(0,y)=1.0, T(1,y)=0.0 (0≤ y ≤ 1)

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

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

215

216

217

218

219

220

221

222

223

224

225

226

227

228

229

230

231

232

233

234

235

236

237

238

239

240

241

242

243

244

245

246

247

248

249

250

251

252

253

254

255

256

257

258

259

260

261

262

263

264

265

266

267

268

269

270

271

272

273

274

275

276

277

278

279

280

281

282

283

284

285

286

287

288

289

290

291

292

293

294

295

296

297

298

299

300

301

302

303

304

305

306

307

308

309

310

311

312

313

314

315

316

317

318

319

320

321

322

323

324

325

326

327

328

329

330

331

332

333

334

335

336

337

338

339

340

341

342

343

344

345

346

347

348

349

350

351

352

353

354

355

356

357

358

359

360

361

362

363

364

365

366

367

368

369

370

371

372

373

374

375

376

377

378

379

380

381

382

383

384

385

386

387

388

389

390

391

392

393

394

395

396

397

398

399

400

401

402

403

404

405

406

407

408

409

410

411

412

413

414

415

416

417

418

419

420

421

422

423

424

425

426

427

428

429

430

431

432

433

434

435

436

437

438

439

440

441

図 6.2: 四角形要素 400個での要素分割図

グラフ描画ソフトである gnuplotで、これらの一次元定常移流拡散問題の理論解と同じ条件で解析を行った結果を図 6.3に載せた。図 6.3において上側の曲線が理論解で下側の曲線が数値解である。一次元問題の比較において流速が逆方向に働いているような結果が得られた。そこで、流速が逆に働いているのではないかと疑い、流速を逆にした結果を図 6.4に示した。

0

0.2

0.4

0.6

0.8

1

0 0.2 0.4 0.6 0.8 1

T [K

]

x [m]

1-(1-exp(x))/(1-exp(1))"kekka4001ddonly.dat" using 2:4

図 6.3: vx = 1.0とした場合の理論解との比較 0

0.2

0.4

0.6

0.8

1

0 0.2 0.4 0.6 0.8 1

T [K

]

x [m]

"kekka400e1ddonlyv-10.dat" using 2:41-(1-exp(x))/(1-exp(1))

図 6.4: vx = −1.0とした場合の理論解との比較

図 6.4の結果から、流速を逆にすると厳密解と結果が一致していることがわかる。このことから、本研究で作成したプログラムでは x方向については流速が逆方向に作用しているということがわかった。

45

Page 47: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

y方向の一次元問題との比較

同様にして、今度は y 方向の一次元問題との比較を考える。境界条件として、下端(y = 0)に T = 1.0、上端(y = 1.0)に T = 0を与えて流速を vy = 1.0及び − 1.0とした。vy = 1.0とした結果を図 6.5に、vy = −1.0とした結果を図 6.6に載せた。

0

0.2

0.4

0.6

0.8

1

0 0.2 0.4 0.6 0.8 1

T [K

]

y [m]

"kekka400eydonly+.dat" using 3:41-(1-exp(x))/(1-exp(1))

図 6.5: vy = 1.0とした場合の理論解との比較 0

0.2

0.4

0.6

0.8

1

0 0.2 0.4 0.6 0.8 1

T [K

]

y [m]

"kekka400eydonly-.dat" using 3:41-(1-exp(x))/(1-exp(1))

図 6.6: vy = −1.0とした場合の理論解との比較

図 6.5の結果では流速が逆に働いているような結果が得られた。一方で図 6.6の結果は理論解と一致していることがわかる。これらの結果から、y方向の一次元問題として解こうとすると、x方向と同様に流速が逆に働いているような結果が得られた。ここまでの一次元定常移流拡散問題の理論解との比較から、x方向、y方向の両方で設定した流速が逆向きに作用しているような結果が得られた。プログラムの確認を行ったが、誤りを見つけることができなかった。流速を逆にすることで理論解と一致するという結果は、根本的な計算ができていなければ得られない結果だと判断できる。したがって、基本的な計算はできていると判断した。このことを踏まえて、一次元定常移流拡散問題を二次元定常移流拡散問題に拡張して解析結果の検討を行い、計算ができているかどうかの確認を行った。

6.3.3 二次元定常移流拡散問題での検証

結果の予想できるものとの比較

一次元問題の比較で、流速が逆に働いているものの計算はできているような結果が得られた。そこで、結果の予想できるような条件で実行して予想通りとなるか結果を比較する。ここで、予想される結果とは温度の分布が流れに伴って流下方向へ広がる結果である。解析条件は境界条件を領域の 4辺に T = 0 [K],領域の中心である節点番号 221に T = T (0.5, 0.5) = 1 [K]として、全節点で vx = −10, vy = 0 [m/s]とした。境界条件と流速以外は表 6.8と同じ領域、温度拡散率 kとした。それを図にしたものを図 6.7に示した。この条件で予想される結果は図 6.8のように流れの下流方向に分布が広がる状態である。この条件で解析して得られた結果をルーチン conterで可視化処理したものとして図 6.9に示した。この結果から、図 6.8のように予想される結果が得られた。この結果からだと計算はできているように判断できる。4章で扱ったように、移流が大きくなると解が不安定になる問題が生じるはずである。そこで、図 6.9と流速の大きさのみ変化させて他は同じ条件で解析を行った場合の結果を見ていく。流速を vx = −50,−500 [m/s]とした結果をそれぞれ図 6.10及び図 6.11に示した。図 6.10の結果では T = 1 [K]の境界条件を与えた地点付近の上流側に値がマイナスとなる箇所が存在している。図 6.11の結果では、領域内 T = 1 [K]の境界条件を与えた地点での x軸に沿って値が振動し、領域内で値がマイナスとなる箇所が図 6.10よりも増加していることがわかる。この領域内で値がマイナスとなる現象は vx = −30 [m/s]付近から観測された。このことから流速が大きくなると解が不安定になることがわかる。ここまでの解析においては、解の不安定性が問題とならなかったため、安定化を行わずに解の結果がどうなるか論じきた。この図 6.10及びに図 6.11で初めて本研究の解析結果では解の不安定性に遭遇した。この問題に対して 4章で論じた安定化有限要素法として SUPG法の適用と衝撃捕捉項を付加することで対処することとし、、安定化項と衝撃捕捉項Aδe ,Dδe を有限要素式に組み込んで計算を行う。不安定性が顕著である図 6.11の条件に対して、安定化を施して解析を行った結果を図 6.12に示した。この図 6.12の結果から、解が安定した結果を得られた。そのため、安定化の計算が適切に行われていることが判断できる。

46

Page 48: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

x

y

T=0 [K]

T=1 [K]

0 1

1

図 6.7: 解析条件

図 6.8: 予想される結果

0.00e+00

Temperature[K]

4.00e-02

8.00e-02

1.20e-01

1.60e-01

2.00e-01

2.40e-01

2.80e-01

3.20e-01

3.60e-01

4.00e-01

4.40e-01

4.80e-01

5.20e-01

5.60e-01

6.00e-01

6.40e-01

6.80e-01

7.20e-01

7.60e-01

8.00e-01

8.40e-01

8.80e-01

9.20e-01

9.60e-01

1.00e+00

図 6.9: 流速 vx = −10 [m/s]とした結果-1.67e-01

Temperature[K]

-1.20e-01

-7.34e-02

-2.67e-02

1.99e-02

6.66e-02

1.13e-01

1.60e-01

2.07e-01

2.53e-01

3.00e-01

3.47e-01

3.93e-01

4.40e-01

4.87e-01

5.33e-01

5.80e-01

6.27e-01

6.73e-01

7.20e-01

7.67e-01

8.13e-01

8.60e-01

9.07e-01

9.53e-01

1.00e+00

図 6.10: 流速 vx = −50 [m/s]とした結果

-8.75e-01

Temperature[K]

-8.00e-01

-7.25e-01

-6.50e-01

-5.75e-01

-5.00e-01

-4.25e-01

-3.50e-01

-2.75e-01

-2.00e-01

-1.25e-01

-5.03e-02

2.47e-02

9.98e-02

1.75e-01

2.50e-01

3.25e-01

4.00e-01

4.75e-01

5.50e-01

6.25e-01

7.00e-01

7.75e-01

8.50e-01

9.25e-01

1.00e-00

図 6.11: 流速 vx = −500 [m/s]とした結果-9.29e-03

Temperature[K]

3.11e-02

7.15e-02

1.12e-01

1.52e-01

1.93e-01

2.33e-01

2.73e-01

3.14e-01

3.54e-01

3.94e-01

4.35e-01

4.75e-01

5.16e-01

5.56e-01

5.96e-01

6.37e-01

6.77e-01

7.17e-01

7.58e-01

7.98e-01

8.39e-01

8.79e-01

9.19e-01

9.60e-01

1.00e-00

図 6.12: vx = −500[m/s] に安定化を施した結果

47

Page 49: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

文献との比較

前項での検証はあくまで予想通りとなるかどうかだけで、厳密にあっているかどうかの検証はできない。そこで、本項では他の文献で示されている結果を引用し、同じ条件で本研究の解析プログラムで解析を行い同じ結果が得られるかどうかの確認を行い、本研究で開発した解析プログラムの妥当性を確かめた。比較に当たっては文献 [4, p.53]『続・有限要素法による流れのシミュレーション』に示されている結果を用いた。文献 [4]で用いられたの解析領域及び解析結果を図 6.13に引用して掲載した。

図 6.13: 文献の解析領域と解析結果(文献 [4, p.53]『続・有限要素法による流れのシミュレーション』より引用)

なお、この文献では安定化の影響を検証するために (b)Galerkin 法で解析したもの、(c)Upwind Galerkin 法で解析したもの、(d)SUPG 法で解析したものの 3パターンの解析結果が示されている。本研究ではUpwind Galerkin 法での解析は対応していないため、比較を行うのは (b)Galerkin 法と (d)SUPG 法とに限られる。図6.13において、aは流速ベクトルを表し、流速はθ = 60°方向に流れている。つまり、流速は vx = 0.5, vy = 0.5

√3

である。また、uは未知関数を表し、本研究の T に該当する。なお、文献 [4]では拡散係数 k = 1.0× 10−6,要素分割は 20×20の四角形要素を三角形に割って形成された形態の三角形要素 800個による要素分割で解析が行われている。本研究では四角形要素での解析を行っている。そのため、解析条件として 20×20の四角形要素を用いた。それ以外の条件は同じにした。前節の結果より、流速が逆に作用しているような結果がでたので、流速をマイナス方向にし

48

Page 50: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

て解析を行った。文献 [4]との比較のために本研究で解析を行う際の解析条件を表 6.9にまとめた。

表 6.9: 文献と比較するための解析条件

領域 1×1の正方領域要素分割  四角形要素 400個基本境界条件 T (0, y) = T (x, 0) = 1.0 (0 ≤ x, y ≤ 1.0)

自然境界条件∂T (1.0, y)

∂y=

∂T (x, 1.0)

∂x= 0 (0 ≤ x, y ≤ 1.0)

流速 vx = −0.5, vy = −0.5√3, v = 1

拡散係数 k = 10−6

解析結果は各項のあるなしでどのような影響が出るか確認するために、拡散項のみ、移流項と拡散項、移流項と拡散項と安定化項、移流項と拡散項と安定化項と衝撃捕捉項の 4パターンをそれぞれ図 6.14∼図 6.17に示した。

"400e3v0.dat"

0 0.2

0.4 0.6

0.8 1x [m]

0

0.2

0.4

0.6

0.8

1

y [m]

0

0.2

0.4

0.6

0.8

1

T [K]

図 6.14: 文献との比較:四角形要素,拡散項のみ

"400ev--.dat" using 2:3:4

0 0.2

0.4 0.6

0.8 1x [m]

0

0.2

0.4

0.6

0.8

1

y [m]

-2.5-2

-1.5-1

-0.5 0

0.5 1

1.5 2

2.5

T [K]

図 6.15: 文献との比較:四角形要素,移流拡散

"400ev--supg.dat" using 2:3:4

0 0.2

0.4 0.6

0.8 1x [m]

0

0.2

0.4

0.6

0.8

1

y [m]

-2e+06-1e+06

0 1e+06 2e+06 3e+06 4e+06 5e+06 6e+06

T [K]

図 6.16: 文献との比較:四角形要素,SUPG法

"400ev--stab.dat" using 2:3:4

0 0.2

0.4 0.6

0.8 1x [m]

0

0.2

0.4

0.6

0.8

1

y [m]

0 1e+07 2e+07 3e+07 4e+07 5e+07 6e+07 7e+07 8e+07 9e+07

T [K]

図 6.17: 文献との比較:四角形要素,SUPG法+衝撃捕捉項

これらの結果と文献の結果である図 6.13との対応関係を示す。本研究で解析した結果である図 6.15と図 6.16はそれぞれ文献の図 6.13の (b)Galerkin 法,(d)SUPG 法と対応すると考えられる。図 6.13に示される文献の結果をみると、境界条件値が流れによって領域に広がっていることが読み取ることができる。それに対して、図 6.15∼図 6.17に示される本研究での解析結果はその様子が見受けられらない。文献の図 6.13の (b)Galerkin 法と本研究での解析結果である図 6.15を比較すると、移流項が入ることで領域全体で数値振動が発生することは程度の差はあるものの共通の結果として得られた。しかし、振動の大きさが文献 [4]よりも大きい。また、前述の境界条件の不連続性の分布が維持されていない。続いて、文献の図 6.13の (d)SUPG法 と図 6.16の比較を行う。安定化が施されることで解の振動が収まるはずであり、文献の結果がそれを示している。しかし、図 6.16の結果では安定化項が入ることで振動が抑えられるべきところが逆にさらなる数値振動を引き起こしている。本研究で行ったこの解析結果は文献 [4, p.53]の結果と異なり、四角形要素で解析を行った。そのため、要素分割の違いがこのような結果をもたらしたとも考えることができる。しかし、要素分割が異なる場合においても同じ問題を解析しているため、計算の誤差ともいえるような結果の違いは想定されるものの、このような解が振動してしまうような違いを与えるとは考えにくい。この結果から、本研究で開発したプログラムの計算では二次元定常移流拡散問題の解析までは行えないと判断できる。

49

Page 51: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

自然境界条件として断熱条件 ∂T (1, y)/∂x = ∂T (x, 1)/∂y = 0 (x = y = 0 ∼ 1)を与えているにも関わらず、図6.16及び図 6.17では、x = y = 1付近で急激な勾配が発生しており、この条件を満たしていないような結果となっている。よって、自然境界条件の処理がうまくいっていないといえる。しかし、プログラムの該当箇所の確認を行ったがそのような誤りは見つからなかった。

三角形要素での解析

本研究では、当初四角形要素のみを領域の要素分割として想定した解析を行っていた。しかし、図 6.13に示される文献と同じ条件で比較をする上で文献と同じ三角形要素での解析が必要と感じた。そこで三角形要素を使った解析も実装した。まず、二次元定常移流拡散問題を解析する前の段階で三角形要素での解析が妥当であるかの検証を行う。検証には前項でも行った一次元定常移流拡散問題の理論解との比較を行う。表 6.8に示される解析条件のうち、要素分割のみが三角形要素 800個となる点を除けば全く同じ条件である。三角形要素で解析する際の領域の要素分割図を図 6.10に示した。

表 6.10: 三角形要素 800個での要素分割図

x方向の一次元問題として解いて、流速を vx = 1.0として解析した結果を図 6.18に、流速を vx = −1.0として解析した結果を図 6.19に示した。

0

0.2

0.4

0.6

0.8

1

0 0.2 0.4 0.6 0.8 1

T [K

]

x [m]

"400e3yokov+.dat" using 1:31-(1-exp(x))/(1-exp(1))

図 6.18: vx = 1.0とした場合の理論解との比較 0

0.2

0.4

0.6

0.8

1

0 0.2 0.4 0.6 0.8 1

T [K

]

x [m]

"400e3yoko-1d.dat" using 2:41-(1-exp(x))/(1-exp(1))

図 6.19: vx = −1.0とした場合の理論解との比較

これらの図 6.18および図 6.19の結果から四角形要素での解析と同様に x方向について流速が逆転する現象がみられた。同様にして、y方向の一次元問題として解いて、流速を vy = 1.0として解析した結果を図 6.20に、流速をvy = −1.0として解析した結果を図 6.21に示した。これらの図 6.20および図 6.21 の結果から y方向の一次元問題として解く場合も流速の逆転現象がみられた。これらの図 6.19及び図 6.21の解析結果は四角形要素での解析と異なり、データをみると理論解と完全に一致するわけではなくわずかな誤差を生じている。しかしながら、目視で違いを判別することが困難であるため計算誤差の許容範囲内と判断した。したがって、流速の逆転現象を考慮すると計算ができていると判断した。

50

Page 52: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

0

0.2

0.4

0.6

0.8

1

0 0.2 0.4 0.6 0.8 1

T [K

]

y [m]

"400e3tatev+.dat" using 2:31-(1-exp(x))/(1-exp(1))

図 6.20: vy = 1.0とした場合の理論解との比較 0

0.2

0.4

0.6

0.8

1

0 0.2 0.4 0.6 0.8 1

T [K

]

y [m]

"400e3tatev-.dat" using 2:31-(1-exp(x))/(1-exp(1))

図 6.21: vy = −1.0とした場合の理論解との比較

そのため、三角形要素でも図 6.13に示される文献の条件で解析を行い、流速の逆転現象を除くプログラムの妥当性を検証した。四角形要素での解析に使った表 6.9に示した条件うち、要素が三角形要素 800個に変更された以外は表 6.9と同じである。要素分割図は一次元定常移流拡散問題の解析と同じ図 6.10である。四角形要素で解析したときと同様に文献の解析条件で拡散項のみ、拡散項と移流項、SUPG法を適用した場合、SUPG法に衝撃捕捉項を加えた場合の 4パターンで解析を行った。その結果を図 6.22∼図 6.25に示した。

"400e3v--D.dat"

0 0.2

0.4 0.6

0.8 1x [m]

0

0.2

0.4

0.6

0.8

1

y [m]

0

0.2

0.4

0.6

0.8

1

T [K]

図 6.22: 文献との比較:三角形要素,拡散項のみ

"400e3v--.dat"

0 0.2

0.4 0.6

0.8 1x [m]

0

0.2

0.4

0.6

0.8

1

y [m]

-2.5-2

-1.5-1

-0.5 0

0.5 1

1.5 2

T [K]

図 6.23: 文献との比較:三角形要素,移流拡散

"400e3v--supg.dat"

0 0.2

0.4 0.6

0.8 1x [m]

0

0.2

0.4

0.6

0.8

1

y [m]

-0.4-0.2

0 0.2 0.4 0.6 0.8

1 1.2

T [K]

図 6.24: 文献との比較:三角形要素,SUPG法

"400e3v--stab.dat"

0 0.2

0.4 0.6

0.8 1x [m]

0

0.2

0.4

0.6

0.8

1

y [m]

-0.4-0.2

0 0.2 0.4 0.6 0.8

1 1.2

T [K]

図 6.25: 文献との比較:三角形要素,SUPG法+衝撃捕捉項

これらの三角形要素を用いた解析と文献の図 6.13対応関係を示す。本研究で三角形要素を用いた解析結果である図 6.23と図 6.24がそれぞれ文献の解析結果である図 6.13の (b)Galerkin 法および (d)SUPG 法に対応していると考えられる。これらの対応を照らし合わせてみても、本研究での解析結果は文献 [4]の解析結果と異なっていることが分かる。図 6.23を図 6.13の (b)Galerkin 法と比較すると、領域全体で解が振動しているのは共通である。しかし、その振動の大きさが異なっており、本研究で得られた結果は文献の結果よりも振動が大きくなっている。図 6.24と図 6.13の(d)SUPG 法と比較する。本研究で得られた結果では、安定化を施す前の図 6.23よりも振動が収まっており安定化の効果があったといえる。しかし、局所的に振動が残っているため安定化が不完全であるといえる。文献で示された境界条件値が流れによって領域全体に広がっているという現象も見受けられず、温度分布も異なっている。さらに、本研究で四角形要素を用いた解析結果である図 6.14∼図 6.17と三角形要素での解析結果である図 6.22∼図 6.25との比較をする。拡散項のみの場合である図 6.14と図 6.22は同じ結果となった。残りの安定化を施した結

51

Page 53: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

果同士を比べると、四角形要素での結果である図??及び図??では安定化の効果は見られず逆に振動が大きくなった。三角形要素での結果では図 6.24及び図 6.25では安定化の効果がみられる結果となった。また三角形要素での解析結果のうち、図 6.24と図 6.25を見比べるに、衝撃捕捉項の影響が無いような結果となっている。これらの結果から、三角形要素で文献と同じ条件で解析を行っても妥当な結果が得られず、本研究で開発したプログラムでは二次元定常移流拡散問題は解くことができないと判断できる。

他の解析プログラムでの解析結果

文献 [4]に掲載されている図 6.13の結果をもとに比較を行ってきた。しかし、文献 [4]の結果がそもそも妥当なのかどうかという問題がある。図 6.13の右上の (b)Galerkin 法については安定化を施さずに解いた結果であるが、本当に領域全体でこのような細かな数値振動が生じるのかという点が疑わしい。また同じ図の (C)SUPG 法での結果についても、このように解の不連続性が保たれたままの状態で解析結果がでることが妥当かどうか検証するすべがない。そこで、同じ文献 [4, p.35]内で紹介されている有限要素法を使ったフリーの解析ソフトである『FreeFEM++』[14]を用いて図 6.13の条件で解析を行い、文献 [4]及び本研究の解析プログラムの結果との比較を行う。『FreeFEM++』の特徴は、ソースコードに領域の定義と境界条件、偏微分方程式の弱形式を入力することで、自動で要素分割を行い結果を出力することである。そのため、比較的簡単に有限要素法による数値解析が行える。なお『FreeFEM++』のマニュアルは基本的に英語であるため、操作方法を理解するのが困難であった。そこで、マニュアルを一部日本語に翻訳した文献 [15]や斎藤宣一の講義ノート [16]を参考に『FreeFEM++』を用いた。本研究の拡散の結果と同じになるか確認するために、流速を 0として拡散の問題として解いた結果を図??に示した。文献の結果である図 6.13と同じ条件で解析を行うために、表 6.9のうち要素分割のみ三角形要素である条件で解析を行った結果を図 6.27に掲載した。

0 0.2

0.4 0.6

0.8 1 0

0.2

0.4

0.6

0.8

1

0

0.2

0.4

0.6

0.8

1

T [K]

"ADv0.dat"

x [m]

y [m]

T [K]

図 6.26: FreeFEM++:文献の図 6.13の条件で流速 0 0

0.2 0.4

0.6 0.8

1 0

0.2

0.4

0.6

0.8

1

-0.2

0

0.2

0.4

0.6

0.8

1

T [K]

"AD.dat"

x [m]

y [m]

T [K]

図 6.27: FreeFEM++:文献の図 6.13と同じ条件

図 6.27の結果を得るために使用した『FreeFEM++』のソースコードをリスト 6.1に示す。なお、図 6.26の結果はリスト 6.1の 1行目で行っている流速の設定で vx=0.0,vy=0.0とすることで得られる。

リスト 6.1: 『FreeFEM++』を使って図 6.27の結果を出力する時のソースコード1 real vx=0.5,vy=0.5* sqrt(vx);2 real k=1.0/10^6;3

4 border a0 (t = 0, 1) x = t; y = 0; 5 border a1 (t = 0, 1) x = 1; y = t; 6 border a2 (t = 0, 1) x = 1-t; y = 1; 7 border a3 (t = 0, 1) x = 0; y = 1-t; 8

9 mesh Th = buildmesh (a0(10) + a1(10)+a2(10)+ a3 (10));10 fespace Vh (Th, P1);11 Vh u, v;12

13 solve Laplace (u,v) = int2d (Th) (k*dx(u)*dx(v) + k*dy(u)*dy(v))14 +int1d(Th) (vx*dx(u)*v+vy*dy(u)*v)15 +on (a3, u = 1)+on (a0, u = 0);16

17 plot (u);18 // savemesh(Th,"Th.msh") ;19 20 ofstream ug("u-g.txt");21 for (int i=0; i<Th.nt; i++) 22 for (int j=0; j<3; j++) 23 ug << Th[i][j].x << " " << Th[i][j].y << " " << u[][Vh(i,j)]<<endl;24 25 ug << Th[i][0].x << " " << Th[i][0].y << " " << u[][Vh(i,0)]<<"\n\n\n";26 27

この FreeFEM++で解析を行った結果と文献及び本研究で行った結果の図の対応関係を示す。

52

Page 54: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

FreeFEM++で解析を行った結果の図 6.26は四角形要素での解析結果の図 6.14及び三角形要素での解析結果の図6.22に対応する。また同様に FreeFEM++で解析を行った結果の図 6.27は文献の解析結果の図 6.13の (b)Galerkin法と四角形要素での解析結果の図 6.15及び三角形要素での解析結果の図 6.23に対応する。図 6.26の結果の対応をみると本研究での解析結果である図 6.14及び図 6.22と同一であるような結果が得られた。このことから拡散問題として解く場合は本研究で作ったプログラムは妥当であるといえる。しかし、図 6.27の結果をみると文献の結果とも本研究で作成したものとも異なる結果が得られた。この中で、最も図 6.27と結果が近いのが文献の図 6.13の (c)Upwind Galerkin 法である。しかし、FreeFEM++での解析結果は同じ図 6.13の (b)と対応することが予想されていた。そのため、この結果は想定外であった。他の解析プログラムである FreeFEM++を使って得られた結果は、本研究で得られた結果でも文献の結果とも異なるものを示した。したがって、文献の結果である図 6.13が妥当であるという判断はできない。また、FreeFEM++の操作方法が誤っていることもあり得る。しかし、文献と FreeFEM++の両者が示した結果と異なる結果を示した本研究で開発したプログラムの解析結果はやはり妥当でないといえる。

53

Page 55: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

第7章 結言

7.1 結果本研究で行ったことと得られた結果について述べる。本研究においては、熱の移流拡散問題を有限要素法により解くことを目的として、fortan言語を用いた解析プログラムを作成してきた。そのために、まず二次元定常移流拡散方程式を導出した。そして、有限要素法を適用するために二次元定常移流拡散方程式の有限要素式を導出した。移流拡散問題は移流項の卓越により解の不安定性が懸念されたため、安定化として SUPG法を適用し、さらに衝撃捕捉項を加えることで解の安定化を試みた。そして、安定化を施した有限要素式も導出した。有限要素法適用に当たっては四角形一次要素及び三角形一次要素による要素分割を想定した。有限要素法による数値計算を行うプログラムとして fem2dh steady AD という名前のフォルダ内に解析プログラムのソースコードを作成した。プログラムの実行結果について述べる。まず、拡散問題として解いた結果について述べる。移流拡散問題で流速を 0とした問題である二次元拡散問題については理論解と同一な結果が得られた。一次元定常移流拡散問題として解いた結果について述べる。流速が逆方向に作用する結果が得られたものの四角形要素を使った場合では x, y方向のそれぞれの一次元問題として解析を行う理論解と同一な結果が得られた。また、三角形要素を使う場合でも流速の逆転現象は起きたが、x, y方向の一次元問題としてそれぞれ解いた場合に十分な精度の結果が得られた。二次元定常移流拡散問題として解いた結果について述べる。まず、想定できる移流拡散現象として、流下方向に温度の分布が広がる様子が確認できるかどうか境界条件を設定して四角形要素で解析を行った。その結果、予想通り流下方向に分布が広がる結果が得られた。また、ここまでの解析では解の不安定性が問題とならなかったので安定化を施さずに計算を行っていた。しかし、この問題において流速を大きくすると領域内で値が振動する解の不安定性がみられた。これに対して、安定化を施すことで解の振動が収まった結果が得られた。他の文献と比較した結果について述べる。文献 [4, p.53]に示される条件で解析を行い、この文献と同じ結果が得られるかどうか検証した。要素分割のみ四角形要素 400個にしてこの文献の条件で解析を行うと、安定化を施さない場合においては、領域全体で数値振動が発生する点で共通の結果が得られた。しかし、振動の大きさが異なり、文献[4]において境界条件値が流れによって領域全体に広がっている様子が見られるが、本研究で得られた結果にはそのような様子がみられなかった。また、安定化を施した場合については、振動が収まらずさらに解が大きく振動する結果が得られ、文献と異なる結果となった。文献と同じ三角形要素でも解析を行った。安定化を施さない場合では振動の形式が異なるものの四角形要素での結果と同様に、領域全体で振動が起きたがその振動の大きさや、境界条件が領域に広がる様子が異なっていた。安定化を施した場合、四角形要素での結果と異なり、安定化の効果はみられた。しかし、局所的に振動がみられ文献とは異なる結果となった。この文献 [4, p.53]の結果が妥当であるかの確認として他の解析プログラム『FreeFEM++』により得られた結果を用いて、文献と本研究で得た結果との比較を行った。その結果 FreeFEM++の結果文献とも本研究で得られたものとも異なる結果を示した。これらの実行結果から、本研究で作成した解析プログラムは二次元定常拡散問題と一次元定常移流拡散問題においては妥当な結果が得られるが、二次元定常移流拡散問題については妥当な結果が得られないといえる。

7.2 今後の課題この章では本研究では成しえなかったが、今後研究を行う上での課題や展望などについて項ごとに述べていく。

7.2.1 移流項の計算と非定常問題への拡大の必要性

二次元定常移流拡散問題を扱う上で移流項が入る場合において妥当な結果が得られなかった。そのため、今後の課題としては移流項の計算ができるようにプログラムを改良することが第一に挙げられる。一次元定常移流拡散問題までは解くことができたが、二次元定常移流拡散問題となると解が振動して妥当な結果が得られなかった。一次元問題についても流速が逆方向に作用する現象が起きていたため、この流速の逆転現象も解決することが望まれる。これらの不具合については本研究を進める上で問題となり、ソースコードにおける誤りの探索を行った。この探索は 6.3.1項で論じた 4要素での移流拡散問題の解析を対象にして、要素マトリックスの計算を行う ek4nodや境界条件の組み込みを行う boundさらに連立一次方程式を解く bandsolveのルーチン内で誤った計算を行っていないか、Microsoft社の表計算ソフトであるMicrosoft Excelを用いて検算を行ったものである。この検算の中では、計算誤差の許容範囲と呼べる値の違いはあったもののそれ以外の誤りは見つからなかった。そのため、もっと根本的なところで誤りが存在しているのではないかと推測される。

54

Page 56: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

解の振動については、6.3.3項で論じた文献 [4, p.53]との比較において、本研究で得られた図 6.16及び図 6.17の結果では自然境界条件を満たしていないような結果が得られた。そのため、境界条件の処理について問題があることが疑われる。本研究では理論解の求まる結果として、一次元定常拡散問題及び一次元定常移流拡散問題との比較を取り扱った。ここで、定常移流拡散問題における拡散係数が k = 0のときである定常移流問題は理論解が求まらないため本研究では比較として用いなかった。しかしながら、本研究で問題となっている移流項の計算がきちんとできているか確認するためにも移流方程式との結果の比較を行うべきである。非定常問題の移流方程式は差分法などによる数値解の導出が研究されている。これらの他の数値解析手法を用いた結果と比較を行うために、非定常移流拡散問題を有限要素法で解析できるように改良を行う必要がある。非定常問題の解析については野寄氏の研究 [12]や文献 [4]など非定常問題を解析する手法についての研究や書物を参考にされたい。

7.2.2 境界積分項の計算での問題点

境界積分項で自然境界条件が組み込まれる温度フラックスベクトル F の計算において、本研究では自然境界条件値 g2が一定である場合のみを対象にしていた。そのため、実際のプログラムでは境界積分の計算を行おうが行わなかろうが結果としては同じとなる。そのため、プログラムでは 3.2.6項のように節点番号の対応する右辺ベクトルに自然境界条件値 g2をそのまま足しこむことで自然境界条件の組み込みを行った。しかし、自然境界条件値が一定でなくなんらかの関数である場合や、自然境界条件値 g2が一定であっても、例えば四角形領域において右端の辺と下辺とでことなる値を採用した場合の右下の節点付近で値が異なる場合の対応が問題となる。また、本研究で開発した解析プログラムでは境界積分項での計算で材質ごとに異なる物性値である温度伝導率 kをかけずに計算を行っているという致命的なミスがある。したがって、温度伝導率 kが掛かっていないため、自然境界条件の考慮された問題の解析では妥当な結果が得られないことが想定される。この kが掛かっていない問題は、もともとの本研究で開発する際に基本とした解析プログラムが定常拡散問題を取り扱っていたことに起因する。定常拡散問題の場合は定式化で両辺を kで除すことができ、実際には kは考慮しなくても解析ができたためである。そのため、この問題に気づくのが遅れ本研究で対処できなかった。これらの境界積分項の問題を解決するために、きちんと kをかけて自然境界条件値 g2も境界上で内挿近似するべきである。このことについては、文献 [4, pp.33-34]や文献 [8, pp.256–266]及び文献 [3, pp.66–67]に説明がある。これらを参考にプログラムを改善することが望まれる。

7.2.3 Upwind Galerkin 法での安定化の実装

本研究では、安定化の手法として SUPG法と衝撃捕捉項の付加を取り入れた。しかし、Upwind Galerkin 法による安定化は解の精度という点からも採用せず、プログラムにも実装しなかった。そのため、6.3.3項における文献 [4]に示されている結果との比較において、安定化を施した場合と安定化に SUPG法を施した場合のそれぞれ図 6.13の(b)Galerkin 法と (d)SUPG 法との比較で終わった。つまり、(c)Upwind Galerkin 法との比較については行うことができなかった。安定化を行うという点から考えれば、精度の高い SUPG 法を適用すれば十分だと考えられる。しかし、安定化の影響がどのようにでているか確認し、安定化の妥当性の検証を行うためにも、安定化を行うという点からは不必要だと考えられるUpwind Galerkin 法による安定化を適用できるようにプログラムを準備するべきである。Upwind Galekin 法での安定化を実装し、文献 [4]との比較でやり残した図 6.13の (c)Upwind Galerki 法との比較を行うことが望まれる。

7.2.4 三角形要素と四角形要素の計算について

本研究では最終的に四角形要素と三角形要素での解析を可能にした。しかし、三角形要素については 5.2節で示したように移流項の入っている行列の計算が煩雑となっており、もしかしたら途中で計算が間違っていたり、プログラムで書き間違えた可能性もある。また、一般的に要素分割を行う際には四角形と三角形要素を比べると、近似に使える節点の情報数や領域内での要素の対称性の点からも四角形要素の方が解析精度が高いといわれている。[6,p.195,p249][5]これらのことから、6.3.3項で示したように三角形要素と四角形要素の解析結果の違いは説明できると考える。しかし、単なる式展開上での計算ミスなのか、解析の精度の問題なのかの違いは特に前者の場合は問題となる。したがって、四角形要素と三角形要素とで解析を行う場合に、どれほどの精度の差が生じるのか知る必要がある。その情報をもとにして、計算ミスなのかどうか判断することができる。

7.2.5 熱伝導率の非等方性の取り扱い

本研究では熱伝導率 κが等方性であることを仮定した。しかしながら、異なる板材を貼り合わせて作られたような材質については熱伝導率に等方性を仮定できない場合が考えられる。そのため、熱伝導率が非等方性の場合も扱えるようにするべきである。非等方性の熱伝導係数 κを扱う場合は文献 [6, pp.191–193]に示されるような定式化上での処理を行うことで扱うことができる。これを参考に非等方性の熱伝導率をもつ材質についても計算を行えるように改善することが望まれる。

55

Page 57: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

7.2.6 その他—三次元問題への拡大、発熱率や流速及び物性値の取り扱い—

本研究では移流拡散問題解析の基礎として二次元問題を扱った。現実問題に適応するために、三次元問題へ拡張することが望まれる。また、単純化のため定式化の段階で発熱率 f は 0として、流速は既知、物性値である κ, ρ, cpは定数と置いた。発熱率についても、輻射などの影響を考慮するために式に残したまま有限要素式を導出するべきであった。流速については、本来なら場所によって異なる値を示すはずで、領域全体の流速が分かっていることは考えにくい。したがって、将来的には流速も流体の運動方程式を解くことで式を立てて、別の解析プログラムで流速の値を求めるような解析を行い、それで得られた値を本研究の流速として扱えるようにしたい。物性値 κ, ρ, cpについても、実際には温度や圧力などの関数として表されるはずであるが、本研究では問題の単純化のため定数とした。可能であるならば、これらのパラメータも関数として扱うことが望ましい。また、本研究では 6.1.2項で解析の対象として鉄を想定して物性値のデータを用意した。しかしながら、解析のプログラムが未完成であったためこれらの物性値は使わなった。解析プログラムが完成したら、材質を替えることでどのように温度分布が変化するか検討したい。

56

Page 58: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

参考文献

[1] 倉前宏行,松本政秀『数値解析・演習』(大阪工業大学 工学部 環境工学科, 2011)

[2] 矢野雄幸,佐藤弘三『拡散方程式入門』(公害研究対策センター, 1978)

[3] 菊池文雄『FEM+BEM=3 有限要素法概説 [新改訂版] -理工学における基礎と応用-』(サイエンス社, 2009)

[4] 日本計算工学会流れの有限要素法研究委員会『続・有限要素法による流れのシミュレーション』(シュプリンガー・ジャパン, 2008)

[5] 矢川元基,吉村忍『有限要素法』計算力学と CAEシリーズ 1 (培風館, 1991)

[6] 福森栄次『よくわかる有限要素法』(株式会社オーム社, 2005)

[7] 自然科学研究機構 国立天文台『理科年表 平成 22(机上版)』(丸善株式会社, 2009)

[8] 森正武『FORTRAN 77 数値計算プログラミング(増補版)』⟨岩波コンピュータサイエンス ⟩(岩波書店, 1996)

[9] 戸川隼人『NS ライブラリ= 1 ザ・FORTRAN77』(サイエンス社, 1997)

[10] 矢吹道郎,大竹敢『つかいこなすGNUPLOT』(株式会社テクノプレス, 1997)

[11] 福井悠太『有限要素法による二次元定常ストークス流れの解析』(大阪工業大学 工学部 環境工学科, 2011)

[12] 野寄哲也『有限要素法による軸対象熱伝導問題の解析』(大阪工業大学 工学部 環境工学科, 2011)

[13] 赤司宏彰『有限要素法による二次元定常熱伝導問題の解析』(大阪工業大学 工学部 環境工学科, 2012)

[14] 「freeFEM.org」 ⟨http://www.freefem.org/ ⟩(2012/3/21アクセス)

[15] 「FreeFem++ Japan 」⟨ https://sites.google.com/a/comfos.org/comfos/ffempp/jp⟩(2012/3/21アクセス)

[16] 齊藤宣一「有限要素法と非線形楕円型方程式の解の可視化」⟨ http://www.infsup.jp/saito/ln/efem08h.pdf ⟩(2012/3/21アクセス)

57

Page 59: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

謝辞

本論文は大阪工業大学工学部環境工学科において学部 4回生における研究成果をまとめたものである。研究を行うにあたり、同専攻 知能設計工学研究室 教授 松本 政秀先生には指導教官として本研究実施のテーマ及び機会を与えてくださり、日々のご指導・ご相談及びに要素形成プログラムのmelement3,melement4の作成にあたり多大なご支援を賜りました。ここに深く感謝申し上げます。有限要素法の理論についてご教授くださり、また研究を進める中で、プログラムの開発で行き詰ったときにご助言をくださいました大阪工業大学 工学部 技術マネジメント学科 計算工学研究室 准教授 倉前 宏行先生に深く感謝申し上げます。知能設計工学研究室 修士課程 2回生 平田 慎太郎氏には、研究をする上でわからないところをその都度ご教授くださったり、ゼミで有限要素法の理論についてご教授くださいました。特に、私の研究で理解が不十分だった重み関数 wが境界上で 0となる理由についてご教授くださいました。ここに感謝の意を表します。同研究室 修士課程 1回生 野寄 哲也氏にはゼミで有限要素法の理論についてご教授くださり、また texや gnuplotの使い方などご説明くださり、卒業研究をする上でたいへんお世話になりました。ここに感謝申し上げます。赤司 宏彰氏と新城 武氏はプレ配属の段階から同じ研究室でした。同じ研究室で有限要素法の勉強を行い、分からないところを教えてもらったりして苦難を乗り越えることができました。赤司氏の研究は本研究における三角形要素での解析において、大きな参考にさせていただきました。新城氏の地道にプログラムの間違いを探す姿勢は、本研究の後半に生じた文献との比較で生じたプログラムの問題点を探すうえで参考になりました。お二人に感謝いたします。大阪工業大学 工学部 一般教育科 物理研究室 教授 林 正人先生には、本研究で焦点となった移流拡散問題の文献の結果である図 6.13の理論解の導出で私の計算があっているか確認してくださいました。結果としては境界条件が不連続であるため理論解は存在しないという結果となり、本論文にはその導出過程の掲載に至りませんでしたが、微分方程式の考え方などたいへん勉強になりました。深く感謝申し上げます。同研究室 准教授 中野 正浩先生には、定式化のところで移流方程式の導出が困難であったため、ご相談させていただきました。温度 T はある基準点 T0とそこからの差 dT の和という形で表されるという助言をくださり、無事に導出することができました。深く感謝申しあげます。この他にも、研究を行う上でお世話になった環境工学科事務室の方々や、大学で授業をなさってくださった先生方、研究発表を見に来て下さった方々へ感謝申し上げます。

58

Page 60: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

付 録A 付録

付録として、本研究で作成したプログラムのツリー図やプログラムのソースコードを掲載し、ソースコードで使われている主な変数の説明をまとめた。さらに、本論文において式に登場する記号や用語について表にまとめて掲載した。

A.1 プログラム fem2dh steady AD の構造本研究で開発した二次元定常移流拡散問題を有限要素法で解析するプログラムの fem2dh steady AD のツリー図を図A.1に示した。なお、fem2dh steady AD は fortran言語で記述されている。

図 A.1: fem2dh steady AD のツリー図

A.2 プログラムのルーチンの説明ルーチンとはあるひとまとまりの手続きをまとめたものである。本研究で開発したプログラムはメインルーチンからサブルーチンを呼び出すことで繰り返し登場する処理や作業単位を分割できるようにした。図A.1に登場するルーチンと図A.1に登場していないが用いたルーチンを表A.1に示し、表内でそれぞれのルーチンの役割を説明した。

59

Page 61: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

表 A.1: ルーチンの意味ルーチン名 意味

main メインルーチンinput 入力データの設定formk 係数行列を形成rclear 配列のゼロクリアloccrd ある要素の節点座標を用意locv ある要素の節点流速を用意ekmat 要素の選択ek4nod 四角形要素での要素マトリックスを形成する

blkdta000 要素の節点数と数値積分での座標値及び重みの値を用意dfshp4 四角形要素の全体座標系での内挿関数の偏微分値を計算dlshp4 四角形要素の局所座標系での内挿関数の偏微分値を計算shp4 四角形要素での内挿関数と内挿近似した流速を計算stab 安定化パラメータを計算

ek3nod 三角形要素での要素マトリックスの形成gmatrix 全体マトリックスに要素マトリックスを足しこむbound 自然境界条件と基本境界条件の組み込み

bandsolve ガウスの消去法により連立一次方程式を計算output 結果の出力d mesh 要素分割図の描画conter 温度分布図の描画

A.3 解析プログラム fem2dh steady AD のソースコードの掲載表 A.1で新たに自作したルーチンは、locv,ek3nod,gmatrix,stab である。また、本研究で開発したプログラムのベースである福井氏 [11]が作成した二次元定常拡散問題を解析するプログラム fem2dh steady test を改変して利用したものはmain,input,formk,ek4nod,shp4,bound,bandsolve,outputである。これらの内、プログラム内で新しい処理が行われた主要なものである input,locv,ek4nod,shp4,ek3nod,stab,gmatrix,bound,bandsolve のソースコードを掲載し、新しく改変した部分などを説明していく。input のソースコードを以下に示した。

リスト A.1: input のソースコード1 SUBROUTINE INPUT(CRD ,NOP ,KMATR ,KELMN ,IA ,VN,BV,BVN ,NOPBV ,NOPBVN)2 C3 C reading input data from the device unit 5( keyboard in default)4 C5 COMMON /DIMS/ NPD , NED , NPED , NFD , NHBWD , NT6 COMMON /SIZE/ NP, NE, NHBW ,ND ,NN7 COMMON /MATR/ RKAPPA (5), HEATCAP (5), DENSITY (5),RK(5)8 COMMON /ELMN/ LELM (6)9 DIMENSION VN(NFD ,NPD),NOPBV(NPD),BV(NPD),NOPBVN(NPD),BVN(NPD)

10 C11 DIMENSION CRD(NFD ,NPD), NOP(NPED ,NED), KMATR(NED), KELMN(NED)12 DIMENSION IA(*)13

14 C 材 質 の 種 類 数 を 読 み 込 む15 READ (10 ,500) NS16 500 FORMAT (40I5)17 IF(NS.GT.5) THEN18 WRITE (6,*) ’ TOO MANY MATERIALS. MUST BE LESS THAN 6’19 STOP20 ENDIF21

22 C 材 質 の 物 性 値 を 読 み 込 む23 READ(10,"(1P3E10 .0)") (RKAPPA(I),HEATCAP(I),DENSITY(I),I=1,NS)24 C 温 度 伝 導 率 の 計 算25 DO I=1,NS26 RK(I)= RKAPPA(I)/ HEATCAP(I)/ DENSITY(I)27 END DO28

29 C 要 素 数 の 読 み 込 み30 READ (10 ,500) NE31 C 要 素 の 情 報 ( 要 素 の 材 質 、 形 状 、 節 点 番 号 ) を 読 み 込 む32 DO I=1,NE33 READ (10 ,500) N,KMATR(I),KELMN(I), (NOP(J,I),J=1,LELM(KELMN(I)))34 END DO35

36 C 節 点 数 を 読 み 込 む37 READ (10 ,500) NP38 C 節 点 の 情 報 ( 節 点 の 座 標 、 自 由 度 番 号 ( 節 点 に あ る 未 知 数 の 番 号 ) ) を 読 み 込 む39 DO I=1,NP40 READ (10 ,530) N,(CRD(J,N),J=1,NFD),(IA((I-1)*NT+J),J=1,NT)

60

Page 62: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

41 END DO42 530 FORMAT(I5 ,2E10.0,I8)43

44 C 速 度 の 読 み 込 み45 C 速 度 仮 入 力46 DO I=1,NP47 c VN(1,I)= -0.5e-048 c VN(2,I)=VN(1,I)*SQRT (3.0)49 VN(1,I)= -1.050 VN(2,I)=0.051 END DO52

53 C READ OF DIRICHLET CONDITIION54 READ(10,"(I5)") ND55 DO I=1,ND56 READ(10,"(I5,E10 .0)") NOPBV(I),BV(I)57 END DO58

59 C READ OF NEUMANN CONDITION60 READ(10,"(I5)") NN61 DO I=1,NN62 READ(10,"(I5,E10 .0)") NOPBVN(I),BVN(I)63 END DO64

65

66 CC 入 力 デ ー タ の 書 き 出 し67 C 毎 回 入 力 デ ー タ を 出 力 す る こ と は 不 要 な の で 、 こ こ で 入 力 デ ー タ を 出 力 す る か し な い か 指 定68 C INP=1  と す る と 入 力 デ ー タ を 出 力 す る69 INP=070 IF(INP.EQ.1) THEN71

72 C 材 質 の 種 類 数 を 出 力73 WRITE(*,"(’Number of materials is ’,I5)") NS!材質の種類数74 C 材 質 の 物 性 値 を 出 力75 WRITE (* ,100) (I,RKAPPA(I),HEATCAP(I),DENSITY(I),RK(I),I=1,NS)76 100 FORMAT(’ No. RKAPPA [W/m/K] HEATCAP[J/kg/K] DENSITY [kg/m^3]77 & k[m^2/s] ’ /(1H ,I5 ,1 P4E15 .5))78

79 C 要 素 数 を 出 力80 WRITE(*,"(’ Number of elements is ’,I5)") NE81 C 要 素 の 情 報 ( 要 素 の 材 質 、 形 状 、 節 点 ) を 読 み 込 む82 WRITE (*,*)’ No. (Mat:Elm) Points ’83 DO I=1,NE84 WRITE (6 ,110) I,KMATR(I),KELMN(I),(NOP(J,I),J=1,LELM(KELMN(I)))85 END DO86 110 FORMAT (1H ,I5,’ (’,I1 ,’:’,I1,’) ’ ,40I5)87

88 C 節 点 数 を 出 力89 WRITE(*,"(’ Number of points is ’,I5)") NP90 C 節 点 の 情 報 ( 節 点 の 座 標 、 自 由 度 番 号 ( 節 点 に あ る 未 知 数 の 番 号 ) ) を 出 力91 WRITE (*,*)’ No. Coordinates ’92 DO I=1,NP93 WRITE (* ,120) I,(CRD(J,I),J=1,NFD),(IA((I-1)*NT+J),J=1,NT)94 END DO95 120 FORMAT (1H ,I5 ,1P2E15.5,I8)96

97 C 節 点 で の 流 速 を 出 力98 WRITE (*,*)’Node No. Vx Vy ’99 DO I=1,NP

100 WRITE(*,"(1H ,I5, 1P2E15 .5)") I,(VN(J,I),J=1,2)101 END DO102

103 C 基 本 境 界 条 件 数 を 出 力104 WRITE(*,"(’ Number of essential boundary condition is ’,I5)") ND105 IF(ND.GT.0) WRITE (*,*)’ No. Value ’106 C 基 本 境 界 条 件 が 与 え ら れ て い る 節 点 番 号 と そ の 値 を 出 力107 DO I=1,ND108 WRITE(*,"(1H ,I5 ,1PE15 .5)") NOPBV(I),BV(I)109 END DO110

111 C 自 然 境 界 条 件 数 を 出 力112 WRITE(*,"(’ Number of narural boundary conditions is ’,I5)") NN113 IF(NN.GT.0) WRITE(*,"(’ No. Value ’)")114 C 自 然 境 界 条 件 が 与 え ら れ て い る 節 点 番 号 と そ の 値 を 出 力115 DO I=1,NN116 WRITE(*,"1H ,I5 ,1PE15 .5)") NOPBVN(I),BVN(I)117 END DO118

119 END IF120

121 RETURN122 END

input では各種の入力データをファイルから読み込んで設定する。福井氏 [11]の作成したプログラムでは材質の物性値として熱伝導率を表す RKAPPA のみ読み込んでいた。移流拡散方程式において温度伝導率が登場するため、22行目で熱伝導率 RKAPPA の他に定圧比熱容量と密度であるそれぞれ HEATCAP,DENSITY を読み込むようにした。温度伝導率はRKとして 26行目で計算した。また、福井氏が作ったプログラムでは境界条件は別のサブルーチンである load,boundで読み込むようにしていた。しかし、理解のしやすさから入力を一か所に統一しておきたいと考え、本研究では input の 53行目から 63行目で境界条件値を読み込むようした。流速の入力についても本研究で新しく実装した。ただし、流速の入力についてはファイルから読み込むのではな

61

Page 63: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

く、45行目から 51行目で領域の全節点に一様な値を直接設定している。locv のソースコードを以下に示した。

リスト A.2: locv のソースコード1 C copying coodinates of the element from V to ZV2 C using the data of NOP3 C KEL is a kind of element (1~5)4 C5 SUBROUTINE LOCV(KEL ,VN,NOP ,ZV)6 COMMON /DIMS/ NPD , NED , NPED , NFD , NHBWD7 COMMON /ELMN/ LELM (6)8 C9 DIMENSION VN(NFD ,NPD), NOP(NPED), ZV(NFD ,NPED)

10 C11 DO I=1,LELM(KEL)12 DO J=1,NFD13 ZV(J,I) = VN(J,NOP(I))14 C WRITE (*,*)VN(J,NOP(I))15 END DO16 END DO17

18 C WRITE (*,*) ’write by locv’19 C DO 10 J=1,220 C DO 10 I=1,421 C WRITE (6,*)ZV(J,I)22 C 10 CONTINUE23 RETURN24 END

locv は本研究で新しく作成したサブルーチンである。locv では loccrd と同様に、ある要素を構成する節点での流速を取り出して ZV にコピーしている。こうすることで、shp4や ek3nodで流速を内挿近似する際にデータを取り扱いやすくする。以下に ek4nod のソースコードを示した。

リスト A.3: ek4nod のソースコード1 SUBROUTINE EK4NOD(KEL ,KMAT ,CRD ,EK ,EA,EA_de ,EK_de ,VN,Pe,HEN)2 C ガ ウ ス の 数 値 積 分 を 行 い 要 素 マ ト リ ッ ク ス を 作 る3 C making an element stiffness matrix of 4-node element4 C5 COMMON /DIMS/ NPD , NED , NPED , NFD , NHBWD , NT6 COMMON /MATR/ RKAPPA (5), HEATCAP (5), DENSITY (5),RK(5)7 COMMON /GAUS/ AI(5,5),WI(5,5)!数値積分での座標 A Iと重み W I8 COMMON /SIZE/ NP, NE, NHBW ,ND ,NN9 C

10 DIMENSION CRD(2,4), DNDX (2,4)! D N D X全体座標系の微分11 DIMENSION EK(NT*NPED ,NT*NPED), EA(NT*NPED , NT*NPED)12 DIMENSION EA_de(NT*NPED , NT*NPED), EK_de(NT*NPED , NT*NPED)13 DIMENSION WK(4,4) ,WA(4,4), WA_de (4,4) ,WK_de (4,4)14 DIMENSION RN(4)15 DIMENSION VN(2,4),V(2)16 DIMENSION HEN (4)17 C18 DATA IPT /2/!積分点の数19

20 CALL RCLEAR(EK ,NT*NPED*NT*NPED)21 CALL RCLEAR(EA ,NPED*NPED)22 CALL RCLEAR(EA_de ,NT*NPED*NT*NPED)23 CALL RCLEAR(EK_de ,NT*NPED*NT*NPED)24

25 C WRITE (*,*)’VN write by ek4nod 1’26 C WRITE (* ,*)((VN(J,M),M=1,4),J=1,2)27

28 DO 100 IY = 1,IPT29 DO 100 IX = 1,IPT30 C31 CALL DFSHP4(AI(IX,IPT),AI(IY,IPT),CRD ,DNDX ,DETJ) !形状関数の定義32 C33 C 局 所 座 標 系 の D _ eの中身(偏微分のかけ算、の足し算)の計算34 C WK=(dN_i dN_j )/(d xi d xi)+( dN_i dN_j )/(d eta d eta)35 DO J = 1,436 DO I = 1,437 WK(I,J) = 0.038 DO K = 1,239 WK(I,J) = WK(I,J) + DNDX(K,I)*DNDX(K,J)40 C WRITE (6,*) DNDX(K,I),DNDX(K,J)41 END DO42 END DO43 END DO44 550 FORMAT (1P4E13 .4)45 C WRITE (6,*) ’Write WK by ek4nod ’46 C WRITE (6 ,550) (WK(1,J) ,WK(2,J) ,WK(3,J) ,WK(4,J),J=1,4)47

48 DO 20 J = 1,449 DO 20 I = 1,450 cc EK(I,J)=0.051 C 局 所 座 標 系 か ら 変 換 し て 全 体 座 標 で の D _ eをガウスの数値積分を使って計算52 C EK= kΣΣWI_x W_y (dN_i dN_j )/(dx dx)+( dN_i dN_j )/(dy dy)dxdy53 C = kΣΣWI_x W_y (dN_i dN_j )/(d xi d xi)+( dN_i dN_j )/(d eta d eta) |J|d xi d eta54

62

Page 64: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

55 EK(I,J)=EK(I,J) + DETJ*WI(IX,IPT)*WI(IY,IPT)56 & *WK(I,J)*RK(KMAT)57 C WRITE (*,*)’VN write by ek4nod 2’58 C WRITE (* ,*)((V(J,M),M=1,4),J=1,2)59

60 20 CONTINUE61 C WRITE (6,*)’EK write by ek4nod ’62 C WRITE (6 ,550) ((EK(I,J),J=1,4),I=1,4)63

64 CALL SHP4(AI(IX ,IPT),AI(IY ,IPT),RN ,CRD ,VN,V)65 C WRITE (6,*)’V write by ek4nod ’66 C WRITE (6 ,550) ((V(I)),I=1,2)67 CC WRITE (*,*)’J,I,K,RN(I),V(K),DNDX(L,I)’68

69 C 局 所 座 標 系 の A _ eの中身()の計算70 C WA=v_x N_j (dN_i )/(d xi) + v_y N_j (dN_i )/(d eta)71 C WRITE (*,*)"RN(I) BY EK4NOD"72 C WRITE(*,"(4E13.4)")(RN(I),I=1,4)73 c WRITE (*,*)"V(I) BY EK4NOD",V(1),V(2)74 c WRITE (*,*)"RN(I),DNDX(1,I),DNDX(2,I) BY EK4NOD"75 c WRITE(*,"(3E15.5)") (RN(I),(DNDX(J,I),J=1,2),I=1,4)76

77 DO J = 1,478 DO I = 1,479 WA(I,J) = 0.080 150 FORMAT(I2,I2 ,I2 ,1H ,1PE13.4,1PE13.4,1PE13 .4)81 DO K = 1,282 C WRITE (* ,150)J,I,L,RN(I),V(K),DNDX(L,I)83

84 WA(I,J) = WA(I,J) + RN(J)*V(K)*DNDX(K,I)85 c WA(I,J) = WA(I,J) + RN(J)*V(1)* DNDX(1,I)+RN(J)*V(2)* DNDX(2,I)86 END DO87 END DO88 END DO89 c WRITE (6,*)’WA IXIY write by ek4nod ’,IX,IY90 c WRITE (6 ,550) ((WA(I,J),J=1,4),I=1,4)91

92 c WRITE (*,*)"DETJ ,WI(IX,IPT),WI(IY,IPT)"93 c WRITE (*,*)DETJ ,WI(IX,IPT),WI(IY ,IPT)94

95 C 局 所 座 標 系 か ら 変 換 し て 全 体 座 標 で の A _ eをガウスの数値積分を使って計算96 DO J = 1,497 DO I = 1,498 EA(I,J)=EA(I,J) + DETJ*WI(IX ,IPT)*WI(IY,IPT)*WA(I,J)99 END DO

100 END DO101 c WRITE (6,*)’EA write by ek4nod ’102 c WRITE (6 ,550) ((EA(I,J),J=1,4),I=1,4)103

104 c 安 定 化 項 の パ ラ メ ー タ tau_e , t a u _ Lを計算105 CALL STAB(KEL ,KMAT ,tau_e ,tau_L ,V,DNDX ,Pe,CRD ,HEN ,HE,VE)106 C WRITE (*,*)’tau_e ,L write by ek4nod ’107 C WRITE (6 ,550) tau_e ,tau_L108

109 C 局 所 座 標 系 の A _ d eの中身()の計算110

111 DO 50 J = 1,4112 DO 50 I = 1,4113 WA_de(I,J) = 0.0114 WA_de(I,J) = ( V(1)* DNDX(1,J)+ V(2)* DNDX(2,J))*115 & ( V(1)* DNDX(1,I)+ V(2)* DNDX(2,I))116

117 C WRITE (6,*) DNDX(A,I),DNDX(A,J)118 C WRITE (6,*) I,J,WA_de(I,J)119 50 CONTINUE120

121 C122 DO 60 J = 1,4123 DO 60 I = 1,4124 C 局 所 座 標 系 か ら 変 換 し て 全 体 座 標 で の A _ d eをガウスの数値積分を使って計算125

126 EA_de(I,J)= tau_e*DETJ*WI(IX,IPT)*WI(IY,IPT)*WA_de(I,J)127

128 60 CONTINUE129

130 C 局 所 座 標 系 の K _ d eの中身(偏微分のかけ算、の足し算)の計算131 DO 70 J = 1,4132 DO 70 I = 1,4133 WK_de(I,J) = 0.0134 C DO 72 K_de = 1,2135 WK_de(I,J) = WK_de(I,J) + DNDX(1,I)*DNDX(1,J)136 WK_de(I,J) = WK_de(I,J) + DNDX(2,I)*DNDX(2,J)137 C WRITE (6,*) DNDX(K,I),DNDX(K,J)138 C 72 CONTINUE139 C WRITE (6,*) I,J,WK(I,J)140 70 CONTINUE141 C142 DO 80 J = 1,4143 DO 80 I = 1,4144 C 局 所 座 標 系 か ら 変 換 し て 全 体 座 標 で の K _ d eをガウスの数値積分を使って計算145 EK_de(I,J)=EK_de(I,J)+tau_L*DETJ*WI(IX ,IPT)*WI(IY ,IPT)*WK_de(I,J)146

147 80 CONTINUE148

149 100 CONTINUE150 c WRITE (*,*)’HE,VE write by EK4NOD ’151 c WRITE (*,*) HE,VE

63

Page 65: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

152 c WRITE (*,*)’V write by EK4NOD ’153 c WRITE (*,*) (V(I),I=1,2)154

155 c WRITE (6,*)’RN write by ek4nod ’156 c WRITE (6 ,550) (RN(I),I=1,4)157

158 C WRITE (6,*) ’WK Write by ek4nod ’159 C WRITE (6 ,550) ((WK(I,J),J=1,4),I=1,4)160 C WRITE (6,*)’EK write by ek4nod ’161 C WRITE (6 ,550) ((EK(I,J),J=1,4),I=1,4)162

163 c WRITE (6,*)’WA write by ek4nod END’164 c WRITE (6 ,550) ((WA(I,J),J=1,4),I=1,4)165

166 c WRITE (*,*)’tau_e ,L write by ek4nod ’167 c WRITE (6 ,550) tau_e ,tau_L168

169 RETURN170 END

ek4nod では四角形要素での拡散項、移流項、安定化項、衝撃捕捉項の各成分の計算を行っている。当初は拡散の要素マトリックスである EK のみが計算されていた。移流拡散方程式を解けるようにするため、64行目から 147行目に移流項 EAと安定化項 EA DE 及び衝撃捕捉項 EK DE を計算するように追加した。以下に shp4 のソースコードを示した。

リスト A.4: shp4 のソースコード1 SUBROUTINE SHP4(XI,ETA ,RN,CRD ,VN ,V)2 DIMENSION RN(4),CRD(2,4),VN(2,4),V(2)3

4 C WRITE (*,*)"XI.ETA BY SHP4 "5 C WRITE (*,*) XI,ETA6

7 C 内 挿 関 数 の 計 算8 RN(1) = 0.25 * (1.0-XI) * (1.0-ETA)9 RN(2) = 0.25 * (1.0+XI) * (1.0-ETA)

10 RN(3) = 0.25 * (1.0+XI) * (1.0+ ETA)11 RN(4) = 0.25 * (1.0-XI) * (1.0+ ETA)12

13 C 速 度 Vの内挿近似14 V(1) = 0.015 V(2) = 0.016 C WRITE (6,*)’VN write by shp4’17 C WRITE (6 ,550) ((VN(J,I),J=1,2),I=1,4)18 550 FORMAT (4E15.5)19 DO 20 I=1,420 V(1)=V(1)+RN(I)*VN(1,I)21 V(2)=V(2)+RN(I)*VN(2,I)22 20 CONTINUE23

24 RETURN25 END

shp4 は野寄氏 [12]が開発したプログラムを参考に本研究で新しく追加したサブルーチンである。ここでは、四角形要素の局所座標系での内挿関数であるRNを計算し、さらに流速Vを内挿近似して計算している。ek3nod のソースコードを以下に示した。

リスト A.5: ek3nod のソースコード1 SUBROUTINE EK3NOD(KEL ,KMAT ,CRD ,EK ,EA,EA_de ,EK_de ,VN,Pe,HEN)2 C making an element stiffness matrix of 3-node element3 C4 COMMON /DIMS/ NPD , NED , NPED , NFD , NHBWD , NT5 COMMON /MATR/ RKAPPA (5), HEATCAP (5), DENSITY (5),RK(5)6 COMMON /SIZE/ NP, NE, NHBW ,ND ,NN7 C8 DIMENSION DNDX (2,3)9 DIMENSION CRD(2,3)

10 DIMENSION EK(NT*NPED ,NT*NPED), EA(NT*NPED , NT*NPED)11 DIMENSION EA_de(NT*NPED , NT*NPED), EK_de(NT*NPED , NT*NPED)12 DIMENSION VN(2,3),V(2)13 DIMENSION HEN (3)14 C15 CALL RCLEAR(EK ,NT*NPED*NT*NPED)16 CALL RCLEAR(EA ,NPED*NPED)17 CALL RCLEAR(EA_de ,NT*NPED*NT*NPED)18 CALL RCLEAR(EK_de ,NT*NPED*NT*NPED)19

20 C WRITE (*,*)"CRD(1,J),CRD(2,J), BY EK3NOD"21 C WRITE(*,"(2F10.5)")(CRD(1,J),CRD(2,J),J=1,3)22

23 c 要 素 の 面 積24 S=(CRD (1 ,1)*( CRD(2,2)-CRD (2 ,3))+ CRD (1 ,2)*( CRD(2,3)-CRD(2 ,1))25 & +CRD (1 ,3)*( CRD(2,1)-CRD (2 ,2)))/2.026

27 D=2.0*S28

29 c 局 所 座 標 系 の 偏 微 分 値30 DNDX (1 ,1)=( CRD(2,2)-CRD (2 ,3))/D31 DNDX (1 ,2)=( CRD(2,3)-CRD (2 ,1))/D

64

Page 66: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

32 DNDX (1 ,3)=( CRD(2,1)-CRD (2 ,2))/D33

34 DNDX (2 ,1)=( CRD(1,3)-CRD (1 ,2))/D35 DNDX (2 ,2)=( CRD(1,1)-CRD (1 ,3))/D36 DNDX (2 ,3)=( CRD(1,2)-CRD (1 ,1))/D37

38 C 要 素 内 の 流 速 の 成 分 の 計 算39 V(1)=S/3*(VN(1 ,1)+VN(1 ,2)+VN(1 ,3))40 V(2)=S/3*(VN(2 ,1)+VN(2 ,2)+VN(2 ,3))41

42 C WRITE (*,*) "S,DNDX BY EK3NOD"43 C WRITE (*,*) S44 C WRITE (*,*) "DNDX(1,J),DNDX(2,J)"45 C WRITE(*,"(2F10.5)")(DNDX(1,J),DNDX(2,J),J=1,3)46

47

48 C 拡 散 項 の 計 算49 DO J = 1,350 DO I = 1,351 EK(I,J)= S*RK(KMAT )*( DNDX(1,I)*DNDX(1,J)+DNDX(2,I)*DNDX(2,J))52 END DO53 END DO54

55 C 移 流 項 の 計 算56 DO J = 1,357 DO I = 1,358 EA(I,J)=EA(I,J) + S/12*( VN(1,J)*DNDX(1,I)+VN(2,J)*DNDX(2,I))59 DO K = 1,360 EA(I,J)=EA(I,J) + S/12*( VN(1,K)*DNDX(1,I)+VN(2,K)*DNDX(2,I))61 END DO62 END DO63 END DO64

65 c I F文を使った場合の計算法66 c IF(J .EQ. K) THEN67 c EA(I,J)=EA(I,J) + (VN(1,K)*DNDX(1,I)+VN(2,K)*DNDX(2,I))*S/668 c ELSE69 c EA(I,J)=EA(I,J) + (VN(1,K)*DNDX(1,I)+VN(2,K)*DNDX(2,I))*S/1270 c END IF71

72 CALL STAB(KEL ,KMAT ,tau_e ,tau_L ,V,DNDX ,Pe,CRD ,HEN ,HE,VE)73

74 C 安 定 化 項 の 計 算75 DO 50 J = 1,376 DO 50 I = 1,377 DO 50 K = 1,278 DO 50 L = 1,279 DO 50 M = 1,380 EA_de(I,J)= S/12* TAU_E*VN(K,M)*VN(L,M)* DNDX(K,J)*DNDX(L,I)81 DO 50 N = 1,382 EA_de(I,J)= S/12* TAU_E*VN(K,M)*VN(L,N)* DNDX(K,J)*DNDX(L,I)83 50 CONTINUE84

85 cc I F文を使った場合の計算法86 C DO J = 1,387 C DO I = 1,388 CC DO K = 1,389 C DO L = 1,290 C DO M = 1,291 C IF (K .EQ. 3)THEN92 C EA_de(I,J)=93 C & (S/6*VN(L,K)*VN(M,K)+S/12*(VN(L,K)*VN(M,1)+VN(L,1)*VN(M,K)))94 C & * DNDX(L,J)*DNDX(M,I)* TAU_E95

96 C & (S/6*ZV(1,K)*ZV(1,K)+S/12*ZV(1,K)*ZV(1 ,1))97 C & * DNDX(1,J)*DNDX(1,I)98

99 C & (S/6*ZV(1,K)*ZV(2,K)+S/12*ZV(1,K)*ZV(2,1)+ZV(1,1)*ZV(2,K))100 C & * (DNDX(1,J)*DNDX(2,I)+DNDX(2,J)*DNDX(1,I))101

102 C & (S/6*ZV(2,K)*ZV(2,K)+S/12*ZV(2,K)*ZV(2 ,1))103 C & * DNDX(2,J)*DNDX(2,I)104

105 C ELSE106 C EA_de(I,J)=107 C & (S/6*VN(L,K)*VN(M,K)+S/12*(VN(L,K)*VN(M,K+1)+VN(L,K+1)*VN(M,K)))108 C & * DNDX(L,J)*DNDX(M,I)* TAU_E109

110 C & (S/6*ZV(1,K)*ZV(1,K)+S/12*ZV(1,K)*ZV(1,K+1))111 C & * DNDX(1,J)*DNDX(1,I)112

113 C & (S/6*ZV(1,K)*ZV(2,K)+S/12*ZV(1,K)*ZV(2,K+1)+ZV(1,K+1)*ZV(2,K))114 C & * (DNDX(1,J)*DNDX(2,I)+DNDX(2,J)*DNDX(1,I))115

116 C & (S/6*ZV(2,K)*ZV(2,K)+S/12*ZV(2,K)*ZV(2,K+1))117 C & * DNDX(2,J)*DNDX(2,I)118

119 C END IF120 C END DO121 C END DO122 C END DO123 C END DO124 C END DO125

126

127 C 衝 撃 捕 捉 項 の 計 算128 DO J = 1,3

65

Page 67: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

129 DO I = 1,3130 EK_de(I,J)=S*TAU_L *(DNDX(1,I)*DNDX(1,J)+DNDX(2,I)*DNDX(2,J))131 END DO132 END DO133

134 RETURN135 END

ek3nod は本研究で新しく追加したサブルーチンである。ek3nod では三角形要素での拡散項、移流項、安定化項、衝撃捕捉項の各成分の計算をしている。三角形要素を用いれば四角形要素と異なり、座標変換や数値積分を用いなくても面積座標の積分公式を用いることで積分の計算ができるため、dfshp4 dlshp4 shp4 に相当するサブルーチンが不要となっている。stab のソースコードを以下に示した。

リスト A.6: stab のソースコード1 SUBROUTINE STAB(KEL ,KMAT ,tau_e ,tau_L ,V,DNDX ,Pe,CRD ,HEN ,HE,VE)2

3 COMMON /DIMS/ NPD , NED , NPED , NFD , NHBWD , NT4 COMMON /MATR/ RKAPPA (5), HEATCAP (5), DENSITY (5),RK(5)5 COMMON /SIZE/ NP, NE, NHBW6 COMMON /ELMN/ LELM (6)7

8 DIMENSION V(2),DNDX(2,LELM(KEL)),CRD(2,LELM(KEL))9 DIMENSION HEN(LELM(KEL))

10

11 C WRITE (*,*) ((DNDX(I,J),J=1,4),I=1,2)12

13 Ve =0.014 Pe =0.015 tau_e =0.016 tau_L =0.017 he=0.018 Ve=SQRT(V(1)**2+V(2)**2)19

20 c 要 素 サ イ ズ の 計 算21 IF(Ve .GT. 0.001) THEN22 DO J=1,LELM(KEL)23 he = he+ABS(V(1)/Ve*DNDX(1,J)+V(2)/Ve*DNDX(2,J))24 END DO25 he =2.0/he26 ELSE27 cc 要 素 の 平 均 の 一 辺 の 長 さ を 計 算28 DO I=1,LELM(KEL)-129 HEN(I)=SQRT((CRD(1,I)-CRD(1,I+1))**2+( CRD(2,I)-CRD(2,I+1))**2)30 END DO31 HEN(LELM(KEL ))= SQRT((CRD(1,1)-CRD(1,LELM(KEL )))**232 & +(CRD(2,1)-CRD(2,LELM(KEL )))**2)33 DO I=1,LELM(KEL)34 HE=HE+HEN(I)35 END DO36 HE=HE/REAL(LELM(KEL))37 ENDIF38 c ペ ク レ 数 の 計 算39 Pe = Ve * he / (2.0 *RK(KMAT))40 C WRITE (*,*)’HE,VE write by stab’,HE,VE41

42 c 安 定 化 パ ラ メ ー タ の 計 算43 tau_e = he / (2.0 * Ve) *(1.0/ tanh(Pe) - 1.0/Pe)44

45 IF(Pe .GT. 3.0) THEN46 tau_L = Ve * he / 2.047 ELSE48 tau_L = Ve * he / 2.0 * Pe / 3.049 ENDIF50 RETURN51 END

stab は本研究で新しく作成したサブルーチンである。安定化の英語である stabilization から名付けた。stab は安定化パラメータである τe, τLSIC の計算を行うサブルーチンである。18行目で要素内での流速の大きさを計算しVEに代入している。20行目から 27行目で要素サイズの計算を行っている。本研究では、流速の大きさVE が 0.001以下の場合は流速が十分に小さいと判断し、要素の平均の一片の長さを要素サイズとして設定している。この部分は式 (6.1.14)と対応している。26行目でペクレ数 Peを計算し、これらの要素サイズとペクレ数を用いて、安定化パラメータ τe, τLSIC を 42行目から 49行目で計算している。この部分は式 (6.1.12)及び式 (6.1.13)と対応する。gmatrix のソースコードを以下に示した。

リスト A.7: gmatrix のソースコード1 SUBROUTINE GMATRIX(KEL ,NOP ,EK,EA ,EA_de ,EK_de ,A,IA)2 COMMON /DIMS/ NPD , NED , NPED , NFD , NHBWD , NT3 COMMON /SIZE/ NP, NE, NHBW ,ND ,NN4 COMMON /ELMN/ LELM (6)5 C6 DIMENSION NOP(NPED)7 DIMENSION A(NP,NP), IA(NP)8 DIMENSION EK(NT*NPED ,NT*NPED),EA(NT*NPED ,NT*NPED)9 DIMENSION EA_de(NT*NPED ,NT*NPED),EK_de(NT*NPED ,NT*NPED)

66

Page 68: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

10

11 C THE FOLLOWING FUNCTION GIVES THE LOCATION IN 1-D ARRAY FROM 2-D INDEX (I,J)12

13 DO I=1, LELM(KEL)14 DO J=1, LELM(KEL)15 A(NOP(I),NOP(J))=A(NOP(I),NOP(J))16 & +EK(I,J)17 & +EA(I,J)18 & +EA_de(I,J)19 & +EK_de(I,J)20 END DO21 END DO22

23 RETURN24 END

gmatrix は本研究で新しく作成したサブルーチンである。gmatrix では全体マトリックスに要素マトリックスの足しこみを行っている。global matrix の名前から gmatrixというルーチン名を名付けた。福井氏 [11]が作成した二次元定常拡散問題の解析プログラムでは係数マトリックスの対称性を利用して、係数マトリックスの半分の値だけをメモリに保持することで、メモリの節約を行って全体マトリックスを作成する lc2glb とういサブルーチンが使われていた。しかし、本研究が取り扱う二次元定常移流拡散問題では移流項が入ることで係数マトリックスが非対称になるため、福井氏が作成した lc2glb は適用できないと判断した。そこで、マトリックスの節約を行わないフルマトリックスでの全体マトリックスを作成するプログラムとして gmatrix を新しく作成した。bound のソースコードを以下に示した。

リスト A.8: bound のソースコード1 SUBROUTINE BOUND(NOPBV ,NOPBVN ,BV ,BVN ,A,B,IA)2 COMMON /DIMS/ NPD , NED , NPED , NFD , NHBWD3 COMMON /SIZE/ NP, NE, NHBW ,ND ,NN4 DIMENSION IA(NP),B(NP)5 DIMENSION A(NP,NP),NOPBV(ND),BV(ND),NOPBVN(NN),BVN(NN)6

7 C B = RIGHT V E C T O R右辺ベクトル8 CALL RCLEAR(B,NP)9

10 C 自 然 境 界 条 件 の 入 力11 C INPUT NOUEMAN CONDITION TO B12 DO I=1,NN13 B(NOPBVN(I)) = B(NOPBVN(I)) + BVN(I)14 END DO15

16 c WRITE (6,*)’右辺ベクトルB write by bound’17 C WRITE (6 ,850) (I,B(I),I=1,NP)18

19 C INPUT DIRICHLET CONDITION(BV) TO B20 C Bに境界条件を足している21 DO I=1,ND22 B(NOPBV(I)) = B(NOPBV(I)) + BV(I)23 C B(IA((N-1)* NFD+L)) = B(IA((N-1)* NFD+L)) + V24 END DO25 c WRITE (6,*)’B(I) write by BOUND ND’26 c WRITE (6,*) (B(I),I=1,NP)27

28

29 C INPUT 0.0 TO B ROW WITH HAVE DIRICHLET CONDITION ,AND30 C INPUT 1.0 TO PIVOT31 C 基本境界条件のある行を 0にして対角成分(ピボット)に 1を入れる32

33 DO I=1,NP34 DO J=1,ND35 A(NOPBV(J),I)=0.036 A(NOPBV(J),NOPBV(J))=1.037 END DO38 END DO39

40

41 cc add A*T to right vector with Dirichlet condition42 C 係数マト リッ ク ス A の対称性を保つために右辺に補正 を行 う43 C 但 し 移 流 拡 散 を 解 く と き は 係 数 行 列 は 非 対 称 に な る か ら こ の 補 正 は 不 要44 cc DO 50 I=1,NP45 cc DO 50 J=1,ND46 cc IF(I .NE. NOPBV(J)) THEN47 c WRITE (6,*) I,J,A(I,NOPBV(J))48 cc B(I)=B(I)-A(I,NOPBV(J))*BV(J)49 cc A(I,NOPBV(J))=0.050 cc ENDIF51 c WRITE (*,*)’I,J,B(I)’,I,J,B(I)52 cc 50 CONTINUE53

54 RETURN55 END

bound では有限要素式に自然境界条件と基本境界条件の組み込みを行っている。ここの操作は 3.2.6項で説明したように行っている。bandsolve のソースコードを以下に示した。

67

Page 69: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

リスト A.9: bandsolveのソースコート1 SUBROUTINE BANDSOLVE (A,B,T)2 COMMON /DIMS/ NPD , NED , NPED , NFD , NHBWD3 COMMON /SIZE/ NP, NE, NHBW ,ND ,NN4 DIMENSION IA(NP),B(NP),A(NP ,NP),T(NP),IP(NP)5 c DIMENSION AA(1000 ,1000) ,AT(1000) ,BB (1000)6 c7 DATA EPS / 1.0E-75 /8

9 c 係 数 行 列 の 成 分 の 表 示10 c WRITE (6,*)’A(I,J) write by bandsolve first’11 c DO I=1,NP12 c DO J=1,NP13 cc 動 的 に 行 列 を 改 行 す る 。 $は改行せずに一文を出力する意味を持つ14 c WRITE(6,"(1PE9.2,$)") A(I,J)15 c IF(J .EQ. NP)WRITE (*,*)16 cc 何 も 書 か な い w r i t e文で改行なしを中断17 c ENDDO18 c ENDDO19

20 c A Aや A T、 B Bは連立一次方程式の計算ができているか確認に使った変数21 c A Aは最初の係数行列の値、 B Bは最初の右辺ベクトルの値22 c WRITE (*,*)"AA(I,J) BY BAND FIRST"23 c DO I=1,NP24 c DO J=1,NP25 c AA(I,J)=A(I,J)26 c END DO27 c END DO28

29 c DO I=1,NP30 c BB(I)=B(I)31 c END DO32

33

34 C ガウスの消去 法で連立一次方程式を解く35

36 c-------------------------37 C ピボット選択38 c-------------------------39 C 対角成分が 0だと途中で成分 /0と い う 計 算 が で て 解 け な く な る の で そ れ を 回 避 す る た め に40 C   予 め 対 角 成 分 ( ピ ボ ッ ト ) が 大 き く な る よ う に 入 れ 替 え る41

42 DO I=1,NP43 IP(I)=I44 END DO45

46 c.... loop on pivot row47 C ピ ボ ッ ト の あ る 行 を ル ー プ48 DO 100 K = 1, NP - 149 CC ピ ボ ッ ト 入 れ 換 え exchange pivot50 c51 L=K52 XAM=ABS(A(IP(L),K))53 DO I=K+1,NP54 IF(ABS(A(IP(I),K)) .GT. XAM)THEN55 L=I56 XAM=ABS(A(IP(L),K))57 c WRITE (*,*)’入れ換えた行’58 c WRITE (*,*)IP(K),IP(L)59 ENDIF60 END DO61

62 IF(L .NE. K)THEN63 C----row exchange ------64 LV=IP(K)65 IP(K)=IP(L)66 IP(L)=LV67 ENDIF68 cc ピ ボ ッ ト が あ ま り に も 小 さ い 場 合 は 計 算 を 中 断 す る69 IF(ABS(A(IP(K),K)) .LE. EPS) GO TO 90070

71

72 c-------------------------73 c FORWARD E L I M I N A T I O N 前進消去74 c-------------------------75

76 C あ る 行 の 対 角 成 分 ( ピ ボ ッ ト )77 P=A(IP(K),K)78

79 c...... loop on column to be eliminated80 C K行目の係数をピボットで割ってピボットの係数を 1にする81 DO J=K+1,NP82 A(IP(K),J)=A(IP(K),J)/P83 END DO84 c.............. loop on row to be modified85 C 右 辺 も 割 る86 B(IP(K))=B(IP(K))/P87 C ピ ボ ッ ト よ り 下 の 成 分 を 引 い て 消 す88 DO 300 I=K+1,NP89 C 下 の 行 の 成 分90 Q=A(IP(I),K)91 C 下 の 行 の 係 数 に 対 し て 、 最 初 の 行 の 係 数 に 下 の 行 の 係 数 倍 し て 引 い て 下 の 行 の 成 分 を 消 去92 DO J=K+1,NP93 A(IP(I),J)=A(IP(I),J)-Q*A(IP(K),J)

68

Page 70: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

94 END DO95

96 c 右 辺 も 引 く97 B(IP(I))=B(IP(I))-Q*B(IP(K))98 300 CONTINUE99 100 CONTINUE

100

101 c WRITE (6,*)’B(I) write by bandsolve fr ’102 c WRITE (6,*) (B(M),M=1,NP)103 c WRITE (6,*)’B(IP(I)) write by bandsolve fr ’104 c WRITE (6,*) (B(IP(M)),M=1,NP)105

106 c--------------------------107 c BACK SUBSTITUTION 後退代入108 c--------------------------109

110 c.... loop on equations backward111 c 一 番 下 の 解 を 出 す112 T(NP)=B(IP(NP))/A(IP(NP),NP)113 DO K = NP -1,1,-1114 S=B(IP(K))115 c...... loop on substitution116 DO J = K+1,NP117 c 一 個 上 の 解 は 一 個 上 の 右 辺 ベ ク ト ル か ら 一 個 下 の 解 に 係 数 を か け た も の を 引 く と 求 ま る118 S = S-A(IP(K),J)*DBLE(T(J))119 C D B L Eは倍精度にする組込み関数120 END DO121 T(K)=S122 END DO123

124 cc 連 立 一 次 方 程 式 が 解 け て い る か 確 認125 cc A Tに計算で求めた解 Tと係数行列の掛け算をした結果を保存126 c DO I=1,NP127 c AT(I)=0.0128 c DO J=1,NP129 c AT(I)=AT(I)+AA(I,J)*T(J)130 c END DO131 c END DO132

133 c も と も と の 右 辺 B Bと解 Tと係数 A Aの掛け算で求まった右辺 A Tがどれくらい違うか比較134 c WRITE (*,*)"AT(I) BY BANDSOLVE"135 c DO I=1,NP136 c IF(AT(I)-BB(I) .GT. 1.0E-6)137 c WRITE (6,*) AT(I)-BB(I)138 cc 何 も 書 か な い w r i t e文で改行なしを中断139 c ENDDO140

141 RETURN142

143 900 CONTINUE144 WRITE (* ,2001)K145 2001 FORMAT(’係数行列は特異 (write by bandsolve)’)146 RETURN147 END

bandsolve は連立一次方程式をガウスの消去法で解くサブルーチンである。gmatrix の箇所でも説明したが、本研究がベースにしていた福井氏 [11]の作成した二次元定常拡散問題の解析プログラムでは係数マトリックスの対称性を利用したメモリの節約が行われている。そのため、連立一次方程式を解くサブルーチン bandsolve でもマトリックスの対称性を利用して計算が行われていた。本研究の取り扱う二次元定常移流拡散問題ではマトリックスが非対称になるため、bandsolve をフルマトリックスで解くように修正した。また、ガウスの消去法を行う場合は対角成分であるピボットが 0やそれに準じる非常に小さい場合において、計算ができなくなったり桁落ちにより適切な解が求まらない。そこで、42行目から 67行目においてはピボットの値が大きくなるように予め行の入れ替えを行っている。このサブルーチン bandsolve については文献 [8, pp.52-69]及び文献 [9, pp.56-58]の説明とサンプルのソースコードを大いに参考にした。

A.4 入力データ作成支援プログラムmelement4及びmelement3のソースコードの掲載

プログラムの妥当性を確認するために、領域の要素分割数を増やし要素数を増やすと入力に必要なデータも増える。4要素程度ならば手動で入力データを作成することは容易であったが、400要素ともなると手動で入力データを作成することに数時間かかり数値実験を行う上で効率が悪い。そこで、要素の分割数や境界条件値を設定することである程度自動で入力データを作成するプログラムを本研究の解析プログラム fem2dh steady AD とは別に作成した。まず、fem2dh steady AD を実行するために読み込むファイルの形式を以下の入力ファイルを例として示した。

リスト A.10: 入力ファイルの例

1 TEST01:Case File 01 ! テ ス ト の タ イ ト ル2 2 ! 材 質 種 類 数3 1.0000E+0 1.0000E+0 1.0000E+0 ! 熱 伝 導 率 密 度 定 圧 比 熱 容 量   の 順4 0.8350E+2 0.7874E+4 4.4713E+2 ! 鉄 の 物 性 値5 4 ! 要 素 数

69

Page 71: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

6 1 1 1 1 4 5 2 ! 要 素 番 号   材 質 番 号   要 素 種 類 番 号   要 素 を 構 成 す る 節 点 の 番 号   の 順7 2 1 1 2 5 6 38 3 1 1 4 7 8 59 4 1 1 5 8 9 6

10 9 ! 節 点 数11 1 1.000000 0.000000 1 ! 節 点 番 号   座 標( x,y) 自 由 度 番 号   の 順12 2 1.000000 2.000000 213 3 1.000000 4.000000 314 4 3.000000 0.000000 415 5 3.000000 2.000000 516 6 3.000000 4.000000 617 7 5.000000 0.000000 718 8 5.000000 2.000000 819 9 5.000000 4.000000 920 6 ! 基 本 境 界 条 件 の か か る 節 点 数21 1 300.00 ! 節 点 番 号   境 界 条 件 値   の 順22 2 300.0023 3 300.0024 7 200.0025 8 200.0026 9 200.0027 1 ! 自 然 境 界 条 件 の あ る 節 点 数28 4 200.00 ! 節 点 番 号   境 界 条 件 値   の 順29 END

リスト A.10において、! 以降は入力時には無視される。基本的にはリスト A.10内で! 以降で示したような意味の数値の順となっている。なお、自然境界条件を設定しない場合は 27行目の値を 0とし、以降の自然境界条件のかかっている節点番号と境界条件値を省略することで実現する。また、6行目から 9行目での要素を構成する節点番号は反時計まわりの順番に入力する必要がある。入力ファイルであるリストA.10において、要素種類番号は本研究では四角形要素は 1、三角形要素は 2という対応をしている。要素の形状が異なれば、節点番号や要素種類番号が異なる。そのため、四角形要素の入力データを作成するプログラムをmelement4、三角形要素の入力データを作成するものをmelement3という名称で作成した。これらのプログラムを実行することでリスト A.10における 5行目から 28行目に相当する部分のデータを実行結果として得ることができる。実行によって得られた結果をコピーし、物性値までの入力を済ませた新たな入力データにペーストすることで、入力データの作成を容易となる。このように、実行して得られた結果をコピーペーストすることで新しく入力データを作成することを想定してmelement4及びmelement3を開発した。なお、これらのプログラムは fem2dh steady AD と同様に fortran言語で作成した。プログラムの名称はmake element からmelement と名付け、後ろの数字は作成する要素の形状を意図した。melement4 のソースコードを以下に掲載した。

リスト A.11: melement4 のソースコード

1 C 二 次 元 領 域 全 体 で 一 様 な 四 角 形 要 素 ( 全 て 同 じ 要 素 ) の デ ー タ を 作 る プ ロ グ ラ ム で す 。2 c 節 点 番 号 と 要 素 番 号 は 左 下 か ら 始 ま っ て 、 下 か ら 上 に つ い て ま す 。3

4 c 基 本 境 界 条 件 と 自 然 境 界 条 件 に つ い て も4 辺 そ れ ぞ れ に つ い て 入 力 で き る よ う に し た け れ ど 、5 c 縦 と 横 と が 交 わ る と こ ろ で は 二 重 に 設 定 し て し ま う の で 注 意6 c コ ン パ イ ル す る と き は7 c Linuxはf77 melement4.f -o melement4 cygwin g77 melement4.f -o melement48 C PROGRAMED BY K.SENOO ADVICED BY PRO.MATSUMOTO 2012 -02 -099

10 DIMENSION CRD (2 ,10000)!最大節点数1000011

12 cc N=20!横または縦の要素分割数13 WRITE (*,*)"横または縦の要素分割数(整数で書く)"14 READ (*,*) N15 C 領 域 の 設 定16 cc XMIN =0.017 cc XMAX =1.018 cc YMIN =0.019 cc YMAX =1.020

21 WRITE (*,*)"領域の設定XMIN ,YMIN ,XMAX ,YMAX"22 READ (*,*) XMIN ,YMIN ,XMAX ,YMAX23

24 C 基 本 境 界 境 界 条 件 の 設 定25 c 値 を あ た え な い と きは -126 c BVXL =0.0!左端の値27 c BVXR =0.0!右端の値28 c BVYL=-1!下端の値29 c BVYU=-1!上端の値30

31 WRITE (*,*)"基本境界境界条件の設定,左端 ,右端 ,下端 ,上 端 の順 ,与 え な い と き は 負 の 数 に す る "32 READ (*,*) BVXL ,BVXR ,BVYL ,BVYU33

34

35 c 自 然 境 界 条 件 の 設 定36 C 値 を あ た え な い と きは0.037 c BVNXL =0.0!左端の値38 c BVNXR =0.0!右端の値39 c BVNYL =0.0!下端の値40 c BVNYU =0.0!上端の値41

70

Page 72: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

42 WRITE (*,*)"自然境界境界条件の設定,左端 ,右端 ,下端 ,上 端 の順 ,与 え な い と き は0 "43 READ (*,*) BVNXL ,BVNXR ,BVNYL ,BVNYU44

45 DX=(XMAX -XMIN)/N!要素の横幅46 DY=(YMAX -YMIN)/N! 要 素 の 縦 幅47 C 要 素 数48 WRITE (* ,101 ) N*N,"!要 素 数 "49 101 FORMAT(I5,A8)50 C 要 素 番 号   要 素 材 質   要 素 形 状   要 素 の 節 点 番 号 節 点 番 号 は 左 下 か ら 反 時 計 回 り に つ い て い る51 NE=052 DO 10 I=1,N53 DO 20 J=1,N54 NE=NE+155

56 WRITE (* ,100) NE ,1,1,((I-1)*N+I+J-1),((N+1)*I+J),((N+1)*I+J+1)57 & ,((I-1)*N+I+J)58 20 CONTINUE59 10 CONTINUE60 100 FORMAT (40I5)61 C 全 節 点 数 の 表 示62 WRITE (* ,101) (N+1)*(N+1),"!節 点 数 "63 NP=064 C 節 点 番 号 と 節 点 の 座 標 ( x, y)65 DO 30 I=1,N+166 DO 40 J=1,N+167 NP=NP+168 CRD(1,NP)=XMIN+DX*(I-1)69 CRD(2,NP)=YMIN+DY*(J-1)70 WRITE (* ,200) NP,CRD(1,NP),CRD(2,NP),NP71 40 CONTINUE72 30 CONTINUE73 200 FORMAT(I5 ,2F10.6,I8)74

75 c 境 界 条 件 の 読 み 込 み76 ND=077

78 IF(BVXL .GT. -0.1) ND=ND+N+179 IF(BVXR .GT. -0.1) ND=ND+N+180 IF(BVYL .GT. -0.1) ND=ND+N+181 IF(BVYU .GT. -0.1) ND=ND+N+182

83 WRITE(*,"(I5,A16)" )ND ,"!基 本 境 界 条 件 数 "84 cc 基 本 境 界 条 件 の あ る 節 点 と 境 界 条 件 値85 DO I=1,NP86 IF(XMIN .EQ. CRD(1,I))THEN87 IF(BVXL .GT. -0.1) THEN88 WRITE (* ,210)I,BVXL89 ENDIF90 ENDIF91 ENDDO92

93 DO I=1,NP94 IF(XMAX .EQ. CRD(1,I))THEN95 IF(BVXR .GT. -0.1) THEN96 WRITE (* ,210)I,BVXR97 ENDIF98 ENDIF99 END DO

100

101 DO I=1,NP102 IF(YMIN .EQ. CRD(2,I))THEN103 IF(BVYL .GT. -0.1) THEN104 WRITE (* ,210)I,BVYL105 ENDIF106 ENDIF107 END DO108

109 DO I=1,NP110 IF(YMAX .EQ. CRD(2,I))THEN111 IF(BVYU .GT. -0.1) THEN112 WRITE (* ,210)I,BVYU113 ENDIF114 ENDIF115 END DO116

117 210 FORMAT(I5,F10 .2)118

119 C 自 然 境 界 条 件 の 読 み 込 み120 NN=0121 IF(BVNXL .NE. 0.0) NN=NN+N+1122 IF(BVNXR .NE. 0.0) NN=NN+N+1123 IF(BVNYL .NE. 0.0) NN=NN+N+1124 IF(BVNYU .NE. 0.0) NN=NN+N+1125

126 WRITE(*,"(I5,A16)" )NN ,"!自 然 境 界 条 件 数 "127 cc 自 然 境 界 条 件 の あ る 節 点 と 境 界 条 件 値128 DO I=1,NP129 IF(XMIN .EQ. CRD(1,I))THEN130 IF(BVNXL .NE. 0.0) THEN131 WRITE (* ,210)I,BVNXL132 ENDIF133 ENDIF134 ENDDO135

136 DO I=1,NP137 IF(XMAX .EQ. CRD(1,I))THEN

71

Page 73: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

138 IF(BVNXR .NE. 0.0) THEN139 WRITE (* ,210)I,BVNXR140 ENDIF141 ENDIF142 END DO143

144 DO I=1,NP145 IF(YMIN .EQ. CRD(2,I))THEN146 IF(BVNYL .NE. 0.0) THEN147 WRITE (* ,210)I,BVNYL148 ENDIF149 ENDIF150 END DO151

152 DO I=1,NP153 IF(YMAX .EQ. CRD(2,I))THEN154 IF(BVNYU .NE. 0.0) THEN155 WRITE (* ,210)I,BVNYU156 ENDIF157 ENDIF158 END DO159

160

161 END

melement3 のソースコードを以下に示した。

リスト A.12: melement3 のソースコード

1 C 二 次 元 領 域 全 体 で 一 様 な 三 角 形 要 素 ( 全 て 同 じ 要 素 ) の デ ー タ を 作 る プ ロ グ ラ ム で す 。2 c 三角形の形状は「 /」 と い う よ う な 形 。3 c   要 素 番 号 は 左 下 か ら 始 ま っ て 、 下 か ら 上 に つ い て ま す 。4 c   節 点 番 号 は と い う よ う に 左 下 右 下 右 上 、 右 上 左 上 左 下 と い う よ う に つ い て い る 。5

6 c 基 本 境 界 条 件 と 自 然 境 界 条 件 に つ い て も4 辺 そ れ ぞ れ に つ い て 入 力 で き る よ う に し た け れ ど 、7 c 縦 と 横 と が 交 わ る と こ ろ で は 二 重 に 設 定 し て し ま う の で 注 意 。8 c コ ン パ イ ル す る と き は9 c Linuxは f77 melement3.f -o melement3

10 c Cygwinは g77 melement3.f -o melement311 C PROGRAMED BY K.SENOO ADVICED BY PRO.MATSUMOTO 2012 -02 -2212

13 DIMENSION CRD (2 ,10000)!最大節点数1000014

15 c N=20!横または縦の要素分割数16 WRITE (*,*)"横または縦の要素分割数(整数で書く)"17 READ (*,*) N18 C 領 域 の 設 定19 c XMIN =0.020 c XMAX =1.021 c YMIN =0.022 c YMAX =1.023

24 WRITE (*,*)"領域の設定XMIN ,YMIN ,XMAX ,YMAX"25 READ (*,*) XMIN ,YMIN ,XMAX ,YMAX26

27 C 基 本 境 界 境 界 条 件 の 設 定28 c 値 を あ た え な い と きは -129 c BVXL =1.0!左端の値30 c BVXR =-1.0!右端の値31 c BVYL =0.0!下端の値32 c BVYU=-1!上端の値33

34 WRITE (*,*)"基本境界境界条件の設定,左端 ,右端 ,下端 ,上 端 の順 ,与 え な い と き は 負 の 数 に す る "35 READ (*,*) BVXL ,BVXR ,BVYL ,BVYU36

37

38 c 自 然 境 界 条 件 の 設 定39 C 値 を あ た え な い と きは0.040 c BVNXL =0.0!左端の値41 c BVNXR =0.0!右端の値42 c BVNYL =0.0!下端の値43 c BVNYU =0.0!上端の値44

45 WRITE (*,*)"自然境界境界条件の設定,左端 ,右端 ,下端 ,上 端 の順 ,与 え な い と き は0 "46 READ (*,*) BVNXL ,BVNXR ,BVNYL ,BVNYU47

48

49 DX=(XMAX -XMIN)/N!要素の横幅50 DY=(YMAX -YMIN)/N! 要 素 の 縦 幅51 C 要 素 数52 WRITE (* ,101 ) N*N*2,"!要 素 数 "53 101 FORMAT(I5,A8)54 C 要 素 番 号   要 素 材 質   要 素 形 状   要 素 の 節 点 番 号 節 点 番 号 は 左 下 か ら 反 時 計 回 り に つ い て い る55 NE=056 DO 10 I=1,N57 DO 20 J=1,N58 NE=NE+159 C NOP(1,I)=((I-1)*N+I+J-1)60 C NOP(2,I)=((N+1)*I+J+1)61 C NOP(3,I)=((N+1)*I+J+1)62 C NOP(4,I)=((I-1)*N+I+J+1)

72

Page 74: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

63 C I1 ()=((I-1)*N+I+J-1)64 C I2=((N+1)*I+J+1)65 C I3=((N+1)*I+J+1)66 C I4=((I-1)*N+I+J+1)67

68 WRITE (* ,100) NE ,1,2,((I-1)*N+I+J-1),((N+1)*I+J),((N+1)*I+J+1)69 NE=NE+170 WRITE (* ,100) NE ,1,2,((N+1)*I+J+1),((I-1)*N+I+J),((I-1)*N+I+J-1)71 20 CONTINUE72 10 CONTINUE73 100 FORMAT (40I5)74 C 全 節 点 数 の 表 示75 WRITE (* ,101) (N+1)*(N+1),"!節 点 数 "76 NP=077 C 節 点 番 号 と 節 点 の 座 標 ( x, y)78 DO 30 I=1,N+179 DO 40 J=1,N+180 NP=NP+181 CRD(1,NP)=XMIN+DX*(I-1)82 CRD(2,NP)=YMIN+DY*(J-1)83 WRITE (* ,200) NP,CRD(1,NP),CRD(2,NP),NP84 40 CONTINUE85 30 CONTINUE86 200 FORMAT(I5 ,2F10.6,I8)87

88 c 境 界 条 件 の 読 み 込 み89 ND=090

91 IF(BVXL .GT. -0.1) ND=ND+N+192 IF(BVXR .GT. -0.1) ND=ND+N+193 IF(BVYL .GT. -0.1) ND=ND+N+194 IF(BVYU .GT. -0.1) ND=ND+N+195

96 WRITE(*,"(I5,A16)" )ND ,"!基 本 境 界 条 件 数 "97 cc 基 本 境 界 条 件 の あ る 節 点 と 境 界 条 件 値98 DO I=1,NP99 IF(XMIN .EQ. CRD(1,I))THEN

100 IF(BVXL .GT. -0.1) THEN101 WRITE (* ,210)I,BVXL102 ENDIF103 ENDIF104 ENDDO105

106 DO I=1,NP107 IF(XMAX .EQ. CRD(1,I))THEN108 IF(BVXR .GT. -0.1) THEN109 WRITE (* ,210)I,BVXR110 ENDIF111 ENDIF112 END DO113

114 DO I=1,NP115 IF(YMIN .EQ. CRD(2,I))THEN116 IF(BVYL .GT. -0.1) THEN117 WRITE (* ,210)I,BVYL118 ENDIF119 ENDIF120 END DO121

122 DO I=1,NP123 IF(YMAX .EQ. CRD(2,I))THEN124 IF(BVYU .GT. -0.1) THEN125 WRITE (* ,210)I,BVYU126 ENDIF127 ENDIF128 END DO129

130 210 FORMAT(I5,F10 .2)131

132 C 自 然 境 界 条 件 の 読 み 込 み133 NN=0134 IF(BVNXL .NE. 0.0) NN=NN+N+1135 IF(BVNXR .NE. 0.0) NN=NN+N+1136 IF(BVNYL .NE. 0.0) NN=NN+N+1137 IF(BVNYU .NE. 0.0) NN=NN+N+1138

139 WRITE(*,"(I5,A16)" )NN ,"!自 然 境 界 条 件 数 "140 cc 自 然 境 界 条 件 の あ る 節 点 と 境 界 条 件 値141 DO I=1,NP142 IF(XMIN .EQ. CRD(1,I))THEN143 IF(BVNXL .NE. 0.0) THEN144 WRITE (* ,210)I,BVNXL145 ENDIF146 ENDIF147 ENDDO148

149 DO I=1,NP150 IF(XMAX .EQ. CRD(1,I))THEN151 IF(BVNXR .NE. 0.0) THEN152 WRITE (* ,210)I,BVNXR153 ENDIF154 ENDIF155 END DO156

157 DO I=1,NP158 IF(YMIN .EQ. CRD(2,I))THEN

73

Page 75: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

159 IF(BVNYL .NE. 0.0) THEN160 WRITE (* ,210)I,BVNYL161 ENDIF162 ENDIF163 END DO164

165 DO I=1,NP166 IF(YMAX .EQ. CRD(2,I))THEN167 IF(BVNYU .NE. 0.0) THEN168 WRITE (* ,210)I,BVNYU169 ENDIF170 ENDIF171 END DO172

173

174 END

これらのプログラムは長方形領域を設定し、領域内で一様な四角形及び三角形要素で要素分割した場合の入力データを作成する。長方形領域の境界についても各辺ごとに基本境界条件および自然境界条件をそれぞれ設定できるようにした。なお、連続する辺に境界条件を設定する場合はその接合点で二重に境界条件を設定してしまうため、実行結果をコピーして入力データに貼り付けた後で手動で調整する必要がある。

A.5 fem2dh steady AD におけるルーチンでの変数の役割ソースコードに登場する記号の内、主要なものについてはその意味や役割を表A.2にまとめて掲載した。

表 A.2: 記号の意味

記号意味 表すもの 関連記号,引数

主な登場ルーチン

NPMAX最大節点数 Number of node Points MAX =NPD main

NEMAX最大要素数 Number of Elements MAX =NED main

NPEMAX要素内最大節点数 Number of node Points Element MAX =NPED main

NF空間の次元数 Number of Fields =NFD main

NT各点での自由度 各点での独立な(未知)数の数 main

A(NP,NP)

係数マトリックス main

B(NP)

右辺ベクトル main

NS材質数 Number of Substance input

RKAPPA(NS)

熱伝導率 κ 入力データから読み込む物性値 κ 入力データ input

HEATCAP(NS)

定圧比熱容量 cp入力データから読み込む物性値 cp 入力データ input

DENSITY(NS)

密度 ρ 入力データから読み込む物性値 ρ 入力データ input

RK(NS)

温度伝導率 k k = κ/(ρcp) 入力データinput,ek4nodstab,ek3nod

NE要素数 Number of Elements 入力データ input

KMATR(NE)

要素の材質番号 Kind of MATeRial 入力データ,KEL input

KELMN(NE)

要素の形状番号 Kind of ELeMeNnt 入力データ,KMAT input

NOP(LELM(6),NE)

節点番号 Number Of Points 入力データ input

NP節点数 Number of node Points 入力データ input

74

Page 76: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

記号意味 表すもの 関連記号,引数

主な登場ルーチン

CRD(NFD,NP)

節点の座標 CooRDinates 入力データ input,loccrd

IA(NP)

節点の自由度番号 degree of freedom 入力データ input

VN(NFD,NP)

各節点での流速 Verocity Numbers 入力データ input,locv

ND基本境界条件数 Number of Dirichlet conditions 入力データ input,bound

NOPBV(ND)

基本境界条件の節点番号 NOP Basic bound Value 入力データ input,bound

BV(ND)

基本境界条件値 Basic bound Value 入力データ input,bound

NN自然境界条件数 Number of Neumann conditions 入力データ input,bound

NOPBVN(NN)

自然境界条件の節点番号 NOP Bound Value Neumann 入力データ input,bound

BVN(NN)

自然境界条件値 Bound Value Neumann 入力データ input,bound

IA(NP)

節点の自由度番号 degree of freedom 入力データ input

LELM(6)

要素の形状 要素の頂点の数を記憶 blkdat000input

KEL要素種類 Kind of ELement KELMN(NE) ekmat

KMAT材質種類 Kind of MATerial KMATR(NE) ekmat

ZCRD(NFD,LELM(KEL))

ある要素の節点の座標 Z CooRDinates CRD(NFD,NP) loccrd

ZV(NFD,LELM(KEL))

ある要素の節点の流速 Z Verocity VN(NFD,NP) locv

IPT数値積分の積分点数 Integral PoinT ek4nod

IX,XY

各方向の積分点 Integral X,Integral Y ek4nod

DNDX(NFD

,LELM(KEL))

全体座標系での微分

∂N e

i

∂x∂N e

i

∂y

= [J ]−1

∂N e

i

∂ξ∂N e

i

∂η

CI(2,2),D

DNDXI(NFD,4)

ZCRD(NFD,3)

ek4nodek3nod

dfshp4,stab

DNDXI(NFD,4)

局所座標系での微分∂N e

i

∂ξ

∂N ei

∂ηXI,ETA

dfshp4dlshp4

AI(IPT,IPT)

数値積分での座標値 IX,IYek4nod

blkdat000WI(IPT,IPT)

数値積分での重み Weight IX,IYek4nod

blkdat000WK(NFD,4)

局所座標系でのKeの中身∂N e

i

∂ξ

∂N ej

∂ξ+

∂N ei

∂η

∂N ej

∂ηDNDX(NFD,4) ek4nod

EK(NFD,LELM(KEL))

全体座標系のKe

k

∫ ∫ ∂N e

i

∂x

∂N ej

∂x+

∂N ei

∂y

∂N ej

∂y

DETJ,WK(NFD,4)

WI(IPT,IPT),S

RK(KMAT)

ek4nodek3nodgmatrix

WA(NFD,4)

局所座標系でのAeの中身N e

j vx∂N e

i

∂ξ+N e

j vy∂N e

i

∂η

V(NFD),DNDX(NFD,4)

RN(NFD,LELM(KEL)) ek4nod

75

Page 77: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

記号意味 表すもの 関連記号,引数

主な登場ルーチン

EA(NFD,LELM(KEL))

全体座標系でのAe

∫ ∫ N e

j vx∂N e

i

∂x+N e

j vy∂N e

i

∂y

DETJ,WA(NFD,4)

V(NFD),WI(IPT,IPT)

S,DNDX(NFD,4)

RN(NFD,LELM(KEL))

ek4nodek3nodgmatrix

WA DE(NFD,4)

局所座標系でのAδe の中身

(vx

∂N ej

∂ξ+ vy

∂N ej

∂η

)(vx

∂N ei

∂ξ+ vy

∂N ei

∂η

)V(NFD),DNDX(NFD,4) ek4nod

EA DE(NFD,

LELM(KEL))

全体座標系でのAδe

τe

∫ ∫ (vx

∂N ej

∂x+ vy

∂N ej

∂y

)(vx

∂N ei

∂x+ vy

∂N ei

∂y

)dΩ

DETJ,WA(NFD,4)

V(NFD),WI(IPT,IPT)

S,DNDX(NFD,4)

RN(NFD,LELM(KEL))TAU E

ek4nodek3nodgmatrix

WK DE(NFD,4)

局所座標系でのKδe の中身∂N e

i

∂ξ

∂N ej

∂ξ+

∂N ei

∂η

∂N ej

∂ηDNDX(NFD,4) ek4nod

EK DE(NFD,

LELM(KEL))

全体座標系でのKδeτLSIC

∫ ∫ ∂N e

i

∂x

∂N ej

∂x+

∂N ei

∂y

∂N ej

∂y

DETJ,WA(NFD,4)

WI(IPT,IPT)

S,DNDX(NFD,4)TAU L

ek4nodek3nodgmatrix

C(2,2)

[J ]の成分 [J ] =

∂x

∂ξ

∂x

∂η∂y

∂ξ

∂y

∂η

DNDXI(NFD,4)

ZCRD(NFD,4) dfshp4

DETJ|[J ]| |[J ]| = ∂x

∂ξ

∂y

∂η− ∂y

∂ξ

∂x

∂ηC(2,2) dfshp4

CI(2,2)

[J ]−1の成分 [J ]−1 =1

|[J ]|

∂x

∂η−∂y

∂ξ

−∂x

∂η

∂y

∂ξ

C(2,2),DETJ dfshp4

XI,ETA

局所座標系での横軸,縦軸 ξ, η AI(IPT,IPT) dlshp4

RN(NFD,4)

内挿関数 N ei XI,ETA shp4

V(NFD)

内挿近似した流速 vx, vyXI,ETA,VE

ZV(NFD,LELM(KEL)) shp4,ek3nod

S三角形要素の面積 Se =

1

2

1 xe1 ye11 xe2 ye21 xe2 ye3

ZCRD(NFD,3) ek3nod

D三角形要素の面積の二倍 De = 2Se S ek3nod

TAU E安定化パラメータ τe

τe =he2|v|

(cothPe −

1

Pe

)RK(NS)

VE,HE,PE stab

TAU L安定化パラメータ τLSIC

τLSIC =

|v|he2

Pe

3(Pe ≤ 3)

|v|he2

(Pe > 3)VE,HE,PE stab

PEペクレ数 Pe

Pe =|v|he2k

RK(NS),VE,HE stab

VE流速の大きさ |v| |v| =

√v2x + v2y V(NFD) stab

HE要素サイズ he

2

(nen∑α=1

∣∣∣∣ vi|v| ∂N eα

∂xi

∣∣∣∣)−1

(|v| > 0.001)

要素の辺の長さの平均 (|v| ≤ 0.001)

VE,V(NFD)

HEN(LELM(KEL))

DNDX(NFD,

LELM(KEL)) stab

HEN(LELM(KEL))

要素の一辺長ZCRD(NFD,

LELM(KEL)),HE stab

76

Page 78: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

A.6 式に登場する記号本論文で登場する主要な記号について表A.3にまとめて掲載した。

表 A.3: 本論文内で登場する記号の意味

記号 意味 単位 定義や条件

T 温度 K 位置に依存する未知関数 T (x, y)

T 内挿近似した温度 K T =

nen∑i=1

N ei T

ei

T ei 要素 eの要素節点番号 i∗での温度 K 未知定数

x, y 空間座標軸 m 対象領域の位置を示すxei , y

ei 要素 eの要素節点番号 i∗での座標値 m

t 時間軸 s 対象領域の時刻を示すv 流速度ベクトル m/s v = (vx, vy)

vx, vy x, y方向の流速 m/s 各節点で与えられ既知の定数とする

vx, vy 内挿近似した流速 m/s vx =

nen∑i=1

N ei v

exi, vy =

nen∑i=1

N ei v

eyi

vexi, veyi 要素 eの要素節点番号 i∗での流速 m/s 既知の定数

n 単位法線ベクトル m n = (nx, ny)Q 熱量 J

k 温度伝導率 (熱拡散率,温度拡散率) m2/s k =κ

ρcpκ 熱伝導率 W/(m·K) 材質内で一定値で等方性するρ 密度 kg/m3 材質内で一定値とするcp 定圧比熱容量 J/(kg·K) 材質内で一定値とするf 発熱率 W/m3 一定値とする

qi 熱流速 (Heat Flux) W/m2 qi = −κ∂T

∂xiw 重み関数 - w = w(x, y)

w Galerkin 法で近似した重み関数 - w =

nen∑i=1

N ei w

ei

w Petrov-Galerkin 法で近似した重み関数 - w = w + τev · ∇w = w + τevi∂w

∂xiwei 要素 eの要素節点番号 i∗での重み - 任意定数

Pe Peclet(ペクレ)数 - Pe =|v|he2k

he 要素サイズ m he =

2

(nen∑α=1

∣∣∣∣ vi|v| ∂N eα

∂xi

∣∣∣∣)−1

(|v| > 0.001)

要素の辺の長さの平均 (|v| ≤ 0.001)nen ある要素 eの節点数 - 本研究では nen = 3または 4

τe 安定化パラメータ - τe =he2|v|

(cothPe −

1

Pe

)

τLSIC 衝撃捕捉項の安定化パラメータ - τLSIC =

|v|he2

Pe

3(Pe ≤ 3)

|v|he2

(Pe > 3)

Ae 要素マトリックスでの移流行列 1/sAe =

∫Ωe

N ej

(vx

∂N ei

∂x+ vy

∂N ei

∂y

)dΩ

(行列の i, j成分を示した)

De 要素マトリックスでの拡散行列 1/sDe = k

∫Ωe

(∂N e

i

∂x

∂N ej

∂x+

∂N ei

∂y

∂Nje

∂y

)dΩ

(行列の i, j成分を示した)

Aδe 要素マトリックスでの安定化行列 1/sAδe = τe

∫Ωe

(vx

∂N ej

∂x+ vx

∂N ej

∂x

)(vx

∂N ei

∂x

+vy∂N e

i

∂y

)dΩ (行列の i, j成分を示した)

77

Page 79: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

記号 意味 単位 定義や条件

Dδe 要素マトリックスでの衝撃捕捉行列 1/sDδe = τLSIC

∫Ωe

(∂N e

i

∂x

∂N ej

∂x+

∂N ei

∂y

∂Nje

∂y

)dΩ

(行列の i, j成分を示した)T e 要素マトリックスでの温度ベクトル K Ti (ベクトルの i成分を示した)we 要素マトリックスでの重みベクトル K wi (ベクトルの i成分を示した)

F 熱フラックスベクトル K kg2

∫Γ2

N ei dγ (ベクトルの i成分を示した)

N ei ある要素 eでの内挿関数 -

Ni(ξ, η) =1

4(1 + ξξi)(1 + ηηi),  i = 1 ∼ 4

(四角形要素が正規化された局所座標系の場合)Lei ある要素 eでの形状関数 - Le

i = aei + beix+ ceiy (i = 1 ∼ nen)

ξ, η 局所座標系での座標軸 m x =

4∑i=1

N ei (ξ, η)x

ei , y =

4∑i=1

N ei (ξ, η)y

ei ,

[J ] ヤコビアン - [J ] =

∂x

∂ξ

∂y

∂ξ

∂x

∂η

∂y

∂η

De 三角形要素 eの 2倍の面積 - De =

∣∣∣∣∣∣1 xe1 ye11 xe2 ye21 xe3 ye3

∣∣∣∣∣∣Se 三角形要素 eの面積 - De/2Ω 領域を表す記号 -Ωe 領域内のある要素 eの領域を表す -Γ 境界を表す記号 - Γ = Γ1 ∪ Γ2

g1 第一種境界条件値 K 一定値とするg2 第二種境界条件値 K/m 一定値とする

coth双曲線余接関数

(ハイパボリックコタンジェント)- cothx =

1

tanhx

∇ 演算子(ナブラ) - ∇ =

(∂

∂x,∂

∂y,∂

∂z

)∆ 演算子(ラプラシアン) - ∆ = ∇2 =

∂2

∂x2+

∂2

∂y2+

∂2

∂z2

78

Page 80: 2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の … · 【2011年度学士卒業論文】 有限要素法による熱の移流拡散問題の解析

A.7 用語集本論文で登場した専門用語について主要なものについて表A.4にまとめた。

表 A.4: 本論文に登場した主要な用語

用語 説明

Galerkin法 近似関数と同じ基底関数を重み関数に用いる方法。Green の公式 多変数関数における部分積分の公式のこと。

Petrov-Galerkin法 近似関数と異なる基底関数を重み関数に用いる方法。SUPG 法 Upwind Petrov-Galerkin 法を多次元へ拡張したもの。多次元空間での移流拡散

問題において流れの上流方向に重みを取ることで解の安定化を図る。Upwind Galerkin 法 移流拡散問題における解の不安定性の問題に対して、風上差分法と同じになるよ

うに拡散係数に人工拡散係数を加える離散化手法。過剰な人工拡散が入ることでなまった解が求まる。

Upwind Petrov-Galerkin 法 Upwind Galerkin 法での不具合を解決した手法。一次元定常移流拡散問題において最適な人工拡散係数を加え、全ての項において同じ重み関数 wを適用した方法のこと。

アイソパラメトリック要素 近似関数を近似するときに使った内挿関数と同じ基底関数を座標変換に用いた要素のこと。アイソパラメトリック要素を用いることで、近似関数を決めた時のように、全体座標 x, yもある要素 eの要素節点番号 i∗での座標値 xei , y

eiと内挿関数

をかけたもので表すことができる。重み付き残差法 微分方程式を近似的に解く手法。ある式に対して近似解を当てはめる。そのとき

に生じる誤差(残差)に対して、重みをかけて全体で足し合わせて最小化することで適切な解を求める。

重み付き残差方程式 重み付き残差法を適用した式のこと。ガウスの消去法 連立一次方程式を組織的に解く手法。

ガウス・ルジャンドル法 任意の関数の積分を −1 ∼ +1の範囲内で決められた座標での関数値に重みをかけたものの和として求める数値積分法。

基底関数 近似関数を作る時に使う基となる関数。近似関数 未知関数を別の関数で近似した関数のこと。

形状関数(試験関数) 要素内の面積比または体積比を表す関数。剛性行列 二階微分項からなる領域積分の行列のことを慣習としてこう呼ぶ。弱形式 部分積分を施して微分の階数が弱められた式。節点 要素の端点のこと。

節点番号 節点につける番号。直接剛性法 要素ごとに求めた値の和を取ることで全体の近似方程式を組みたてること。

内挿関数(補間関数) 物理量の割合を示す重み関数。節点と節点の間のデータを埋める数値を与える関数。領域内で線形に変化する場合は形状関数と等しくなる。なお、補間と内挿は同じ意味の言葉である。

フーリエの法則 熱の拡散についての法則である。熱は温度の高いところ低いところへ移動し、その移動量は温度差に比例するという法則である。

有限要素法 微分方程式を近似的に解く数値解析の手法。数学的には Galerkin 法を用いた重み付き残差法という位置づけになる。領域を要素に分割し、要素ごとに式を立て、領域全体は全要素について足し合わせることで表現する。

有限要素方程式 重み付き残差法とGalerkin 法を適用することで得られる離散化された式のこと。要素 領域を小領域に分割したもののこと。

要素節点番号 各要素毎につける節点番号。節点番号は任意につけられるため、ある要素についての節点番号の対応を考慮することが困難となる。そこで、式などで表現する際に表記を簡単にするために要素節点番号が用いられる。反時計まわりに番号付けを行わないといけない。

要素番号 要素につける番号。

79