Listy komórek
Listy komórek (czasami określane również jako listy połączone z komórkami ) to struktura danych w symulacjach dynamiki molekularnej służąca do znajdowania wszystkich par atomów w określonej odległości od siebie. Pary te są potrzebne do obliczenia oddziaływań niezwiązanych krótkiego zasięgu w systemie, takich jak siły Van der Waalsa lub część oddziaływania elektrostatycznego krótkiego zasięgu przy użyciu sumowania Ewalda .
Algorytm
Listy komórek działają poprzez podział domeny symulacji na komórki o długości krawędzi większej lub równej promieniowi odcięcia interakcji, która ma zostać obliczona. Cząstki są sortowane do tych komórek, a interakcje są obliczane między cząstkami w tej samej lub sąsiednich komórkach.
W swojej najbardziej podstawowej formie niezwiązane interakcje dla odległości odcięcia obliczane w następujący sposób:
-
dla wszystkich sąsiednich par komórek zrobić
-
dla wszystkich zrobić
-
dla wszystkich zrobić
-
jeśli następnie
- Oblicz interakcję między i .
- koniec, jeśli
- koniec za
-
dla wszystkich zrobić
- koniec za
-
dla wszystkich zrobić
- koniec za
długość komórki wynosi co najmniej , nie można pominąć żadnych cząstek w od siebie
symulację z cząstkami o jednorodnej gęstości cząstek, liczba komórek proporcjonalna do i odwrotnie proporcjonalna do promienia odcięcia (tj. jeśli wzrasta, podobnie jak liczba komórek). średnia liczba cząstek na komórkę całkowitej Koszt interakcji dwóch komórek wynosi . Liczba par komórek która jest ponownie proporcjonalna do liczby cząstek . Całkowity koszt znalezienia wszystkich odległości parami w danej granicy wynosi znacznie lepsze parami
Okresowe warunki brzegowe
W większości symulacji stosuje się okresowe warunki brzegowe , aby uniknąć narzucania sztucznych warunków brzegowych. Korzystając z list komórek, granice te można zaimplementować na dwa sposoby.
Komórki duchów
W podejściu z komórkami widmowymi pudełko symulacji jest opakowane w dodatkową warstwę komórek. Komórki te zawierają okresowo zawijane kopie odpowiednich komórek symulacji wewnątrz domeny.
Chociaż dane — a zwykle także koszt obliczeniowy — są podwojone w przypadku interakcji przekraczających granicę okresową, to podejście ma tę zaletę, że jest proste do wdrożenia i bardzo łatwe do zrównoleglenia, ponieważ komórki będą wchodzić w interakcje tylko ze swoimi sąsiadami geograficznymi.
Okresowe owijanie
Zamiast tworzyć komórki duchy, pary komórek, które oddziałują na okresową granicę, mogą również używać okresowego wektora korekcyjnego } Ten wektor można zapisać lub obliczyć dla każdej pary komórek należy zastosować do „zawijania jedną komórkę wokół domeny, aby sąsiadowała z drugą. ∈ i } następnie obliczone jako
- .
To podejście, chociaż bardziej wydajne niż użycie komórek duchów, jest mniej proste do wdrożenia (pary komórek należy zidentyfikować na granicach okresowych, a wektor musi być obliczona/przechowana).
Ulepszenia
Pomimo zmniejszenia kosztu obliczeniowego znalezienia wszystkich par w danej odległości odcięcia od do , algorytm listy komórek wymieniony powyżej nadal ma pewne nieefektywności.
w trzech wymiarach z długością krawędzi równą promieniowi odcięcia . Obliczana jest parami odległość między wszystkimi cząstkami w komórce iw jednej z sąsiednich komórek. Cela ma 26 sąsiadów: 6 ma wspólną twarz, 12 ma wspólną krawędź i 8 ma wspólny kąt. Ze wszystkich obliczonych odległości parami tylko około 16% będzie w rzeczywistości mniejszych lub równych r do . Innymi słowy, 84% wszystkich obliczeń odległości parami jest fałszywych.
sposobów przezwyciężenia tej nieefektywności jest podzielenie domeny na komórki o długości krawędzi . Interakcje parami są wtedy obliczane nie tylko między komórkami, ale między wszystkimi komórkami w obrębie siebie (po raz pierwszy zasugerowane i zaimplementowane oraz przeanalizowane w i ) To podejście można doprowadzić do granicy, w której każda komórka zawiera co najwyżej jedną pojedynczą cząstkę, zmniejszając w ten sposób liczbę fałszywych ocen odległości parami do zera. Ten wzrost wydajności jest jednak szybko równoważony przez liczbę komórek, które należy sprawdzić pod kątem każdej interakcji z komórką, do , na przykład w trzech wymiarach, rośnie sześciennie z odwrotnością długości krawędzi komórki. ustawienie długości krawędzi na liczbę fałszywych ocen odległości do 63
Inne podejście zostało opisane i przetestowane w Gonnet, w którym cząstki są najpierw sortowane wzdłuż osi łączącej centra komórek. Takie podejście generuje tylko około 40% fałszywych obliczeń odległości parami, ale wiąże się z dodatkowymi kosztami wynikającymi z sortowania cząstek.
Zobacz też
- ^ Allen, poseł; DJ Tildesley (1987). Symulacja komputerowa płynów . Oksford: Clarendon Press.
- Bibliografia _ Ryż BM (1999). „Obliczenia bliskiego sąsiada przy użyciu zmodyfikowanej metody listy połączonej z komórką”. Komunikacja w dziedzinie fizyki komputerowej . 119 (2–3): 135. Bibcode : 1999CoPhC.119..135M . doi : 10.1016/S0010-4655(98)00203-3 .
- Bibliografia _ Wang, J.-S.; Liu, GR; Cheng, M (2004). „Ulepszony algorytm listy sąsiadów w symulacjach molekularnych z wykorzystaniem metody rozkładu komórek i sortowania danych”. Komunikacja w dziedzinie fizyki komputerowej . 161 (1–2): 27–35. arXiv : fizyka/0311055 . Bibcode : 2004CoPhC.161...27Y . doi : 10.1016/j.cpc.2004.04.004 . S2CID 7686860 .
- Bibliografia _ Hünenberger, PH (2004). „Szybki algorytm konstrukcji listy par do symulacji molekularnych w okresowych warunkach brzegowych”. Journal of Computational Chemistry . 25 (12): 1474–86. doi : 10.1002/jcc.20071 . PMID 15224391 . S2CID 10464744 .
- ^ Gonnet, Pedro (2007). „Prosty algorytm przyspieszający obliczanie interakcji niezwiązanych w symulacjach dynamiki molekularnej opartych na komórkach”. Journal of Computational Chemistry . 28 (2): 570–573. doi : 10.1002/jcc.20563 . PMID 17183605 . S2CID 31993082 .