Stokes流れ — CAE用語解説

カテゴリ: 用語集 | 2026-01-15
CAE visualization for stokes flow - technical simulation diagram

Stokes流れ

🧑‍🎓

Stokes流れってどんな流れですか?「慣性項を無視できる」って聞いたんですけど…

理論と物理

Stokes流れの定義と支配方程式

🧑‍🎓

Stokes流れって、教科書では「レイノルズ数が非常に小さい流れ」と書いてありますが、具体的にどのくらい小さいとそう呼ぶんですか?

🎓

良い質問だ。一般的にはレイノルズ数 Re < 1 の領域を指す。特に、微生物の遊泳や血液中の血球の流れ、微細な気泡の上昇などでは Re が 0.01 以下になることも珍しくない。例えば、直径10μmの細胞が1mm/sで動く場合、水の中では Re は約 0.01 だ。

🧑‍🎓

では、ナビエ-ストークス方程式からStokes方程式を導く時、なぜ非線形の慣性項を無視できるんですか?「非常に小さい」という感覚的な理由だけで切り捨てていいんですか?

🎓

感覚ではなく、無次元化によるスケーリング解析で厳密に正当化される。代表速度をU、長さをLとすると、慣性項のスケールは

$$ \rho U^2 / L $$
、粘性項のスケールは
$$ \mu U / L^2 $$
だ。この比がまさにレイノルズ数 Re = (ρUL)/μ になる。Re << 1 なら、慣性項は粘性項に比べて無視できるほど小さい、という数学的根拠がある。

🧑‍🎓

なるほど。では、支配方程式は非圧縮性の連続の式と、Stokes方程式になるわけですね。具体的な形は?

🎓

その通り。支配方程式系は以下の通りだ。

連続の式:
$$ \nabla \cdot \mathbf{u} = 0 $$
Stokes方程式:
$$ -\nabla p + \mu \nabla^2 \mathbf{u} + \mathbf{f} = 0 $$
ここで、時間微分項も慣性項もないことに注目してほしい。流れは瞬時に外力や境界条件の変化に追従する。これは「準定常」と呼ばれる非常に重要な性質で、メモリ効果がなく計算が単純化される利点がある。

数値解法と実装

離散化とソルバーの特徴

🧑‍🎓

Stokes方程式を有限要素法で解く時、通常のNavier-Stokesとソルバー設定はどう変えるんですか?

🎓

根本的に変わる。非線形項がないので、反復(例えばニュートン・ラフソン法)が不要だ。離散化すると大規模な線形方程式系になる。具体的には、速度と圧力を未知数とする連立一次方程式

$$ \begin{bmatrix} \mathbf{K} & \mathbf{G} \\ \mathbf{G}^T & \mathbf{0} \end{bmatrix} \begin{bmatrix} \mathbf{u} \\ \mathbf{p} \end{bmatrix} = \begin{bmatrix} \mathbf{f} \\ \mathbf{0} \end{bmatrix} $$
を解く問題に帰着する。ここでKは拡散項、Gは圧力勾配項からの行列だ。

🧑‍🎓

その連立方程式は特異だったり、解きにくいと聞きました。具体的にどんな問題が起きるんですか?

🎓

2つの主要な問題がある。第一に、行列の右下ブロックがゼロであるため、係数行列は不定値になる。第二に、速度と圧力の離散化空間の組み合わせが不適切だと、圧力場に数値的な振動(チェッカーボード圧力)が発生する。これを防ぐためには、Taylor-Hood要素(P2-P1)やMINI要素といった、inf-sup条件を満たす要素ペアを使う必要がある。

🧑‍🎓

ソルバーはどう選べばいいですか?直接法と反復法、どちらが向いてるんですか?

🎓

