2019独角兽企业重金招聘Python工程师标准>>>

12步解N-S方程之第二步

# -*- coding: utf-8 -*-
#This is step 2 of python cfd courses.
#Text and code provided under a Creative Commons Attribution license, CC-BY
#. (c) Lorena A. Barba, 2013. Thanks: Gilbert Forsyth for help writing the
#notebooks. NSF for support via CAREER award #1149784.
#
# date         author              description
# 2014/08/31   wubin               1-d nonlinear convection
#
#    pu/pt+u*pu/px=0
#  only coef is diff from step1,c is u now,so it is not linear any more.
#
import numpy as np
import matplotlib.pyplot as plt
import time,sys                         #load some system utilities
from IPython.core.display import clear_output  #used for inline animation
#
#gridgen part
nx=41
dx=2.0/(nx-1)
nt=25          #total timesteps,like iterations
dt=0.025      #
c=1.0          #assume wavespeed is 1.0
#
#initialize part
#give every nx vertex a initial value
u=np.ones(nx)
u[0.5/dx:1.0/dx+1]=2  #slice only 1.0/dx,but not 1.0/dx+1
#print u
#
#plt.figure()
#plt.plot(np.linspace(0,2,nx),u)
#plt.show()
u0=np.empty_like(u)
u0=u.copy()
#
#iteration part
un=np.ones(nx)  #un is a temporary array
#python's array begins from 0,but why not slice the first element?because in
#iteration ,there is a Ui-1,0-1 is -1,will out of a array bounds.
for n in range(nt):
un=u.copy()   #copy the intial values from u to un
for i in range(1,nx):
u[i]=un[i]-un[i]*dt/dx*(un[i]-un[i-1])
plt.figure()
xc=np.linspace(0,2,nx)
plt.plot(xc,u,linewidth=2.0,label="converged")
plt.plot(xc,u0,linewidth=2.0,label="initial")
plt.legend(loc='upper right')
plt.savefig("F:\PYTHON\python_cfd\step2_comparision.png",dpi=150)
plt.show()
##
##additional question:
#truncation error:截断误差
#what is the truncation error and convergence and other detail?

与第一讲中结果不同的是,一维非线性对流方程似乎有激波的效果在里面(阶梯间断)。

转载于:https://my.oschina.net/cfdvalidation/blog/308489

12步解N-S方程之第二步相关推荐

  1. 12步解N-S方程之第三步

    2019独角兽企业重金招聘Python工程师标准>>> 12步解N-S方程之第三步 在前2步中我们已经学会如何使用python编写程序解决简单的一维线性/非线性对流问题.也通过调节参 ...

  2. 12步解N-S方程之第五步(2)

    2019独角兽企业重金招聘Python工程师标准>>> 12步解N-S方程之第5步(2) 在5(1)中我们知道了Burger方程的离散形式及其初始条件应该如何给定.在数学理解上这没有 ...

  3. 12步解N-S方程之第五步(1)

    2019独角兽企业重金招聘Python工程师标准>>> Burgers方程 Burgers方程是流体动力学的基本偏微分方程,在大量的应用领域都可以看到它的身影,如气动动力学模型.交通 ...

  4. 十二步解N-S方程之第四步

    2019独角兽企业重金招聘Python工程师标准>>> 十二步解N-S方程之第四步 通过前面的学习,我们已经知道如何去解线性和非线性的一维对流方程,而且也知道CFL是如何影响数值求解 ...

  5. “12步”揭开iPhone程序开发神秘面纱

    iPhone手机对于各位时尚潮人来说一定不会陌生,而iPhone的风行除了依靠其良好的用户体验,很大一部分原因在于iPhone的App Store中的程序.iPhone的App Store以其独特的经 ...

  6. 12步”教你iPhone程序开发

    iPhone手机对于各位时尚潮人来说一定不会陌生,而iPhone的风行除了依靠其良好的用户体验,很大一部分原因在于iPhone的App Store中的程序.iPhone的App Store以其独特的经 ...

  7. [译] 12步轻松搞定python装饰器 - 简书

    [译] 12步轻松搞定python装饰器 - 简书 呵呵!作为一名教python的老师,我发现学生们基本上一开始很难搞定python的装饰器,也许因为装饰器确实很难懂.搞定装饰器需要你了解一些函数式编 ...

  8. Python高级特性: 12步轻松搞定Python装饰器

    12步轻松搞定Python装饰器 通过 Python 装饰器实现DRY(不重复代码)原则:  http://python.jobbole.com/84151/ 基本上一开始很难搞定python的装饰器 ...

  9. 像数据科学家一样思考:12步指南(中)

    像数据科学家一样思考:12步指南(上)<像数据科学家一样思考> 7-工程产品 下一步是建立统计软件.如果统计是分析和从数据中得出结论的框架,那么软件就是将这个框架付诸行动的工具.数据科学家 ...

最新文章

  1. python 面板数据分析_科学网—Python中的结构化数据分析利器-Pandas简介 - 郑俊娟的博文...
  2. 二十七、连续分配管理方式
  3. t-sql判断一个字符串是否为bigint的函数(全角数字需要判断为不合格)
  4. poj3648 2-sat 输出任意一组解
  5. 一次生产事故的优化经历
  6. 双目三维重建_【光电视界】简单介绍双目视觉三维重构
  7. 并发编程-concurrent指南-阻塞队列BlockingQueue
  8. 微信花呗真的来了吗?
  9. AutoCAD(英文版)中所有英语词汇的翻译
  10. 【操作系统】-- 时间片轮转调度算法、优先级调度算法、多级反馈队列调度算法
  11. 骑行日志2011滇藏珠峰尼泊尔青藏 - 记那些逝去的青春
  12. 三星手机服务器暂时不可用是怎么回事,三星手机用户注意了!三星云将于2017年1月20日起停止服务...
  13. TCP SYN洪水 (SYN Flood) 攻击原理与实现
  14. 获取MP4视频关键帧图像,并保存为JPEG格式文件
  15. 关于刚毕业的程序员考取mba
  16. poi导出word表格设置自动重调尺寸适应内容固定表格宽度
  17. 虚拟机安装华为模拟器eNSP过程中所遇问题与解决办法
  18. Query类常用参数详解
  19. 大师系列彼•奇层查股
  20. 一阶微分方程的物理意义_微分方程建模课堂讨论之一_利用导数的几何及物理意义建模....

热门文章

  1. 测试员工职责--研发环节视角
  2. CUDA编程--邻近点查询
  3. 【判断题】【简答题】【数据库原理】
  4. 计算机实践教程采莲趣事,计算机基础作业采莲趣事
  5. 【企业】见相非相,即见如来
  6. WeiKuCMS多功能微信营销服务系统
  7. 线性判别分析(Linear Discriminant Analysis, LDA)算法分析
  8. 如何学习无线电通联字母解释法和通联术语
  9. 全球经济环境剧烈波动,Masterboxan INC如何在巨浪中顺流而行
  10. 【优化求解】基于猫群算法CSO求解最优目标matlab源码