对流扩散matlab,【物理应用】二维对流扩散温度场【Matlab 312期】

该博客介绍了一个使用Matlab编写的程序,用于实时动态模拟二维对流扩散温度场。程序考虑了两种边界条件,并采用全隐式格式的时间差分方法。用户可以设置边界条件、速度、迭代次数等参数,动态观察温度场的变化。同时,代码中处理了不同边界条件下的源项和影响系数,确保了数值稳定性和精度。
摘要由CSDN通过智能技术生成

一、简介

二维对流扩散温度场

二、源代码

function A=secdim2

% 本程序可实现两种可选边界条件的对流扩散实时动态模拟

% 采用乘方格式

% 初始温度场为10,速度可选

% 时间差分采用全隐式格式

clc

dt=0.001;

bc=input('南北边界条件:1-第一类,2-第二类: ');

q=0;

ddt=input('迭代次数: ');

L1=0.02;r=1000;k=0.017;sp=0;L2=0.01;

u=input('横向速度: ');

if bc==2

v=0;

else

v=input('纵向速度 : ');

end

n=100;m=100;

dx=L1/n;dy=L2/m;F1=r*u*dy;F2=r*v*dx;

ap0=r*dx*dy/dt;

D1=k*dy/dx;pe1=F1/D1;D2=k*dx/dy;pe2=F2/D2;

tp0=10*ones(n*m,1);%初场温度

tw=10;te=10; %边界条件

A=sparse(n*m);

b=ap0*tp0;

%二维影响系数采用乘方格式

ae=D1*max(0,(1-0.1*abs(pe1^5)))+max(-F1,0);

aw=D1*max(0,(1-0.1*abs(pe1^5)))+max(0,F1);

as=D2*max(0,(1-0.1*abs(pe2^5)))+max(0,F2);

an=D2*max(0,(1-0.1*abs(pe2^5)))+max(0,-F2);

ap=aw+ae+as+an+ap0-sp;

spw=-1*2*k*dy/dx;

spe=-1*2*k*dy/dx;

%边界条件源项处理

if bc==2

q=input('热流为: ');

spn=0;sps=0;

tn=0;ts=0;te=0;spe=0;

else

tn=input('北侧温度: ');

ts=input('南侧温度: ');

spn=-1*2*k*dx/dy;

sps=-1*2*k*dx/dy;

end

sun=zeros(n,1);

sus=zeros(n,1);

sun(5:64)=2*k*tn*dx/dy+q*dx;

sus(5:64)=2*k*ts*dx/dy+q*dx;

suw=2*k*tw*dy/dx;

sue=2*k*te*dy/dx;

%系数矩阵,常数向量赋值

for i=1:n*m

%南s边界点赋值

if(i1)

A(i,i)=ae+an+aw+ap0-sps;

A(i,i+1)=-ae; A(i,i-1)=-aw;A(i,i+n)=-an;

b(i)=b(i)+sus(i);

%内节点inner赋值

else if(i>n&&rem(i,n)~=1&&rem(i,n)~=0&&i

A(i,i)=ap;

A(i,i+n)=-an; A(i,i-n)=-as; A(i,i+1)=-ae; A(i,i-1)=-aw;

%北n边界点赋值

else if(i>n*m-n+1&&i

A(i,i)=ae+aw+as+ap0-spn;

A(i,i+1)=-ae; A(i,i-1)=-aw; A(i,i-n)=-as;

b(i)=b(i)+sun(i-n*m+n);

%西w边界点赋值

else if(i>n&&i

A(i,i)=ae+an+as+ap0-spw;

A(i,i+n)=-an; A(i,i-n)=-as; A(i,i+1)=-ae;

b(i)=b(i)+suw;

%东e边界点赋值

else if(i>n&&i

A(i,i)=aw+an+as+ap0-spe;

A(i,i+n)=-an; A(i,i-n)=-as; A(i,i-1)=-aw;

b(i)=b(i)+sue;

else

end

end

end

end

end

end

%四个角点赋值

%西南角点

A(1,1)=1;

%东南角点

A(n,n)=1;

%西北角点

A(n*m-n+1,n*m-n+1)=1;

%东北角点

A(n*m,n*m)=1;

%

end

三、备注

标签:F1,&&,312,dy,温度场,Matlab,dx,max,input

来源: https://blog.csdn.net/m0_54742769/article/details/114382500

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值