Guest User

Untitled

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