Guest User

Untitled

a guest
May 15th, 2012
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. bottennoder för referens är 1 6 12 19 27 35 43 51 59 67 75 83 91 98 104
  2.  
  3. clear all
  4.  
  5. Coord = [ 0 0; 0 5; 0 10; 0 15; 0 20; 20/3 0; 20/3 5; 20/3 10; 20/3 15; 20/3 20; 20/3 25; 40/3 0; 40/3 5; 40/3 10; 40/3 15; 40/3 20; 40/3 25; 40/3 30; 20 0; 20 5; 20 10; 20 15; 20 20; 20 25; 20 30; 20 35; 25 0; 25 5; 25 10; 25 15; 25 20; 25 25; 25 30; 25 35; 30 0; 30 5; 30 10; 30 15; 30 20; 30 25; 30 30; 30 35; 35 0; 35 5; 35 10; 35 15; 35 20; 35 25; 35 30; 35 35; 40 0; 40 5; 40 10; 40 15; 40 20; 40 25; 40 30; 40 35; 45 0; 45 5; 45 10; 45 15; 45 20; 45 25; 45 30; 45 35; 50 0; 50 5; 50 10; 50 15; 50 20; 50 25; 50 30; 50 35; 55 0; 55 5; 55 10; 55 15; 55 20; 55 25; 55 30; 55 35; 60 0; 60 5; 60 10; 60 15; 60 20; 60 25; 60 30; 60 35; 200/3 0; 200/3 5; 200/3 10; 200/3 15; 200/3 20; 200/3 25; 200/3 30; 220/3 0; 220/3 5; 220/3 10; 220/3 15; 220/3 20; 220/3 25; 240/3 0; 240/3 5; 240/3 10; 240/3 15; 240/3 20 ];
  6.  
  7. plot(Coord(:,1), Coord(:,2),'x')
  8.  
  9. %konstanter
  10. kasf = 30;
  11. ksteel = 45;
  12. casf = 1200;
  13. eq = 7*10^5;
  14. Tg = 25; %Celcius
  15. Tinf = 25; %Celcius
  16.  
  17. ep = 30; %mm
  18. D1 = kasf*eye(2);
  19. D2 = ksteel*eye(2);
  20.  
  21. KE = zeros(3,3,178);
  22. fe = zeros(3,1);
  23. Edof = zeros(4,178);
  24. Dof = (1:108)';
  25. K = zeros(108,108);
  26. %Kc = zeros(108,108);
  27. f = zeros(108, 1);
  28. f(1) = eq;
  29. f(6) = eq;
  30. f(12) = eq;
  31. f(19) = eq;
  32. f(27) = eq;
  33. f(35) = eq;
  34. f(43) = eq;
  35. f(51) = eq;
  36. f(59) = eq;
  37. f(67) = eq;
  38. f(75) = eq;
  39. f(83) = eq;
  40. f(91) = eq;
  41. f(98) = eq;
  42. f(104) = eq;
  43.  
  44. l = 0;
  45. for j=1:49,    
  46.     i = Coord(j,1);
  47.  
  48.    
  49.     if (i == 0)
  50.         nodejump = 5;
  51.     elseif (i == 20/3)
  52.         nodejump = 6;
  53.     elseif (i == 40/3)
  54.         nodejump = 7;
  55.     else
  56.         nodejump = 8;
  57.     end
  58.    
  59.             if (Coord(j,2) < Coord(j+nodejump+1,2))
  60.                  l = l + 1;
  61.                
  62.                 x1 = Coord(j,1);
  63.                 y1 = Coord(j,2);
  64.                
  65.                 x2 = Coord(j+nodejump,1);
  66.                 y2 = Coord(j+nodejump,2);
  67.              
  68.                 x3 = Coord(j+nodejump+1,1);
  69.                 y3 = Coord(j+nodejump+1,2);
  70.                
  71.  
  72.                 Edof(:,l) = [l j j+nodejump j+nodejump+1 ];
  73.  
  74.  
  75.                 ex = [x1 x2 x3];
  76.                 ey = [y1 y2 y3];
  77.        
  78.                 if ((j == 38) || (j == 39) || (j == 46) || (j == 47))
  79.                     KE(:,:,l) = flw2te(ex,ey,ep,D2);
  80.                 else
  81.                     KE(:,:,l) = flw2te(ex,ey,ep,D1);
  82.                 end                
  83.             end
  84.                
  85.             if (Coord(j,2) < Coord(j+1,2))
  86.                 l = l + 1;
  87.                  
  88.                 x1 = Coord(j,1);
  89.                 y1 = Coord(j,2);
  90.                
  91.                 x2 = Coord(j+1,1);
  92.                 y2 = Coord(j+1,2);
  93.                
  94.                 x3 = Coord(j+nodejump+1,1);
  95.                 y3 = Coord(j+nodejump+1,2);                
  96.  
  97.                 Edof(:,l) = [l j j+1 j+nodejump+1 ];
  98.  
  99.                 ex = [x1 x2 x3];
  100.                 ey = [y1 y2 y3];        
  101.              
  102.                 if ((j == 38) || (j == 39) || (j == 46) || (j == 47))
  103.                     KE(:,:,l) = flw2te(ex,ey,ep,D2);
  104.                 else
  105.                     KE(:,:,l) = flw2te(ex,ey,ep,D1);
  106.                 end                
  107.             end
  108. end
  109.    
  110. l = 89;
  111. for j=51:102,    
  112.     i = Coord(j,1);
  113.    
  114.     if (i == 200/3)
  115.         nodejump = 7;
  116.     elseif (i == 220/3)
  117.         nodejump = 6;  
  118.     else
  119.         nodejump = 8;
  120.     end
  121.    
  122.             if (Coord(j,2) < Coord(j+1,2))
  123.                  l = l + 1;
  124.                
  125.                 x1 = Coord(j,1);
  126.                 y1 = Coord(j,2);
  127.                
  128.                 x2 = Coord(j+nodejump,1);
  129.                 y2 = Coord(j+nodejump,2);
  130.              
  131.                 x3 = Coord(j+1,1);
  132.                 y3 = Coord(j+1,2);                
  133.  
  134.                 Edof(:,l) = [l j j+nodejump j+1 ];
  135.  
  136.                 ex = [x1 x2 x3];
  137.                 ey = [y1 y2 y3];        
  138.              
  139.                 if ((j == 54) || (j == 55) || (j == 62) || (j == 63))
  140.                    KE(:,:,l) = flw2te(ex,ey,ep,D2);                
  141.                 else
  142.                    KE(:,:,l) = flw2te(ex,ey,ep,D1);
  143.                 end
  144.             end
  145.                
  146.             if ((j < 102) && Coord(j,2) < Coord(j+nodejump+1,2))
  147.                 l = l + 1;
  148.                  
  149.                 x1 = Coord(j+nodejump+1,1);
  150.                 y1 = Coord(j+nodejump+1,2);
  151.                
  152.                 x2 = Coord(j+1,1);
  153.                 y2 = Coord(j+1,2);
  154.                
  155.                 x3 = Coord(j+nodejump,1);
  156.                 y3 = Coord(j+nodejump,2);
  157.                
  158.  
  159.                 Edof(:,l) = [l j+nodejump+1 j+1 j+nodejump ];
  160.  
  161.  
  162.                 ex = [x1 x2 x3];
  163.                 ey = [y1 y2 y3];
  164.        
  165.              
  166.                 if ((j == 54) || (j == 55) || (j == 62) || (j == 63))
  167.                    KE(:,:,l) = flw2te(ex,ey,ep,D2);
  168.                 else
  169.                    KE(:,:,l) = flw2te(ex,ey,ep,D1);
  170.                 end
  171.             end
  172. end
  173.  
  174. Edof = Edof';
  175. [Ex,Ey] = coordxtr(Edof,Coord,Dof,3);
  176. eldraw2(Ex,Ey,[1,2,2])
  177.  
  178. for j=1:178,
  179.     K=assem(Edof,K,KE(:,:,j));
  180. end
  181.  
  182. %Boundary cond.
  183. % Tg = 300;
  184. % bc = [(1:108)' zeros(108,1)];
  185. % bc(:,2) = Tinf;
  186. % bc(1,2) = Tg;
  187. % bc(6,2) = Tg;
  188. % bc(12,2) = Tg;
  189. % bc(19,2) = Tg;
  190. % bc(27,2) = Tg;
  191. % bc(35,2) = Tg;
  192. % bc(43,2) = Tg;
  193. % bc(51,2) = Tg;
  194. % bc(59,2) = Tg;
  195. % bc(67,2) = Tg;
  196. % bc(75,2) = Tg;
  197. % bc(83,2) = Tg;
  198. % bc(91,2) = Tg;
  199. % bc(98,2) = Tg;
  200. % bc(104,2) = Tg;
  201.  
  202. bc = [  
  203. %         2 Tinf;
  204. %         3 Tinf;
  205. %         4 Tinf;
  206. %         5 Tinf;
  207. %         11 Tinf;
  208. %         18 Tinf;
  209.        
  210.         26 Tg;
  211.         34 Tg;
  212.         42 Tg;
  213.         50 Tg;
  214.         58 Tg;
  215.         66 Tg;
  216.         74 Tg;
  217.         82 Tg;
  218.         90 Tg ];
  219.        
  220. %         97 Tinf;
  221. %         103 Tinf;
  222. %         105 Tinf;
  223. %         106 Tinf;
  224. %         107 Tinf;
  225. %         108 Tinf];
  226.    
  227. % dt = 0.5;
  228. % T = 60
  229. % ip = [dt T alfa
  230. [a,r]=solveq(K,f,bc);
  231.  
  232. Ed=extract(Edof,a);
  233. for j=1:178
  234.     if ((j == 38) || (j == 39) || (j == 46) || (j == 47) || (j == 54) || (j == 55) || (j == 62) || (j == 63))
  235.         Es(j,:)=flw2ts(Ex(j,:),Ey(j,:),D2,Ed(j,:));
  236.     else
  237.         Es(j,:)=flw2ts(Ex(j,:),Ey(j,:),D1,Ed(j,:));
  238.     end
  239. end
  240.  
  241. sfac=scalfact2(Ex,Ey,Es,0.5);
  242. eldraw2(Ex,Ey,[1,3,0]);
  243. elflux2(Ex,Ey,Es,[1,4],sfac);
  244. pltscalb2(sfac,[2e-2 0.06 0.01],4);
  245. pause; clf;
  246. eldraw2(Ex,Ey,[1,3,0]);
  247. eliso2(Ex,Ey,Ed,5,[1,4]);
  248.  
  249. colormap('jet')
  250. fill(Ex',Ey',Ed')
  251. axis equal
Advertisement
Add Comment
Please, Sign In to add comment