Checklist по созданию проекта

Уважаемый пользователь, перед вами больше, чем просто инструкция по созданию проекта во FlowVision. Мы вложили в эту статью опыт каждого члена нашей команды и максимально наполнили её полезными советами. Создание проекта не вызывает  затруднения при работе с программой в течение нескольких лет. Но так было не всегда. Мы все учились (и продолжаем это делать), и на каждом этапе освоения FlowVision чувствовалась поддержка старших товарищей.

А мы, в лице команды тех. поддержки, хотим поддерживать вас. Поэтому предлагаем открыть ПреПостпроцессор и начать создавать проект вместе!

Прежде, чем начать 

Вы уже решили какой процесс будете моделировать, полны сил и вам не терпится начать работу? Но прежде необходимо продумать: 

  •  Какие результаты вы хотите получить?
    Может быть, вас интересует температура, а, может быть, давление в расчётной области, а, может быть, вы хотите видеть в итоге визуализацию процесса в динамике. Или всё сразу? От вашего понимания на данном этапе целиком и полностью зависит постановка задачи при создании расчётного проекта.

  • Можно ли аналитически посчитать приблизительные величины характерных параметров? 
    Чтобы оперативно оценивать правильность решения, держите в голове порядок величин, который ожидается в итоге. Например, если в процессе счёта температура в 10 раз превышает ожидаемую по аналитическому расчёту, то чуда ждать не стоит - необходимо искать ошибку в проекте.

CheckList проекта FlowVision

Приведем список основных действий для создания проекта. А далее рассмотрим каждый пункт в отдельности.

        0. Определяемся с постановкой задачи. Наш девиз: упрощаем всё, что можно упростить.

Создание проекта

На каждом шаге стараемся упростить постановку! Это ускорит процесс моделирования и оперативность получения конечного результата.

  1. Создаём геометрическую модель в CAD - программе или непосредственно во FlowVision с помощью стандартных объектов.

  2. Импортируем / компонуем геометрию во FlowVision и не забываем про проверку на самопересечения.

  3. В общих установках задаём опорные величины давления и температуры, учитываем g и гидростатику (если этого требует постановка задачи).

  4. Создаём вещества и  указываем их свойства.

  5. Создаём фазы и указываем, какие уравнения будут решаться в рамках данного расчёта.

  6. Создаём модели - взаимодействия нескольких фаз. Здесь же не забываем про начальные условия.

  7. Присваиваем подобластям соответствующие модели и создаём необходимые граничные условия и модификаторы.

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

  9. При необходимости задаем условия связи для связанных границ.

  10. Задаём параметры начальной сетки, используем адаптацию.

  11. Во вкладке Солвер задаём шаг по времени.

  12. Задаём ограничители для расчёта (актуально для сверхзвуковых задач) и критерий малости ячейки.
    Для секторных постановок или 2D постановок с удалённой подобластью - относительный критерий малости. Во всех остальных случаях - абсолютный.

  13. Настраиваем сохранение проекта, включаем историю данных и слоёв.

  14. Создаём характеристики и настраиваем вывод искомых величин в окно мониторинга (силы, расходы и др.).

  15. Настраиваем контроль за максимальными / минимальными значениями характерных физических величин (скорость, давление, температура и др.).

  16. Настраиваем визуализацию (цветовые контуры, графики, сетку, линии тока и др.)
    Весь список доступных для визуализации слоёв - в документации

  17. Запускаем проект на расчёт 
    Возможные варианты: однопроцессорный запуск на локальном / удалённом компьютере или многопроцессорный кластерный запуск.

После запуска на расчёт можно отключить ППП от Солвера. 

Это ускорит счёт, так как слои визуализации не будут строиться Солвером для ППП. Чтобы снова подключиться ППП к Солверу, необходимо правильно синхронизировать клиентскую и солверную часть проекта. Остановить, сохранить, продолжить расчёт можно и без ППП - с помощью Терминала

После запуска на расчёт

  1. Контролируем результаты в процессе расчёта по графикам и слоям: с помощью Модуля просмотра результатов (подключаясь к Солверу, используя Терминал); в ППП при подключении к солверу; по данным glo файлов (сохраненные слои и характеристики).

  2. Анализируем решение или проблемы с помощью данных с характеристик:
    В случае аномальных значений определяем координаты ячеек с аномальными величинами. Возможные пути решения: либо адаптируем сетку в этой области, либо уменьшаем шаг по времени, либо обращаемся в техническую поддержку. Если все хорошо - переходим к следующему пункту.

  3. Обработка результатов расчёта:
    Создание картинок и видео - по fvvis файлам в Модуле просмотра результатов или в ППП;
    Создание графиков - в Excel (предварительно сохраняем характеристики и слои в glo).

Определяемся с постановкой задачи 

Основная идея - стараемся упростить всё, что можно упростить. Упрощаем подход к решению комбинированной задачи: моделируем отдельным проектом внутренние процессы (например, в камере сгорания) и отдельным - внешнее течение (обтекание ЛА с работающим двигателем). А также, по возможности, упрощаем геометрическую постановку. Выделим шесть основных геометрических подходов к созданию проекта: 

  • 2D - расчёт: плоскость или сектор (для тел вращения) с толщиной расчётной области в 1 ячейку. Результаты расчёта получаются оперативно, и поэтому такая постановка обычно применяется для исследования сходимости решения по сетке и шагу.

  • 3D - расчёт, половина / четверть / сектор обтекаемого тела. Упрощение геометрической постановки в разы уменьшает вычислительные ресурсы. Но следует помнить, что для несимметричного /непериодического обтекания необходимо рассчитывать модель полностью. 

  • Задание повторяющейся части геометрии с помощью скользящей поверхности. Такая постановка называется "сектор-слайдинг". Например, чтобы не считать рабочее колесо турбины целиком, можно моделировать только одну лопасть. Для этого на границах подобласти, содержащей лопасть, задаётся скользящая поверхность.   

  • Исключение устройства / мелких деталей из расчёта. Если вас не интересуют процессы, протекающие в двигателе, воздухозаборнике и т.д. - исключите геометрию этих устройств из расчёта, НО не забудьте указать корректные граничные условия на замещающих поверхностях. Также всегда старайтесь упростить геометрическую модель, убрав все мелкие детали. Влияние маленьких отверстий, втулок и уступов в действительности не существенно. Поэтому смело удаляйте при построении модели маленькие детали.
  • Полномодельный 3D расчёт.

  • Автоматическая/ручная замена геометрической модели в процессе расчёта. При оптимизационных расчетах или при моделировании динамики изменения тел (деформаций), когда известно изменение геометрии модели в зависимости от времени, можно настроить скрипт для автоматической передачи новой геометрии во FlowVision для детального повторения сложного процесса.

Создаём геометричесую модель

во FlowVision 

Создать геометрию для вашего проекта вы можете во FlowVision, как внешнюю подобласть, так и объекты обтекания. В папке Объекты вы найдёте стандартные объекты - параллелепипед, сферу, конус, цилиндр, и на их основе создать интересные модификации (сектор, многоугольник, полые цилиндры и конусы и др.).

В CAD-программе

Если создаём геометрическую модель в CAD-программе (SolidWorks, NX, AutoCAD 3D, KOMPAS и т.д.), то помним про упрощение геометрической модели. Если влияние на обтекание каких-либо маленьких деталей не существенно, то удаляем их, стараясь упростить модель до самых простых форм. Иначе придётся тщательно разрешать сеткой все маленькие элементы. После создания геометрии экспортируем её из CAD в формате STL или WRL. 

Отметим два важных момента: 

Единицы измерения длины во FlowVision - метры.

В то время как создание модели в CAD может происходит, обычно, в миллиметрах. И при построении геометрической модели и её экспорте из CAD надо помнить, что FlowVision работает с метрами [ м ].

На качество решения FlowVision влияет точность фасетного представления геометрии из CAD.

При экспорте модели из CAD каждая поверхность геометрической модели представляется в виде набора треугольников - фасеток (увидеть их можно, нажав на кнопку каркас на панели управления в ППП). Чем больше фасеток повторяют геометрию модели, тем более гладкое решение получается в итоге. На грубом же стыке фасеток могут образовываться скачки, которые негативно влияют на расчёт. 

Точность фасетного представления геометрии задаётся в настройках экспорта в CAD программе. 

круг2Пример грубой геометрии

 

Импортируем геометрию в FlowVision 

Возможны четыре варианта импорта: 

  1.  через вкладку Геометрия;
  2.  во вкладке Препроцессор: Регион > Добавить геометрию;
  3.  во вкладке Препроцессор: Объекты > Создать импортированный объект > Встроить в основную геометрию;
  4. используя в ППП Файл > Создать сборку (если в проекте несколько областей с разными свойствами).

Не забываем про требования к расчётной геометрической модели.

Проверка на самопересечения

Обязательный пункт, который мы крайне не рекомендуем пропускать! Как его выполнить: правый клик мышкой по региону или импортированному объекту > проверить геометрию на самопересечения. Если вдруг FlowVision обнаружил самопересечения, то попробуйте их "вылечить" с помощью опции исправить самопересечения. Но если и это не помогло, то изучите требования к геометрии и повторите построение геометрии в CAD заново (или, как вариант решения, поварьировать точность экспортируемой геометрии).

Запускать расчёт с самопересечениями нельзя.

Даже если проект считается, то при адаптации возникнет момент, когда сетка не сможет построиться из-за проблемной геометрии. Расчёт прекратится и его уже нельзя будет продолжить без исправления геометрии.


Общие установки 

В папке общие установки задаются:

  • опорные величины -  они не должны быть нулевыми. 
  • вектор гравитации - если моделируемый физический процесс происходит в естественном поле тяготения, то смело задавайте вектор гравитации. Не забывайте про направление - оно определяется относительно осей абсолютной системы координат (в левом нижнем углу окна ППП). Во вращающихся и симметричных постановках нужно следить за направлением вектора гравитации - он может быть направлен либо по оси вращения, либо вдоль плоскости симметрии. 
  • g-Точка, g-Плотность, Слой - для задания гидростатики. Используются для задания гидростатического столба жидкости или газа в случаях, когда его значения велики (уровень океана для корабельных задач), либо требуется повышенная точность (для моделирования естественной конвекции газа).

Вещества

Мы всегда стараемся упростить постановку. В веществах можно пренебречь сжимаемостью: задавайте плотность константой для малого дозвукового обтекания. Если в проекте нет горения и химических реакций, то обнуляйте энтальпию образования. Для двухфазных задач с VOF не забывайте указывать поверхностное натяжение и задавать сжимаемость с помощью градиентов плотности (dRho/dP, dRho/dT).

Задать вещество можно тремя разными способами.

  1. выбрать его агрегатное состояние и задать все физические свойства в ручном режиме. При моделировании сверхзвуковых процессов в газах или деформации неньютоновских жидкостей важно задать свойства веществ в виде зависимости от температуры или давления при помощи редактора формул. 
  2. воспользоваться стандартной базой веществ FlowVision и выбрать вещество из списка: Вещество > Загрузить из БВ > Стандартная.
  3. использовать собственную пользовательскую базу веществ: редактировать стандартную базу веществ FlowVision (для описания особых свойств уже существующих веществ), либо создать её с нуля (для задания веществ со свойствами, которых нет в базе FlowVision). 

Фазы 

В фазах задаются все уравнения, описывающие моделируемые физические процессы. На данный момент во FlowVision реализовано три типа фаз: сплошная (для моделирования течения сплошных сред), частицы (для моделирования процессов в дисперсной фазе) и каркас (для моделирования пористых сред). 

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

  • сплошная (воздух) + сплошная (вода) для моделирования струй и волн во внешней воздушной среде;
  • сплошная (воздух) + частицы (аэрозоль) для моделирования распыления;
  • сплошная (вода) + каркас (трубчатый проводник) для моделирования пористости.

Для каждой фазы задаются решаемые физические уравнения: движения, турбулентности, теплопереноса, излучения, массопереноса, ЭМГД. 

Не включайте все физические процессы. Только те, параметры которых интересуют при решении данной конкретной задачи. 

На самом деле, в каждом физическом процессе пользователю доступно ещё и изменение всех настроек. Так можно настроить модель "под себя", но лучше делать это с умом. Если чего-то нет в документации или в учебнике - пишите в техническую поддержку.

Модели

В модели мы задаём взаимодействие между фазами. Здесь определяется тот "+", который мы писали выше для примеров наличия нескольких фаз в расчёте: сплошная + сплошная и т.д. Если в вашем проекте только одна фаза, то и модель будет состоять из одной фазы.

В модели можно включить модель зазора (если это необходимо для вашей задачи) и задать начальные данные. Начальных данных может быть несколько и применяются они в разных геометрических объектах. Задавая начальные данные в проекте, вы повышаете стабильность расчёта в начальный момент времени и ускоряете выход на стационарное решение. Вот несколько стандартных приёмов, как правильно задать НУ в проекте для ускорения процесс получения стационарного решения:

  1. Задавайте величину скорости (не оставляйте нулевую скорость!) во всём объёме расчётной области при моделировании течения
  2. Задавайте НУ параметров торможения на поверхности обтекаемых тел - это особенно актуально для сверхзвуковых расчётов
  3. Задавайте начальный объём жидкости через НУ в двухфазных задачах.

Напомним, что начальные данные задаются относительно опорных величин

Подобласти

Теперь переходим в подобласти и первым делом присваиваем в окне свойств всех существующих подобластей Модель = Модель #, созданная ранее в папке модели. Рассмотрим подробнее настройки проекта, которые назначаются в папке подобласти.

Граничные условия

В граничных условиях выбирается тип граничного условия (ГУ) - стенка, вход/выход, симметрия, неотражающее и т.д. и задаются способы определения параметров процесса (скорость, температура и т.д). 

Для разных классов задач применяются разные ГУ входа / выхода.

Самый простой пример: на ГУ Вход/выход для сверхзвуковой скорости нельзя использовать тип = нормальная массовая скорость. Если вы сомневаетесь, какой тип ГУ необходимо использовать для вашей задачи, - изучите соответсвующий раздел в документации. А в блоге мы уже рассказывали про тип ГУ сверхзвуковой вход и параметр для задания скорости на ГУ "свободный выход" - полное давление.

Геометрия 

Во вкладке геометрия каждой геометрической поверхности присваивается созданное граничное условие. Рассмотрим решение основных вопросов от наших пользователей:

  • Если геометрическая модель не разделена на группы и подсвечивается единым целым -> перейдите в настройки ППП (Файл > Настройки) и выберите Отображать все группы = Да. 
  • Если необходимо выделить часть поверхности (для задания другого ГУ или создания супергруппы), то разбить геометрию можно с помощью её перегруппировки (Регион - Поверхность # > Перегруппировать). Отметим сразу, что чем меньший угол отклонения задаётся, тем на большее число групп разделится поверхность. 

Присвоить граничное условие группе (или всему региону) можно при помощи правого клика мыши по выбранной геометрической поверхности в дереве проекта. Далее выберите граничное условие из списка созданных ГУ.   

Модификаторы  

Модификатор - это инструмент FlowVision, генерирующий физические процессы, в ячейке. Моделируете пористые среды?  - используйте модификатор анизотропного сопротивления;  электрические приборы? - в FV есть модификаторы внешнего электрического тока и магнитного поля. Полный список модификаторов и их применение вы найдёте в документации.

Самым популярным по использованию модификатором является подвижное тело. Подвижное тело задаётся на импортированном объекте для вставки его в расчётную область. Если в свойствах модификатора подвижное тело не заданы скорости движения или внешние силы / моменты, то импортированный объект неподвижен, то есть зафиксирован в расчётной области. Именно так реализуется принцип обратимости аэродинамики во FlowVision.

Модификаторы FlowVision

  • Анизотропная теплопроводность
  • Объёмный источник тепла
  • Анизотропное сопротивление
  • Сопротивление
  • Объёмный внешний заряд
  • Внешний электрический ток
  • Внешнее магнитное поле 
  • Объёмная сила
  • Установка переменной
  • Горение / тушение

О способах действия модификаторов (в обрезанном и полном объёме) мы писали в статье.  

 

Начальные условия

В папке  модели задавались только величины начальных условий параметров, а в подобласти  (во вкладке начальные условия) эти параметры присваиваются расчётному объему именно этой подобласти.  

И задать НУ можно в полном объёме, либо в обрезанном - это нововведение версии FlowVision 3.12.01.

Ранее мы упоминали, что задание начальных условий ускоряет выход на стационар. Начальные условия могут задаваться как во всём пространстве данной подобласти, так и в отдельных объектах. НУ может быть несколько и можно задавать разные параметры в различных частях расчётного объёма. Отрабатывают они последовательно, заменяя или усредняя заданные выше НУ.

Расчётная сетка

Расчётная сетка определяется в первую очередь начальной сеткой, и применяемыми к ней далее адаптациями. Вообще, от качества расчётной сетки зависит 80% успеха вашего расчёта! Какая же она, идеальная расчётная сетка? 

  1. состоит по-макисмуму из квадратных ячеек.
    Но если поток направлен вдоль сеточных линий, то ячейки можно задавать и вытянутыми (рекомендованное отношение сторон ячейки менее 10). На отдалённых границах расчётной области ячейки могут быть ещё более вытянуты - с отношением сторон до 1000. 

  2. оптимальна по вычислительным ресурсам.
    Для работы на локальной машине можно максимально укрупнить начальную сетку и использовать адаптацию высокого уровня. А вот при распараллеливании расчёта на несколько процессоров (кластер, многопроцессорный запуск) рекомендуем максимально измельчить расчётную область начальной сеткой и использовать адаптацию до 5-6 уровня, так как распараллеливание по процессорам происходит именно по начальной сетке.

  3. получена в результате проведения исследования сходимости по сетке

шаг по времени

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

В некоторых случаях коэффициенты шага по времени (конвективный, поверхностный, диффузионный и скользящий) следует ограничить и задать = 1. Например, задавайте

  • конвективный CFL =1 при моделировании сверхзвуковых течений. Если расчёт падает без очевидной причины, задайте в первую очередь конвективный CFL = 1 - очень часто это помогает продолжить расчёт.
  • поверхностный CFL = 1 для моделирования движущихся поверхностей: подвижных тел и VOF.
  • диффузионный CFL = 1 при моделировании пористых сред, химии и смешения.
  • скользящий CFL = 1 для использования скользящей поверхности.

Важно ограничить максимальный шаг по времени.

Если в начальный момент в проекте не задано движение, то первый расчётный шаг будет велик и приведёт к нефизичным результатам. Например, при моделировании ударных волн в начальный момент среда неподвижна, но задан градиент давления. В этой задаче первый шаг надо ограничить, иначе картина течения получится смазанной во времени или, в худшем случае, решение развалится.

Автосохранение данных/слоёв

Для отладки проекта важно сохранить промежуточные шаги расчёта, чтобы продолжить расчёт с промежуточного момента, удалив ненужные, или вернуться к какому-то моменту моделирования. Это реализуется путём сохранения истории данных (Солвер > Автосохранение данных > История = Да). Если историю не включить, то результаты расчёта будут перезаписываться с заданной вами периодичностью по шагу или по времени. История сохранения слоёв применяется в основном для визуализации процесса в модуле просмотра результатов и не занимает большого количества места в памяти компьютера. Очень подробно и с примерами мы рассказываем о fvvis файлах истории слоёв в одной из статей блога. 

Автосохранение данных с историей - для отладки проекта и создания анимации динамических процессов в ППП (если необходимо создавать новые слои после расчёта). 

Автосохранение слоёв с историей - для создания анимации во Viewer (все слои преднастроены перед запуском на расчёт). 

Можно сохранять ещё значения характеристик и слоёв из вкладки постпроцессор. Данные сохраняются в glo файл, который потом открывается в Excel.

Характеристики и вывод результатов в окно мониторинга

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

В окно мониторинга можно выводить и составные параметры, которые вычисляются по пользовательским формулам, созданных с помощью редактора формул

Для отладки проекта рекомендуется выводить в окно мониторинга максимальные значения величин (а иногда и минимальные). Очень часто процесс развала решения начинается задолго до того, как происходит фактическое падение решения проекта. Индикаторами начала аномальных процессов, сулящих развал, являются скачки максимальных величин характерных параметров: температуры, давления или скорости. Если скачек был единичным (на один два шага), то это можно отнести на численную несходимость и продолжить решение. Но, если максимальные величины имеют постоянные аномальные значения - надо бить тревогу и анализировать причину (входные данные, качество геометрии, качество сетки, шаг по времени).

Итак, чтобы контролировать ход решения создадим характеристику на пространстве по характерному для моделируемого процесса параметру. Это может быть температура для моделирования тепловых процессов или скорость и давление для моделирования течения. Далее, во вкладке Солвер > Условия останова > Пользовательские величины создайте критерий останова, выбрав в качестве объекта созданную характеристику, а в качестве переменной -  "Максимум". 

Запуск проекта на расчёт      

После этого можно запускать ваш проект на расчёт. Не будем говорить, что дальше всё 100% будет очень просто - проект может оказаться весьма нестандартным и для его запуска необходимо будет потратить чуть больше времени или даже попросить помощи нашей команды - для этого присылайте ваши проекты в техническую поддержку Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.. Но это уже совсем другая история...

Об авторе
Наталья Александрова
Author: Наталья Александрова
Инженер технической поддержки
МГТУ им. Н.Э. Баумана. Экспертиза в областях: CFD, аэродинамика.