Politechnika Krakowska
Wydział Inżynierii Lądowej
Instytut Technologii Informatycznej
METODY OBLICZENIOWE
PROJEKT NR II
SPRAWOZDANIE
Wykonał:
Radosław Burcek
gr. 10
% 2D przepływ ciepła w L-kształtej strukturze – dyskretyzacja strukturalna
clear, clc, clf
format compact
% dane
k=0.8; % wspolczynnik przewodzenia
% dyskretyzacja
Nodes = 8; % liczba węzłów
Nel = 6; % liczba elementów
Ndofs = Nodes; % jeden stopień swobody na każdy węzeł
a= 5; % wymiar siatki
Coord(1,1:2)=[0,2*a]; % współrzędne węzłów
Coord(2,1:2)=[a,2*a];
Coord(3,1:2)=[0,a];
Coord(4,1:2)=[a,a];
Coord(5,1:2)=[0,0];
Coord(6,1:2)=[a,0];
Coord(7,1:2)=[2*a,0];
Coord(8,1:2)=[2*a,a];
Inc = [1 3 2; % węzły elementów (topologia)
3 4 2;
3 5 4;
5 6 4;
6 8 4;
6 7 8];
Edof=[[1:Nel]',Inc]; % globalna macierz stopni swobody
temp=30; % warunki brzegowe Dirichleta
bc=[1 temp*2; 2 temp];
% wykres dyskretyzacji
figure(1) % elementy
[Ex,Ey]=coordxtr(Edof,Coord,[1:Nodes]',3);
eldraw2(Ex,Ey,[1,1,1],Edof), axis([-1,12,-1,12]), axis equal;
figure(2) % węzły
eldraw2(Ex,Ey,[3,4,0]), hold on, axis([-1,12,-1,12]), axis equal;
for in=1:Nodes
h=text(Coord(in,1),Coord(in,2),int2str(in));
set(h,'fontsize',14,'fontweight','bold');
end
% agregacja
KG=zeros(Ndofs,Ndofs); % macierz globalna
f=zeros(Ndofs,1); % wektor globalny
f(7) = 87.5;
f(8) = 87.5;
for iel=1:Nel
Kel=flw2te(Ex(iel,:),Ey(iel,:),[1],[k 0;0 k]);
KG=assem(Edof(iel,:),KG,Kel);
end
% rozwiązanie
u=solveq(KG,f,bc);
% wykres rozwiązania
figure(3)
Ed = extract(Edof,u);
fill(Ex',Ey',Ed')
axis([-1,12,-1,12]), axis equal, colorbar;
Tmin=min(u), Tmax=max(u) %ekstrema wartości
%porównanie temperatury i jej gradientu
syms x y ;
N4 = -0.2*x+0.2*y+1; %funkcje kształtu
N6 = -0.2*y + 1;
N8 = 0.2*x -1;
T(x,y) = [N4 N6 N8]* [u(4) u(6) u(8)]';
T(5.75,4.75)
grad = [diff(T(x,y),x), diff(T(x,y),y)]; %gradient
Tmin = 30
Tmax = 555.6564
T(5.75,4.75) = 331.6407
grad = [ 48.2298, -13.4394]
% 2D przepływ ciepła w L-kształtej strukturze – dyskretyzacja niestrukturalna
clear, clc, clf
format compact
% dane
k=0.8; % wspolczynnik przewodzenia
% dyskretyzacja
Nodes = 16; % liczba węzłów
Nel = 19; % liczba elementów
Ndofs = Nodes; % jeden stopień swobody na każdy węzeł
Coord(1,1:2)=[0,10]; % współrzędne węzłów
Coord(2,1:2)=[5,10];
Coord(3,1:2)=[0,7.5];
Coord(4,1:2)=[2.5,7.5];
Coord(5,1:2)=[5,7.5];
Coord(6,1:2)=[0,5];
Coord(7,1:2)=[2.5,5];
Coord(8,1:2)=[5,5];
Coord(9,1:2)=[2.5,2.5];
Coord(10,1:2)=[5,2.5];
Coord(11,1:2)=[7.5,2.5];
Coord(12,1:2)=[0,0];
Coord(13,1:2)=[5,0];
Coord(14,1:2)=[10,0];
Coord(15,1:2)=[10,5];
Coord(16,1:2)=[7.5,5];
Inc = [1 3 4; % węzły elementów (topologia)
1 4 2;
4 5 2;
3 6 4;
4 6 7;
4 7 8;
5 4 8;
6 9 7;
7 9 8;
8 9 10;
6 12 9;
9 12 13;
9 13 10;
10 13 11;
13 14 11;
11 14 15;
11 15 16;
11 16 8;
8 10 11];
Edof=[[1:Nel]',Inc]; % globalna macierz stopni swobody
temp=30; % warunki brzegowe Dirichleta
bc=[1 temp*2; 2 temp];
% wykres dyskretyzacji
figure(1) % elementy
[Ex,Ey]=coordxtr(Edof,Coord,[1:Nodes]',3);
eldraw2(Ex,Ey,[1,1,1],Edof), axis([-1,12,-1,12]), axis equal;
figure(2) % węzły
eldraw2(Ex,Ey,[3,4,0]), hold on, axis([-1,12,-1,12]), axis equal;
for in=1:Nodes
h=text(Coord(in,1),Coord(in,2),int2str(in));
set(h,'fontsize',14,'fontweight','bold');
end
% agregacja
KG=zeros(Ndofs,Ndofs); % macierz globalna
f=zeros(Ndofs,1); % wektor globalny
f(14) = 87.5;
f(15) = 87.5;
for iel=1:Nel
Kel=flw2te(Ex(iel,:),Ey(iel,:),[1],[k 0;0 k]);
KG=assem(Edof(iel,:),KG,Kel);
end
% rozwiązanie
u=solveq(KG,f,bc);
% wykres rozwiązania
figure(3)
Ed = extract(Edof,u);
fill(Ex',Ey',Ed')
axis([-1,12,-1,12]), axis equal, colorbar;
Tmin=min(u), Tmax=max(u) %ekstrema wartości
syms x y ;
N8 = 0.4*y-1;
N10 = -0.4*x-0.4*y+4;
N11 = 0.4*x -2;
T(x,y) = [N8 N10 N11]* [u(8) u(10) u(11)]'
T(5.75,4.75)
grad = [diff(T(x,y),x), diff(T(x,y),y)]
Tmin = 30
Tmax = 575.7644
T(5.75,4.75) = 344.2015
grad = [ 40.6034, -22.7253]
Wnioski:
Dla zadanego obszaru l-kształtnego przyjęto dwie różne dyskretyzacje – strukturalną i niestrukturalną.
Niestrukturalna dyskretyzacja dzieli nierównomiernie obszar, zagęszczając siatkę w okolicach jednego z punktów. Podział strukturalny zawiera trójkąty o tych samych wymiarach.
W dwóch punktach wysuniętych najdalej na północ przyjęto temperaturę 30°C.
Po wprowadzeniu warunków zauważa się nieznaczne różnice między rozkładem temperatur dla dyskretyzacji strukturalnej i niestrukturalnej.
W obu dyskretyzacjach najniższa temperatura wynosi niezmiennie 30℃, natomiast Tmax = 248.0808 przy siatce niestrukturalnej, a Tmax = 256.97 przy siatce strukturalnej. Różnice wynikają z innych dyskretyzacji w okolicach punktu osobliwego. Zagęszczenie siatki w okolicach punktu osobliwego prowadzi do dokładniejszych obliczeń, a jej równomierne rozłożenie w istocie pomija osobliwość punktu, traktując wszystkie punkty na brzegach jednakowo. W pobliżu osobliwego punktu wybrano punkt o współrzędnych x=5.75 y=4.75 dla którego w obydwy dyskretyzacjach wyliczono temperaturę, która wyniosła 238.8737℃, oraz 206.0922℃. Różnica temperatur oraz gradientu w tym samym punkcie jest spowodowana bardziej zagęszczoną siatką w dyskretyzacji niestrukturalnej.