Итерационные петли трафарета - Iterative Stencil Loops
Итерационные петли трафарета (ISL) - это класс решений для обработки численных данных.[1]какое обновление элементы массива по некоторому фиксированному шаблону, называемому трафаретом.[2] Чаще всего они встречаются в компьютерное моделирование, например для вычислительная гидродинамика в контексте научных и инженерных приложений. Другие известные примеры включают решение уравнения в частных производных,[1] то Якоби ядро, Метод Гаусса – Зейделя,[2] обработка изображений[1] и клеточные автоматы.[3] Регулярная структура массивов отличает методы трафарета от других методов моделирования, таких как Метод конечных элементов. Наиболее конечно-разностные коды которые работают в обычных сетях, могут быть сформулированы как ISL.
Определение
ISL выполняют последовательность разверток (называемых временными шагами) по заданному массиву.[2] Обычно это 2- или 3-мерная регулярная сетка.[3] Элементы массивов часто называют ячейками. На каждом временном шаге обновляются все элементы массива.[2] Используя соседние элементы массива в фиксированном шаблоне (трафарете), вычисляется новое значение каждой ячейки. В большинстве случаев граничные значения остаются неизменными, но в некоторых случаях (например, LBM коды ) их также необходимо отрегулировать во время вычислений. Поскольку шаблон для каждого элемента одинаков, шаблон доступа к данным повторяется.[4]
Более формально мы можем определить ISL как 5-кратный со следующим значением:[3]
- - индексный набор. Он определяет топологию массива.
- - это (не обязательно конечный) набор состояний, одно из которых каждая ячейка может принять на любом заданном временном шаге.
- определяет начальное состояние системы в момент времени 0.
- является самим трафаретом и описывает фактическую форму окрестности. Есть элементы в трафарете.
- - это функция перехода, которая используется для определения нового состояния ячейки в зависимости от ее соседей.
поскольку я это k-мерный целочисленный интервал, массив всегда будет иметь топологию конечной регулярной сетки. Массив также называется пространством моделирования, и отдельные ячейки идентифицируются своим индексом. . Трафарет представляет собой упорядоченный набор относительные координаты. Теперь мы можем получить для каждой ячейки набор индексов его соседей
Их состояния задаются отображением кортежа в соответствующий набор состояний , где определяется следующим образом:
Это все, что нам нужно для определения состояния системы для следующих временных шагов. с участием :
Обратите внимание, что определяется на и не только на так как граничные условия также должны быть установлены. Иногда элементы может быть определен векторным сложением по модулю размерности пространства моделирования для реализации тороидальных топологий:
Это может быть полезно для реализации периодические граничные условия, что упрощает некоторые физические модели.
Пример: итерация Якоби в 2D
Чтобы проиллюстрировать формальное определение, мы посмотрим, как двумерное Якоби итерацию можно определить. Функция обновления вычисляет среднее арифметическое четырех соседей ячейки. В этом случае мы начинаем с начальным решением 0. Левая и правая границы зафиксированы на 1, а верхняя и нижняя границы установлены на 0. После достаточного числа итераций система сходится к седловидной форме.