問題規模による。未知数が10万程度までの中小規模問題では、MUMPSやPARDISOといった直接法ソルバーが確実で速い。しかし、数百万以上の大規模問題ではメモリ消費が膨大になるため、反復法が必須だ。その場合、Uzawa法や、前処理付き共役勾配法(PCG)をブロック行列に適用する方法(例えば、圧力のSchur補元に対してAMG前処理を使う)がCOMSOLやOpenFOAMの`smoothSolver`で採用されている。

実践ガイド

解析ワークフローと検証

🧑‍🎓

実際にソフトウェアでStokes流れを解析する時、最初に何を確認すべきですか?

🎓

まず第一に、レイノルズ数の確認だ。流入速度、代表長さ、流体の動粘度からReを計算し、確かに1より小さいことを確認する。これがStokes流れ解析の前提条件だ。次に、物理モデルの選択で「非圧縮性流れ」の設定の中から「Stokes流れ」または「クレーピング流れ」を明示的に選ぶ。Ansys Fluentなら「粘性モデル」をLaminarにし、慣性項を無視するオプションはないので、極めて低い流速を設定することで事実上Stokes流れを再現するが、専用モードがあるソフトの方が楽だ。

🧑‍🎓

メッシュはどう作るのが良いですか?境界層メッシュは必要ないですよね?

🎓

その通り、Stokes流れには速度境界層が形成されない。なぜなら、方程式が放物型ではなく楕円型だからだ。したがって、壁面に極端に細かい境界層メッシュは不要で、計算資源の無駄だ。むしろ、幾何学的な形状(特に角や狭い隙間)を正確に表現できるように、全体にわたって均一に近い品質の良いメッシュを生成することを心がける。要素次数は、先ほど話したinf-sup条件を満たす組み合わせ(例えば二次速度/一次圧力)を選択すること。

🧑‍🎓

結果の検証はどうすれば信頼できますか?

🎓

代表的なベンチマーク問題で検証するのが確実だ。例えば、2次元キャビティ流れではなく(あれは慣性が重要)、円柱まわりのStokes流れが良い。直径Dの無限長円柱に一様流Uが直角に当たる時、単位長さあたりの抗力Fは、理論式

$$ F = \frac{4\pi\mu U}{\ln(7.4/Re)} $$
(Oseenの近似解)や、より正確な数値データ(例えば、Re=0.1で抗力係数Cd≈100以上)と比較できる。自分の解析結果がこの理論値や文献値に近いか確認せよ。

ソフトウェア比較

各CAEソフトでの取り扱い

🧑‍🎓

Ansys FluentでStokes流れを解析するには、具体的にどう設定するんですか?

🎓

Fluentには「Stokes流れ」専用の物理モデルはない。したがって、Laminarモデルを選択し、流速を極めて低く設定(例えば0.001 mm/s)して慣性項の影響を実質的にゼロに近づける「逃げ仕事」をする。ソルバー設定は「Pressure-Based」で、圧力-速度の結合解法は「Coupled」が推奨される。ただし、この方法は厳密なStokesソルバーではないため、メッシュやソルバーの設定次第で微小な慣性の影響が残る可能性がある点に注意だ。

🧑‍🎓

では、Stokes流れに特化した機能が強いソフトは何ですか?

🎓

COMSOL Multiphysicsが群を抜いている。「CFDモジュール」または「微粒子流れモジュール」内に「Stokes流れ」インターフェースが明確に存在する。これを使用すると、先ほど述べた線形の方程式系を最適化されたソルバー(直接法のMUMPSやPARDISO)で効率的に解く。また、Abaqus/CFD(現在は廃止方向)や、オープンソースではOpenFOAMの`icoFoam`ソルバー(非圧縮性層流)を極低レイノルズ数で実行する方法もある。OpenFOAMには`smoothSolver`というStokes系に適した前処理付きソルバーが実装されている。

🧑‍🎓

生体流体のような複雑な形状を扱う場合、メッシュ生成で気をつける点はソフトによって違いますか?

🎓

