纯对流问题matlab,matlab一个2D差分法解决对流扩散方程

本文介绍了使用MATLAB编程解决一个二维对流扩散问题的过程,其中对流作用于X方向,扩散作用于Y方向。在设定边界条件后,采用显式差分算法进行模拟。然而,作者遇到的问题是仿真结果未能体现出对流项的影响,期望得到从左到右的“冲洗”效果。代码已给出,但需要调整以避免发散并正确体现对流效应。

是一个二维的对流扩散问题,对流在X方向, 扩散作用在Y 方向,所以方程为 dC/dt=D*d2C/dy2-V*dC/dx (注:

D= Diffusion coefficient, C=concentration, V=

流体速度,并假设它与表面的垂直方向Y成正比,即:V=a*Y. d2C/dy2表示浓度对Y的二阶导数。 ) 边界条件为:

1 ,C = C0 when y = 0 and 0

(表示在表面(y =

0)存在药品(扩散物质)的区域(0

2, C = 0 when y> 0.1cm for all x

(表示对难容物质来说,由于流动的因素,离表面一定距离后不存在溶质)

3, C = 0 when x = 0 for all y (因为在存在药品区域之前是 没有浓度的)

4, C = 0 when y = 0 and x> L (表示

在不存在药品的表面也没有浓度)

本人用论文中介绍的显示差分算法在MATLAB 编程 [C(i , j , k+1)- C(i , j , k)]/dt =

D/(dy)^2 * [ C(i , j-1 , k) - 2*C(i , j , k) + C(i , j+1 , k)] -

V/dx * [C(i , j , k) - C(i -1, j , k)]

下面是我的代码:

问题是,虽然可以得到仿真(步长设置不好还容易发散),但是明显没有对流项的作用,画出的图应该是从左到右被“冲”的感觉,实在找不到问题出在哪儿了,恳请大侠赐教,不胜感谢!

%%%%%%%%%%%%%%%%%%

clear

clc

D = [0 ,2 , 0 , 0.1 ] %%%% region of

0

0

Mx =200

My =100

N = 1000

T = 10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值