Simetría en programa para sumatoria de ewald

La fórmula para la suma de Ewald tal como se da en Allen y Tildesley:

tu = tu ( r ) + tu ( k ) + tu ( b C ) + tu s mi yo F

donde la contribución del potencial en el espacio k viene dada por

tu ( k ) = 1 π L 3 k 0 4 π 2 k 2 mi k 2 4 k 2 | S ( k ) | 2 S ( k ) = i = 1 norte z i mi i k . r i

Ahora en todas las subrutinas incluyendo la dada por Allen y Tildesley, la sumatoria sobre k se hace de tal manera que k X tiene una simetría especial. Inicialmente eligen k y y k z ser de norte a norte dónde norte Z + . Pero eligen en k X ser de 0 a norte y luego multiplique la contribución por 2. ¿Cuál es la razón detrás de esto? Si altera esto, y elige k X también de la misma manera que k y y k z ¿cambiará el cálculo?

Respuestas (1)

Este es un truco que se usa para ahorrar tiempo al hacer el cálculo real al aprovechar la simetría en el problema.

Tenga en cuenta que k 2 es una función par (invariante bajo k k ) y la norma de la transformada de Fourier de la función reticular | S ( k ) | 2 es también una función par ya que

S ( k ) = i q i mi i k r i | S ( k ) | 2 = i , j 2 q i q j porque ( k ( r i r j ) )

y porque ( X ) = porque ( X ) entonces todo el sumando es par. Por lo tanto, podemos reemplazar la suma sobre k X [ norte , norte ] en k 0 gramo ( k ) | S ( k ) | 2 por una suma superior k X > 0 sumando un factor de 2 . Vea el ejemplo a continuación para ver cómo funciona esto.

Tenga en cuenta que no podemos aplicar este truco a todas las coordenadas (es decir, considere sólo k X , k y , k z 0 y multiplicar por 8 ) ya que los vectores con dos números negativos como ( 2 , 3 , 5 ) más la simetría k k no es suficiente para cubrir todos los puntos de cuadrícula que queremos sumar. Por eso solo lo aplican a una de las coordenadas k X , sin embargo, puedes hacer lo mismo para k y o k z en lugar de k X y obtener el mismo resultado.

También es libre de considerar todos k X [ norte , norte ] (y no multiplicar por 2 ) si lo desea y esto le dará el mismo resultado, pero tomará el doble de tiempo para calcular.


Un ejemplo sencillo. Considerar norte = 1 entonces k X , k y , k z { 1 , 1 } . La suma sobre el ( norte + 1 ) 3 = 8 puntos de cuadrícula es

k X , k y , k z { 1 , 1 } F ( k ) = F ( 1 , 1 , 1 ) + F ( 1 , 1 , 1 ) + F ( 1 , 1 , 1 ) + F ( 1 , 1 , 1 ) + F ( 1 , 1 , 1 ) + F ( 1 , 1 , 1 ) + F ( 1 , 1 , 1 ) + F ( 1 , 1 , 1 )

Desde F incluso, F ( k ) = F ( k ) , vemos que los dos términos en cada línea de arriba son iguales por lo que

k X , k y , k z { 1 , 1 } F ( k ) = 2 F ( 1 , 1 , 1 ) + 2 F ( 1 , 1 , 1 ) + 2 F ( 1 , 1 , 1 ) + 2 F ( 1 , 1 , 1 ) = 2 k z , k y , k z { 1 , 1 } ,     k X > 0 F ( k )

¿Puede explicar más claramente "(-2, -3, 5) no se puede mapear bajo k->-k..."? Gracias.
@Cokes Lo que quiero decir es que todos los puntos enteros ( k X , k y , k z ) [ norte , norte ] 3 no puede cubrirse simplemente considerando k X , k y , k z 0 + usando la simetría k k . Esto solo cubrirá 1 / 4 de todos los puntos. Un ejemplo: si sólo consideramos k X , k y , k z 0 en la suma entonces el punto ( 1 , 1 , 1 ) quedará fuera de la suma. Por la simetría este punto corresponde a ( 1 , 1 , 1 ) que no está en k X , k y , k z 0 . Agregué un ejemplo y reformulé la declaración.