扱うソフトウェアの核心的な差が出る部分だ。Ansys FluentやSTAR-CCM+は主に構造格子(六面体)を得意とするが、複雑形状には非構造メッシュを使う。COMSOLやAbaqusは有限要素法ベースなので、最初から四面体などの非構造メッシュが標準だ。特にCOMSOLでは、「境界層メッシュ」の追加をオフにできるので、Stokes流れには合理的だ。いずれにせよ、要素品質(アスペクト比、スキュー角)には注意が必要で、COMSOLの「メッシュ品質チェック」機能や、Ansys Meshingの「Element Quality」指標を確認しながら作成する。

トラブルシューティング

よくあるエラーと収束問題

🧑‍🎓

解析を実行したら、圧力のコンター図が斑点状(チェッカーボード)になってしまいました。これは何が原因ですか?

🎓

これは古典的な圧力振動問題だ。速度と圧力の離散化の組み合わせがinf-sup条件を満たしていないことが原因。具体的には、一次要素の速度と一次要素の圧力(P1-P1)の組み合わせなどで発生する。対策は、1) 要素タイプをTaylor-Hood要素(P2-P1)など安定化された組み合わせに変更する、2) 圧力安定化スキーム(PSPGなど)を導入する、のいずれかだ。COMSOLでは物理インターフェースを選ぶ時点で自動的に安定な要素が選ばれるが、ユーザー設定で変更した場合にこの問題にぶつかる。

🧑‍🎓

ソルバーが「特異行列です」というエラーで停止します。Stokes流れでは圧力が定数だけ不定だと聞きますが、これに関係ありますか?

🎓

まさにその通りだ。Stokes方程式では、圧力は定数分だけ任意(Neumann問題)なので、係数行列はランク不足で特異になる。これを防ぐには、圧力の基準点を一つ固定する必要がある。具体的には、1) 計算領域内の1点(通常は隅の点)の圧力を0 Paなどに固定するディリクレ条件を追加する、または2) 平均圧力を0とする積分制約をソルバーに課す。Ansys Fluentでは「Operating Pressure」の設定がこれに該当し、COMSOLでは「Pressure Point Constraint」機能で簡単に設定できる。

🧑‍🎓

非線形項がないはずなのに、反復計算が収束しません。なぜですか?

🎓

それは「収束しない」のではなく、「ソルバーが線形方程式を解けていない」状態だ。原因は主に二つ。第一に、メッシュ品質が極端に悪く(アスペクト比が1000以上など)、離散化された行列の条件数が悪化している。第二に、ソルバー設定が不適切。例えば、反復法ソルバーの許容誤差が厳しすぎる(1e-10)のに最大反復回数が少なすぎる(50回)、あるいは前処理が効果的でない。対策としては、まず直接法ソルバー(MUMPS, PARDISO)で試す。それで解ければ、問題は反復法の設定にある。直接法でもダメなら、メッシュの見直しが必須だ。

🧑‍🎓

壁面でのせん断応力が、理論予想よりも異常に高く(または低く)出ます。何を疑えばいいですか?

🎓

まず疑うのは境界条件メッシュ分解能だ。特に、すべり条件(No-slip)が正しく適用されているか確認する。流入・流出境界が適切か(例えば、完全発達流れの流出条件など)。次に、壁面近くのメッシュが粗すぎて速度勾配を正しく捉えられていない可能性がある。Stokes流れでは境界層はないが、幾何学的な角や狭い隙間では速度勾配が急峻になる。その部分のメッシュを局所的に細かくする「メッシュリファインメント」を行い、結果がメッシュに依存しないか(メッシュ依存性調査)を必ず実施すること。

この記事の評価
ご回答ありがとうございます!
参考に
なった
もっと
詳しく
誤りを
報告
参考になった
0
もっと詳しく
0
誤りを報告
0
Written by NovaSolver Contributors
Anonymous Engineers & AI — サイトマップ
プロフィールを見る