Любое численное моделирование физических процессов начинается с одного и того же шага: расчетную область нужно разбить на конечное множество ячеек. Этот шаг называется дискретизацией, а сама система ячеек — вычислительной сеткой.
В вычислительной математике давно сформировалась самостоятельная дисциплина — генерация сеток, и исследователи непрерывно ищут способы построить сетку, которая была бы одновременно точной, экономичной и удобной для реализации алгоритмов.
Среди сеточных методов выделяют два класса сеток: структурированные и неструктурированные. В структурированных сетках каждый узел имеет фиксированное число соседей, и можно однозначно обратиться к любому узлу по паре (или тройке) целых индексов. Это значительно упрощает реализацию и снижает требования к вычислительным ресурсам. Неструктурированные сетки, напротив, могут покрывать области произвольной формы, но требуют сложных алгоритмов генерации и программирования.
Цилиндрические и круговые области встречаются в прикладных задачах повсеместно. Подземные трубопроводы, скважины, опоры мостов, а также стволы горных выработок и тоннелей — все они имеют цилиндрическую геометрию. Именно в таких задачах возникает давняя проблема: как наложить на круглое сечение структурированную сетку?
Ученые из МФТИ детально исследовали два разных подхода для решения этой задачи. Работа опубликована в журнале Mathematical Models and Computer Simulations и поддержана Российским научным фондом, грант №25-71-10027.
Первая стратегия — блочно-структурированная сетка. Ее суть состоит в том, что исходная область разбивается на несколько простых блоков, в каждом из которых строится своя регулярная структурированная сетка.
Внутри квадрата генерируется равномерная прямоугольная сетка. Четыре «лепестка» — области между квадратом и окружностью — делятся на верхний, нижний, левый и правый сегменты, в каждом из которых строится структурированная криволинейная сетка. Получается пять блоков, которые состыковываются друг с другом вдоль общих границ. Блоки не перекрываются. В трехмерном случае — для цилиндра — двумерная сетка для круга «вытягивается» вдоль оси, превращая квадрат в прямоугольный параллелепипед, а боковые блоки — в криволинейные призматические слои.
Стыковка блоков требует особой аккуратности. Поскольку сетки в разных блоках ориентированы по-разному, узлы на общих границах в общем случае не совпадают. Для вычисления значений из соседних блоков применяется интерполяция.
Вторая стратегия — химерная сетка. В отличие от блочно-структурированной сетки, здесь отдельные компоненты сетки не стыкуются по границам, а перекрываются в промежуточной зоне. Для круга строятся два перекрывающихся компонента: центральная квадратная сетка и кольцевая сетка на периферии. Квадратная сетка в центре выбирается такого размера, чтобы ее крайние слои узлов попадали внутрь кольца, это обеспечивает зону перекрытия, необходимую для обмена данными. На а каждом временном шаге происходит синхронизация двух компонентов.
В трехмерном случае квадратная сетка превращается в параллелепипед, а кольцо — в цилиндрический слой, образуя вместе полноценную трехмерную химерную сетку.
Вычислительным инструментом в обоих случаях служил сеточно-характеристический метод с расщеплением по пространственным направлениям.
Для сравнения двух стратегий авторы поставили модельный эксперимент: в центре круга прикладывался точечный импульс, равномерно расставлялись 360 виртуальных приемников.
В физически изотропной среде цилиндрическая волна, расходящаяся от точечного источника, должна образовывать идеально круговой волновой фронт. Любое отклонение амплитуды или времени прихода волны от изотропного значения — это численная анизотропия, привносимая структурой сетки.
Оказалось, что по критерию численной анизотропии химерная сетка значительно превосходит блочно-структурированную: разброс амплитуды сигнала по углу на Х-сетке существенно меньше. Физически это объясняется тем, что в центральной части химерной сетки ячейки квадратные и ориентированы вдоль осей координат, а в кольцевой зоне — вдоль окружности, следуя форме границы. В итоге каждое направление распространения волны обслуживается ячейками примерно одинакового вида.
Однако у химерной сетки есть своя цена. Время счета на ней на 15–20% больше, чем на блочно-структурированной сетке при одинаковом шаге h.
Николай Игоревич Хохлов, ведущий научный сотрудник лаборатории прикладной вычислительной геофизики МФТИ, прокомментировал:
«Мы хотели дать практикующим вычислителям простую и ясную инструкцию: если нужна точность — берите химерную сетку, если нужна скорость — берите блочно-структурированную. Вопрос о том, какой тип сеток предпочтителен для цилиндра, часто стоит при построении расчетной геометрии. Мы использовали один и тот же алгоритм на одной и той же физической постановке и получили надежные количественные данные».
Авторы планируют в дальнейшем исследовать другие типы сеток для цилиндрической геометрии, в частности неструктурированные сетки и адаптивные подходы, а также проверить обе сетки в сочетании с другими численными методами. Помимо круговых и цилиндрических доменов, аналогичный анализ необходимо провести для конических и сферических геометрий, где проблема полюсной особенности стоит еще острее.
