Advertisement
asidesi123

Untitled

Apr 7th, 2020
260
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 3.22 KB | None | 0 0
  1. clear
  2. clc
  3. close all
  4. %% Initialisation
  5. dt=0.01;
  6. lt=5/dt+1;
  7. dx=2*pi/100;
  8. dy=2*pi/100;
  9. a=0.1;
  10. B=0.1;
  11. L=4*pi;
  12. H=2*pi;
  13. n=round(L/dx) +1;
  14. m=round(H/dy) +1;  
  15. %% setting up x vector
  16. x=zeros(n,1);
  17. for i=1:n
  18.     x(i)=(i-1)*dx;
  19. end
  20. %% setting up y vector
  21. y=zeros(m,1);
  22. for j=1:m
  23.     y(j)=(j-1)*dy;
  24. end
  25. %% Initial Condition
  26. for i=1:n
  27.     for j=1:m
  28.         T(j,i,1)=20*cos((i-1)*dx)*sin((j-1)*dy);
  29.     end
  30. end
  31. %%  Realisations - seeting up t vector
  32. t=zeros(lt,1);
  33. for k=1:lt
  34. t(k)=(k-1)*dt;
  35. end
  36. %% Time Loop for velocity distribution
  37. v=zeros(n,m,lt);
  38. for i=1:n
  39. for k=2:lt
  40.     V(i,k)=5*(1-(x(i)-2*pi)^2/(4*pi^2))*cos(pi*t(k))*sin(x(i));
  41. end
  42.  
  43. end
  44. %% Discretisation
  45. as=((-B*(dt/dy^2)) + V*(dt/2*dy));
  46. aw=(-a*dt/dx^2);
  47. ap=(1+2*a*(dt/dx^2)+2*B*(dt/dy^2));
  48. an=((-B*(dt/dy^2))-V*(dt/2*dy));
  49. ae=(-a*(dt/dx^2));
  50.  
  51. for k=2:lt
  52. %%% T1
  53. for i=2:n-1
  54.     for j=2:m-1
  55.         pointer=(j-1)*n+i;
  56.         A(pointer,pointer-n)=as(i,k);
  57.         A(pointer,pointer-1)=aw;
  58.         A(pointer, pointer)=ap;
  59.         A(pointer,pointer+1)=ae;
  60.         A(pointer,pointer+n)=an(i,k);
  61.     end
  62. end
  63.  
  64. %%%% T2
  65. for i=1
  66.     for j=2:m-1
  67.         pointer=(j-1)*n+i;
  68.         A(pointer,pointer)=ap;
  69.         A(pointer,pointer+1)=(aw+ae);
  70.         A(pointer,pointer+n)=an(i,k);
  71.         A(pointer,pointer-n)=as(i,k);
  72.     end
  73. end
  74.  
  75. %%% T3
  76. for i=n
  77.     for j=2:m-1
  78.          pointer=(j-1)*n+i;
  79.         A(pointer, pointer)=ap;
  80.         A(pointer, pointer-1)=(aw+ae);
  81.         A(pointer, pointer-n)=as(i,k);
  82.         A(pointer, pointer+n)=an(i,k);
  83.     end
  84. end
  85. %% T4
  86. for i=2:n-1
  87.     for j=1
  88.         pointer=(j-1)*n+i;
  89.         A(pointer,pointer)=ap;
  90.         A(pointer,pointer+(m-2)*n)=as(i,k);
  91.         A(pointer,pointer-1)=aw;
  92.         A(pointer,pointer+1)=ae;
  93.         A(pointer,pointer+n)=an(i,k);
  94.     end
  95. end
  96.  
  97. %%% T5
  98. for i=2:n-1
  99.     for j=m
  100.         pointer=(j-1)*n+i;
  101.          A(pointer,pointer-m)=as(i,k);
  102.          A(pointer,pointer-1)=aw;
  103.          A(pointer,pointer)=ap;
  104.          A(pointer,pointer+1)=ae;
  105.          A(pointer,pointer+(m+2)*n)=an(i,k);
  106.     end
  107. end
  108.  
  109. %% T6
  110. for i=1
  111.     for j=1
  112.         pointer=(j-1)*n+i;
  113.         A(pointer,pointer+1)=(aw+ae);
  114.         A(pointer,pointer+(m-2)*n)=as(i,k);
  115.         A(pointer,pointer)=ap;
  116.         A(pointer,pointer+n)=an(i,k);
  117.     end
  118. end
  119.  
  120. %% T7
  121. for i=n
  122.     for j=1
  123.         pointer=(j-1)*n+i;
  124.           A(pointer,pointer+(m-2)*n)=as(i,k);
  125.           A(pointer,pointer)=ap;
  126.           A(pointer,pointer-1)=(aw+ae);
  127.           A(pointer,pointer+n)=an(i,k);
  128.     end
  129. end
  130.  
  131. %% T8
  132. for i=1
  133.     for j=m
  134.         pointer=(j-1)*n+i;
  135.           A(pointer,pointer-n)=as(i,k);
  136.           A(pointer,pointer)=ap;
  137.           A(pointer,pointer+1)=(aw+ae);
  138.           A(pointer,pointer+n)=an(i,k);
  139.     end
  140. end
  141.    %% T9
  142. for i=n
  143.     for j=m
  144.         pointer=(j-1)*n+i;
  145.           A(pointer,pointer-n)=as(i,k);
  146.           A(pointer,pointer)=ap;
  147.           A(pointer,pointer-1)=(aw+ae);
  148.           A(pointer,pointer+n)=an(i,k);
  149.     end
  150. end      
  151.     Spar=sparse(A);
  152.     ttransp = T(:,:,1)';
  153.     b = ttransp(:);
  154.     Tnew(:,:,k) = Spar.\b;
  155.     T = (reshape(T,n,m))'
  156.  
  157. end
  158.  
  159. figure(1)
  160. contourf(1,T)
  161. hold on
  162. plot(2,T)
  163. hold on
  164. plot (3,T)
  165. hold on
  166. plot (4,T)
  167. hold on
  168. plot (5,T)
  169. hold on
  170. plot (6,T)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement