• Nie Znaleziono Wyników

Projekt 9: Dyfuzja ciepła - metoda Cranck-Nicloson.

N/A
N/A
Protected

Academic year: 2021

Share "Projekt 9: Dyfuzja ciepła - metoda Cranck-Nicloson."

Copied!
5
0
0

Pełen tekst

(1)

Projekt 9: Dyfuzja ciepła - metoda Cranck-Nicloson.

Tomasz Chwiej 10 stycznia 2019

1 Wstęp

i= 0 1

nx 2

0 1 2 ny

j=

ρ

1

Rysunek 1: Siatka węzłów użyta w obliczeniach z zaznaczonymi warunkami brzegowymi: Dirichleta (czerwony) i von Neumanna (niebieski).

Na zajęciach znajdziemy rozwiązanie zależnego od czasu równania dyfuzji (T = T (x, y, t))

2

T = ∂T

∂t (1)

Równanie to zdyskretyzujemy na siatce, zapiszemy w postaci macierzowej i znajdziemy jego rozwią- zanie w kolejnych chwilach czasowych przy użyciu metody Cranck-Nicolson (do rozwiązania układu równań liniowych w tej metodzie wykorzystamy rozkład LU). Geometria układu wraz z siatką węzłów, w których wyznaczona zostanie temperatura pokazane jest na rys. 1.

1.1 Dyskretyzacja równania + metoda CN

Najperw definiujemy siatkę węzłów, dla położenia (x,y) i czasu (t)

∆x = ∆y = ∆ (2)

x

i

= i · ∆, i = 0, 1, 2, . . . , n

x

(3) y

j

= j · ∆, j = 0, 1, 2, . . . , n

y

(4)

t

n

= n · ∆t, n = 0, 1, 2, . . . (5)

T (x, y, t) → T (x

i

, y

j

, t

n

) → T

i,jn

(6) (dolny indeks - położenie, górny - czas).

Zapisujemy równanie (1) korzystając ze schematu C-N 1

2

(

2

T

n

+

2

T

n+1

)

= T

n+1

− T

n

∆t (7)

(2)

zastępujemy pochodne ilorazami różnicowymi [ d

2

f /dx

2

= (f

i+1

− 2f

i

+ f

i−1

)/∆

2

] i grupujemy wyrazy względem chwil czasowych

∆t 2∆

2

(

T

i+1,jn+1

+ T

in+1−1,j

− 4T

i,jn+1

+ T

i,j+1n+1

+ T

i,jn+1−1

) − T

i,jn+1

= ∆t 2∆

2

(

T

i+1,jn

+ T

in−1,j

− 4T

i,jn

+ T

i,j+1n

+ T

i,jn−1

) − T

i,jn

(8)

Dokonujemy teraz reindeksacji węzłów (parę wskaźników (i, j) zastępujemy jednym l)

l = i + j · (n

x

+ 1), l = 0, 1, 2, . . . , N (9)

N = (n

x

+ 1) · (n

y

+ 1) (10)

j = f loor ( l

n

x

+ 1 )

(11)

i = l − j · (n

x

+ 1) (12)

Równanie 8 możemy zapisać w postaci macierzowej

A · ⃗T

n+1

= B · ⃗T

n

+ ⃗ c (13)

