3.2 FreeFem++ プログラム (その2) 流体の速度ポテンシャルを求める

速度ポテンシャルを求める境界値問題

(3.4)   $\displaystyle \Laplacian\phi=0$   (in $ \Omega$)
(3.5)   $\displaystyle \frac{\rd\phi}{\rd\bm{n}}=\bm{v}\cdot\bm{n}$   (on $ \rd\Omega$)

の場合は、 $ \Gamma_1=\emptyset$, $ \Gamma_2=\rd\Omega$, $ f=0$, $ g_2=\bm{v}\cdot\bm{n}$.

特に $ \Omega=\left\{(x,y)\in\mathbb{R}^2\mid x^2+y^2<1\right\}$, $ \bm{v}\equiv \begin{pmatrix}
1 \\ 2
\end{pmatrix}$ のときは、 $ (x,y)\in\rd\Omega$ において $ \bm{n}=\begin{pmatrix}x \\ y \end{pmatrix}$ であるから、

$\displaystyle g_2=\bm{v}\cdot\bm{n}=
\begin{pmatrix}
1 \\ 2
\end{pmatrix} \cdot
\begin{pmatrix}
x \\ y
\end{pmatrix} =x+2y.
$

速度ポテンシャルを求める potential2d-v0-kai.edp ← これを保存する

/Users/mk/.tex-inputs/potential-progs/potential2d-v0-kai.edp
ターミナルでこうして入手できる
curl -O https://m-katsurada.sakura.ne.jp/complex2/potential2d-v0-kai.edp

プログラムはテキスト・エディター (Cot Editor, テキスト・エディット5, Visual Studio Code, Vim, emacs など) で作成し、ターミナルから、
こんなふうにして実行
FreeFem++ potential2d-v0.edp
とタイプして実行できる。リターン・キーを打つごとに次の図に進み、 最後 (ベクトル場と等ポテンシャル線を描いてお終い) は Escape キーを打って終了する。

図: $ \Omega$ の三角形分割
\includegraphics[width=5cm]{Th.eps}

図: 一様流の等ポテンシャル線, 流線, ベクトル場

このプログラムは、 図の PostScript データ “counterpotential.eps”, “vectorfield.eps”, “both.eps” を出力している。


(実は、上の弱形式は解の一意性がないので ($ \rd\Omega$ 全体で Neumann 境界条件だから)、 このプログラムは少し危ういところがある。)



桂田 祐史