Сообщество Engee

Совместные вычисления Engee и ЛОГОС

Автор
avatar-nkapyrinnkapyrin
Notebook

Решаем задачу интеграции Engee и ЛОГОС

Демонстрируем, как организовать расчетную задачу, которая считается одновременно в двух системах: платформе динамического моделирования Engee и пакета программ ЛОГОС.

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

Engee.Интеграция – подсистема платформы Engee; снимает проблему доступа к низкоуровневым интерфейсам операционной системы, позволяя подключить Engee к внешним устройствам, интерфейсам, протоколам и программным средам. [2]

logos_test_vid.gif

Подготовка Engee

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

Откроем модель Engee, векторные входные и выходные сигналы которой совпадают со спецификацией интерфейса в ЛОГОС.

In [ ]:
cd(@__DIR__)
engee.open( "example_LOGOS.engee" )
image.png

Сочетание модели, выполняющейся на платформе Engee, с моделью, выполняющейся на локальных ресурсах пользователя ЛОГОС осуществляется при помощи подсистемы Engee.Интеграция.

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

In [ ]:
# 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.Интеграция будет осуществлять попытки открыть канал к пакету программ ЛОГОС

In [ ]:
engee.run("example_LOGOS")

А пока посмотрим, как настроить расчетную задачу на стороне ЛОГОС.

Подготовка задачи в ЛОГОС

Конфигурация пакета программ ЛОГОС потребует внесения одной модификации в настройки примера, в качестве которого мы выбрали учебную задачу taylor (стержень Тейлора).

Мы доработаем функцию "обратного вызова" (user-defined function, UDF), которая пересчитывает значение некоторой переменной erosion. В эти моменты решатель ЛОГОС будет получать новые значения переменных, приходящие из Engee, и отправлять выходные значения МКЭ расчета для замыкания обратной связи и для отрисовки на графиках.

image.png

В окне где редактируются Пользовательские функции мы внесем изменения в функцию erosion_user:

image.png

Новая функция приведена в сопутствующей этой статье папке и называется example_erosion_cosimulate.py.

Ее назначение состоит в том, чтобы через заданные интервалы времени проверять наличие новых данных в канале связи с Engee и отправлять расчетные данные в этот канал.

Решатель ЛОГОС осуществляет расчетные шаги в собственном темпе, они могут иметь переменный размер. Скрипт косимуляции опирается на сигналы от Engee (приходящие с заданной в Engee частотой дискретизации) чтобы обновлять параметры задачи.

Поэтому важно чтобы частота дискретизации модели в Engee была больше, чем максимально допустимый шаг расчета модели в ЛОГОС

Запуск косимуляции через Engee.Интеграция

Когда настройка выполнена, можно запустить модели в следующем порядке:

  1. Запустить расчеты в Engee и дождаться приглашения в engee-device-manager на запуск расчетов в ЛОГОС
  2. Запустить расчеты в ЛОГОС

После этого расчеты будут идти параллельно, а расчетные задачи будут обмениваться результатами.

Разберем подробнее каждый этап:

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

image.png

После завершения вычислений можно будет запустить постпроцессор на стороне ЛОГОС и изучить детали проведенного расчета:

image.png

Заключение

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

Мы показали, как решение МКЭ-задачи на прочность в пакете программ ЛОГОС можно дополнить алгоритмами и моделями, которые рассчитываются в Engee.