Автоматизация выбора физических интерфейсов и решателей с использованием макросов

Temesgen Kindo 28/06/2017
Share this on Facebook Share this on Twitter Share this on LinkedIn

Предположим, что вы рассчитали модель с учетом каких-то определенных предположений. А после анализа результатов стало понятно, что некоторые из них не выполняются. Таким образом, вам необходимо внести некоторые изменения в настройки модели, включая выбор нового физического интерфейса и типа исследования. Хотели бы вы автоматизировать этот процесс? В данной заметке мы расскажем о том, как просто это сделать при использовании функционала макросов (Model Method), который был добавлен, начиная с версии 5.3 программного обеспечения COMSOL Multiphysics®.

Преимущества ручной настройки последовательности решения

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

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

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

Создание макросов в COMSOL Multiphysics®

Используя программное обеспечение COMSOL Multiphysics® на операционной системе Windows®, вы можете создавать приложения с настраиваемым пользовательским интерфейсом и добавлять туда макросы для дополнительного расширения функционала. Приложения, созданные в Среде разработки приложений (Application Builder) на ОС Windows® могут быть запущены на любой другой операционной системе. Вы можете делиться приложениями с коллегами по работе, клиентами, студентами и т.д.

В версии 5.3 программного обеспечения COMSOL® был добавлен функционал по созданию макросов (model methods). Он позволяет расширить функционал пакета за счет возможности написания кода (скриптов) внутри графического пользовательского интерфейса COMSOL Multiphysics, даже если вы не собираетесь создавать приложение. Функции Record Code (Интерактивная запись код), Editor Tools (Инструменты редактирования), Language Elements (Элементы языка программирования) и Model Expression (Выражение из модели) в Среде разработки приложений позволят значительно упростить процедуру написания кода на языке Java® в процессе создания макросов.

Снимок экрана графического интерфейса COMSOL Multiphysics с кнопкой выбора макросов.
Чтобы добавить макрос, перейдите во вкладку Developer (Разработчик) и нажмите на кнопку Model Method.

Снимок экрана графического интерфейса COMSOL Multiphysics с кнопкой запуска макросов.
Для запуска макросов перейдите во вкладку Developer (Разработчик), нажмите на кнопку Run Model Method (Запустить макрос) и выберите нужный из списка.

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

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

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

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

  1. Запуск расчёта на прочность без учета пластичности.
  2. Проверка: превышает ли рассчитанное максимальное напряжение предел текучести для заданного материала.
  3. Если превышения нет, то остановка и окончание расчета. В противном случае, запуск расчёта с учетом упругопластичности.
  4. При учете пластичности, использование информации из начального исследования на упругость, чтобы повторно не тратить время на нелинейный анализ в области упругих деформаций.

Нам понадобится два исследования. В первом отключим пластичность, а во втором добавим опцию Auxiliary Sweep (Вспомогательный параметрический анализ) для линейно возрастающей нагрузки в расчёте упругопластических деформаций. В первом исследовании приложенную нагрузку зададим через параметр para, значение которого записано в разделе Global Definitions (Глобальные определения) и равно 1, во втором исследовании мы используем параметры p_low и p_next для более эффективной настройки расчёта. Они будут автоматически определяться после расчёта первого исследования.

Окно настроек для стационарного расчёта на упругость в COMSOL Multiphysics.

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

В разделе Results (Результаты) добавим узел Derived Values (Вычисление выражений), чтобы рассчитать максимальное напряжение по результатам первого исследования. Альтернативный вариант: использование оператора Maximum Component Coupling (Интеграция компонентов модели), который доступен в узле Definitions. Полученное значение в паскалях (как показано ниже в окне настроек, это — переменная Surface Maximum 1) сравниваем с пределом текучести, также в паскалях. Для этого введём параметр SY_scaled.

Окно настроек параметров для модели в COMSOL Multiphysics.
Параметры SYield и SY_scaled используются в узле Materials (Материалы) и при создании макросов, соответственно.

Окно настроек узла «Surface Maximum» (Максимум по поверхности) в COMSOL Multiphysics.
В качестве альтернативного метода можно использовать оператор Maximum Component Coupling.

Теперь у нас есть все необходимые входные данные и настройки для непосредственно написания макроса.

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

