Advertisement
Guest User

Untitled

a guest
Dec 20th, 2014
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.11 KB | None | 0 0
  1. function u = convection(n,zeta)
  2.  
  3. n = 82;
  4. h = 2.0/(n-1);
  5. X = -1.0:h:1.0;
  6. Y = -1.0:h:1.0;
  7.  
  8. A = sparse(n^2,n^2);
  9. map = zeros((n-2)^2,1);
  10. for i = 2:n-1
  11. for j = 2:n-1
  12. index = (i-1)*n + j;
  13. map((i-2)*(n-2)+j-1) = index;
  14. A(index,index) = -4;
  15. A(index,index+1) = 1;
  16. A(index,index-1) = 1;
  17. A(index,index+n) = 1;
  18. A(index,index-n) = 1;
  19. end
  20. end
  21.  
  22. A = A/(h^2);
  23. B = -ones((n-2)^2,1);
  24. U2 = zeros(n,n);
  25. U2(2:n-1,2:n-1) = reshape(A(map,map)\B,n-2,n-2);
  26.  
  27. A = sparse(n^2,n^2);
  28. map = zeros((n-2)^2,1);
  29. for i = 2:n-1
  30. for j = 2:n-1
  31. index = (i-1)*n + j;
  32. map((i-2)*(n-2)+j-1) = index;
  33. A(index,index+1) = 1;
  34. A(index,index-1) = -1;
  35. A(index,index+n) = 1;
  36. A(index,index-n) = -1;
  37. end
  38. end
  39.  
  40. A = A/(h*2);
  41. B = -ones((n-2)^2,1);
  42. U1 = zeros(n,n);
  43. U1(2:n-1,2:n-1) = reshape(A(map,map)\B,n-2,n-2);
  44.  
  45. if X(i)>= 0.5
  46. U = zeta*velocity(X(i),Y(i))*U1(2:n-1,2:n-1)-U2(2:n-1,2:n-1)-10;
  47. else
  48. U = zeta *velocity(X(i),Y(i))*U1(2:n-1,2:n-1)-U2(2:n-1,2:n-1);
  49.  
  50. contourf(X,Y,U)
  51. axis off; axis equal;
  52. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement