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 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 cortese calculan de la siguiente manera:
- para todos los pares de células vecinashacer
- a pesar dehacer
- a pesar dehacer
- sientonces
- Calcular la interacción entrey.
- fin si
- fin para
- a pesar dehacer
- fin para
- a pesar dehacer
- fin para
Dado que la longitud de la célula es al menosen todas las dimensiones, no hay partículas dentroSe puede pasar por alto la presencia del otro.
Dado un simulacro conpartículas con una densidad de partículas homogénea, el número de célulases proporcional ay inversamente proporcional al radio de corte (es decir, siA medida que aumenta, también lo hace el número de células. El número promedio de partículas por célulaPor lo tanto, no depende del número total de partículas. El costo de interactuar dos células es enEl 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.El costo total de encontrar todas las distancias por pares dentro de un límite dado es de, lo cual es significativamente mejor que calcular eldistancias 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

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.Este vector, que puede almacenarse o calcularse para cada par de celdas, 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ículasyse calcula entonces como
- .
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 vectornecesita ser calculado/almacenado).
mejoras
A pesar de reducir el costo computacional de encontrar todos los pares dentro de una distancia de corte dada deaEl 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.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 aEn 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 queLas interacciones por pares no solo se calculan entre células vecinas, sino entre todas las células dentro dede 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.que deben inspeccionarse para cada interacción con una célula, 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 enSin 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
- ↑ Allen, MP; DJ Tildesley (1987). Simulación por computadora de líquidos . Oxford: Clarendon Press.
- ↑ 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 .
- ↑ 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 .
- ↑ 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 .
- ↑ 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 .
- Dinámica molecular
- Química computacional
- Física molecular
- Física computacional
- Ecuaciones diferenciales numéricas