Две строки из вышеприведённого кода разберём подробнее:

  • Строка 12:
    • В первом исследовании значение нагрузки равно 1. Если параметр StressRatio в строке 9 больше, чем 1, то его обратная величина будет являться значением нагрузки, соответствующим пределу упругости. Обратите внимание, что мы можем это сделать, т.к. в данном случае пластичность – это единственная возможная нелинейность в нашей задаче. В модели нет геометрической нелинейности или механических контактов.
  • Строка 14:
    • Если требуется учет пластичности, нужно добавить вспомогательный параметрический анализ (auxiliary sweep) с шагом 0.05. Для этого используем метод ceil из классов Java® Math, чтобы получить наименьшее значение параметра нагрузки после предела упругости, при этом кратного 0.05.

Таким образом, второе исследование (если оно используется) решается для параметра, соответствующего упругому случаю, только один раз: при значении предела упругости. Ниже во вкладке Results (Результаты) можно увидеть, какие значения параметра нагрузки используются.

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

Если вернуться во вкладку Global Definitions, мы увидим, что макрос автоматически обновил значения параметров p_low и p_next.

Окно параметров с переопределёнными значениями в COMSOL Multiphysics.
Автоматически обновлённые значения параметров, рассчитанные на основе данных первого исследования.

Заключение

В данной заметке мы продемонстрировали эффективную настройку физических интерфейсов и последовательности исследований с использованием функционала model methods. Подобные задачи также можно решать с использованием классических скриптов. Однако, макросы (model methods) позволяют легко выбирать объекты в модели и различные встроенные методы, используя функицонал Среды разработки приложений. При необходимости, макросы можно дополнить обычными или своими собственными классами на языке Java®, например, классом Math (Математика), который использовался в первом примере.

Мы показали только один вариант использования макросов, однако возможны различные альтернативные настройки и корректировки. К примеру, в расчёте упругопластических деформаций мы добавили два исследования в Model Builder (Построитель моделей). Однако мы могли использовать одно исследование, в котором пластичность и параметрический анализ можно было бы включать и отключать с помощью макросов.

В примерах из данной заметки мы использовали простейшие логические условия и связки между исследованиями. Когда таких конкретных условий нет и вы хотите использовать данные из одного исследования в другом (скажем, использовать результаты первого расчёта в качестве начальных условий для второго), можете воспользоваться функцией Study Reference (Ссылка на исследование). Ознакомьтесь с функцией Study Reference в COMSOL Multiphysics Reference Manual (Справочном руководстве COMSOL Multiphysics).

Если у вас остались какие-либо вопросы по поводу этой заметки или использования COMSOL Multiphysics, в целом, свяжитесь с нами, нажав на кнопку ниже.

Дополнительные материалы

Microsoft и Windows являются товарными знаками или зарегистрированными товарными знаками Microsoft Corporation в США и других странах. Oracle и Java являются зарегистрированными торговыми марками корпорации Oracle и (или) аффилированных с ней компаний.


Загрузка комментариев...

Темы публикаций


Теги

3D печать Cерия "Гибридное моделирование" Введение в среду разработки приложений Видео Волновые электромагнитные процессы Глазами пользователя Графен Интернет вещей Кластеры Моделирование высокочастотных электромагнитных явлений на различных пространственных масштабах Модуль AC/DC Модуль MEMS Модуль Акустика Модуль Волновая оптика Модуль Вычислительная гидродинамика Модуль Геометрическая оптика Модуль Динамика многих тел Модуль Композитные материалы Модуль Коррозия Модуль Механика конструкций Модуль Миксер Модуль Нелинейные конструкционные материалы Модуль Оптимизация Модуль Плазма Модуль Полупроводники Модуль Радиочастоты Модуль Роторная динамика Модуль Теплопередача Модуль Течение в трубопроводах Модуль Химические реакции Модуль Электрохимия Модуль аккумуляторов и топливных элементов Охлаждение испарением Пищевые технологии Рубрика Решатели Серия "Геотермальная энергия" Серия "Конструкционные материалы" Серия "Электрические машины" Серия “Моделирование зубчатых передач” Сертифицированные консультанты Технический контент Указания по применению физика спорта