中途半端な初心者解説で「なぜ流体工学分野でAIが流行ってるか」(前編)

@dashimody.bsky.social

突然だが、DaShimodyは現在、しがない博士課程学生としてゆる~りと研究にいそしんでいる身だ。

研究分野をざっくり言うと「深層学習パワーで流体の理解とか予測が上手く行くようになると良いね!!」である。
学会のセッション名とかで言えば、「流体工学とAI」といったところか。

ここだけで言えば「流行りのAIに乗っかってるヤツ」に見えそうなのだけども、実は流体と戯れる上でAIの力にすがりたい事情があるのだ。
材料や電磁気でもない、流体力学の恐ろしさというか沼が...。

流れをシミュレーションするってどゆこと??

そもそも流体の挙動をシミュレーションで予想するとしたらどういう計算をするか...という話から始めよう!
まぁなんかこういう流れがあったとするわな。 ぐるぐるぐるぐる…

今回はこいつの渦の速さとか求めたいと。
そういう時はまず、この領域を格子状に切ってみる。

スパスパ—っ!(切断)

で、この区切った領域の中の速度とか圧力とかを何かで計算しまくれば、全体の速度とか圧力も分かるんじゃね? 専門用語でFEM(有限要素法)とか言うよ

というのが基本的な流体シミュレーション。 この区切った領域の事をセルとか格子とか呼びます。

......え?何で計算するんだよって話?
じゃあその話を次にしちゃいましょう~

非圧縮性流体の支配方程式を答えて!走りながら!!

非圧縮性ってのは、まぁ流体の体積が小さくなったりでっかくなったりしないって事。
超音速機で起きるソニックブームなんかは、流体が圧縮されることでああいう衝撃波が起きるんですね。

まぁ圧縮が入った途端、色々と計算が面倒くさくなるんですよ…。
熱力学とか入ってきて「熱流体力学」とかいう最終形態が出現するんで。

なので、ここでは取り敢えず皆さんが触れてるお水とか空気みたいな条件…
すなわち非圧縮性で話しましょう。

で、その非圧縮性流体の支配方程式とやらはこちら!

...あーもう専門用語出てきたよ~。ナントカ方程式ってなんだよ...。

まぁ落ち着いて聞いたまえ。

連続の式

物理の授業でやったかもしれない質量保存則。
突然物体が軽くなったり重くなったりしないよーって話ですね。

これの流体版の式です。
さっきの図で言えば、格子1個に対して、入って来る流体の量と出てくる流体の量は同じですよーという意味の式になります。

ナビエ・ストークス方程式

さっきが質量保存なら今度は運動量保存。
運動量は簡単に言えば、質量と速度をかけた量ですね。\

例えば……
米20kgが時速100km/hでかっ飛んでくるのと、200kgのお相撲さんが時速10km/hで走って来るのとでヤバさは一緒みたいな(?)

で、運動量保存っていうのは、その米とお相撲さんがぶつかっても、2つ合わせた運動量の合計は変わらんですよーっていう。

で、ナビエ・ストークス方程式はその流体版ですね。

式が2つあるのは、それぞれ横方向・縦方向で運動量保存を考えるため。

それぞれの式は5つの項で成り立っています。
・時間項:前の時間から運動量がどれだけ変わったか
・移流項:流れによって運ばれてきた運動量
 →格子の前後左右から入ったり出て行ったりする運動量ですね。
・圧力項:圧力差で流れに与える力
 →圧力に差があると、風が発生するじゃないですか。それです。\
・粘性項:粘性によって流れが均一になっていく力
 →お風呂かき混ぜると、最初はちゃぽちゃぽしますけど、だんだん静かになりますよね。それです。
・外力項:外から流体に対して与える力
 →お風呂かき混ぜる時の力だと思ってもらえると。

それらの項をくっつけて式が出来てる……つまり。

時間差で運動量が増えたら(時間項)、
運ばれてくる運動量(移流項)とか
圧力差(圧力項)、
粘性による流れの減衰(粘性項)で
釣り合わないとおかしいよね!

