$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方向に伝播しても形の変化が小さい)計算結果が得られると

推察する。

コメント

人気の投稿