[uwaga: pojawienie się wektora ⃗ c nie wynika bezpośrednio z równania (8), ale dodaliśmy je aby zapewnić spełnienie warunków brzegowych von Neumanna, dla WB Dirichleta przyjmujemy ⃗ c = 0. (góra/dół na rysunku 1],

oraz z uwzględnieniem tylko niezerowych elementów macierzowych

a

l,l−nx−1

T

ln+1−nx−1

+ a

l,l−1

T

ln+1−1

+ a

l,l

T

ln+1

+ a

l,l+1

T

l+1n+1

+ a

l,l+nx+1

T

l+nn+1

x+1

= b

l,l−nx−1

T

ln−nx−1

+ b

l,l−1

T

ln−1

+ b

l,l

T

ln

+ b

l,l+1

T

l+1n

+ b

l,l+nx+1

T

l+nn x+1

+ c

l

(14) 1.1.1 Niezerowe elementy macierzowe z uwzględnieniem WB

• Wnętrze obszaru (szary obszar na rysunku)

i = 1, 2, . . . , n

x

− 1 (15)

j = 1, 2, . . . , n

y

− 1 (16)

a

l,l−nx−1

= a

l,l−1

= a

l,l+1

= a

l,l+nx+1

= ∆t

2∆

2

(17)

a

l,l

= 2∆t

2

− 1 (18)

b

l,l−nx−1

= b

l,l−1

= b

l,l+1

= b

l,l+nx+1

= ∆t

2∆

2

(19)

b

l,l

= 2∆t

2

− 1 (20)

• WB Dirichleta (lewy i prawy brzeg)

i = 0, n

x

(21)

j = 0, 1, 2, . . . , n

y

(22)

a

l,l

= 1 (23)

b

l,l

= 1 (24)

c

l

= 0 (25)

• WB von Neumanna na górnym brzegu dla chwili n + 1

∂T

n+1

∂y = −k

B

(T

n+1

− T

B

) (26)

(3)

po zastąpieniu pochodnych ilorazami jest następujący T

i,nn+1

y

− T

i,nn+1y−1

∆ = −k

B

(T

i,nn+1y

− T

B

) (27)

a po reindeksacji węzłów i po pogrupowaniu wyrazów a

l,l−nx−1

T

ln+1−n

x−1

+ a

l,l

T

ln+1

= c

l

(28)

(29) gdzie

i = 1, 2, . . . , n

x

− 1 (30)

j = n

y

(31)

a

l,l−nx−1

= 1

k

B

∆ (32)

a

l,l

= 1 + 1

k

B

∆ (33)

c

l

= T

B

(wektor c) (34)

b

l,∗

= 0, (cały wiersz) (35)

• WB von Neumanna na dolnym brzegu dla chwili n + 1

∂T

n+1

∂y = −k

D

(T

n+1

− T

D

) (36)

po zastąpieniu pochodnych ilorazami jest następujący T

i,0n+1

− T

i,1n+1

∆ = −k

D

(T

i,0n+1

− T

B

) (37)

a po reindeksacji węzłów i po pogrupowaniu wyrazów a

l,l

T

ln+1

+ a

l,l+nx+1

T

l+nn+1

x+1

= c

l

(38)

(39) gdzie

i = 1, 2, . . . , n

x

− 1 (40)

j = 0 (41)

a

l,l

= 1 + 1

k

D

∆ (42)

a

l,l+nx+1

= 1

k

D

∆ (43)

c

l

= T

D

(wektor c) (44)

b

l,

= 0, (cały wiersz) (45)

1.1.2 Warunki Początkowe WP narzucamy na wektor startowy ⃗ T

0

T

l0

= T

A

, i = 0, j = 0, 1, 2 . . . , n

y

, (lewy brzeg) (46) T

l0

= T

C

, i = n

x

, j = 0, 1, 2 . . . , n

y

, (prawy brzeg) (47)

T

l0

= 0, w pozostałym obszarze (48)

(4)

2 Algorytm CN

Algorytm CN dla równania dyfuzji w wersji macierzowej i n i c j a l i z a c j a : A , B , ⃗ c, ⃗ T = ⃗ T

0

o b l i c z r o z k ł a d LU : A

FOR it =0 TO I T _ M A X S T E P 1 DO d = B · ⃗T + ⃗c //T = T

n

r o z w i ą ż ukł . r ó w n ( LU ): A · ⃗T = ⃗d //T = T

n+1

END DO

3 Zadania do wykonania

W obliczeniach do znalezienia rozkładu LU, rozwiązania układu równań liniowych, mnożenia macierz- wektor czy dodawania wektorów należy użyć biblioteki numerycznej np. GSL (lub innej dostępnej na Taurusie).

1. W obliczeniach należy użyć wartości parametrów: n

x

= 40, n

y

= 40, N = (n

x

+ 1) · (n

y

+ 1) ,

∆ = 1, ∆t = 1, T

A

= 40, T

B

= 0, T

C

= 30, T

D

= 0, k

B

= 0.1, k

D

= 0.6, IT M AX = 2000.

2. Utworzyć macierze A[N ][N ], B[N ][N ] oraz wektor c[N ] i wypełnić je zgodnie z wzorami zamiesz- czonymi w sekcji 1.1.1

3. Utworzyć wektor startowy T [N ] i narzucić warunki początkowe (sekcja 1.1.2) 4. Znaleźć rozkład LU macierzy A (GSL)

5. Zaimplementować algorytm CN (sekcja 2) 6. Wykonać IT M AX kroków.

7. Dla it = 100, 200, 500, 1000, 2000 sporządzić mapy rozkładu temperatury w pomieszczeniu T (x, y) (50 pkt.)

8. W stanie ustalonym równanie dyfuzji redukuje się do

2

T = 0 (brak zmian w czasie - znika po- chodna czasowa). Dla it = 100, 200, 500, 1000, 2000 proszę sporządzić mapy rozkładu

2

T (x, y) i sprawdzić czy tak jest. (50 pkt.)

4 Przydatne procedury z biblioteki GSL

• rozkład LU

int g s l _ l i n a l g _ L U _ d e c o m p ( g s l _ m a t r i x * A , g s l _ p e r m u t a t i o n * p , int * s i g n u m ) Po wywołaniu procedury znaleziony rozkład LU jest wpisany do macierzy A

• rozwiązanie układu równań z użyciem LU

int g s l _ l i n a l g _ L U _ s o l v e ( c o n s t g s l _ m a t r i x * LU , c o n s t g s l _ p e r m u t a t i o n * p , c o n s t g s l _ v e c t o r * b , g s l _ v e c t o r * x )

• mnożenie macierz-wektor (BLAS 2)

(5)

y = α op(A) · ⃗x + β ⃗y op(A) = A, A

T

, A

H

int g s l _ b l a s _ d g e m v ( C B L A S _ T R A N S P O S E _ t TransA , d o u b l e alpha , c o n s t g s l _ m a t r i x * A , c o n s t g s l _ v e c t o r * x , d o u b l e beta , g s l _ v e c t o r * y )

( T r a n s A = C b l a s N o T r a n s , C b l a s T r a n s , C b l a s C o n j T r a n s )

• dodawanie dwóch wektorów (BLAS 1)

y = α⃗ x + ⃗ y

int g s l _ b l a s _ d a x p y ( d o u b l e alpha , c o n s t g s l _ v e c t o r * x , g s l _ v e c t o r * y )

5 Przykładowe wyniki

T(x,y)

’100.dat’ u 1:2:3

0 5 10 15 20 25 30 35 40 x

0 5 10 15 20 25 30 35 40

y

0 5 10 15 20 25 30 35 40

2 T(x,y)

’100.dat’ u 1:2:4

0 5 10 15 20 25 30 35 40 x

0 5 10 15 20 25 30 35 40

y

0 0.02 0.04 0.06 0.08 0.1 0.12

Rysunek 2: Wyniki dla it = 100

Cytaty

Powiązane dokumenty

Materiał edukacyjny wytworzony w ramach projektu „Scholaris – portal wiedzy dla nauczycieli".. współfinansowanego przez Unię Europejską w ramach Europejskiego

W wyniku obliczeń optymalizacyjnych rekuperacji ciepła z układu chło- dzenia międzystopniowego spręŜania CO 2 na potrzeby bloku ustalono, Ŝe naj- wyŜsze

Głównym celem przeprowadzonej analizy było zbadanie wpływu długości rur gruntowego wymiennika ciepła na funkcjonowanie rozważanego układu, w tym także na

a) za uzyskaną w skojarzeniu energię elektryczną uważa σQ, b) energię elektryczną nie uważa się za uzyskaną w skojarzeniu c) Skojarzenie dotyczy wyłącznie

Następnie do zderzenia fotonu rentgenowskiego z elektronem, pokazanego na rysunku 39.5, zastosujemy zasadę zachowania pędu.. Z równania (39.7) wynika, że pęd padającego fotonu

Nietrudno też byłoby uzasadnić, dlaczego tak jest, ale tu nie będziemy tego robić, tylko zajmiemy się kratką wyplecioną z wikliny albo z dość sztywnych drutów (takich, z

An analysis of the possibilities of using waste heat from the inter-stage cooling needs of the power absorption chiller and cooling CO 2 for transport was carried out. It

Znajdź wszystkie możliwe dzielniki liczby