View difference between Paste ID: 0bxhsxj8 and gE5GjLYv
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
eq = 7*10^5;
14
Tg = 25; %Celcius
15-
D = kasf*eye(2);
15+
Tinf = 25; %Celcius
16
17
ep = 30; %mm
18
D1 = kasf*eye(2);
19-
Dof = [1:108]';
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-
           
39+
f(83) = eq;
40
f(91) = eq;
41
f(98) = eq;
42
f(104) = eq;
43
44-
                 l = l + 1
44+
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-
                KE(:,:,l) = flw2te(ex,ey,ep,D);
63+
64
                
65
                x2 = Coord(j+nodejump,1);
66
                y2 = Coord(j+nodejump,2);
67
             
68-
                l = l + 1
68+
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-
                KE(:,:,l) = flw2te(ex,ey,ep,D);
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-
                 l = l + 1
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-
                y3 = Coord(j+1,2);
118+
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-
                KE(:,:,l) = flw2te(ex,ey,ep,D);
128+
129
                y2 = Coord(j+nodejump,2);
130
             
131
                x3 = Coord(j+1,1);
132
                y3 = Coord(j+1,2);                
133-
                l = l + 1
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-
                KE(:,:,l) = flw2te(ex,ey,ep,D);
152+
153
                y2 = Coord(j+1,2);
154
                
155
                x3 = Coord(j+nodejump,1);
156
                y3 = Coord(j+nodejump,2);
157
                
158-
Edof = Edof'
158+
159-
[Ex,Ey] = coordxtr(Edof,Coord,Dof,3)
159+
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