Articulo de referencia

Listas de celdas

Las listas de celdas (también conocidas como listas enlazadas de celdas ) son una estructura de datos utilizada en simulaciones de dinámica molecular para encontrar todos los pa...

Las listas de celdas (también conocidas como listas enlazadas de celdas ) son una estructura de datos utilizada en simulaciones de dinámica molecular para encontrar todos los pares de átomos que se encuentran dentro de una distancia de corte determinada. Estos pares son necesarios para calcular las interacciones no enlazadas de corto alcance en un sistema, como las fuerzas de Van der Waals o la parte de corto alcance de la interacción electrostática al utilizar la suma de Ewald .

Algoritmo

Las interacciones por pares para una sola partícula se pueden calcular a) calculando la interacción con todas las demás partículas o b) dividiendo el dominio en celdas con una longitud de arista de al menos el radio de corte del potencial de interacción y calculando la interacción entre la partícula y todas las partículas en las mismas (rojas) y en las adyacentes (verdes) celdas.

Las listas de celdas funcionan subdividiendo el dominio de simulación en celdas con una longitud de arista mayor o igual al radio de corte de la interacción que se va a calcular. Las partículas se clasifican en estas celdas y se calculan las interacciones entre partículas que se encuentran en la misma celda o en celdas vecinas.

En su forma más básica, las interacciones no enlazadas para una distancia de corterdo{\displaystyle r_{c}}se calculan de la siguiente manera:

para todos los pares de células vecinas(doα,doβ){\displaystyle (C_{\alpha },C_{\beta })}hacer
a pesar depagαdoα{\displaystyle p_{\alpha }\in C_{\alpha }}hacer
a pesar depagβdoβ{\displaystyle p_{\beta }\in C_{\beta }}hacer
r2=incógnita[pagα]incógnita[pagβ]22{\displaystyle r^{2}=\|\mathbf {x} [p_{\alpha }]-\mathbf {x} [p_{\beta }]\|_{2}^{2}}
sir2rdo2{\displaystyle r^{2}\leq r_{c}^{2}}entonces
Calcular la interacción entrepagα{\displaystyle p_{\alpha }}ypagβ{\displaystyle p_{\beta }}.
fin si
fin para
fin para
fin para

Dado que la longitud de la célula es al menosrdo{\displaystyle r_{c}}en todas las dimensiones, no hay partículas dentrordo{\displaystyle r_{c}}Se puede pasar por alto la presencia del otro.

