Минимизация размера файла модели с помощью методики выборочного сохранения данных

02/09/2016

При моделировании в COMSOL Multiphysics® выходными данными обычно являются расчёты одной или нескольких полевых переменных. В зависимости от количества таких величин, сложности геометрии и частоты сетки, необходимой для точных результатов, модель может иметь миллионы степеней свободы (DOF — degrees of freedom). На практике очень часто вполне достаточно сохранить всего лишь одну или несколько скалярных величин или результаты на маленькой части геометрии. В этой статье мы рассмотрим инструменты, которые можно использовать для выборочного сохранения выходных данных, минимизации размера файла модели и сокращения времени, необходимого для отображения результатов.

Два способа выборочного сохранения релевантных выходных данных

В COMSOL Multiphysics есть два способа выборочного сохранения результатов расчёта в выходных данных. Первый — это использование выборок (selections) для выбора интересующих нас точек, границ или областей и отображение переменных по результатам расчета только в выбранных частях геометрии. Этот метод удебен, если требуется выводить результаты моделирования в конкретных частях геометрии с их дальнейшей постобработкой, вычислениями производных величин и визуализацией.

Обратите внимание, что если сохранять решение для некоторых границ и точек, то в результатах будут доступны только полевые переменные (dependent variables). Это значит, что производные и величины, которые включают в себя производные, например, механические напряжения и потоки, будут не доступны, так как для их вычисления требуется, чтобы решение было также определено в областях. Если же требуется сохранять лишь некоторые производные величины, как например напряжения, только на некоторых границах или в точках, то можно воспользоваться вторым вариантом.

Эта вторая методика заключается в добавлении физического интерфейса ODE and DAE (обыкновенные дифференциальные уравнения (ОДУ) и дифференциально-алгебраические уравнения (ДАУ)). С помощью него можно определить новую зависимую переменную, в которую записывать необходимую интересующую величину. Она может быть как глобальной скалярной величиной, например, средним или максимальным значением некоторого поля, так и значением поля вдоль некоторой границы. (Отметим, что в последнем случае использование выборки будет более простым способом получения того же результата). Этот метод полезен, когда выходное значение — это глобальная скалярная величина, которую вы передаете в новую переменную с одной степенью свободы с помощью простого алгебраического выражения. Как упоминалось выше, данный подход также будет полезен, если требуемая величина – это производная второго порядка, например, напряжение или поток.

Создание выборок для сохранения выбранных частей решения

Для сохранения решения только в выбранной части геометрии создайте выборку. Для этого в построителе моделей нажмите правой кнопкой на Definitions и выберете Selections из выпадающего меню. Explicit (Определённая) будет лучшим вариантом, если вам необходимо включить в выборку несколько определённых геометрических элементов, например, области, границы или точки. Для лучшей наглядности можно переименовать выборку, к примеру: Окружающий воздух или Основной контакт. Также вы можете создавать несколько выборок, соответствующих разным частям геометрии, с их последующим комбинированием. Как и в геометрии, можно применять булевские операции над выборками, такие как Union (Объединение) или Intersection (Пересечение). Используйте одну или несколько из созданных выборок в настройках узла Study (Исследование), чтобы определить части геометрии, для которых будет сохраняться решение.

Пример: Использование выборки для сохранения результатов деформации на верхних границах механической конструкции

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

Графическое окно с выбранными поверхностями для расчёта в физическом интерфейсе Механика твёрдого тела.
Выбранные поверхности для расчёта в физическом интерфейсе Механика твёрдого тела.

Чтобы сохранить решение только на выбранных границах, создайте выборку Explicit. В разделе окна настроек Input Entities (Исходные объекты) выберете четыре верхних поверхности. Если необходимо разделить границу или создать точку (узел сетки) в нужном месте, то можно добавить дополнительные узлы Curve (Кривые) или Point (Точки) в геометрическую последовательность. На рисунке ниже показаны настройки узла Explicit.

На рисунке изображены настройки узла Explicit.
Окно настроек выборки Explicit.

Заметьте, что для лучшей наглядности мы изменили название выборки в текстовом поле Label на Deflection Surfaces (Деформированные Поверхности).

