МАСТЕР-КЛАСС Создание сетки большой размерности с использованием ограниченных вычислительных ресурсов Авторы: Алексей Хитрых, МАТИ-РГТУ им. К. Э. Циолковского, Денис Хитрых, КАДФЕМ Си-Ай-Эс П роблема построения сеток большой размерности с минимальными трудозатратами является достаточно актуальной для любого инженера, занимающегося решением ресурсоемких задач вычислительной гидродинамики. При этом часто инженер располагает ограниченными вычислительными ресурсами, например, малобюджетной рабочей станцией из линейки начального уровня (не более 16 Гб ОЗУ; 4 ядра). Сразу же возникает вопрос о размерности сетки, которую можно сгенерировать, располагая такими ресурсами. Введем следующую классификацию: будем считать, что сетки до 1 млн. расчетных ячеек — это сетки экстра малой размерности (XS); до 10 млн. ячеек — малой размерности (S); от 10 до 30 млн. ячеек — сетки средней размерности (M); от 30 до 100 млн. ячеек — большой размерности (L); свыше 100 млн. ячеек — сетки экстра большой размерности (XL). Можно использовать и другую классификацию, например, M и L-сетки часто объединяют в одну группу и называют просто Medium-сетками, а ХL-сетки относят к категории Fineсеток и их размерность начинается от 100 млн. ячеек. Следует отметить, что такая классификация появилась отно- 44 ANSYS ADVANTAGE. Русская редакция сительно недавно, так как еще 7-8 лет назад сетки размерностью свыше 10 млн. ячеек принято было считать большими сетками. Как правило, сетки размерностью свыше 30 млн. ячеек используются в нестационарных аэродинамических расчетах, при расчете сложных течений (на основе моделей турбулентности URANS, DES и LES), при моделировании течения в проточной части многоступенчатых лопаточных машин (с нестационарными интерфейсами ротор-статор) и в других подобных задачах. Существует несколько коммерческих сеточных препроцессоров (условно-бесплатные и исследовательские пакеты не рассматриваются), которые позволяют генерировать сетки большой размерности в полуавтоматическом режиме при ограниченных вычислительных ресурсах. По топологии такие сетки являются блочно-структурированными (многоблочными). Наиболее распространенными сеточными препроцессорами являются ANSYS ICEM CFD, Gridgen и Altair HyperMesh. В нашем исследовании использовался сеточный препроцессор ANSYS ICEM CFD компании ANSYS, Inc. Следует отметить, что для экономии вычислительных ресурсов все вычисления выполнялись в пакетном 20'2014 режиме, т. е. без загрузки графической оболочки ICEM CFD. В качестве тестового объекта была выбрана известная модель-прототип NASA Trap Wing (самолётная конфигурация «крыло+фюзеляж»), которая использовалась в первой исследовательской программе AIAA High Lift Prediction Workshop (тестирование различных моделей турбулентности при больших углах атаки и отрывных течениях). Рис. 1. Тестовая аэродинамическая конфигурация «крыло+фюзеляж» 1 4 2 3 Рис. 2. Блочная топология для тестовой модели: 1-3 — О-сетка вокруг планера; 2 — структура блоков в зазоре между предкрылком и крылом (О-сетки еще нет); 4 — конечная структура блоков Для построения и редактирования базовой блочной топологии было потрачено более 40 человеко-часов. Исходная геометрия была импортирована в ANSYS ICEM CFD с использованием формата CGNS. На рис. 2 показаны основные этапы построения блочной топологии для расчетной модели. Суммарное количество блоков превышает 1000. Автоматизировать процедуру построения нескольких расчетных сеток c разной размерностью в ICEM CFD достаточно просто. Можно использовать следующий алгоритм: сначала создается блочная структура для моделируемого объекта. Для всех расчетных вариантов она будет иметь идентичную топологию. Осн¬¬овные отличия между сетками будут заключаться в количестве ячеек в пределах пограничного слоя (O-grid сетка вокруг планера) и в высоте первой ячейки у стенки (параметр y+). Поэтому в управляющем скрипте (rpl-файле) обязательно должны присутствовать строчки (см. рис. 3), задающие количество узлов (b) на ребре О-grid блока, высоту первой ячейки (с) и закон изменения высоты ячеек по длине ребра (d): Краткое описание конфигурации рабочей станции: ОС Windows 7 (64bit); ОЗУ 16 Гб; процессор Intel Core i7-2600 (3,4 ГГц). Тестировалась версия ANSYS 15.0. www.ansyssolutions.ru Рис. 3. Расстояние до первого слоя узлов составляет 1e-04 м; количество слоев в пределах ПС — 49; толщина последующих слоёв увеличивается с коэффициентом геометрической прогрессии 1.3 В заключение приведем некоторые результаты выполненных тестов. Суммарное время генерации расчетной сетки размерностью 52 млн. ячеек составило 42 мин. Использовалось только одно ядро процессора. Отметим, что приблизительно 90% времени занимают два процесса: процедура конвертации сетки из формата ICEM CFD в формат решателя ANSYS Fluent (или ANSYS CFX) и процесс записи (сохранения) файла с сеткой на жесткий диск. Что касается самого процесса декомпозиции расчетной области, то для сетки размерностью 10 млн. ячеек время разбиения составляет менее 2 мин., а для сетки 100 млн. ячеек — около 3 мин. Таким образом, процессы конвертации–записи являются лимитирующими по времени процессами. Пиковое значение использованной оперативной памяти составило 13,9 Гб (на этапе сохранения расчетной сетки), т. е. для одной гексагональной ячейки в нашем случае потребовалось прибли- зительно 290 байт. На это значение и следует ориентироваться инженерурасчетчику при оценке необходимых ресурсов для генерации сетки большой размерности. Следовательно, располагая 16 Гб, можно сгенерировать и сохранить структурированную сетку размерностью не более 55-60 млн. ячеек. Непосредственно при декомпозиции расчетной области на каждую гексагональную ячейку выделяется от 65 до 70 байт памяти в зависимости от топологии геометрии. При параллельной декомпозиции расчетной области в пакетном режиме (использовалось до 8 ядер) существенного ускорения процесса разбиения не происходит — загрузка ядер не превышает 6-7%, так как основные операции выполняются в последовательном режиме. Поэтому при наращивании мощности расчетной станции более целесообразно увеличивать объем оперативной памяти, чем увеличивать количество вычислительных ядер. ANSYS ADVANTAGE 45