FSI в 3.11.02: запуск совместных расчётов FlowVision и Abaqus

Начиная с версии 3.11.01 запуск FSI расчётов стал удобнее для пользователя:

    1. появилась возможность запуска FSI расчётов через графический интерфейс ПреПостПроцессора с помощью нового функционала "Внешние связи";
    2. добавлены различные протоколы соединений (коннекторы), позволяющие расширить возможности взаимодействия с прочностными пакетами. Среди новых протоколов особенно интересен Co-Simulation Engine (CSE).

Запуск совместного расчёта (с помощью СSE) является заменой уже устаревшего способа запуска при прямом соединении - Direct Coupling. Так как с большой долей вероятности в новых версиях Abaqus коннектор Direct Coupling совсем перестанет поддерживаться, то не будем терять времени и познакомимся со способом настройки запуска FSI расчётов на примере нового протокола Co-Simulation Engine.

Достоинства протокола Co-Simulation Engine

Основное отличие Co-Simulation Engine от Direct Coupling заключается в возможности применения к расчёту явной схемы расщепления переменных (explicit method), что увеличивает точность полученных результатов. Кроме того, данный тип коннектора обеспечивает:

  • Гибкие настройки совместного расчёта
  • Возможность подключения дополнительных сторонних программ
  • Упрощение кластерного запуска за счёт соединения программ

Алгоритм осуществления запуска 

Для запуска совместного расчёта при помощи протокола Co-Simulation Engine необходимы следующие действия:

1. Подготовить inp-файл из Abaqus
2. Создать внешнюю связь в ПреПостПроцессоре FlowVision
3. Связать поверхности обмена
4. Сгенерировать конфигурационный xml-файл
5. Запустить расчёт


Подготовка inp-файла из ABaqus 

Готовый файл inp-файл, сгенерированный в Abaqus, необходимо открыть текстовым редактором и добавить в конец модуля STEP, но перед строкой *End Step, следующие строки:

запуск CSE
Эти строки используются для идентификации совместного расчёта со сторонней программой. 

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


Создание Внешней связи

Во FlowVision 3.11.01 появилась папка Внешние связи.

3
                       Рис.1. Вкладка Препроцессор и свойства папки Внешние связи

Свойства папки Внешние связи

Шаг обмена – параметр, определяещий порядок обменов между обеими программами.

Способ задания:

  • FlowVision– шаг обмена автоматически рассчитывается, основываясь на шаге по времени во FlowVision.
  • Пользовательское значение – шаг обмена определяется пользователем. Данный шаг может быть задан пользователем как константой, так и с помощью формулы/таблицы.

Рекомендуется использовать шаг обмена FV, так как при использовании постоянного шага обмена может возникать слишком большая разница между решением FV и Abaqus, что может привести к развалу решения.

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

Коэффициент шага по времени – коэффициент, на который будет домножен шаг по времени между программами.

Старый офсет – используется старый метод офсета для устранения самопересечений.

Автосохранение – возможность автоматически сохранять геометрию, полученную от сторонней программы после получения данных.  Данная функция полезна для отладки проекта: полностью сохраняется и геометрия, и расчётная сетка.

В контекстном меню папки можно создать следующие протоколы соединения:

  • Abaqus CSE
  • Abaqus Direct Coupling
  • Extended Direct Coupling
  • NASTRAN
  • Произвольное взаимодействие

4

Рис.2. Создание новой внешней связи

Для создания протокола необходимо выбрать файл формата *.inp, в который уже добавлены строки косимуляции.
Если выбран файл с несоответсвующими данному типу соединения строками косимуляции (совместного расчета), то FlowVision выдаст предупреждение:

5

Рис.3. Предупреждение о несоответствии типа коннектора

Параметры протокола Co-Simulation Engine

Для протокола соединения можно настроить соответствующие параметры совместного расчёта:

  • директория с проектом
  • адрес и порт для соединения
  • дополнительные настройки запуска сторонней программы
  • плавная передача нагрузки из FlowVision в стороннюю программу

Все эти параметры находятся в папке с протоколом соединения. Протокол Abaqus CSE определяется теми же параметрами, что и протокол Abaqus DC.