Теперь можно приступить к настройке сохранения выходных данных. В окне настроек узла Study (Исследование) откройте раздел Values of Dependent Variables (Значения зависимых переменных). В поле Store fields in output (Сохранять поля в выходных данных) выберете из списка значение For selections (Для выборок). В появившемся окне нажмите на Add (Добавить), чтобы открыть список с доступными выборками. В нашем случае выберете выборку Deflection Surface и нажмите OK.

Окно вкладки Values of Dependent Variables (Значения зависимых переменных).
Окно настроек для сохранения деформаций на выбранных поверхностях.

После этого можно запустить исследование. Единственным результатом на выходе решения будет расчёт на выбранных верхних поверхностей, который будет отображён на графике Surface (Поверхности).

На рисунке изображено поверхностное смещение.
На рисунке показано смещение выбранных поверхностей по оси Y. Для остальной геометрии сохраненное решение отсутствует.

Чтобы получить решение в точках, можно обработать результаты. Для этого в узле Derived Values добавьте Point Evaluation (Вычисление в точке) и рассчитайте, к примеру, полное смещение (total displacement). Также можно добавить 1D Plot Group (Группу одномерных графиков), а затем выбрать Point Graph (График в точке). Таким образом можно построить график зависимости смещения от времени при нестационарном расчёте или график значений параметра при параметрическом расчёте.

Добавление переменной для хранения выходных данных

Если необходимо рассчитать скалярную величину, то потребуется всего одна новая переменная с одной степенью свободы, которая будет представлять эту величину на выходе расчёта. Такую переменную можно создать, как простое алгебраическое выражение, используя global equation (глобальное уравнение), определенное через физический интерфейс Global ODEs and DAEs. Этот и похожие математические интерфейсы для определения и расчёта дифференциальных уравнений в точках, на границах и в областях, доступны в Model Wizard (Мастере создания моделей) в окне Add Physics (Добавить физики) в разделе Mathematics > ODE and DAE Interfaces. В окне настроек узла Global Equations задайте имя переменной и введите простое выражения для определения скалярной величины, которую вы хотите включить в результаты на выходе расчёта.

Операторы скалярной взаимосвязи (coupling operators) являются важными функциями в COMSOL Multiphysics, которые также можно использовать для этих целей. С помощью них вы можете создавать скалярные величины, глобально доступные по всей модели.

Пример: Переменная, отображающая среднюю температуру

Предположим, что нас в первую очередь интересует средне значение температуры в модели. Чтобы его найти, добавьте Average Coupling Operator (например оператор усреднения aveop1), определив его по всей геометрии или в конкретных областях. Теперь данный оператор можно будет использовать в глобальном алгебраическом выражении, чтобы затем сделать его доступным в качестве выходной скалярной переменной. По необходимости можно сохранять максимальное значение температуры. Для этого используйте Maximum Coupling Operator.

Уравнение, которое решается в физическом интерфейсе Global ODEs and DAEs, имеет следующий вид:

f(u,u_{t},u_{tt},t) = 0

Однако, в данном случае нам просто необходимо ввести переменную, эквивалентную средней температуре. Таким образом, в текстовое окно для функции достаточно вписать aveop1(T)-avtemp, если вы определили переменную в алгебраическом уравнении, как avtemp. Помните, что физический интерфейс Global ODEs and DAEs приравнивает правую часть уравнения к нулю. В нашем случае в итоге будет решаться уравнение avtemp = aveop1(T). Здесь, T — зависимая переменная, которая отображает температурное поле. Относительно этой переменной решается модель, однако в выходные данные расчёта мы её включать не будем. На рисунке ниже показано окно настроек узла Global Equations в физическом интерфейсе Global ODEs and DAEs.

Настройки узла Global Equations в COMSOL Multiphysics.
Настройки узла Global Equations для создания переменной хранения данных.

Обратите внимание на раздел Units (Единицы измерения) в настройках выше. Чтобы избежать несогласованности и рассчитать созданную переменную с правильными единицами измерения, необходимо совместить соответствующие единицы измерения dependent variable (зависимой переменной) и source term (переменной avtemp, которая будет источником в нашем случае).

Финальным этапом будет настройка расчёта таким образом, чтобы в результатах сохранялась только новая скалярная переменная, которую мы определили. Ниже показан график средней температуры модели для нестационарной задачи. Он доступен в результатах, как глобальный график (Global) в 1D Plot Group. Средняя температура в данной модели — единственная рассчитанная скалярная величина.

