工学系大学院生のブログ

2人の大学院生による雑記ブログ

第1-2回 非定常拡散方程式(式変形)[python]

$$\frac{\partial u(t,x)}{\partial t}=D\frac{\partial^2 u}{\partial x^2}$$

前回の離散化の方法を上記の非定常拡散方程式に当てはめます。

$$\left(\frac{\partial u}{\partial t} \right)_i\approx\frac{u^{n+1}_i-u^n_i}{\Delta t}$$

$$ \left( D\frac{\partial^2 u}{\partial x^2} \right)_i\approx D\frac{u^n_{i+1}-2u^n_i+u^n_{i-1}}{\Delta x^2}$$

ここで、nは時間ステップ、iは空間ステップです。つまり、\(u_i^n\)はn番目の時間におけるiの位置の値となります。また、これらは位置iにおける近似式です。
この近似はすべての位置で行われるため、仮に100個の点で近似した場合100個の式ができます。
\(c=D \frac{\Delta t}{\Delta x^2}\)として、少し変形します。

$$ \frac{u^{n+1}_i-u^n_i}{\Delta t}= D\frac{u^n_{i+1}-2u^n_i+u^n_{i-1}}{\Delta x^2} $$

$$u^{n+1}_i- u_i^n =c(u^n_{i+1}-2u_i^n+u^n_{i-1})$$

$$u^{n+1}_i=cu_{i-1}^n+(1-2c)u_i^n+cu^n_{i+1}$$

仮に空間を五個に分割したとします。すると上記の式が5個できるわけですので、行列を用いてまとめると次のように表せます。

$$\left[\begin{array}{r}u_0^{n+1} \\ u_1 ^{n+1} \\u_2 ^{n+1} \\u_3 ^{n+1} \\u_4 ^{n+1} \end{array}\right]=\left[\begin{array}{ccccc}1-2c&c&0&0&0 \\ c&1-2c&c&0&0 \\ 0&c&1-2c&c&0 \\ 0&0&c&1-2c&c \\ 0&0&0&c&1-2c \end{array}\right] \left[\begin{array}{r}u_0^{n} \\ u_1 ^{n} \\u_2 ^{n} \\u_3 ^{n} \\u_4 ^{n} \end{array}\right] $$

ただし、今回はそのまま書きましたが、境界条件を与えなくてはいけないので最初と最後の行は入力の仕方が解く条件で変わってきます。

次回は境界条件、初期条件を決め実際にコードに落とし込んでみたいと思います。

by hide

このエントリーをはてなブックマークに追加

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

トラックバックURL: https://teru-hide.com/cfd-discretize-unsteady-diffusion/trackback/
にほんブログ村 英語ブログへ
にほんブログ村