
Les boucles itératives de stencil (ISL), ou calculs de stencil, constituent une classe de solutions de traitement numérique de données qui mettent à jour les éléments d'un tableau selon un motif fixe, appelé stencil . Elles sont fréquemment utilisées dans les simulations informatiques , notamment en dynamique des fluides numérique dans le cadre d'applications scientifiques et d'ingénierie. Parmi les autres exemples notables, citons la résolution d'équations aux dérivées partielles , le noyau de Jacobi , la méthode de Gauss-Seidel , le traitement d'images et les automates cellulaires . La structure régulière des tableaux distingue les techniques de stencil d'autres méthodes de modélisation telles que la méthode des éléments finis . La plupart des codes aux différences finies fonctionnant sur des grilles régulières peuvent être formulés comme des ISL.
Définition
Les ISL effectuent une séquence de balayages (appelés pas de temps) sur un tableau donné. Il s'agit généralement d'une grille régulière à 2 ou 3 dimensions. Les éléments du tableau sont souvent appelés cellules. À chaque pas de temps, tous les éléments du tableau sont mis à jour. En utilisant les éléments voisins du tableau selon un motif fixe (le stencil), la nouvelle valeur de chaque cellule est calculée. Dans la plupart des cas, les valeurs limites restent inchangées, mais dans certains cas (par exemple, pour les codes LBM ), elles doivent également être ajustées pendant le calcul. Le stencil étant identique pour chaque élément, le schéma d'accès aux données est répété.
Plus formellement, nous pouvons définir les ISL comme un quintuplet
Puisque I est un intervalle d'entiers à k dimensions, le tableau aura toujours la topologie d'une grille régulière finie. Ce tableau est également appelé espace de simulation et chaque cellule est identifiée par son indice.
Leurs états sont donnés par la mise en correspondance du tuple
C'est tout ce dont nous avons besoin pour définir l'état du système pour les étapes temporelles suivantes.
Noter que
Cela peut s'avérer utile pour la mise en œuvre de conditions aux limites périodiques , ce qui simplifie certains modèles physiques.
Exemple : Itération de Jacobi en 2D

Pour illustrer la définition formelle, examinons comment définir une itération de Jacobi bidimensionnelle . La fonction de mise à jour calcule la moyenne arithmétique des quatre voisins d'une cellule. Dans ce cas, la solution initiale est égale à 0. Les bornes gauche et droite sont fixées à 1, tandis que les bornes supérieure et inférieure sont fixées à 0. Après un nombre suffisant d'itérations, le système converge vers un point en forme de selle.






Pochoirs
La forme du voisinage utilisé lors des mises à jour dépend de l'application. Les modèles les plus courants sont les versions 2D et 3D des voisinages de von Neumann et de Moore . L'exemple ci-dessus utilise un modèle 2D de von Neumann, tandis que les codes LBM utilisent généralement sa variante 3D. Le Jeu de la Vie de Conway utilise le voisinage 2D de Moore. D'autres modèles existent également , comme un modèle à 25 points pour la propagation des ondes sismiques