4 FlexPDEによるFEM計算結果
(1)計算モデル
円柱座標でかつ軸対象流れ。
内径d=50mm、長さL=0.8mの直円管に、密度ρ=900kg/m3、粘度μ=0.02Pa s、の油を体積流量Q=12 litter/min流し込む。
(2)結果
・モデルのグリッド(自動グリッドでノード24、セル26)...図1
長手方向がz方向で、管断面(緑色)は半割状態で計算した、よって管中心はR=0である。

・管路内の流速(m/s)とせん断応力(Pa) (vzとtauエレベーション図)...図2a,b,c
上から、管入口部、管中間部、管出口部を示す。オレンジ色がz方向流速vz、ブルーがせん断応力tauである。
図2a

境界条件として入口に平均流速umean=Q/ (πr^2)を採用した(Boundaries分でvalue(vz)=umean)ので、図2aのvzは管中心で約0.1m/sを示している。
vz、tauいずれも入口においては物理的な意味を正確には表せていない。
図2b

管中間部においては、vzは管中心で最大になり、約0.145m/s。
せん断応力は最大が管壁にあり、約0.24Paである事が判る。Maple解説では0.33Paなので、73%程度に見積もられている(理由はRe)。
図2c

出口部においては、管中心(R=0)で流速vzが最大で、約0.15m/s。Maple解説では約0.2m/sなので、これも25%小さく見積もられている。
せん断応力は最大が管壁にあり、約0.24Paである事が判る。
・最大流速(vmのコンター図)...図3
vmはベクトルv(vz、vr)の大きさ(マグニチュード、つまりsqrt(vz^2+vr^2))を表す。管軸R=0ではvrの影響はずいぶん小さく、殆どvzが支配的と言って良い、0.15m/s。

・レイノルズ数(Reのコンター図)...図4
Maple解説では教科書通り代表長さにd、平均流速umeanを選び、Reは約229である。図3からFEMでは167.8なので、この値も小さく73%程度に見積もられている。値は全体的に同じと見て取れる。

・圧力分布(pのコンター図)...図5
出口は境界条件でvalue(p)=0を指定しているので、0Pa。入口は約19Paに計算されている。Maple解説では20.8Paなので、9割方合っていると言える。

・せん断応力tau(Pa)(tauのコンター図)...図6
全体図では判り辛いが、入口を入った直後の管壁にせん断応力の最大値0.37Paが見られる。管中間部は図2bと同じ。

・質量保存則(div_vのコンター図)...図7
円柱座標における連続の式を計算した。ムラは見えるがカラーバーから全体的にゼロと見て取れる。うまく発散して質量保存則が殆ど成立している事が判る。

・渦度(θ回りの回転のコンター図)
円柱座標での流速vの回転は3つ存在するが、軸対象を仮定すると1つしか残らない。それを計算したものである。傾向はせん断応力tauに近い。決して非回転流れとは言えないね、粘度を加味している結果が物語っている。

(3)コードの説明
ここまで来て、コードを見たいなと思ってもらうと嬉しいけど...。
------------------------------------------------------------------------------

---------------------------------------------------------------------------------
プログラムコードの補足を加えたい。
TITLEは概要や計算の背景などを記載しても構わない。参考図書も記録しておくと後で役立つ。
SELECTでは計算誤差の値をerrlimで指定できる。今回はアプリケーションの制限だろうが、2.5e-2以下の計算では乱流を呈してしまったので、ここでリミットをかけた。
COORDINATESは座標系を指定するが、円柱座標で計算するのでycylinderを指定した。VARIABLESでは変数を指定する。
DEFINITIONSでは構成式中の定数や定義などを指定する。本問題ではモデルの形状、粘度、密度を指定した。単位系は原則SI。
またレイノルズ数基本式、umean(入口流速)の基本式、流速のベクトル定義、速度ベクトルの発散の式(質量保存)、速度ベクトルの回転の式(渦度)、せん断応力tauの基本式を入れている。手元にある流体力学の教科書を参考にしてほしい
EQUATIONSでは、その名の通り構成方程式を指定する、今回はNSEQと圧力pの式を利用した。円柱座標で計算させるためにデカルト座標の構成式を使わず、修正したものになっている。
BOUDARIESは境界条件を指定するエリアで、肝の所だ。valueはディリクレ形境界条件で、入口でvz=umean、出口でp=0を指定。加えて管壁ではvz=0(すべりなし)とした。管軸中心においては、vr、vz、pをnatural(ノイマン)形境界条件とした。
PLOTSは様々なplotコマンドを入力するエリアだ。contourコマンドを多用しているが、具体的な数値が欲しい時は座標を指定してelevationコマンドを使った。
contourコマンドの後ろにpaintedオプションを使うと、記号コンターから色コンターに変えられる。全体を俯瞰したい時に使える。またreportオプションでは指定した計算値を図の下に出力してくれる。例えば図3ではglovalmax(vm)とReが出力されている。これでReの元になった代表流速値が判るわけだ。
最後はENDでプログラムを閉じる。
5 最後に
面倒な数値計算テクニックが無くても、この程度のコードでNSEQが解けてしまう、非圧縮性で層流の範囲ではあるが、現実流体の粘性が加味できるので良しとしよう。
FlexPDEによるFEM結果はMaple解説での値より、せん断応力、最大流速およびレイノルズ数などの数値が小さく計算されている。これはレイノルズ数の計算式が異なる事に原因が有りそうだ。
このように複数のアプリケーションで同一問題を解かせると違いが生じる事が往々にしてある。大事なことは、何故そうなのか、原因がどこにあるのかを突き詰めてみることだ。
6 参考図書
(1)NSEQなどの座標変換に関しては、岡本テキストが役に立った。
(2)巽テキストは王道です。
(3)FlexPDEのコードについてはGunnar Backstromのテキストが役に立った。