二维波动方程的有限差分法讲课稿
- 格式:doc
- 大小:1.88 MB
- 文档页数:10
实用文案
学生实验报告
实验课程名称偏微分方程数值解
开课实验室数统学院
学院数统年级2013 专业班信计02班
学生姓名学号
开课时间2015 至2016学年第 2 学期
数学与统计学院制
开课学院、实验室:数统学院实验时间:2016年6月20日
五.实验结果及实例分析
1、0.10.51.01.4
t 、、、时刻的数值解与精确解图
图1 t=0.1、0.5时刻的数值解、精确解
图2 t=1.0、1.4时刻的数值解、精确解
注:上两图为四个时刻的数值解与精确解,()1
0.12r p p h
p
τ
=
=<
=代表维数,本文 ,三层显格式达二阶收敛,不难看出,收敛效果很好,符合理论。
下图是四个时刻的绝对误差图像,从图中看出,绝对误差较小,且经过计算得到,收敛阶近似于2,正好符合理论值。
2、0.10.51.01.4t =、、、时刻的绝对误差图。
广义有限差分法模拟二维晃荡现象抽象在本文中,一个无网格数值方法,基于广义有限差分法(GFDM),提出了高效准确地模拟二维数值波浪水槽的晃动现象。
当一个数值波浪罐水平或垂直激发,在罐上的自由表面的干扰和流场称为晃荡。
基于理想流体的定理,晃动问题的数学描述为一个时间相关的边值问题,由二阶偏微分方程和两个非线性自由表面边界条件的制约。
在本文中,GFDM和明确的欧拉法的通过,分别为这运动边界问题的空间和时间离散化。
离散的显式欧拉方法后,自由表面的高程进行更新和边值问题产生在每一个时间步长。
由于GFDM,新开发域型无网格法,才能真正摆脱耗时的网格生成和数值积分,我们采用了GFDM能够有效地分析这个边值问题在每一个时间步长。
使用GFDM的运动最小二乘法可以表达衍生物作为附近函数值的线性组合,使得该GFDM的数值程序也非常简单,高效。
我们提供了四种数值例子来验证的简单性和所提出的无网格方案的精度。
此外,所提出的数值方法的一些因素,通过一系列的数值试验系统研究。
关键词∙晃动 ;∙广义有限差分法 ;∙无网格方法 ;∙显式欧拉法 ;∙数值波浪水槽1.简介而一个罐部分地填充有流体被外力激励时,发生在自由面波并且这种现象被称为晃荡[1]和 [2]。
晃荡现象是最重要的,因为这涉及到各种工程问题,例如在海洋谐振中船舱航行,核燃料存储池振荡与地震等。
因此,全面了解的晃动问题的基本物理对我们来说非常重要,也可以改善我们的工程设计。
在过去,许多研究者[1]和[2]已经通过使用物理数学,数值模拟和实验晃动现象的研究支付重视。
其中一个主要的研究方向是采用潜在流动,这样,在罐中的流体被假定为无粘,无旋和不可压缩的定理。
为了捕捉真实的物理现象,在本文的晃动问题的流场也被认为是潜在的流动。
当处于晃荡问题流场被认为是潜在的流动,控制方程是公知的拉普拉斯方程的速度潜力。
沿自由表面的边界条件是在动态和运动学自由表面的边界条件[1],它们是时间依赖性和非直线的。
基于非结构网格二维Euler方程的Jameson求解方法姓名:王司文学号:sx摘要本文介绍了基于CFD理论的求解二维可压缩流Euler方程的Jameson中心格式方法。
在空间离散上采用的是有限体积法,时间上采用的是四步显式Runge -Kutta迭代求解。
人工耗散项为守恒变量的二阶和四阶差分项。
边界条件采用的是无反射边界条件,并采用当地时间步长进行加速收敛。
最后对NACA0012翼型划分了三角形,并应用本文程序进行数值模拟,结果较为理想。
关键字:CFD,Jameson中心格式,Euler方程,有限体积法AbstractA method for the numerical solution of the two-dimensional Euler equations has been developed. The cell-centred symmetric finite-volume spatial discretisation is applied in a general formulation. The integration in time, to a steady-state solution, is performed using an explicit, four-stage Runge-Kutta procedure. The artificial dissipation is constructed as a blending of second and fourth differences of the conserved variables. And in the boundary, there is none of the outgoing waves are reflected back into the computational domain. An acceleration technique called local time stepping is used. At last, standard test cases for both subsonic and supersonic flows have been used to validate the method.Key words:CFD, Jameson method,Euler equations, finite-volume第一章引言在工程应用的推动下,计算流体力学随着计算机技术的发展和计算格式的不断更新而迅猛发展。
二维声波方程有限差分求解1. 引言声波方程是描述声波传播的基本方程之一,它在许多领域中都有重要的应用,如声学、地震学和无损检测等。
有限差分法是一种常用的数值求解方法,可以将连续的偏微分方程转化为离散形式进行计算。
本文将介绍二维声波方程的有限差分求解方法,并给出相应的代码实现。
2. 二维声波方程模型二维声波方程可以表示为:)其中,u是声压场强度,t是时间,x和y是空间坐标,c是介质中的声速。
为了进行数值求解,我们需要将上述偏微分方程转化为离散形式。
3. 有限差分离散化为了将二维声波方程离散化,我们可以使用中心差分法。
将时间和空间坐标分别离散化,可以得到如下的差分方程:)其中,是时间步长,和是空间步长。
根据初始条件和边界条件,我们可以使用上述差分方程进行迭代计算,从而得到声波场在不同时间步的数值解。
4. 代码实现下面给出使用Python编写的二维声波方程有限差分求解的代码示例:import numpy as npimport matplotlib.pyplot as plt# 参数设置c = 343 # 声速L = 1 # 空间长度T = 1 # 总时间Nx = 100 # 空间网格数Nt = 1000 # 时间步数dx = L / Nx # 空间步长dt = T / Nt # 时间步长# 初始化声压场矩阵u = np.zeros((Nx+1, Nx+1))u_prev = np.zeros((Nx+1, Nx+1))# 初始条件:声压场在t=0时刻为正弦波形状x = np.linspace(0, L, Nx+1)y = np.linspace(0, L, Nx+1)X, Y = np.meshgrid(x, y)u_prev[:,:] = np.sin(X*np.pi/L) * np.sin(Y*np.pi/L)# 迭代计算声压场的数值解for n in range(1, Nt+1):for i in range(1, Nx):for j in range(1, Nx):u[i,j] = (2*(1-c**2*dt**2/dx**2)*(u_prev[i,j]) - u[i,j]) + (c**2*d t**2/dx**2) * (u_prev[i-1,j] + u_prev[i+1,j] + u_prev[i,j-1] + u_prev[i,j+1])# 边界条件:固定边界上的声压为零(反射边界)u[0,:] = 0u[Nx,:] = 0u[:,0] = 0u[:,Nx] = 0# 更新声压场矩阵u_prev[:,:] = u# 绘制声波场的数值解plt.imshow(u, cmap='hot', origin='lower', extent=[0, L, 0, L])plt.colorbar()plt.xlabel('x')plt.ylabel('y')plt.title('Numerical Solution of 2D Acoustic Wave Equation')plt.show()5. 结果与讨论运行上述代码,我们可以得到二维声波方程的数值解。
二维波动方程的有限
差分法
学生实验报告
实验课程名称偏微分方程数值解
开课实验室数统学院
学院数统年级 2013 专业班信计02班学生姓名学号
开课时间 2015 至 2016学年第 2 学期
数学与统计学院制
开课学院、实验室:数统学院实验时间: 2016年 6月20日
五.实验结果及实例分析
1、0.10.51.01.4t =、、、时刻的数值解与精确解图
图1 t=0.1、0.5时刻的数值解、精确解
图2 t=1.0、1.4时刻的数值解、精确解
注:上两图为四个时刻的数值解与精确解,()1
0.12r p p h p τ==<=代表维数,本文 ,三层显格式达二阶收敛,不难看出,收敛效果很好,符合理论。
下图是四个时刻的绝对误差图像,从图中看出,绝对误差较小,且经过计算得到,收敛阶近似于2,正好符合理论值。
2、0.10.51.01.4
t 、、、时刻的绝对误差图
图3 四个时刻的绝对误差
3、四个时刻(t=0.1、0.5、1.0、1.4)的绝对误差表
t=0.1时刻的绝对误差
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
0.0000 0.0001 0.0001 0.0002 0.0002 0.0002 0.0002 0.0002 0.0001 0.0001 0.0000
0.0000 0.0001 0.0003 0.0004 0.0004 0.0005 0.0004 0.0004 0.0003 0.0001 0.0000
0.0000 0.0002 0.0004 0.0005 0.0006 0.0006 0.0006 0.0005 0.0004 0.0002 0.0000
0.0000 0.0002 0.0004 0.0006 0.0007 0.0007 0.0007 0.0006 0.0004 0.0002 0.0000
0.0000 0.0002 0.0005 0.0006 0.0007 0.0008 0.0007 0.0006 0.0005 0.0002 0.0000
0.0000 0.0002 0.0004 0.0006 0.0007 0.0007 0.0007 0.0006 0.0004 0.0002 0.0000
0.0000 0.0002 0.0004 0.0005 0.0006 0.0006 0.0006 0.0005 0.0004 0.0002 0.0000
0.0000 0.0001 0.0003 0.0004 0.0004 0.0005 0.0004 0.0004 0.0003 0.0001 0.0000
0.0000 0.0001 0.0001 0.0002 0.0002 0.0002 0.0002 0.0002 0.0001 0.0001 0.0000
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
t=0.5时刻的绝对误差
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
0.0000 0.0007 0.0013 0.0018 0.0021 0.0022 0.0021 0.0018 0.0013 0.0007 0.0000
0.0000 0.0013 0.0025 0.0034 0.0040 0.0042 0.0040 0.0034 0.0025 0.0013 0.0000
0.0000 0.0018 0.0034 0.0047 0.0055 0.0058 0.0055 0.0047 0.0034 0.0018 0.0000
0.0000 0.0021 0.0040 0.0055 0.0065 0.0068 0.0065 0.0055 0.0040 0.0021 0.0000
0.0000 0.0022 0.0042 0.0058 0.0068 0.0071 0.0068 0.0058 0.0042 0.0022 0.0000
0.0000 0.0021 0.0040 0.0055 0.0065 0.0068 0.0065 0.0055 0.0040 0.0021 0.0000
0.0000 0.0018 0.0034 0.0047 0.0055 0.0058 0.0055 0.0047 0.0034 0.0018 0.0000
0.0000 0.0013 0.0025 0.0034 0.0040 0.0042 0.0040 0.0034 0.0025 0.0013 0.0000
0.0000 0.0007 0.0013 0.0018 0.0021 0.0022 0.0021 0.0018 0.0013 0.0007 0.0000
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
t=1.0时刻的绝对误差
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
0.0000 0.0016 0.0031 0.0043 0.0051 0.0053 0.0051 0.0043 0.0031 0.0016 0.0000
0.0000 0.0031 0.0059 0.0082 0.0096 0.0101 0.0096 0.0082 0.0059 0.0031 0.0000
0.0000 0.0043 0.0082 0.0113 0.0132 0.0139 0.0132 0.0113 0.0082 0.0043 0.0000
0.0000 0.0051 0.0096 0.0132 0.0156 0.0164 0.0156 0.0132 0.0096 0.0051 0.0000。