среда, 3 июня 2009 г.

Принцип построения структурированной гексаэдрической сетки в ANSYS Icem CFD

В настоящее время пользователи программного обеспечения ANSYS часто задают вопрос: «Когда требуется использование структурированной гексаэдрической сетки?». Пользователи ANSYS знают, что подготовка полностью структурированной сетки сложнее и занимает, для сложных криволинейных моделей, в несколько раз больше времени по сравнению с неструктурированной сеткой. Поэтому возникает вполне закономерный вопрос: «Насколько обосновано тратить больше времени на построение структурированной гексаэдрической сетки, если можно создать неструктурированную?»

Пакет ANSYS имеет множество приложений практически для всех областей современной науки и техники. При этом следует учитывать, что различные физические задачи требую различные подходы при моделировании и при создании расчетной сетки. В рамках данной статьи рассмотрим некоторые особенности построения сетки для задач гидро- газодинамики в одном из лучших в мире инструменте для её создания – в ANSYS ICEM CFD. ANSYS ICEM CFD отлично подходит для создания сетки для CFD приложений ANSYS – CFX либо FLUENT, однако следует учитывать, что общую логику построения сетки можно переносить и для других приложений, в том числе и для не ANSYS’овских.

Для начала разберемся с логикой создания сетки заложенной в ANSYS ICEM CFD. В ANSYS ICEM CFD заложены две возможности по созданию сетки – неструктурированная сетка и структурированная блочная условно гексаэдрическая сетка. В рамках данной статьи мы рассматриваем возможность создания именно структурированной блочной гексаэдрической сетки. Методика создания неструктурированной сетки и особенности ее построения мы рассмотрим в последующих статьях. Здесь же хотелось только упомянуть, что в текущей версии ANSYS ICEM CFD существует несколько методов построения объемной и поверхностной неструктурированной сетки. При этом каждый метод имеет несколько алгоритмов построения сетки. Комбинирую различные методы и алгоритмы построения сеток (как поверхностных, так и объемных), пользователь имеет в своих руках широчайший инструментарий по созданию неструктурированных сеток – от полностью автоматического до ручного создания отдельных элементов. В завершении отметим, что для простой геометрии можно получить неструктурированную сетку, не уступающую по качеству структурированной. Поэтому, говоря о преимуществах структурированной гексаэдрической сетки, мы, прежде всего, имеем ввиду сетку большой размерности, построенную на сложной криволинейной геометрии.

Следует понимать, что для получения независящего от сетки решения (расчетные значения не изменяются при дальнейшем измельчении сетки), количество элементов и, следовательно, точек интегрирования решаемых уравнений, для структурированной гексаэдрической сетки будет меньше, чем для неструктурированной. То есть на гексаэдрической сетке решение, не зависящее от сетки, будет получено за меньшее время счета CPU. Кроме того, пользователи с ограниченными вычислительными возможностями CPU иногда не могут себе позволить отстроить сетку с большим количеством элементов. В этом случае, переход от неструктурированной сетки к структурированной гексаэдрической позволит снизить количество элементов сетки, оставив при этом неизменным характерный размер элементов.


1 – структурированная гексаэдрическая сетка; 2 – неструктурированная сетка

Рис.1 Получение независящего от сетки решения для структурированной и неструктурированной сетки, где Ф – функция характеризующая зависимость сходимости решения дифференциальных уравнений от количества элементов сетки N.

Однако следует понимать, что на построение структурированной сетки понадобиться затратить большое количество «человеческого» времени при снижении «машинного». Таким образом, становиться очевидным вывод: структурированную сетку следует строить в случаях, когда лимитирующим фактором для получения решения является продолжительность вычислений, зависящая от возможностей CPU, размера оперативной памяти, объема свободного пространства на жестком диске и т.д. Такая ситуация возникает при моделировании работы однотипных устройств с большим количеством элементов сетки, например оптимизация работы устройства, когда проводиться ряд расчетов различный модификаций без принципиального изменения топологии геометрии. В этом случае необходимо единожды затратить время на создание сетки и затем экономить время при каждом последующем расчете.

Если же необходимо провести разовое моделирование геометрически сложного объекта, и при этом нет ограничений по ресурсам CPU то лучшим решением будет создание неструктурированной сетки.

Ну что же, теперь, разобравшись когда нам необходимо воспользоваться тем или иным методом построения сетки, хотелось бы дать несколько советов по подготовке сеточной модели для последующего импорта в решатели ANSYS.

Для начала выясним – так почему же структурированная гексаэдрическая сетка в ANSYS ICEM CFD называется блочной? Дело в том, что для создания структурированной сетки исходную геометрию необходимо описать с помощью блоков – прямоугольников для двухмерного и параллелепипедов для трехмерного случая. Проиллюстрируем это на рисунке. В качестве примера возьмем геометрию, представленную в учебных примерах для ANSYS ICEM CFD (рис. 2.а), так, вероятно, читателю будет легче воспроизвести и понять действия, описанные в статье.

Рис. 2 Исходная геометрия (2.а) и блочная структура для нее (2.б)

Для построения гексаэдрической сетки мысленно представляем исходную геометрию (рис. 2.а) в виде блоков (рис. 2.б). Для создания блочной структуры в ANSYS ICEM CFD существует огромный инструментарий, использование которого значительно облегчает создание блочной структуры. Так, например, в данном случае (см. рис. 2.б) вначале был создан общий блок BCF’G’ (Blocking >Create Block >2D Planar), затем исходный блок был разбит тремя линиями на 6 блоков (Blocking >Split Block). После этого блоки, отмеченные крестами, были удалены (Blocking >Delete Block).

