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

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

在5(1)中我们知道了Burger方程的离散形式及其初始条件应该如何给定。在数学理解上这没有什么难度,但是如何通过程序来给定初始条件却有点麻烦,因为初始条件中含有偏导数项。在这里我们要借助python的sympy符号库来帮助我们完成这些工作。

# -*- coding: utf-8 -*-
#author wubin
#2014/09/26
import numpy as np
import sympy
#tell python we want all of its output to be rendered using latex
#以LATEX格式打印公式
from sympy import init_printing
init_printing(use_latex=True)
#
x,nu,t=sympy.symbols('x nu t')
phi=sympy.exp(-(x-4*t)**2/(t+1)/nu/4)+sympy.exp(-(x-4*t-2*np.pi)**2/(t+1)/nu/4)
phi
#定义偏导数
phiprime=phi.diff(x)
phiprime
#
#用lambdify函数转为可python调用的函数
#
from sympy.utilities.lambdify import lambdify
u=-2*nu*(phiprime/phi)+4
print u
ufunc=lambdify((t,x,nu),u)  #python使用lambdify将u转为t,x,nu三个变量的函数,可以被直接调用
print ufunc(1,4,3)          #测试一下,打印输出
#
import matplotlib.pyplot as plt
###
nx=101
nt=100
dx=2*np.pi/(nx-1)
nu=0.07
dt=nu*dx
#
x=np.linspace(0,2*np.pi,nx)
un=np.empty(nx)
t=0
#
u=np.asarray([ufunc(t,x0,nu) for x0 in x])
# 打印解析解的曲线图
plt.figure(figsize=(11,7),dpi=150)
plt.plot(x,u,marker='o',lw=2)
plt.xlim([0,2*np.pi])
plt.ylim([0,12])
plt.savefig("F:\PYTHON\python_cfd\step5.png",dpi=150)
plt.show()
####数值解
for n in range(nt):
un=u.copy()
for i in range(nx-1):
u[i]=un[i]-un[i]*dt/dx*(un[i]-un[i-1])+nu*dt/dx**2*\
(un[i+1]-2*un[i]+un[i-1])
u[-1]=un[-1]-un[-1]*dt/dx*(un[-1]-un[-2])+nu*dt/dx**2*\
(un[0]-2*un[-1]+un[-2])  #
u_analytical=np.asarray([ufunc(nt*dt,xi,nu)for xi in x])
#
plt.figure(figsize=(11,7), dpi=150)
plt.plot(x,u, marker='o', lw=2, label='Computational')
plt.plot(x, u_analytical, label='Analytical')
plt.xlim([0,2*np.pi])
plt.ylim([0,10])
plt.legend()
plt.savefig("F:\PYTHON\python_cfd\step5_1.png",dpi=150)
plt.show()

图1 解析解曲线(锯齿状曲线)

图2 解析解与数值解对比

至此,一维的例子就到此结束了。在后面的学习中,我们将开始处理2维问题。

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

12步解N-S方程之第五步(2)相关推荐

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

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

  2. 【Visual C++】游戏开发笔记三十四 浅墨DirectX提高班之三 起承转合的艺术:Direct3D渲染五步曲...

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhmxy555/article/details/8223965 作者:毛星云(浅墨 ...

  3. 【Visual C 】游戏开发笔记三十四 浅墨DirectX提高班之三 起承转合的艺术 Direct3D渲染五步曲

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本系列文 ...

  4. 【Visual C++】游戏开发笔记三十四 浅墨DirectX提高班之三 起承转合的艺术 Direct3D渲染五步曲

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhmxy555/article/details/8223965 作者:毛星云(浅墨 ...

  5. 【Visual C++】游戏开发笔记三十四 浅墨DirectX提高班之三 起承转合的艺术:Direct3D渲染五步曲

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhmxy555/article/details/8223965 作者:毛星云(浅墨 ...

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

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

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

    2019独角兽企业重金招聘Python工程师标准>>> 12步解N-S方程之第二步 # -*- coding: utf-8 -*- #This is step 2 of python ...

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

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

  9. 只需五步学会Maven 3.6.1OR 3.6.3及其他版本的下载安装与配置【图文详解】

    第一步,下载并解压缩包 ​第二步,配置两个环境变量 ​第三步,测试是否安装成功 ​第四步,指定本地仓库的路径 第五步,修改镜像仓库 第一步,下载并解压缩包 Maven官方下载地址:https://ma ...

最新文章

  1. c语言知道算法写不出代码,这个代码怎么写算法啊,求教,我真的不会写算法怎么办#incl...
  2. bootstrap-less源码分析:行和列
  3. mysql 配置执行计划_MySQL深入学习(二)--配置、索引、执行计划
  4. opencv4 c++ 提取图片中的白色区域_修正!【从零学习OpenCV 4】分割图像——分水岭法...
  5. 私有云存储搭建(owncloud)
  6. 浏览器记住密码之后,input背景变黄
  7. DevExpress.Utils.ToolTipLocation
  8. sklearn 下的树模型
  9. 怎么调节手机的刷新率_【W21 5G性能篇】120Hz自适应刷新率,用了再也回不去
  10. ZooKeeper 相关概念以及使用小结
  11. java gui 测试工具_开发者眼中最好的22款GUI测试工具(上)
  12. python求三角形斜边-python 已知三条边求三角形的角度案例
  13. 数字孪生智慧制造生产线项目实施方案,平台认知与概念
  14. 广成子:值得收藏-史上最全Linux ps命令详解
  15. 弘辽科技:提升销量没流量要继续提升吗?如何提高店铺流量?
  16. 《C语言入门》猜数字小游戏代码实现
  17. 英特尔AVX指令集解析
  18. python 识图点击_Python图片识别——人工智能篇
  19. 7. 内部集成电路总线接口I²C
  20. 2021年安全生产模拟考试(全国特种作业操作证焊工作业-钎焊模拟考试题库二)安考星

热门文章

  1. 使用Shader Graph实现《塞尔达传说:旷野之息》风格的着色器
  2. iBus拼音输入法导入搜狗词库
  3. AC自动机 从入门到模板
  4. 2020智能语音产业生态及产业发展前景
  5. vs debug模式下显示“变量已被优化掉,因而不可用”的解决办法
  6. ubuntu gitlab服务器搭建
  7. php wenjian shangchuan shijian,PHP时间和日期 - osc_nnp3dgfb的个人空间 - OSCHINA - 中文开源技术交流社区...
  8. 诡异的心理暗示?胡扯
  9. php 上标和下标,css如何显示文字的上标和下标
  10. ADC实验之光敏传感器