SPH

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 i {\displaystyle i} -tej cząstki przybiera postać

d v d t = p ρ + a v i s c + Φ , {\displaystyle {\frac {d{\vec {v}}}{dt}}=-{\frac {\nabla p}{\rho }}+{\vec {a}}^{visc}+{\vec {\Phi }},}

gdzie:

v {\displaystyle {\vec {v}}} – prędkość,
p {\displaystyle p} – ciśnienie,
ρ {\displaystyle \rho } – gęstość,
a v i s c {\displaystyle {\vec {a}}^{visc}} – przyspieszenie wynikające z istnienia sił lepkości,
Φ {\displaystyle {\vec {\Phi }}} – 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 N {\displaystyle N} cząstek płynu.

Estymata pewnej wielkości A {\displaystyle A} w pozycji i {\displaystyle i} -tej cząstki jest dana jako

A i = j = 1 N m j A j ρ j W i j . {\displaystyle A_{i}=\sum _{j=1}^{N}m_{j}{\frac {A_{j}}{\rho _{j}}}W_{ij}.}

Natomiast estymata gradientu wielkości A {\displaystyle A} jako

i A i = j = 1 N m j A j ρ j i W i j , {\displaystyle \nabla _{i}A_{i}=\sum _{j=1}^{N}m_{j}{\frac {A_{j}}{\rho _{j}}}\nabla _{i}W_{ij},}

gdzie:

ρ j {\displaystyle \rho _{j}} – gęstość j {\displaystyle j} -tej cząstki,
m j {\displaystyle m_{j}} – masa j {\displaystyle j} -tej cząstki,
W i j = W ( r , h ) {\displaystyle W_{ij}=W(r,h)} – jądro interpolacji.

Ilość sąsiadów i długość wygładzania

Parametr h {\displaystyle h} 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 2 h {\displaystyle 2h} znajdowała się odpowiednia liczba sąsiadów. Liczba ta powinna się wahać w granicach od N N / 2 {\displaystyle N_{N}/2} do 2 N N . {\displaystyle 2N_{N}.}

Tabela 1. Ilość sąsiadów w promieniu 2 h {\displaystyle 2h} w zależności od liczby wymiarów symulacji
Jeden wymiar Dwa wymiary Trzy wymiary
Liczba sąsiadów N N {\displaystyle N_{N}} 5 15 55

Jądro interpolacji

Funkcja jądra interpolacji powinna mieć postać

W ( r , h ) = 1 h ν f ( u ) , {\displaystyle W(r,h)={\frac {1}{h^{\nu }}}f(u),}

gdzie:

ν {\displaystyle \nu } – liczba wymiarów,
u = r / h , {\displaystyle u=r/h,}
r {\displaystyle r} – odległość między cząstkami.

Dodatkowo funkcja f ( u ) {\displaystyle f(u)} powinna spełniać warunki

f ( u ) d V = 1 , {\displaystyle \int f(u)dV=1,}
lim h 0 f ( u ) = δ ( r ) . {\displaystyle \lim _{h\to 0}f(u)=\delta (r).}

przy czym d V {\displaystyle dV} jest elementem objętości, równym odpowiednio d u , {\displaystyle du,} 2 π u d u {\displaystyle 2\pi udu} lub 4 π u 2 d u {\displaystyle 4\pi u^{2}du} w jednym, dwóch lub trzech wymiarach.

Najczęściej stosuje się jednak jądro interpolacyjne zaproponowane przez Monaghana

