SPH (ang. smoothed particle hydrodynamics) – metoda numeryczna służąca do przeprowadzania symulacji numerycznych zachowania się płynów. W metodzie tej ciecz jest reprezentowana przez zbiór dyskretnych cząstek (bądź „pseudocząstek”), które oddziałują ze sobą poruszając się wraz z przepływem i niosąc ze sobą wszystkie informacje o płynie[1].
Metoda ta została zaproponowana w roku 1977 niezależnie przez R.A. Gingolda & J.J. Monaghana oraz przez L.B.Lucy do prowadzenia obliczeń z dziedziny astrofizyki. Początkowo używana była do symulacji ściśliwych cieczy nielepkich. Z czasem została rozwinięta na nieściśliwe ciecze lepkie znajdujące się w polu grawitacyjnym, a także na zagadnienia z dziedziny magnetohydrodynamiki.
Równania ruchu
W metodzie SPH do opisu stanu cieczy używa się opisu Lagrange’a, gdzie siatka obliczeniowa porusza się wraz z przepływem cieczy. W takim wypadku równanie Naviera-Stokesa dla
-tej cząstki przybiera postać
![{\displaystyle {\frac {d{\vec {v}}}{dt}}=-{\frac {\nabla p}{\rho }}+{\vec {a}}^{visc}+{\vec {\Phi }},}](https://wikimedia.org/api/rest_v1/media/math/render/svg/8cd57dfb024dad538375dfabc307805ba31bc084)
gdzie:
– prędkość,
– ciśnienie,
– gęstość,
– przyspieszenie wynikające z istnienia sił lepkości,
– przyspieszenie wynikające z obecności sił masowych (np. pola grawitacyjnego).
Metoda SPH
Podstawy
Metoda ta opiera się na teorii interpolacji. Ciągłe rozkłady takich parametrów jak gęstość czy ciśnienie cieczy zastępuje się odpowiednimi estymatami przy założonym pewnym jądrze interpolacji. Obliczenia wykonujemy dla dyskretnego zbioru
cząstek płynu.
Estymata pewnej wielkości
w pozycji
-tej cząstki jest dana jako
![{\displaystyle A_{i}=\sum _{j=1}^{N}m_{j}{\frac {A_{j}}{\rho _{j}}}W_{ij}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4f6080c188b1b2fbf4d5e6aa0b060b289798df47)
Natomiast estymata gradientu wielkości
jako
![{\displaystyle \nabla _{i}A_{i}=\sum _{j=1}^{N}m_{j}{\frac {A_{j}}{\rho _{j}}}\nabla _{i}W_{ij},}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d7077987df4c84583b2a6096cafe4c72bbbaf563)
gdzie:
– gęstość
-tej cząstki,
– masa
-tej cząstki,
– jądro interpolacji.
Ilość sąsiadów i długość wygładzania
Parametr
jest nazywany długością wygładzania (smoothing length). Jest to wielkość, która określa na jaką odległość cząstka może oddziaływać z innymi cząstkami. Najczęściej w symulacji pozostaje stała podczas trwania obliczeń. Należy tylko uwzględnić, aby w promieniu
znajdowała się odpowiednia liczba sąsiadów. Liczba ta powinna się wahać w granicach od
do
Tabela 1. Ilość sąsiadów w promieniu
w zależności od liczby wymiarów symulacji | Jeden wymiar | Dwa wymiary | Trzy wymiary |
Liczba sąsiadów | 5 | 15 | 55 |
Jądro interpolacji
Funkcja jądra interpolacji powinna mieć postać
![{\displaystyle W(r,h)={\frac {1}{h^{\nu }}}f(u),}](https://wikimedia.org/api/rest_v1/media/math/render/svg/75feae5a3b2c72c7a5d1326c4d9773e019b8a66b)
gdzie:
– liczba wymiarów, ![{\displaystyle u=r/h,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a6325780e26c95f2d7c32ead67b3daa330e84aa4)
– odległość między cząstkami.
Dodatkowo funkcja
powinna spełniać warunki
![{\displaystyle \int f(u)dV=1,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4a14c50f9d0530fb0e78e4ffef747a2b852c922b)
![{\displaystyle \lim _{h\to 0}f(u)=\delta (r).}](https://wikimedia.org/api/rest_v1/media/math/render/svg/57eeb79a91bd844e5d5fb1baaa4feeabdb0f6704)
przy czym
jest elementem objętości, równym odpowiednio
lub
w jednym, dwóch lub trzech wymiarach.
Najczęściej stosuje się jednak jądro interpolacyjne zaproponowane przez Monaghana
![{\displaystyle W(r,h)={\frac {\sigma }{h^{\nu }}}\left\{{\begin{matrix}1-3/2u^{2}+3/4u^{3}&\quad 0\leqslant u\leqslant 1\\1/4(2-u)^{3}&\quad 1<u\leqslant 2\\0&\quad u>2\end{matrix}}\right.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/bd744a003121063324937627cfe4efd2204d5327)
A, jego gradient w postaci
![{\displaystyle W(r,h)={\frac {\sigma }{h^{\nu +1}}}{\hat {r}}\left\{{\begin{matrix}-3u+9/4u^{2}&\quad 0\leqslant u\leqslant 1\\-3/4(2-u)^{2}&\quad 1<u\leqslant 2\\0&\quad u>2\end{matrix}}\right.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0d6a139fa339aa9e65062287bf93edca5256595d)
gdzie:
![{\displaystyle {\hat {r}}={\frac {{\vec {r}}_{i}-{\vec {r}}_{j}}{|{\vec {r}}_{i}-{\vec {r}}_{j}|}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/be98ddaafdb19202b5a30de34147c8d36768bc7e)
Tabela 2. Wartości parametrów
i
w zależności od liczby wymiarów symulacji | Jeden wymiar | Dwa wymiary | Trzy wymiary |
| 1 | 2 | 3 |
| | | |
Sztuczna lepkość
Lepkość w metodzie SPH jest uwzględniana poprzez dodanie w równaniu Naviera-Stokesa przyspieszenia w postaci
![{\displaystyle {\vec {a}}_{i}^{visc}=-\sum _{j=1}^{N}m_{j}\Pi _{ij}\nabla _{i}W_{ij},}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d8f5bcaccb28bc61012adc9586c7e65412c4fc4b)
gdzie:
![{\displaystyle \Pi _{ij}={\frac {-\alpha c\mu _{ij}+\beta \mu _{ij}^{2}}{{\overline {\varrho }}_{ij}}},}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d552267500a4a9a5f8feac59869265e407e2495b)
– stałe, często przyjmowane jako
![{\displaystyle \beta =1{,}0,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c5e5a479a8f02ec01e6d7abb0af2f6a496952d54)
![{\displaystyle {\overline {\varrho }}_{ij}=(\varrho _{i}+\varrho _{j})/2,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1c8bab625509627a9e912f865e70443936a751c9)
![{\displaystyle \mu _{ij}=\left\{{\begin{matrix}{\frac {h^{2}{\vec {v}}_{ij}\cdot {\vec {r}}_{ij}}{r_{ij}^{2}+\eta ^{2}h^{2}}}&{\vec {v}}_{ij}\cdot {\vec {r}}_{ij}<0\\0&{\vec {v}}_{ij}\cdot {\vec {r}}_{ij}\geqslant 0\end{matrix}}\right.,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/24fe6fc33adfa50f4bafd398b27f13e140cd601b)
– stała, często przyjmowane jako ![{\displaystyle \eta =0{,}1,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6928d95f3b0b471755c836b17f607760aa5b1d2c)
![{\displaystyle {\vec {v}}_{ij}={\vec {v}}_{i}-{\vec {v}}_{j},}](https://wikimedia.org/api/rest_v1/media/math/render/svg/574c96b00487a914f9ac8f09ccea57773433d290)
![{\displaystyle {\vec {r}}_{ij}={\vec {r}}_{i}-{\vec {r}}_{j},}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b8cfcb80b0850d480cabaeb01d9a74fa68bab7d2)
![{\displaystyle r_{ij}=|{\vec {r}}_{i}-{\vec {r}}_{j}|.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d7f81ae582c5210c589fcad9d6f39dd2be24de97)
Równanie stanu
Najczęściej stosuje się równanie stanu w postaci
![{\displaystyle c={\sqrt {\frac {p\gamma }{\rho }}},}](https://wikimedia.org/api/rest_v1/media/math/render/svg/574bd90a7043cacd0c08448f13e4c9d7efbb6320)
gdzie:
![{\displaystyle \gamma =c_{p}/c_{V},}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a0685ebdd922ead6f9e4709147287e869e202b69)
– prędkość dźwięku w tym opisywanym płynie,
przy założeniu warunku
![{\displaystyle v_{i}\ll c.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f58fdcdcdb97ac4e3c394ddfd571c7517e2fcca5)
Innym równaniem stanu stosowanym dla cieczy jest
![{\displaystyle p=p_{0}\left[\left({\frac {\rho }{\rho _{0}}}\right)^{\gamma }-1\right],}](https://wikimedia.org/api/rest_v1/media/math/render/svg/96a6a19da6e6feabd019569b3a563564cfbb7f66)
gdzie:
i
– maksymalne przyjęte wartości gęstości i ciśnienia, ![{\displaystyle \gamma =7.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2d76e6b93ff2b26e5ab41cdf5e7ec92da2cf9ed0)
Ostateczne równanie
Po podstawieniu estymat do równania Naviera-Stokesa (i nie uwzględniając pola grawitacyjnego) otrzymujemy do rozwiązania równanie dla
-tej cząstki
![{\displaystyle {\vec {a}}_{i}={\frac {d{\vec {v}}_{i}}{dt}}=-{\frac {c^{2}}{\gamma }}\sum _{j=1}^{N}m_{j}\left({\frac {1}{\rho _{i}}}+{\frac {1}{\rho _{j}}}+\Pi _{ij}\right)\nabla _{i}W_{ij},}](https://wikimedia.org/api/rest_v1/media/math/render/svg/eb534924880fbc5a339d0a913372f72ddf9300e6)
które można wyznaczać dowolną metodą numerycznego całkowania równań różniczkowych, ale przy założeniu, że krok czasowy spełnia warunek Couranta
![{\displaystyle \Delta t\leqslant 0{,}25{\frac {h}{c}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1498778373a21652442a25cb3873b9ff260f2016)
Przypisy
- ↑ Fedir V. Sirotkin, Jack J. Yoh. A new particle method for simulating breakup of liquid jets. „Journal of Computational Physics”. 231, s. 1674, 2012. Elsevier. DOI: 10.1016/j.jcp.2011.10.020. (ang.).
Bibliografia
- J.J. Monaghan, Notes Smoothed Particle Hydrodynamics. ipam.ucla.edu. [zarchiwizowane z tego adresu (2007-03-12)].
- B. Schlatter, A pedagogical tool using Smoothed Particle Hydrodynamics to model fluid flow past a system of cylinders. physics.orst.edu. [zarchiwizowane z tego adresu (2006-09-06)].
- J.P. Morris, Analysis of Smoothed Particle Hydrodynamics with Applications
- M. Ellero, Smoothed Particle Dynamics Methods for the Simulation of Viscoelastic Fluids. edocs.tu-berlin.de. [zarchiwizowane z tego adresu (2007-04-17)].