Bucles de plantilla iterativos


Los bucles de plantilla iterativos (ISL) son una clase de solución de procesamiento de datos numéricos [1] que actualizan los elementos de la matriz de acuerdo con un patrón fijo, llamado plantilla. [2] Se encuentran más comúnmente en simulaciones por computadora , por ejemplo, para dinámica de fluidos computacional en el contexto de aplicaciones científicas y de ingeniería. Otros ejemplos notables incluyen la resolución de ecuaciones diferenciales parciales , [1] el núcleo de Jacobi , el método de Gauss-Seidel , [2] el procesamiento de imágenes [1] y los autómatas celulares . [3] La estructura regular de las matrices diferencia las técnicas de plantilla de otros métodos de modelado, como el método de elementos finitos . La mayoría de los códigos de diferencias finitas que operan en cuadrículas regulares se pueden formular como ISL.

Los ISL realizan una secuencia de barridos (llamados pasos de tiempo) a través de una matriz dada. [2] Por lo general, se trata de una cuadrícula regular de 2 o 3 dimensiones. [3] Los elementos de las matrices a menudo se denominan celdas. En cada paso de tiempo, todos los elementos de la matriz se actualizan. [2] Usando elementos de matriz vecinos en un patrón fijo (la plantilla), se calcula el nuevo valor de cada celda. En la mayoría de los casos, los valores límite no se modifican, pero en algunos casos (p. ej . , códigos LBM ) también es necesario ajustarlos durante el cálculo. Dado que la plantilla es la misma para cada elemento, el patrón de acceso a los datos se repite. [4]

Más formalmente, podemos definir los ISL como una tupla de 5 con el siguiente significado: [3]

Dado que I es un intervalo entero de dimensión k , la matriz siempre tendrá la topología de una cuadrícula regular finita. La matriz también se denomina espacio de simulación y las celdas individuales se identifican por su índice . La plantilla es un conjunto ordenado de coordenadas relativas. Ahora podemos obtener para cada celda la tupla de sus índices vecinos

Sus estados se dan asignando la tupla a la correspondiente tupla de estados , donde se define de la siguiente manera:

Esto es todo lo que necesitamos para definir el estado del sistema para los siguientes pasos de tiempo con :


La forma de una plantilla de estilo von Neumann 3D de 7 puntos.
Dependencias de datos de una celda seleccionada en la matriz 2D.
S_200
S_400
S_600
S_800
S_1000
Iteración 2D de Jacobi en una matriz
plantilla de 9 puntos
Plantilla 2D de 9 puntos
plantilla de 5 puntos
Plantilla 2D de 5 puntos
plantilla de 6 puntos
Plantilla 3D de 7 puntos
plantilla de 25 puntos
Plantilla 3D de 25 puntos
Una selección de plantillas utilizadas en diversas aplicaciones científicas.