という事なんです。

なんとなく意味わかったかな?(不安)


で、この3つの式をどうやって計算するの…?という話。

中学生の頃に連立方程式ってやりましたよね?
2つの変数を求めるなら方程式は2つ、3つの変数を求めるなら式は3つ必要だね~とか勉強したアレ。

懐かしいなぁ~と思う人もいる?

この3つの式も求めたい変数はあくまで3つ。
・横方向(x方向)の速度u
・縦方向(y方向)の速度v
・圧力p

じゃあ連立方程式みたいに解けば、さっきの区切った範囲内の速度とか圧力は無事求まる…

わけないのだ。

このナビエ・ストークス方程式さん。
とんでもない曲者だった。

こいつがすべての元凶

移流項が非線形性を持つあまりに、僕らがやってきた連立方程式の解法は全く通用しないのだ!
なんてこったい!

……いや、

なんで非線形だと連立方程式解けないん?って話をしましょう。

分かりやすく図を描くと…

手描き下手くそ

左のf(x)=axのグラフ。
こちらはシンプルな直線で分かりやすいですね。
これが見た目通り、"線の形"。つまり線形です。

一方で右のf(x, y)=*ax²y+bxy²+cxy…*のグラフ。 軸が3次元に増えたうえに、なんだこのグルグル!
どういう法則性で変化してんだ!?
これが非線形です。

また、左のf(x)=axは、xさえ決まればf(x)はすんなり求まりますし、何処まで行ってもxが1増えれば、f(x)もa×1だけ増えます。
これが線形のわかりやすさですね。

右のグルグル。
f(x, y)の増え方はxの一存で決まりません。
yの顔色も窺わないと、f(x, y)が分かる事は永遠にありません。
しかも、xy次第でf(x, y)が激しく変化するため、だいたいの目星も付けづらいですよね。
これが非線形の計算し辛さにつながってきます。

……一方移流項は?

各項の増減には、横方向の速度u、縦方向の速度v、それに加えて微分項のδu/δxδu/δyδv/δxδv/δyそれぞれの変動が影響します。
つまり速度uが増えたり減ったりしても、速度vの変化も見ておかないと、この項は決まらんのです。
これがホントに厄介。

※微分の話まですると話がウルトラ長くなりそうなので、δu/δxδu/δyδv/δxδv/δyは速度u, vから派生して生えてくるオマケだと思っててくれい。

でも解けはするんですよね?

はいそうです。
めちゃくちゃゴリ押しみたいな計算をすることで、流体の挙動は求められます。

どういう計算をするかっていうと、これも中学で習った漸化式に似てて……
って話をするとホントに長くなってしまいそうなので、一旦結論を出しましょう。


まとめ

・流体の計算では、細かく格子を切って、その範囲内の速度とか圧力を求める。
・速度や圧力を求める時はナビエ・ストークス方程式と連続の式を使う。
・ナビエ・ストークス方程式が持つ非線形性がクソ厄介。
・一応解けるがゴリ押し解法でなんとか計算している。

そしてこのゴリ押し解法……めっちゃコンピュータのリソースや計算時間を使います。

それこそ富岳とか不老みたいなスパコンでゴリゴリ計算する世界ですね。

一般人がスパコンをスナック感覚で使えればいいんでしょうが、現実は高嶺の花でございまして。
なので民間企業などでは「もうちょい低廉に流体計算できないかなぁ…」と思うのも当然の話。

そこで「流体工学とAI」が繋がり始めるのです。

次回へ続く!(やる気次第)

正直ここまで長く書くことになるとは思わんかった

dashimody.bsky.social
DaShimody

@dashimody.bsky.social

モタスポやら合成音声やら。

🐦本拠地は: @erg_win
niconico: https://www.nicovideo.jp/user/42054418
(アイコン:ラムレーズン様に描いていただきました)

I'm Japanese PhD student as researcher applying machine learning to fluid mechanics, and motorsports enthusiast.

Post reaction in Bluesky

*To be shown as a reaction, include article link in the post or add link card

Reactions from everyone (0)