Михаил Плыкин, обозреватель журнала «ANSYS Solutions. Русская редакция»
Этой статьей мы открываем серию публикаций, связанных с вопросами построения расчетных сеток. И начнем мы с универсального сеточного генератора ICEM CFD. С его помощью можно создавать расчетную сетку для задач прочности, гидродинамики и электромагнетизма.
В ICEM CFD доступны любые типы элементов: гексаэдры, тетраэдры, призмы и пирамиды. Реализован экспорт сетки в большинство известных решателей.
Для начала рассмотрим структуру рабочей директории проекта ICEM.
Вся информация о проекте хранится в нескольких файлах: файл с расширением *.tin содержит исходную геометрию модели, файл *.uns — неструктурированную сетку, файл *.blk — блочную структуру (если она имеется), файл *.prj — общие настройки проекта.
В структуре имеются также файлы с расширениями *.fbc, *.par, *.rpl, *.jrf. Их содержание будет рассмотрено в тех местах, где они используются. Рекомендуется для каждого нового проекта создавать отдельную директорию.
Все элементы управления в интерфейсе сгруппированы по областям применения: геометрия, сетка, блочная структура, редактирование сетки, постпроцессинг, экспорт.
Также некоторые дополнительные меню доступны при загрузке в режиме AI*Environment.
Сменить режим интерфейса можно командой Setting-Product.
Порядок создания сетки на основе геометрической (CAD) модели
1. При наличии интерфейса к CAD-систе- ме вы можете напрямую импортировать геометрическую модель в ICEM CFD. Например, если у вас установлен Unigraphics, то в его основном меню появляется дополнительный раздел ICEMCFD. Для создания файла *.tin достаточно применить команду: ICEMCFD^Write Tetin File. Далее созданный файл можно прочесть, используя в ICEM CFD команду: File^Geometry^Open Geometry.
В общем случае импорт геометрических моделей возможен посредством файлов наиболее распространенных форматов: IGES, DWG, Acis и других. Для более точной передачи геометрии рекомендуется применять модели, созданные на основе ядра Parasolid.
Отметим, что в качестве геометрии может быть использована поверхностная сетка в таких форматах, как Nastran, Patran.
2. После импорта геометрии необходимо проанализировать ее состав и целостность. Геометрия в ICEM представляется в виде набора точек, линий и поверхностей. Понятие твердого тела (solid) не используется. По умолчанию после импорта геометрии образуется набор поверхностей. Дополнительно для корректного построения сетки необходимы также линии и точки в проблемных местах.
Для генерации сетки ICEM CFD использует метод Octree, который работает с тремя типами геометрических объектов: точкой, линией и поверхностью. В каждую точку помещается узел элемента, на линии создается как минимум два узла (на концах), на поверхности — три. Такой подход позволяет ICEM генерировать сетку при серьезных дефектах исходной геометрии (нестыковки поверхностей, «дырки» и пр.).
Для удаления ненужных или мелких элементов геометрии следует использовать операцию Defeaturing. Рассмотрим ее работу на конкретном примере. Пусть на валу имеется относительно небольшой геометрический объект — квадратная бобышка.
Если мы выделим все существующие линии и точки на его гранях и зададим на них соответствующие размеры элементов, то получим сетку, показанную ниже.Если же просто указать на всех поверхностях один общий размер элемента (Global size), то данный геометрический объект «сольется» с основной поверхностью, то есть произойдет defeaturing.Для автоматического извлечения кривых и точек из поверхностей, необходимо выбрать команду: Geometry^Repair^Geometry^Build topology. На основе углового допуска Feature angle и общей точности Tolerance, ICEM определяет грани в геометрии и выделяет кривые и точки.
3. Следующий шаг — присвоение поверхностям однозначных имен для задания граничных условий. Для указания имени необходимо выбрать из дерева модели следующую команду: Models^Parts^Create Part.
Затем мышью выделяем нужный нам геометрический объект (это может быть линия либо поверхность).
4. Далее необходимо указать положение так называемой материальной точки Material Point. Она служит для определения области, в которой будет создана объемная сетка.
Если модель состоит из нескольких компонентов, то в каждом из них должна быть создана Material Point.
5. При создании свободной сетки по умолчанию используется размер, установленный командой Mesh^Set Global Mesh Size.
Здесь Max element — максимальный размер элемента, Scale factor — масштабный коэффициент (его удобно использовать при общем масштабировании размеров элементов). Опция Display служит для отображения выбранного размера элемента на экране.
6. Собственно построение расчетной сетки: Mesh^Mesh Tet.
Прежде всего, следует выбрать метод создания сетки:
- FromGeometry— на основе геометрии;
- FromGeometryandSurfaceMesh— на основе геометрии и частично поверхностной сетки;
- FromSurfaceMesh— на основе поверхностной сетки.
Закладка Smooth mesh позволяет после завершения процесса генерации сетки произвести ее сглаживание по критерию Quality.
Запуск генерации сетки производится нажатием кнопки Apply. Во время создания сетки на экране появляется дополнительное окно, в котором отображаются выполняемая программой в данный момент операция, а также количество элементов модели.
7. Заключительный этап создания сетки — оптимизация расчетной модели по различным критериям. Команда оптимизации вызывается из экранного меню следующим способом:
Edit Mesh^Smooth Elements Globally.
После этого выбираем нужный критерий, например Aspect, Volume или Min angle, указываем количество итераций и значение критерия (Up to quality).
Далее на экране в правом нижнем углу появляется панель с диаграммой результатов процесса оптимизации.
Левой кнопкой мыши выбираем нужный столбец, а правой подтверждаем визуализацию. В результате модель имеет такой вид.
8. На этом создание сетки можно считать завершенным. Далее полученную сетку мы можем экспортировать в нужный нам решатель (ICEM предлагает на выбор около 100 решателей). В меню Output выбираем тип решателя Select Solve (в нашем случае — CFX-5).
Затем используем команду экранного меню Write input. Указываем имя сохраняемого файла (Output file) и при необходимости масштабируем сетку (Scaling).