python for CFD(前两步问题总结)
生活随笔
收集整理的這篇文章主要介紹了
python for CFD(前两步问题总结)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
在前面的問題中,如果單方面將nx無限變大,(不妨令nx = 100)則結果畫出的圖形是發散的。
這是因為有限差分中有一個重要的必要條件,CFL數,具體是差分方程的依賴域必須包含相應微分方程的依賴域,最簡單可以理解為時間推進求解的速度(dx/dt)必須大于物理擾動傳播的速度(u),只有這樣才能將物理上所有的擾動俘獲到。
每一個時間間隔dt上“波”傳播的距離是dx,而dx與nx相關,保持數值求解穩定的關系式為:
import?numpy?as?npimport?matplotlib.pyplot?as?plt def?linearconv(nx):dx?=?2./(nx-1)nt?=?20????#nt?is?the?number?of?timesteps?we?want?to?calculatec?=?1sigma?=?.5???dt?=?sigma*dx?????#跟步驟2唯一的變化在這u?=?np.ones(nx)?u[.5/dx?:?1/dx+1]=2un?=?np.ones(nx)for?n?in?range(nt):??#iterate?through?timeun?=?u.copy()?##copy?the?existing?values?of?u?into?unfor?i?in?range(1,nx):u[i]?=?un[i]-c*dt/dx*(un[i]-un[i-1])plt.plot(np.linspace(0,2,nx),u) linearconv(121)即可,此時圖形和步驟2類似
轉載于:https://my.oschina.net/sunxichao/blog/374307
總結
以上是生活随笔為你收集整理的python for CFD(前两步问题总结)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux集群服务知识点总结及通过案例介
- 下一篇: 【转】pdf 中如何把几页缩小成一页打印