Совместные вычисления Engee и ЛОГОС
Решаем задачу интеграции Engee и ЛОГОС
Демонстрируем, как организовать расчетную задачу, которая считается одновременно в двух системах: платформе динамического моделирования Engee и пакета программ ЛОГОС.
ЛОГОС – отечественный программный пакет для высокоточных инженерных расчетов (CAE-система), моделирующий физические процессы на всех этапах жизненного цикла изделия. Включает модули для расчета прочностных задач, гидродинамики, тепломассообмена и других задач, позволяя проводить мультифизическое моделирование, оптимизацию и интегрировать сторонние приложения для решения сложных технических проблем в авиации, машиностроении, энергетике и других отраслях. [1]
Engee.Интеграция – подсистема платформы Engee; снимает проблему доступа к низкоуровневым интерфейсам операционной системы, позволяя подключить Engee к внешним устройствам, интерфейсам, протоколам и программным средам. [2]

Подготовка Engee
Мы будем рассчитывать задачу "стержень Тейлора" [3,4] – определение предела текучести материала при высокоскоростном деформировании. Косимуляция в двух средах нужна для того, чтобы иметь возможность на ходу менять параметры материала (расчёт в Engee), обновлять свойства МКЭ-модели (ЛОГОС) и получать данные обратно в Engee.
Откроем модель Engee, векторные входные и выходные сигналы которой совпадают со спецификацией интерфейса в ЛОГОС.
cd(@__DIR__)
engee.open( "example_LOGOS.engee" )

Сочетание модели, выполняющейся на платформе Engee, с моделью, выполняющейся на локальных ресурсах пользователя ЛОГОС осуществляется при помощи подсистемы Engee.Интеграция.
Для начала работы с подсистемой необходимо установить пакет поддержки Engee-Devica-Manager и клиентскую программу. Если пакет поддержки уже установлен, нужно лишь запустить его.
# engee.package.install("Engee-Device-Manager") # Перед первым запуском пакет потребуется установить
engee.package.start("Engee-Device-Manager")
При вызове команды
engee.package.install("Engee-Device-Manager")в командной строке Engee пользователь получает возможность скачать небольшую программуengee-device-managerдля Windows или для Linux, которая будет осуществлять коммуникацию между локальным компьютером (на котором запущен пакет программ ЛОГОС) и облачными ресурсами (на которых рассчитывается модель Engee).
Остаётся только запустить модель. После этого подсистема Engee.Интеграция будет осуществлять попытки открыть канал к пакету программ ЛОГОС
engee.run("example_LOGOS")
А пока посмотрим, как настроить расчетную задачу на стороне ЛОГОС.
Подготовка задачи в ЛОГОС
Конфигурация пакета программ ЛОГОС потребует внесения одной модификации в настройки примера, в качестве которого мы выбрали учебную задачу taylor (стержень Тейлора).
Мы доработаем функцию "обратного вызова" (user-defined function, UDF), которая пересчитывает значение некоторой переменной erosion. В эти моменты решатель ЛОГОС будет получать новые значения переменных, приходящие из Engee, и отправлять выходные значения МКЭ расчета для замыкания обратной связи и для отрисовки на графиках.
.png)
В окне где редактируются Пользовательские функции мы внесем изменения в функцию erosion_user:
.png)
Новая функция приведена в сопутствующей этой статье папке и называется example_erosion_cosimulate.py.
Ее назначение состоит в том, чтобы через заданные интервалы времени проверять наличие новых данных в канале связи с Engee и отправлять расчетные данные в этот канал.
Решатель ЛОГОС осуществляет расчетные шаги в собственном темпе, они могут иметь переменный размер. Скрипт косимуляции опирается на сигналы от Engee (приходящие с заданной в Engee частотой дискретизации) чтобы обновлять параметры задачи.
Поэтому важно чтобы частота дискретизации модели в Engee была больше, чем максимально допустимый шаг расчета модели в ЛОГОС
Запуск косимуляции через Engee.Интеграция
Когда настройка выполнена, можно запустить модели в следующем порядке:
- Запустить расчеты в Engee и дождаться приглашения в engee-device-manager на запуск расчетов в ЛОГОС
- Запустить расчеты в ЛОГОС
После этого расчеты будут идти параллельно, а расчетные задачи будут обмениваться результатами.
Разберем подробнее каждый этап:
При правильной настройке обеих систем мы получим следующий результат, свидетельствующий об успешном запуске совместого расчета. На стороне Engee будет возможность наблюдать графики расчета в реальном времени:
.png)
После завершения вычислений можно будет запустить постпроцессор на стороне ЛОГОС и изучить детали проведенного расчета:
.png)
Заключение
Косимуляция представляет собой режим запуска нескольких расчетных платформ, при котором они обмениваются результатами производимых вычислений с достаточной частотой, чтобы можно было считать что расчеты платформ идут квази-одновременно.
Мы показали, как решение МКЭ-задачи на прочность в пакете программ ЛОГОС можно дополнить алгоритмами и моделями, которые рассчитываются в Engee.
Ссылки
- https://logos-support.ru/logos/
- https://engee.com/helpcenter/stable/ru/engee-hardware/engee-integrations.html
- https://cyberleninka.ru/article/n/udar-zhestko-plasticheskogo-konicheskogo-sterzhnya-po-zhestkoy-pregrade
- https://royalsocietypublishing.org/rspa/article/194/1038/289/6731/The-use-of-flat-ended-projectiles-for-determining