График зависимости средней температуры от времени.
График зависимости средней температуры от времени.

Управление сохранением выходных данных

Сперва активируем функционал по настройке конфигурации решателя. Для этого нажмём правой кнопкой мыши на узел Study и выберем Show Default Solver (Показать решатель по умолчанию). Откроем Solver Configurations > Solution > Dependent Variable (Конфигурация решателя > Решение > Зависимая переменная), чтобы получить доступ к настройкам зависимых переменных. В нашем примере будет два подузла: Field (Поле температур) и State (Средняя температура). Первый представляет полное поле температур в модели, второй — переменную средней температуры.

Нажмите на подузел Temperature, чтобы открыть окно настроек. В разделе General (Основные) уберите флажок Store in output (Сохранять на выходе). После этого решатель больше не будет хранить поле температур в выходных данных.

Снимите флажок в поле Store in output в настройках.
Снимите флажок в поле Store in output в настройках подузла Temperature.

Затем можно провести расчёт. По его окончанию скалярная величина будет доступна, как переменная. Её значение можно отобразить в таблице, используя узел Global Evaluation (Глобальный расчёт). Также можно построить Global (глобальный график) зависимости деформации от времени или средней температуры от параметрических решений. Так как мы отключили сохранение результатов расчёта поля, любые графики с зависимыми переменными или величины, использующие такие переменные, будут отображаться с нулевыми значениями.

Пример: Алгебраическое уравнение для расчёта действующего значения напряжений на верхних поверхностях

Давайте вернёмся к модели фидерного зажима. На этом примере мы покажем, как можно использовать алгебраическое уравнение для сохранения действующих значений напряжений (напряжений по Мизесу) на верхних поверхностях. Для начала добавим физический интерфейс Boundary ODEs and DAEs (ОДУ и ДАУ на границе). Он доступен в Мастере создания моделей в окне Add Physics в разделе Mathematics > ODE and DAE Interfaces.

В окне настроек выберете ту же выборку Deflection Surfaces, как и в первом примере этой статьи. Не забудьте выбрать правильные единицы измерения, чтобы они были совместимы с размерностью напряжений. Для этого в разделе Units выберете Stress tensor (Тензор напряжений) в качестве размерности и для новой зависимой переменной, и для источника, которым является напряжение по Мизесу из основного физического интерфейса Solid Mechanics (Механика твёрдого тела).

Окно настроек физического интерфейса Boundary ODEs and DAEs.
Окно настроек физического интерфейса Boundary ODEs and DAEs для расчёта механических напряжений.

В узле Distributed ODE (распределённое ОДУ) записывается алгебраическое уравнение, которое описывает новую зависимую переменную bndstress (определённую только на верхних поверхностях). Она равна предварительно определённой переменной напряжений по Мизесу solid.mises из физического интерфейса Solid Mechanics: bndstress-nojac(solid.mises).

Также необходимо добавить оператор nojac(), так как мы не хотим, чтобы это уравнение влияло на якобиан (матрицу системы) полной модели. Нужно вписать это выражение в поле source term (уравнение источника), а остальные коэффициенты задать равными нулю, чтобы решалось следующее уравнение 0 = bndstress-nojac(solid.mises) (что эквивалентно bndstress = nojac(solid.mises)).

На рисунке показано окно настроек узла Distributed ODE.
Окно настроек узла Distributed ODE для задания выражения, определяющего граничное напряжение.

Перед началом расчёта снимите флажок в поле Store in output в настройках подузла Displacement field узла Dependent Variables в последовательности решателя. Затем можно запустить моделирование. При таких настройках будут сохранены только значения напряжений на верхних поверхностях. Их можно отобразить в результатах, используя поверхностный график Surface plot.

График распределения напряжений по Мизесу, сохранённых только на верхних границах.
График напряжений по Мизесу, сохранённых только на верхних границах.

Оптимизируйте процесс моедлирования, используя способы выборочного сохранения результатов

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

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


Комментарии (0)

Оставить комментарий
Войти | Регистрация
Загрузка...
РУБРИКАТОР БЛОГА COMSOL
РУБРИКИ
ТЕГИ