Dado un simulacro connorte{\displaystyle N}partículas con una densidad de partículas homogénea, el número de célulasmetro{\displaystyle m}es proporcional anorte{\displaystyle N}y inversamente proporcional al radio de corte (es decir, sinorte{\displaystyle N}A medida que aumenta, también lo hace el número de células. El número promedio de partículas por célulado¯=norte/metro{\displaystyle {\overline {c}}=N/m}Por lo tanto, no depende del número total de partículas. El costo de interactuar dos células es enO(do¯2){\displaystyle {\mathcal {O}}({\overline {c}}^{2})}El número de pares de células es proporcional al número de células, que a su vez es proporcional al número de partículas.norte{\displaystyle N}El costo total de encontrar todas las distancias por pares dentro de un límite dado es deO(nortedo)O(norte){\displaystyle {\mathcal {O}}(Nc)\in {\mathcal {O}}(N)}, lo cual es significativamente mejor que calcular elO(norte2){\displaystyle {\mathcal {O}}(N^{2})}distancias por pares ingenuamente.

Condiciones de contorno periódicas

En la mayoría de las simulaciones, se utilizan condiciones de contorno periódicas para evitar imponer condiciones de contorno artificiales. Mediante listas de celdas, estos límites se pueden implementar de dos maneras.

células fantasma

Las condiciones de contorno periódicas se pueden simular envolviendo la caja de simulación en una capa adicional de celdas (sombreadas en naranja) que contienen copias periódicas de las celdas de contorno (partículas azules).

En el método de celdas fantasma, la caja de simulación se envuelve en una capa adicional de celdas. Estas celdas contienen copias, envueltas periódicamente, de las celdas de simulación correspondientes dentro del dominio.

Aunque los datos —y normalmente también el coste computacional— se duplican para las interacciones que superan el límite periódico, este enfoque tiene la ventaja de ser sencillo de implementar y muy fácil de paralelizar, ya que las células solo interactuarán con sus vecinas geográficas.

Envoltura periódica

En lugar de crear células fantasma, los pares de células que interactúan sobre un límite periódico también pueden utilizar un vector de corrección periódica.qαβ{\displaystyle \mathbf {q} _ {\alpha \beta }}Este vector, que puede almacenarse o calcularse para cada par de celdas(doα,doβ){\displaystyle (C_{\alpha },C_{\beta })}, contiene la corrección que debe aplicarse para "envolver" una celda alrededor del dominio para que sea vecina de la otra. La distancia por pares entre dos partículaspagαdoα{\displaystyle p_{\alpha }\in C_{\alpha }}ypagβdoβ{\displaystyle p_{\beta }\in C_{\beta }}se calcula entonces como

r2=incógnita[pagα]incógnita[pagβ]qαβ22{\displaystyle r^{2}=\|\mathbf {x} [p_{\alpha }]-\mathbf {x} [p_{\beta }]-\mathbf {q} _{\alpha \beta }\|_{2}^{2}}.

Este enfoque, aunque más eficiente que el uso de celdas fantasma, es menos sencillo de implementar (los pares de celdas deben identificarse sobre los límites periódicos y el vectorqαβ{\displaystyle \mathbf {q} _ {\alpha \beta }}necesita ser calculado/almacenado).

mejoras

A pesar de reducir el costo computacional de encontrar todos los pares dentro de una distancia de corte dada deO(norte2){\displaystyle {\mathcal {O}}(N^{2})}aO(norte){\displaystyle {\mathcal {O}}(N)}El algoritmo de lista de celdas mencionado anteriormente todavía presenta algunas ineficiencias.

Consideremos una celda computacional en tres dimensiones con una longitud de arista igual al radio de corte.rdo{\displaystyle r_{c}}Se calcula la distancia por pares entre todas las partículas de la celda y de una de las celdas vecinas. La celda tiene 26 vecinos: 6 que comparten una cara común, 12 que comparten una arista común y 8 que comparten una esquina común. De todas las distancias por pares calculadas, solo alrededor del 16% serán en realidad menores o iguales ardo{\displaystyle r_{c}}En otras palabras, el 84% de todos los cálculos de distancia entre pares son erróneos.

Una forma de superar esta ineficiencia es dividir el dominio en celdas de longitud de arista menor querdo{\displaystyle r_{c}}Las interacciones por pares no solo se calculan entre células vecinas, sino entre todas las células dentro derdo{\displaystyle r_{c}}de cada uno (sugerido por primera vez en [ 1 ] e implementado y analizado en [ 2 ] [ 3 ] y [ 4 ] ). Este enfoque puede llevarse al límite en el que cada celda contiene como máximo una sola partícula, reduciendo así a cero el número de evaluaciones de distancia por pares espurias. Sin embargo, esta ganancia en eficiencia se ve rápidamente compensada por el número de celdas.doβ{\displaystyle C_{\beta }}que deben inspeccionarse para cada interacción con una céluladoα{\displaystyle C_{\alpha }}, que, por ejemplo en tres dimensiones, crece cúbicamente con el inverso de la longitud de la arista de la celda. Al establecer la longitud de la arista enrdo/2{\displaystyle r_{c}/2}Sin embargo, esto ya reduce el número de evaluaciones de distancia erróneas al 63%.

En Gonnet [ 5 ] se describe y prueba otro enfoque en el que las partículas se ordenan primero a lo largo del eje que conecta los centros de las células. Este enfoque genera solo alrededor del 40 % de cálculos de distancia por pares erróneos, pero conlleva un costo adicional debido al ordenamiento de las partículas.

Véase también

Referencias

  1. Allen, MP; DJ Tildesley (1987). Simulación por computadora de líquidos . Oxford: Clarendon Press.
  2. Mattson, W.; BM Rice (1999). "Cálculos de vecinos cercanos utilizando un método de lista enlazada de celdas modificado". Computer Physics Communications . 119 ( 2– 3): 135. Bibcode : 1999CoPhC.119..135M . doi : 10.1016/S0010-4655(98)00203-3 .
  3. Yao, Z.; Wang, J.-S.; Liu, G.-R.; Cheng, M (2004). "Algoritmo de lista de vecinos mejorado en simulaciones moleculares utilizando descomposición celular y método de clasificación de datos". Computer Physics Communications . 161 ( 1– 2): 27– 35. arXiv : physics/0311055 . Bibcode : 2004CoPhC.161...27Y . doi : 10.1016/j.cpc.2004.04.004 . S2CID 7686860 . 
  4. Heinz, TN; Hünenberger, PH (2004). "Un algoritmo rápido de construcción de listas de pares para simulaciones moleculares bajo condiciones de contorno periódicas". Journal of Computational Chemistry . 25 (12): 1474– 86. doi : 10.1002/jcc.20071 . PMID 15224391 . S2CID 10464744 .  
  5. Gonnet, Pedro (2007). "Un algoritmo simple para acelerar el cálculo de interacciones no enlazadas en simulaciones de dinámica molecular basadas en células". Journal of Computational Chemistry . 28 (2): 570– 573. doi : 10.1002/jcc.20563 . PMID 17183605. S2CID 31993082 .