Advertisement
Guest User

Untitled

a guest
Jan 16th, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 2.49 KB | None | 0 0
  1. clear all
  2. close all
  3. clc
  4.  
  5. lamda = 0.6; ro = 1600; c = 0.92;
  6. dx=1; dy=1; dz=1;
  7. L1 = 10; L2 = 20; H = 20; K=3;
  8. Th = 1200; Tc = 300; Te = 0; T0 = 0; t_end = 2500;
  9. tau = t_end / 10;
  10. x = 0:dx:(L2+5); y=0:dy:(L2+5); z=0:dz:21;
  11. lx = length(x); ly=length(y); lz=length(z);
  12.  
  13. u = zeros(lx,ly,lz);
  14. for k = 2:H+2
  15.     for i = 1:lx
  16.         for j = 1:ly
  17.             u(i,j,k) = 300;
  18.         end;
  19.     end;
  20. end;
  21. for k = 2:H
  22.     for i = 1:lx
  23.         for j = 1:ly
  24.             u(i,j,k) = 300;
  25.             if (((i - lx / 2) * (i - lx / 2) + (j - ly / 2) * (j - ly / 2)) >= 100)
  26.                 u(i,j,k) = 1200;
  27.             elseif (i>(lx/2-K) && i<=(lx/2+K) && j>(ly/2-K) && j<=(ly/2+K) && k >(lz/2-K) && k<=(lz/2+K))
  28.                 u(i,j,k) = 300;
  29.             else u(i,j,k) = 0;
  30.             end;
  31.         end;
  32.     end;
  33. end;
  34.  
  35. for i = 1:lx
  36.     for j = 1:ly
  37.         u(i,j,1) = 0;
  38.     end;
  39. end;
  40.  
  41. un = u;
  42.  
  43. for t = 1:50:t_end
  44.    for kk=2:H;
  45.     for ii=2:(lx-1);
  46.       for jj=2:(ly-1);
  47.         un(ii,jj,kk) = lamda/ro/c*tau*(u(ii+1,jj,kk) -  2*u(ii,jj,kk)+u(ii-1,jj,kk)+u(ii,jj+1,kk)-2*u(ii,jj,kk)+u(ii,jj-1,kk)+u(ii,jj,kk+1)-2*u(ii,jj,kk)+u(ii,jj,kk-1))+u(ii,jj,kk);
  48.            for i = 1:(lx-1);
  49.              for j = 1:(ly-1);
  50.                for k = 2:H;
  51.                 if (((i - lx / 2) * (i - lx / 2) + (j - ly / 2) * (j - ly / 2)) >= 100)
  52.                     un(i,j,k) = 1200;
  53.                 elseif (i>(lx/2-K) && i<=(lx/2+K) && j>(ly/2-K) && j<=(ly/2+K))
  54.                     un(i,j,k) = 300;
  55.                 end;
  56.                end;
  57.              end;
  58.            end;
  59.          end;
  60.        end;
  61.      end;
  62.      for i = 1:(lx-1);
  63.         for j = 1:(ly-1);
  64.             for k = 2:H;
  65.                 if (((i - lx / 2) * (i - lx / 2) + (j - ly / 2) * (j - ly / 2)) >= 100)
  66.                     un(i,j,k) = 1200;
  67.                 elseif (i>(lx/2-K) && i<=(lx/2+K) && j>(ly/2-K) && j<=(ly/2+K))
  68.                     un(i,j,k) = 300;
  69.              end;
  70.           end;
  71.         end;
  72.     end;
  73.    u=un;
  74.     for i = 1:lx
  75.         for j = 1:ly
  76.             u(i,j,1) = u(i,j,2);
  77.             u(i,j,21)=1200;
  78.         end;
  79.     end;
  80.     colormap jet
  81.     clf();
  82.     xlabel('Координаты оси Ox');
  83.     ylabel('Координаты оси Oy');
  84.     zlabel('Координаты оси Oz');
  85.     title([ ' t = ' num2str(t/100) ]);
  86.     xslice = lx/2;
  87.     yslice = ly/2;
  88.     zslice = lz/2;  
  89.     slice(x,y,z,u,xslice,yslice,zslice);
  90.     view(50,5);
  91.     colorbar
  92.     axis equal
  93.     drawnow
  94. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement