Теперь моделировать морские волны во FlowVision стало еще удобнее!
С помощью редактора формул можно задать сложные граничные условия для формирования естественных гравитационных волн. Но формулы эти достаточно громоздкие. Поэтому мы использовали API вычислительной инженерной платформы и подключили к FlowVision модуль для простого задания граничных условий, которые генерируют волны.
В этой статье мы расскажем:
- что такое Генератор волн и где его найти;
- как подключить его к проекту FV;
- каковы возможности модуля Генератор волн;
- какие параметры необходимо задать в окне свойств;
- как создать проект с волнами;
- какие важные настройки необходимо учесть при моделировании.
и продемонстрируем результаты моделирования волн во FlowVision.
Что такое API Вычислительная инженерная платформа
API позволяет пользователям создавать свои собственные модули, которые можно подключить к FlowVision, чтобы расширить возможности CFD пакета или упростить рутинные операции.
На данный момент API позволяет создавать библиотеки для:
- расчёта локальных переменных;
- переопределения граничных условий (для создания собственных вариантов ГУ);
- включения в расчёт моделей устройств, которые выключены из расчёта непосредственно во FlowVision. Например, можно выполнить расчёт расходно-напорной характеристики насоса в сторонней библиотеке, а во FlowVision эта библиотека передаст только значения на входном и выходном ГУ объёма, заменяющего насос.
Что такое генератор волн
Генератор волн - это подключаемый к FlowVision модуль, созданный с помощью API Инженерной вычислительной платформы. Модуль создан разработчиками FlowVision для решения задач судостроения. Внутри модуля "зашиты" формулы волновой теории Стокса. Теперь, чтобы задать волнообразование в расчётной подобласти, не требуется прописывать громоздкие формулы на входном ГУ, а можно просто подключить к проекту FV специальный модуль.
Как подключить Генератор волн к проекту FV
Подключение модуля происходит при добавлении библиотеки WaveGeneratorBC.fvdll в папку Пользовательские модули. Найти WaveGeneratorBC.fvdll можно в инсталляционной директории: C:\Program Files\FlowVision-3.12\SDK\examples.
Генератор волн совместим с версией FlowVision 3.12 и выше.
После подключения становится доступным создание пользовательского граничного условия для входа - "Генератор волн ГУ".
Возможности Генератора Волн
С помощью Генератора волн можно моделировать волны:
- разной направленности
- с разным периодом колебания (T), высотой (H) и длиной волны (λ)
- с разной относительной скоростью движения объекта
Параметры в Окне свойств
Чтобы задать волну, укажите в окне свойств ГУ "Генератор волн" следующие параметры:
- Период колебания – промежуток времени, за который любая точка фронта волны совершает полное колебание;
- Высота волны – расстояние, равное амплитуде колебания;
- Направление – вектор распространения волны в пространстве;
- Опорная точка – координаты точки, лежащей в плоскости нулевого уровня волны;
- Постоянная скорость – скорость распространения фронта волны.
Как создать проект с волнами
Продемонстрируем как создать волны во FV на примере из учебника - Boat.
Для этого выполните последовательность действий:
- Откройте клиентскую часть проекта.
- Подключите модуль Генератор волн.
- Создайте пользовательское ГУ - Генератор волн ГУ.
- Укажите в окне свойств Генератор волн ГУ параметры волны.
Окно свойств ГУ Генератор волн
- Присвойте геометрии "Регион - Группа #0" ГУ Генератор волн.
- Запустите проект на расчёт и наслаждайтесь картиной волнообразования. Будьте внимательны и не затопите лодку: на ней могут быть люди.
ВАжные настройки
Если вы захотите добавить волны к своему проекту, не забудьте про эти важные настройки.
Общие установки
- Для двухфазных задач необходимо задавать гидростатическое давление (phydr) в Общих установках. Для этого укажите значения g-Точки (она должна лежать на опорной линии волны) и g-Слоя.
- Также не забудьте задать вектор гравитации (g = 9.8 м/с2).
Граничные условия
Расположение ГУ на гранях расчётной области зависит от особенностей вашей задачи. Мы расскажем про возможные варианты выбора ГУ для моделирования бесконечного водного пространства.
На верхней грани рекомендуется использовать ГУ Свободный выход, на нижней - ГУ Симметрия.
Напротив граней ГУ Генератор волн можно задавать либо Свободный выход, либо Неотражающее ГУ.
Свободный выход
ГУ Свободный выход искажает форму волны вблизи боковых граней. Чтобы вносимые возмущения имели меньшее влияние, необходимо расширять расчётную область.
Используя ГУ Свободный выход, задавайте скорость как нулевое относительное давление.
Расположение граничных условий для моделирования прямых волн представлено на рисунке ниже:
Неотражающее
Обычно Неотражающее ГУ применимо при числе Маха > 0.1 при задании шага по времени с помощью CFL = 1.
Используя Неотражающее ГУ при моделировании волн в корабельных задачах, можно получить физичное решение и при числе Маха < 0.1.
Расположение граничных условий для моделирования прямых волн представлено на рисунке ниже:
Моделирование косых волн
Косые волны распространяются под углом к граням расчётной области (примером может служить диагональная волна). Чтобы моделировать косые волны, задайте ГУ Генератор волн на гранях, определяющих направление волны. Напротив граней ГУ Генератора волн задайте или Свободный выход, или Неотражающее ГУ. Расположение граничных условий для моделирования косых волн представлено на рисунке ниже:
Сетка
Для разрешения свободной поверхности необходимо добавить сгущение к опорной линии волны. Моделируемая волна должна полностью находиться в области сгущения. Чтобы увеличить точность решения, можно использовать адаптацию сетки по условию для переменной VOF . (Об этом приёме мы очень скоро напишем в блоге).
Сгущение сетки к опорной линии волны
Шаг по времени
В настройках солвера для шага по времени укажите:
- Конвективный CFL = 1
- Поверхностный CFL =1
Результаты моделирования
- Свободная поверхность - визуализация волн
- Высота волны - используйте для прикладных задач
Свободная поверхность
При построении слоя VOF в Постпроцессоре мы видим волны!
Результаты моделирования трёх разных типов волн
Высота волны
Высоту волны определим путём интегрирования переменной VOF в плоскости.
Для визуализации высоты волны построим слой «График вдоль прямой» во вкладке Постпроцессор. В свойствах графика необходимо выбрать переменную VOF и включить интегрирование этой переменной по нормали к поверхности.
В результате можно увидеть минимальную и максимальную высоту волны, которая отсчитывается от заданного уровня.
Где найти модуль
Данный модуль включен в релиз FlowVision 3.12.01.
Отметим, что Вы можете создавать собственные модули для упрощения работы с вашими типовыми задачами. За помощью и консультациями по разработке собственных библиотек обращайтесь в техническую поддержку - support@flowvision.ru.