При удалении блоков следует быть внимательным к выбору метода удаления блока – полное удаление (Delete permanently) или только перемещение блока в семейство VORFN – семейство блоков для которых не происходит построение сетки. Дело в том, что вокруг создаваемых блоков всегда существуют дополнительные блоки необходимые для осуществления взаимосвязи между ними. Эти дополнительные блоки можно увидеть, сделав видимым семейство VORFN (Parts >VORFN). При перемещении ненужных блоков в семейство VORFN изменения структуры блоков не происходит (рис. 3.а). При полном удалении блоков (Delete permanently) происходит кардинальное изменение семейства VORFN (рис. 3.б) и, следовательно, происходит изменение взаимосвязей между блоками. Часть блоков семейства VORFN преобразуется в «О-блоки» (о создании и применении «О-блоков» мы поговорим в следующей статье).

При создании блочной структуры не рекомендуется, особенно для сложной геометрии, полностью удалять блоки, в которых не нужна сетка. Полное удаление блоков проводиться только в случае умышленного изменения структуры и свойств блоков.

Рис. 3 Вид блочной структуры семейства VORFN (блоки выделенные черным цветом), в зависимости от метода удаления блоков: 3.a – перемещение в семейство VORFN, 3.б – полное удаление блоков

После того как мы получили набор блоков топологически соответствующий исходной геометрии, необходимо провести «ассоциацию» блоков и геометрии (Blocking >Blocking Associations). То есть определить, каким сторонам геометрии какие ребра блоков соответствуют. В рассматриваемом примере «ассоциация» блоков геометрии проводиться в соответствии с буквенной разметкой геометрии и блоков – ребро АВ «ассоциируется» со стороной AB, BC с BC и т.д. Таким образом, мы получаем набор блоков описывающих исходную геометрию (рис. 4). При этом точность описания будет определяться только мастерством пользователя и наличием у него свободного времени.


Рис. 4 Набор блоков описывающих исходную геометрию (стрелками показана ассоциация граней блоков геометрии)

Осталось только задать количество сеточных линий, или размер ячеек (Blocking >Pre-Mesh Params >Edge Params), и разбить полученные блоки на сетку. Результатом является предварительная (Pre-Mesh) сетка (рис. 5), которая затем может быть преобразована в сетку с учетом требуемого решателя.

Рис. 5 Полученная условно гексаэдрическая (прямоугольная для 2D случая) сетка.

Таким образом, проведя ряд несложных манипуляций, мы получили сетку из практически правильных прямоугольников. Далее можно проводить сгущения в нужных подобластях, создавать пограничный слой и т.д., в зависимости от специфики задачи и наших потребностей.

Надеюсь, что данная статья была Вам интересна, и Вы будете ждать последующие, совершенствуя свои навыки по созданию сетки.

С уважением

P.S. Вы можете публиковать информацию с данного источника. Единственное условие —ставьте работающую ссылку на мой блог и надпись «CFD для всех»

8 комментариев:

  1. Михаил, а можно показать какой-нибудь пример по "сшитию" сеток.
    Зачем нужна подпись комментария? Пробовал ставить Аккаунт google -вылезает ошибка и комментарий неотправляется

    ОтветитьУдалить
  2. Добрый день, уважаемый Аноним! Удивительно, но в сети это очень популярное имя!
    Так вот что касается сшития сеток – постараюсь изобрести, что-то в этом роде. Но будет проще если зададите вопрос конкретнее. Выложите геометрию и скажите, что не получается. Только прошу геометрию в упрощенной форме!
    Про подпись. Если у Вас есть аккаунт google либо какой, либо другой из представленных, то подпись будет автоматической. Это просто вежливость – если у нас диалог, то хотелось бы знать с кем. Поэтому прошу по возможности, подписываться.

    ОтветитьУдалить
  3. Михаил, это сообщение писал Алексей (iva-77). По поводу подписи комментариев - не могу в gogle создать себе аккаунт. Антивирус ругает на googl. Mozilla выдает: www.googl.com испрользует недействительный сертификат безопасности. К сертификату нет доверия так он является самоподписанным. И еще код ошибки.
    Михаил, можно я тогда в сообщениях буду подписываться старым блогом (iva-77).
    По сшитию сеток: пытаюсь ( в качестве теста) сшить 2 кубика. Один разбит по количеству элементов 8х8х8, второй 6х6х6. Первый указываю как "замороженную" сетку, на втором указываю поверхность с плоскими элементами по которой происходит сшитие. Кубики должны преобразоваться в призмы, однако ничего не происходит.

    ОтветитьУдалить
  4. Михаил, если тебе будет интересно. Я нашел одну любопытную статейку косвенно касающуюся CFX, FLUENT. Точно не знаю как давно она была напечатана, но хотелось бы знать твое мнение (учитывают ли нынешние версии программ описанные в статье эффекты). Будет интересно то могу выслать.
    Алексей (iva-77)

    ОтветитьУдалить
  5. Привет Алексей! ;)
    Ок, постараюсь в ближайшее время написать заметку по предложенной тобой теме. Спасибо за идею.
    И спасибо, за подпись. Всегда приятно знать с кем разговариваешь!
    С Уважением,

    ОтветитьУдалить
  6. Алексей - насчет статьи - конечно интересно - высылай! С удовольствием просмотрю.

    ОтветитьУдалить
  7. Здраствуйте не могли бы вы показать примеры для создания сетки на сложных лбьемных телах для расчета в ансис если надо могу дать модель.

    ОтветитьУдалить
  8. Давайте модель, с интересом посмотрю! Если для Вас еще актуально. Но сразу предупреждаю - результаты выложу в общий доступ.

    ОтветитьУдалить