Подробное описание параметров протокола CSE

  • Активность > Да/Нет – Включает/отключает коннектор. В случае Да FlowVision будет ждать соединения с Abaqus. В случае Нет FlowVision начнет расчёт самостоятельно.
  • Abaqus > Запускать ABAQUS > Да/Нет
  • Abaqus > MPM Агент:
    • Адрес: адрес машины, на которой будет произведён запуск Abaqus
    • Порт > значение устанавливается автоматически для текущей версии FlowVision при создании коннектора.
  • Проект ABAQUS: указывается проект Abaqus, который будет запускаться на расчет.
  • Источник IP >
    • IP MPM Агента: адрес автоматически берется из поля MPM Агент > Адрес
    • Пользователь: адрес необходимо задавать вручную;
    • Из файла: FlowVision берет параметр из файла, который указан в поле Файл с IP. Данный способ подходит при запуске на кластере, если в процессе запуска Abaqus производится резервирование узлов Abaqus’ом и передача данных узлов в сторонний файл;
  • Адрес:
    • Файл с IP: используется адрес, который записан в указанном файле;
    • Порт > 5555 – порт, на котором FlowVision будет искать соединение с Abaqus. Рекомендуется использовать или значение по умолчанию, или значение, простое для запоминания, например: 6666, 1111, 1234 и т.д.
Время ожидания

Время ожидания – сколько времени в секундах FlowVision будет ждать соединения с Abaqus. По умолчанию стоит значение 30 секунд. Этого времени достаточно, чтобы запустить простой расчёт без всяких проблем. Однако  для проектов, запускаемых на рестарт, с использованием внешних пользовательских подпрограмм рекомендуется увеличивать время ожидания.

Релаксация по нагрузкам

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

Параметры релаксации
  • Масштабный коэффициент – коэффициент пересчета размерности, позволяющий масштабировать нагрузку, передаваемую из FlowVision в Abaqus.
  • Старт в шагах – шаг обмена, с которого начинается релаксация нагрузки из FlowVision. Часто это значение задается нулевым, что означает сглаживание нагрузок, начиная с первого шага обмена.
  • Конец в шагах – шаг обмена, с которого прекращается релаксация нагрузки из FlowVision. Данное значение подбирается в зависимости от специфики задачи.
  • Начальный коэффициент – коэффициент, на который умножается нагрузка из FlowVision при старте релаксации. Обычно это значение задается равным 0.
  • Конечный коэффициент – коэффициент, на который умножается нагрузка из FlowVision при окончании релаксации. Обычно это значение задается равным 1.
  • Релаксация по теплу – параметры релаксации по теплу – аналогичные параметрам релаксации по нагрузкам, описанным выше.

Сопоставление поверхности обмена

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

Маппирование

Поверхность FlowVision и поверхность Abaqus не обязательно должны полностью соответствовать друг другу. Данные на несоответствующих узлах будут проинтерполированы с помощью новой функции - маппирования. Применение маппирования позволяет избежать ряда требований, предъявляемых к КЭ-сетке. Также данное нововведение позволяет назначать различные ГУ, строить супергруппы на поверхности FlowVision. 

8
                                              Рис.4. Варианты передачи данных

Параметры маппирования
  • Включено: Да/Нет.

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

  • Геометрический допуск: параметр настраивает точность маппирования.

Следует понимать, что при слишком большом значении есть вероятность, что поверхность проинтерполируется неверно, а при слишком маленьком значении - может вообще не проинтерполироваться.

9

Рис.5. Иллюстрация геометрического допуска

  • Поверхность > Начальная/Деформированная.

При первом соединении Abaqus передает FlowVision две формы поверхности: начальную и деформированную. Начальная поверхность – поверхность, которая была у Abaqus с момента начала расчета. Деформированная поверхность – поверхность, которую Abaqus получил в процессе предрасчета.

  • Перестроить маппер > Да/Нет. Параметр определяет, будет ли перестроен текущий маппер.

Коррекция тел

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

Параметры коррекции тел:
  • Включено > Да/Нет.  Включает/отключает коррекцию тел;
  • Величина. Ззначение, на которое будет произведена коррекция стенки (указывается в метрах);
  • По близости. Параметр определяет, во все ли строны будет произведена коррекция тела, или только в сторону ближайших границ/подвижных тел.

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


Генерация конфигурационного файла

Чтобы обеспечить взаимодействие между Abaqus и сторонней программой, необходима программа Abaqus CSE Director. Для подключения эта программа использует конфигурационный файл, в котором прописываются параметры совместного расчета, передаваемые данные и связь регионов. Формат конфигурационного файла – xml.

FlowVision может генерировать данный файл по запросу пользователя. Это делается в ПреПостПроцессоре: Внешние связи > Abaqus CSE в свойствах Операции >  Сохранить конфигурационный файл для CS-сервиса.

6
                  Рис.6. Создание конфигурационного файла для CSE-коннектора

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

7Рис.7. Экспорт в конфигурационный файл – окно настроек

Экспортируемые параметры совместного расчета

