$Python$を使った数値流体解析#5
尊敬する「宇宙い入ったカマキリ」さんの
ブログをなぞり、Pythonを使い数値流体
解析を行います。
カマキリさんのURLはこちら↓↓↓
https://takun-physics.net/9538/
#5は引き続き「1次元の移流方程式をPythonで実装する」
①離散化した1次元の移流方程式
$u^{n+1}_i = u^n_i - c \frac{\Delta t}{\Delta x} (u^n_i - u^n_{i-1})$
②Pythonで実装する
---
>>> un = []
>>> u = np.ones(nx)
>>> u[int(.5 / dx):int(1 / dx + 1)] = 2
>>> for n in range(nt):
... un = u.copy()
... for i in range(1, nx):
... u[i] = un[i] - c * dt /dx * ( un[i] - un[i-1])
...
>>> plt.plot(u)
[<matplotlib.lines.Line2D object at 0x000001FAF0B21730>]
>>> plt.show()
③初期状態と最終状態の比較
u(x - ct)は、「初期状態のまま形を変えずに+x方向に伝播する解」
なのだが、形が変化している。
これは離散化の影響と考える。
④まとめ
移流方程式を離散化して、空間に対し後退差分で数値計算を行った。
結果は、初期状態から+x方向に形が変化して伝播した。
これは、離散化手法による影響と考え、離散化手法を見直す事により
精度の高い(+x方向に伝播しても形の変化が小さい)計算結果が得られると
推察する。
コメント
コメントを投稿