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