W ( r , h ) = σ h ν { 1 3 / 2 u 2 + 3 / 4 u 3 0 u 1 1 / 4 ( 2 u ) 3 1 < u 2 0 u > 2 {\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.}

A, jego gradient w postaci

W ( r , h ) = σ h ν + 1 r ^ { 3 u + 9 / 4 u 2 0 u 1 3 / 4 ( 2 u ) 2 1 < u 2 0 u > 2 {\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.}

gdzie:

r ^ = r i r j | r i r j | . {\displaystyle {\hat {r}}={\frac {{\vec {r}}_{i}-{\vec {r}}_{j}}{|{\vec {r}}_{i}-{\vec {r}}_{j}|}}.}
Tabela 2. Wartości parametrów σ {\displaystyle \sigma } i ν {\displaystyle \nu } w zależności od liczby wymiarów symulacji
Jeden wymiar Dwa wymiary Trzy wymiary
ν {\displaystyle \nu } 1 2 3
σ {\displaystyle \sigma } 2 3 {\displaystyle {\frac {2}{3}}} 10 7 π {\displaystyle {\frac {10}{7\pi }}} 1 π {\displaystyle {\frac {1}{\pi }}}

Sztuczna lepkość

Lepkość w metodzie SPH jest uwzględniana poprzez dodanie w równaniu Naviera-Stokesa przyspieszenia w postaci

a i v i s c = j = 1 N m j Π i j i W i j , {\displaystyle {\vec {a}}_{i}^{visc}=-\sum _{j=1}^{N}m_{j}\Pi _{ij}\nabla _{i}W_{ij},}

gdzie:

Π i j = α c μ i j + β μ i j 2 ϱ ¯ i j , {\displaystyle \Pi _{ij}={\frac {-\alpha c\mu _{ij}+\beta \mu _{ij}^{2}}{{\overline {\varrho }}_{ij}}},}
α , β {\displaystyle \alpha ,\beta } – stałe, często przyjmowane jako α = 0 , 5 , {\displaystyle \alpha =0{,}5,} β = 1 , 0 , {\displaystyle \beta =1{,}0,}
ϱ ¯ i j = ( ϱ i + ϱ j ) / 2 , {\displaystyle {\overline {\varrho }}_{ij}=(\varrho _{i}+\varrho _{j})/2,}
μ i j = { h 2 v i j r i j r i j 2 + η 2 h 2 v i j r i j < 0 0 v i j r i j 0 , {\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.,}
η {\displaystyle \eta } – stała, często przyjmowane jako η = 0 , 1 , {\displaystyle \eta =0{,}1,}
v i j = v i v j , {\displaystyle {\vec {v}}_{ij}={\vec {v}}_{i}-{\vec {v}}_{j},}
r i j = r i r j , {\displaystyle {\vec {r}}_{ij}={\vec {r}}_{i}-{\vec {r}}_{j},}
r i j = | r i r j | . {\displaystyle r_{ij}=|{\vec {r}}_{i}-{\vec {r}}_{j}|.}

Równanie stanu

Najczęściej stosuje się równanie stanu w postaci

c = p γ ρ , {\displaystyle c={\sqrt {\frac {p\gamma }{\rho }}},}

gdzie:

γ = c p / c V , {\displaystyle \gamma =c_{p}/c_{V},}
c {\displaystyle c} prędkość dźwięku w tym opisywanym płynie,

przy założeniu warunku

v i c . {\displaystyle v_{i}\ll c.}

Innym równaniem stanu stosowanym dla cieczy jest

p = p 0 [ ( ρ ρ 0 ) γ 1 ] , {\displaystyle p=p_{0}\left[\left({\frac {\rho }{\rho _{0}}}\right)^{\gamma }-1\right],}

gdzie:

ρ 0 {\displaystyle \rho _{0}} i p 0 {\displaystyle p_{0}} – maksymalne przyjęte wartości gęstości i ciśnienia,
γ = 7. {\displaystyle \gamma =7.}

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 i {\displaystyle i} -tej cząstki

a i = d v i d t = c 2 γ j = 1 N m j ( 1 ρ i + 1 ρ j + Π i j ) i W i j , {\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},}

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

Δ t 0 , 25 h c . {\displaystyle \Delta t\leqslant 0{,}25{\frac {h}{c}}.}

Przypisy

  1. 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)].