Схема совместного расчёта:
  • Схема Якоби – явная схема параллельного моделирования обеих программ с обменом в конкретной точке. Данная процедура менее ресурсозатратная, но также менее стабильная. Рекомендуется использовать в случае слабосвязанных физических задач.
  • Схема Гаусса-Зейдаля – явная схема совместного расчёта, в котором компоненты обмениваются с запаздыванием. Один из компонентов ведет другой компонент, который считает с отставанием между ними. Данная совместная схема хорошо подходит для слабой совместной физики и использует маленькие шаги по времени.
  • Схема Гаусса-Зейдаля-Предиктор – явная схема, схожа с алгоритмом Гаусса-Зейдаля с поправкой на то, что запаздывающий компонент может предсказать результаты для следующего совместного шага. Это уменьшает отставание между компонентами, когда решение достаточно гладкое для точно рассчитанных значений. Данная схема рекомендуется для использования в большинстве задач.
  • Итеративная схема – неявная итеративная совместная схема доступная для сильной совместной связи. Решение итерируется во время совместного расчета для устранения каких-либо задержек между компонентами.

Шаг обмена – параметр, определяющий порядок обменов между обеими программами. Может быть выбрано: выбор ведущей программой, максимальный шаг, минимальный шаг.

Ведущая программа – программа, определяющая шаг обмена между программами. В качестве ведущей программы можно выбрать FlowVision или Abaqus. Рекомендуется выбирать FlowVision, так как он более стабилен в работе.

Останов по времени – автоматическая остановка программы через определенное число шагов. Рекомендуется задавать какое-то большое число, если нужно, чтобы программа считала долго.

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


запуск совместного расчёта

С помощью МPM-агента

MPM-Агент – это серверное приложение FlowVision, осуществляещее запуск Abaqus на локальной или удаленной машине. Для этого MPM-Агент использует параметры, которые указаны в проекте FlowVision. Найти эти параметры можно окне свойств папки Внешние связи > Abaqus Direct Coupling или Abaqus CSE.

Чтобы использовать MPM-Агент, необходимо настроить его с помощью FvConfigurator, запустить и указать в свойствах внешней связи Запускать Abaqus автоматически = Да. 

10
                            Рис.8. Настройки для Abaqus для запуска через MPM-Агент

Не стоит забывать, что при расчёте на удаленной машине, следует указать адрес этой удаленной машины.

Дальше проект можно запускать как через Пост-Процессор, так и через FvTerminal. В случаях крайней необходимости, расчёт можно запускать с помощью командной строки.

Запуск с помощью Co-simulation Engine имеет свои особенности:
1.  MPM-Агент не умеет запускать Abaqus CSE Director;
2.  Для работы корректной работы с FlowVision на Linux необходимо добавлять библиотеки в переменную окружения LD_LIBRARY_PATH.

Первая проблема решается с помощью указанием MPM-Агенту скрипта, который сможет запускать оба протокола Abaqus.
Вторая проблема решается использованием CSE-Солвера. Солвер доступен только на Linux. Для Windows запускается стандартный солвер FlowVision.

11Рис.9. Окно солверов

Без MPM-агента

Запуск без MPM-Агента ничем не отличается от предыдущего пункта с точки запуска FlowVision.
FlowVision также запускается либо через Пост-Процессор, либо через FvTerminal или с помощью командной строки. Но в настройках проекта должно быть указано Запускать Abaqus автоматически = Нет.

Но для запуска Abaqus необходимо использовать командную строку, либо писать скрипт. Для запуска Co-simulation Engine дополнительно необходимо запускать Abaqus CSE Director, а также указывать ему настройки для соединения и конфигурационный файл.

Запуск протокола Co-simulation Engine через командную строку:

call abq2019 cse -config inp_file_name –listenerport 7777

abq2019 job=inp_file_name cpus=1 double csedirector=localhost:7777 interactive

Здесь:

  • cseзапускает CSE Director;
  • -config inp_file_name – название конфигурационного файла;
  • -listenerport 5555 – порт, на котором Abaqus CSE Director будет искать соединения с Abaqus и FlowVision;
  • abq2019 – команда, запускающая Abaqus, abq2019 – имя переменной окружения или путь до исполняемого файла Abaqus;
  • job=inp_file_name – название проекта Abaqus (без расширения .inp);
  • cpus=1 – количество ядер;
  • doubleдвойная точность (single – одинарная точность);
  • port=7777 – порт, по которому будет происходить соединение между Abaqus и FV);
  • interactive – команда, которая выводит сообщения из log-файла в командную строку.

В директории с проектом появится inp_file_name.log файл, в котором будет прописана информация о запуске Abaqus и соединении с FlowVision. После запуска проекта на счёт появится сообщение об ожидании соединения. При соединении появится сообщение о первом обмене.

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