Seznamy buněk - Cell lists
Seznamy buněk (někdy také označované jako seznamy propojených buněk) je datová struktura v molekulární dynamika simulace k vyhledání všech atomových párů v dané mezní vzdálenosti. Tyto páry jsou potřebné k výpočtu vazebných interakcí krátkého dosahu v systému, jako je například Van der Waalsovy síly nebo část krátkého dosahu elektrostatické interakce při použití Ewaldův součet.
Algoritmus
Seznamy buněk fungují tak, že se simulační doména rozdělí na buňky s délkou hrany větší nebo rovnou meznímu poloměru vypočítané interakce. Částice jsou tříděny do těchto buněk a jsou počítány interakce mezi částicemi ve stejných nebo sousedních buňkách.
Ve své nejzákladnější formě jsou nevázané interakce na mezní vzdálenost se počítají takto:
- pro všechny sousední buněčné páry dělat
- pro všechny dělat
- pro všechny dělat
- -li pak
- Vypočítejte interakci mezi a .
- skončit, pokud
- konec pro
- pro všechny dělat
- konec pro
- pro všechny dělat
- konec pro
Protože délka buňky je alespoň ve všech dimenzích, žádné částice uvnitř navzájem mohou chybět.
Vzhledem k simulaci s částice s homogenní hustotou částic, počet buněk je úměrný a nepřímo úměrné poloměru cut-off (tj. pokud se zvyšuje, tak se zvyšuje i počet buněk). Průměrný počet částic na buňku proto nezávisí na celkovém počtu částic. Náklady na interakci dvou buněk jsou v . Počet párů buněk je úměrný počtu buněk, který je opět úměrný počtu částic . Celkové náklady na nalezení všech párových vzdáleností v rámci dané mezní hodnoty jsou v , což je výrazně lepší než výpočet párové vzdálenosti naivně.
Periodické okrajové podmínky
Ve většině simulací periodické okrajové podmínky se používají, aby se zabránilo zavedení umělých okrajových podmínek. Pomocí seznamů buněk lze tyto hranice implementovat dvěma způsoby.
Buňky duchů
V přístupu buněk duchů je pole simulace zabaleno do další vrstvy buněk. Tyto buňky obsahují pravidelně zabalené kopie odpovídajících simulačních buněk uvnitř domény.
Přestože jsou data - a obvykle také výpočetní náklady - pro interakce přes periodické hranice zdvojnásobena, má tento přístup tu výhodu, že je přímý na implementaci a je velmi snadné jej paralelizovat, protože buňky budou interagovat pouze se svými geografickými sousedy.
Periodické balení
Místo vytváření buněk duchů mohou páry buněk, které interagují přes periodickou hranici, také použít vektor periodické korekce . Tento vektor, který lze uložit nebo vypočítat pro každý pár buněk , obsahuje opravu, kterou je třeba použít k "zabalení" jedné buňky kolem domény tak, aby sousedila s druhou. Párová vzdálenost mezi dvěma částicemi a se pak počítá jako
- .
Tento přístup, i když je účinnější než použití buněk duchů, je implementován méně přímočaře (páry buněk je třeba identifikovat přes periodické hranice a vektor je třeba vypočítat / uložit).
Vylepšení
I přes snížení výpočetních nákladů na nalezení všech párů v dané mezní vzdálenosti od na výše uvedený algoritmus seznamu buněk má stále některé neúčinnosti.
Vezměme si výpočetní buňku ve třech rozměrech s délkou hrany rovnou poloměru ořezu . Je vypočítána párová vzdálenost mezi všemi částicemi v buňce a v jedné ze sousedních buněk. Buňka má 26 sousedů: 6 sdílí společnou tvář, 12 sdílí společnou hranu a 8 sdílí společný roh. Ze všech vypočítaných párových vzdáleností bude pouze asi 16% ve skutečnosti menší nebo rovno . Jinými slovy, 84% všech párových výpočtů vzdálenosti je falešných.
Jedním ze způsobů, jak překonat tuto neúčinnost, je rozdělit doménu na buňky s délkou hrany menší než . Párové interakce se pak nepočítají jen mezi sousedními buňkami, ale také mezi všemi buňkami uvnitř navzájem (nejprve navrženo v [1] a implementováno a analyzováno v [2][3] a [4]). Tento přístup lze vzít na hranici, kde každá buňka obsahuje nanejvýš jednu jedinou částici, čímž se sníží počet rušivých vyhodnocení párových vzdáleností na nulu. Tento nárůst efektivity je však rychle kompenzován počtem buněk které je třeba kontrolovat při každé interakci s buňkou , který například ve třech rozměrech roste kubicky s inverzí délky hrany buňky. Nastavení délky hrany na však již snižuje počet falešných hodnocení vzdálenosti na 63%.
Další přístup je uveden a testován v Gonnetu,[5] ve kterém jsou částice nejprve tříděny podél osy spojující buněčná centra. Tento přístup generuje pouze asi 40% rušivých párových výpočtů vzdálenosti, přesto přináší další náklady v důsledku třídění částic.
Viz také
Reference
- ^ Allen, M. P .; D. J. Tildesley (1987). Počítačová simulace kapalin. Oxford: Clarendon Press.
- ^ Mattson, W .; B. M. Rice (1999). Msgstr "Výpočty blízkých sousedů pomocí upravené metody seznamu propojených buněk". Komunikace počítačové fyziky. 119 (2–3): 135. Bibcode:1999CoPhC.119..135M. doi:10.1016 / S0010-4655 (98) 00203-3.
- ^ Yao, Z .; Wang, J.-S .; Liu, G.-R .; Cheng, M (2004). "Vylepšený algoritmus seznamu sousedů v molekulárních simulacích pomocí metody buněčného rozkladu a třídění dat". Komunikace počítačové fyziky. 161: 27. arXiv:fyzika / 0311055. Bibcode:2004CoPhC.161 ... 27R. doi:10.1016 / j.cpc.2004.04.004.
- ^ Heinz, T. N .; Hünenberger, P. H. (2004). "Algoritmus rychlé konstrukce párových seznamů pro molekulární simulace za periodických okrajových podmínek". Journal of Computational Chemistry. 25 (12): 1474–86. doi:10.1002 / jcc.20071. PMID 15224391.
- ^ Gonnet, Pedro (2007). „Jednoduchý algoritmus pro zrychlení výpočtu nevázaných interakcí v buněčných simulacích molekulární dynamiky“. Journal of Computational Chemistry. 28 (2): 570–573. doi:10.1002 / jcc.20563. PMID 17183605.