文档章节

python for CFD 第三步(Burgers方程)

fjxichao
 fjxichao
发布于 2015/02/10 11:17
字数 328
阅读 130
收藏 1


Burgers方程形式

差分离散格式(forward difference for time, 
            backward difference for space  
            2nd-order method for the second derivatives )

这里设置了周期性初始条件

#!/usr/bin/python
# -*-coding:utf-8 -*- 
import numpy as np
import sympy
from sympy import init_printing
init_printing(use_latex=True)  #在ipython中直接打印公式使用latex格式
from sympy.utilities.lambdify import lambdify
import matplotlib.pylab as plt

x,nu,t = sympy.symbols("x,nu,t")
phi = sympy.exp(-(x-4*t)**2/(4*nu*(t+1))) + sympy.exp(-(x-4*t-2*np.pi)**2/(4*nu*(t+1)))
phiprime = phi.diff(x)
u = -2*nu*(phiprime/phi)+4
ufunc = lambdify((t,x,nu),u)

nx = 101
nt=100
dx = 2*np.pi/(nx-1)
nu=0.07
dt=dx*nu

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]) #list 转化成 np.array

plt.figure(figsize=(4,4),dpi=100)
plt.plot(x,u,lw=2)
plt.xlim([0,2*np.pi])
plt.ylim([0,8])

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=(6,6),dpi=100)
plt.plot(x,u,marker="o",color="blue",lw=2,label='Computational')		
plt.plot(x,u_analytical,color="yellow",label='analytical')
plt.xlim([0,2*np.pi])
plt.ylim([0,10])
plt.legend()
plt.show()
结果第一张图是初始图像,第二张是解析解和计算解比较图

© 著作权归作者所有

共有 人打赏支持
fjxichao
粉丝 4
博文 67
码字总数 16562
作品 0
西安
程序员
机器学习:最小二乘法实际应用的一个完整例子

整个过程分七步,为了方便喜欢直接copy代码看结果的同学,每步都放上了完整的代码。 实验数据: 第一步:准备样本数据并绘制散点图 1)代码及其说明 import numpy as npimport scipy as spim...

wangxuwei
07/15
0
0
9行Python代码搭建神经网络来掌握一些基本概念

这里的“用Python”指的就是不用那些现成的神经网络库比如Keras、Tensorflow等,否则连9行都不用了。 本文我会解释这个神经网络是怎样炼成的,所以你也可以搭建你自己的神经网络。也会提供一...

技术小能手
07/10
0
0
CentOS6.5安装python2.7.9

以前一直用ubantu下的python,ubantu比较卡。自己倾向于使用centos,但默认的python版本太低,所以重新装了一个python和ipython centos6.5安装python2.7.9 第一步:安装devtoolset [root@sp...

wujunqi1996
06/28
0
0
python老司机带你玩玩炫酷的3D渲染,酷毙了!

自从学会了turtle模块后,画了不少简笔画。像小猪佩奇、哆啦A梦等等,但是这些依然不能让身边人感受到python的强大,依然是每次装逼必被打脸。就像你用turtle画了这个 别人拿出了这个 怎么办...

python编程
07/26
0
0
让你的apache+mod_python服务器支持自定义扩展名

最近公司在增加一个集中管理配置系统saltstack; 它是用python写的,决定捣鼓下python网页; 看到配置文件就想到php可以配置时的自定后缀名, 于是就想python应该也可以; 于是就开始捣鼓了。...

Tevisky
2014/03/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

qduoj~前端~二次开发~打包docker镜像并上传到阿里云容器镜像仓库

上一篇文章https://my.oschina.net/finchxu/blog/1930017记录了怎么在本地修改前端,现在我要把我的修改添加到部署到本地的前端的docker容器中,然后打包这个容器成为一个本地镜像,然后把这...

虚拟世界的懒猫
34分钟前
1
0
UML中 的各种符号含义

Class Notation A class notation consists of three parts: Class Name The name of the class appears in the first partition. Class Attributes Attributes are shown in the second par......

hutaishi
45分钟前
0
0
20180818 上课截图

小丑鱼00
今天
1
0
Springsecurity之SecurityContextHolderStrategy

注:下面分析的版本是spring-security-4.2.x,源码的github地址是: https://github.com/spring-projects/spring-security/tree/4.2.x 先上一张图: 图1 SecurityContextHolderStrategy的三个......

汉斯-冯-拉特
今天
0
0
LNMP架构(Nginx负载均衡、ssl原理、生成ssl密钥对、Nginx配置ssl)

Nginx负载均衡 网站的访问量越来越大,服务器的服务模式也得进行相应的升级,比如分离出数据库服务器、分离出图片作为单独服务,这些是简单的数据的负载均衡,将压力分散到不同的机器上。有时...

蛋黄_Yolks
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部