Drukuj stronę
Problem początkowo-brzegowy, Czasozależny model dyfuzji
PMiKNoM seminaria - zajęcia 8
Wstęp
- Krytyczna zawartość jonów chlorkowych i metody wyznaczania współczynników dyfuzji w betonach (wstęp).
Czaso-zależny model dyfuzji - podstawowe równania
Drugie Prawo Ficka
` \frac{\partial c}{\partial t} = D \frac{\partial^2 c}{\partial x^2}`Druga pochodna centralna stężenia w punkcie `x_i`
` \frac{\partial^2 c_i}{\partial x^2} = \frac{c_{i+1}-2c_i+c_{i-1}}{h^2}`Metoda jawna Eulera
` c_i(t_{j+1}) = c_i(t_j)+ \Delta t \cdot \frac{dc_i}{dt}`Równanie dyskretne dyfuzji
Po połączeniu trzech równań powyżej, otrzymujemy:
`c_i(t_{j+1}) = c_i(t_j)+ \frac{\Delta t}{h^2} D \cdot (c_{i+1}-2c_i+c_{i-1})`
Warunki początkowe i brzegowe
Warunki początkowe:`c(x,0) = 0`
Warunki brzegowe:
$$
\left\{ \begin{array}{l}
c(0,t) = c_L = const \\
c(l,t) = c_R = const
\end{array} \right.
$$
Czasozależny model dyfuzji - algorytm programu
- Zadeklaruj stałe globalne `cL`, `cR`, `l`, `D`, `t_{end}`, `n` oraz `m`.
- Procedurę główną rozpocznij od deklaracji zmiennych `h`, `dt`, `i`, `j` oraz tablic `c(0 \text{ to } n+1)` i `c_\text{new}(1 \text{ to } n)`.
- Wylicz wartość kroku `h = l/(n+1)` i kroku `dt = t_{end}/m`.
- Zapisz warunek początkowy dla wszystkich punktów: `c(i)=0`.
- Zapisz warunek brzegowy: `c(0)=cL` i `c(n+1)=cR`.
- Wykonaj pętlę zagnieżdżoną, w której dla każdego kroku czasowego (for j=1 to m):
- Dla każdego punktu (for i=1 to n), program wyliczy nowe wartości stężeń (partrz wzór), zapisując w tablicy `c_\text{new}`
- Program podmieni tablice:, tj. (for i=1 to n) `c(i)=c_\text{new}(i)`
- Wyświetl wyniki.
Czasozależny model dyfuzji - program
- Model dyfuzji - implementacja w VBA.
- Porównanie wyników z aplikacją napisaną w JavaScript.