标签:
涉及到网格的数值计算中,边界条件的处理总是一个比较烦人的东西。
for i=1:Nip(i)=i+1;im(i)=i-1;endim(1)=N;ip(N)=1;%% begin simulation loopfor iter=1:nitfor i=1:Nfor j=1:Ndmx=(phi(i,j)-phi(im(i),j))/h; % x backward differencedpx=(phi(ip(i),j)-phi(i,j))/h; % x forward differencedmy=(phi(i,j)-phi(i,im(j)))/h; % y backward differencedpy=(phi(i,ip(j))-phi(i,j))/h; % y forward differenceconvx=max(u(i,j),0)*dmx+min(u(i,j),0)*dpx; % if u(i,j)>0, use backward difference dmx, or else use dpxconvy=max(v(i,j),0)*dmy+min(v(i,j),0)*dpy;phin(i,j)=phi(i,j)-(convx+convy)*dt; % advance by dtendendphi=phin; % update%% Plottingcontour(X,Y,phi,[0,0],‘r‘);axis([-1 1 -1 1])axis(‘square‘)pause(.001)end
标签:
原文地址:http://www.cnblogs.com/metorm/p/4591009.html