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

Bettina Schieche 29/01/2014
Share this on Facebook Share this on Twitter Share this on LinkedIn

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

Важность интегралов

В COMSOL используется метод конечных элементов, который преобразует описывающее некоторый процесс уравнение в частных производных в интегральное уравнение — другими словами, в слабую форму. Взглянув на среду COMSOL более пристально, вы поймете, почему множество граничных условий формулируются через интегралы. В качестве соответствующих примеров можно привести условия Total heat flux (Общий тепловой поток) или Floating potential (Свободный потенциал). Вычисление интегралов также играет ключевую роль в процессе постобработки результатов, поскольку COMSOL рассчитывает большое количество вспомогательных величин через интегралы, например энергию электрического поля, скорость потока или общий тепловой поток. Разумеется, пользователи вольны использовать интегрирование в COMSOL в своих целях, и в этой статье мы объясним вам, как.

Вычисление интегралов посредством вспомогательных величин

Интеграл общего вида имеет форму

\int_{t_0}^{t_1}\int_{\Omega}F(u)\ \mathrm{d A} \mathrm{d} t

где [t_0,t_1] — это временной интервал, \Omega — это пространственная область, а F(u) — это произвольное выражение, включающее зависимую переменную u и произвольные функции от нее, в том числе производные по пространству, времени, а также любой другой величине.

Наиболее удобный способ получения интегралов — использование узла Derived Values (Вспомогательные величины) в разделе Results (Результаты) ленты Ribbon (или дерева модели в том случае, если ваш компьютер работает не под управлением ОС Windows®).
How to add Derived Values Обзор методов вычисления интегралов по времени и пространству
Как добавить объемные, поверхностные или линейные интегралы в качестве вспомогательных величин

Вы можете обратиться к любому доступному решению, выбрав соответствующий набор данных. В поле Expression (Выражение) вводится подынтегральная функция, включающая зависимые или производные переменные. При моделировании нестационарных процессов пространственный интеграл вычисляется на каждом временном шаге. Другой способ вы найдете в окне Settings (Настройки) узла Data Series Operations (Операции с рядами данных), в котором можно выбрать вариант Integration (Интегрирование) для временной области. Таким образом можно вычислять пространственно-временные интегралы.
Surface Integration settings window Обзор методов вычисления интегралов по времени и пространству
Пример настроек вычисления интегралов по поверхности с дополнительным вычислением интеграла по времени в узле Data Series Operations (Операции с рядами данных).

Оператор Average (Среднее значение) — еще одна вспомогательная величина, связанная с вычислением интегралов. Оператор вычисляет интеграл, деленный на объем, площадь или длину исследуемой области. Оператор Average (Среднее значение) в узле Data Series Operations (Операции с рядами данных) также вводит деление на продолжительность временного диапазона. Операторы узла Вспомогательные величины (Derived Values) — важный инструмент, однако их можно использовать только во время постобработки, а значит с их помощью можно рассчитать далеко не любой интеграл. Именно поэтому в COMSOL представлены более мощные и гибкие инструменты для вычисления интегралов. Мы продемонстрируем их работу на представленной ниже модели.

Вычисление пространственного и временного интегралов для учебной модели теплопередачи

Рассмотрим простую модель теплопередачи: двумерный единичный квадрат из алюминия в (x,y)-плоскости. Температура верхней и правой сторон постоянна и равна комнатной (293.15 K), в то время как для левой и нижней границы задан общий входящий тепловой поток, составляющий 5 000 W/m^2. Стационарное и нестационарное решения после интервала в 100 секунд представлены на иллюстрациях ниже.

Stationary solution Обзор методов вычисления интегралов по времени и пространству
Стационарное решение, нажмите на изображение для увеличения.
Transient solution Обзор методов вычисления интегралов по времени и пространству
Нестационарное решение после 100 сек, нажмите на изображение для увеличения.

Вычисление пространственного интеграла с использованием операторов узла Component Coupling

Операторы узла Component Coupling (Сопряжение компонентов) используются в тех случаях, когда, например, в одном выражении объединяются несколько интегралов, или интегралы требуются в процессе вычислений, или требуется множество контурных интегралов. Операторы данного узла определяются в разделе Definitions (Определения). На этом этапе операторы пока не имеют значений. Указываются только их названия и выборки областей.

Adding Component Coupling Operators Обзор методов вычисления интегралов по времени и пространству
Как добавить операторы узла Component Coupling для дальнейшего использования

В нашем примере мы прежде всего хотим вычислить пространственный интеграл стационарной температуры, равный

\int_{\Omega}T(x,y)\ \mathrm{d}x\mathrm{d}y = 301.65

В пакете COMSOL используется оператор вычисления интеграла, по умолчанию имеющий название intop1.

Integration operator settings window Обзор методов вычисления интегралов по времени и пространству
Окно настроек оператора вычисления интеграла.
Evaluating the Integration operator Обзор методов вычисления интегралов по времени и пространству
Запуск расчета оператора вычисления интеграла.

На следующем шаге мы покажем, как оператор вычисления интеграла может использоваться внутри модели. Мы могли бы, например, выяснить, какая нагревательная мощность потребуется для получения средней температуры 303.15 К, то есть температуры, на 10 К превышающей температуру окружающей среды. Прежде всего нам необходимо вычислить разницу между требуемым и действительным средними значениями. Среднее значение вычисляется путем деления интеграла от T на интеграл от постоянной функции 1, который равен площади области. К счастью, вычисления подобного вида легко выполнить с помощью представленного в COMSOL оператора Average (Среднее значение). По умолчанию данный оператор носит название aveop1. (Обратите внимание, что среднее значение для области в нашем примере совпадает с интегралом. Это связано с тем, что область имеет единичную площадь.) Соответствующая разность равна

303.15-\int_{\Omega}T(x,y)\mathrm{d} x\mathrm{d} y = 1.50

Далее нам необходимо найти значение General heat flux (Общий тепловой поток) на левой и нижней границах, при котором была бы достигнута требуемая средняя температура. Для этого мы введем дополнительную степень свободы под названием q_hot и дополнительное ограничение в качестве глобального уравнения. Общий входящий тепловой поток (General inward heat flux) заменяется q_hot.

Adding an additonal degree of freedom and a global equation Обзор методов вычисления интегралов по времени и пространству
Как добавить дополнительную степень свободы и глобальное уравнение, чтобы достичь средней температуры, равной 303.15 K.

Решение данной сопряженной системы с помощью стационарного исследования дает значение q_{hot}=5 881.30 W/m^2. Полученное значение необходимо задать в качестве граничного условия для общего входящего теплового потока, чтобы средняя температура в рассматриваемой области стала равна 303.15 К.

Вычисление неопределенного интеграла посредством взаимосвязи

В своих обращениях в службу поддержки пользователи часто задают один и тот же вопрос: как рассчитать неопределенный пространственный интеграл? Следующий пример взаимосвязей при вычислении интеграла отвечает на этот вопрос. Нахождение неопределенного интеграла — операция, обратная дифференцированию. Неопределенный интеграл позволяет вычислять площади произвольных областей, ограниченных графиками функций. Одна из самых важных прикладных задач — вычисление вероятностей в статистическом анализе. Для того чтобы это продемонстрировать, мы зададим y=0 и обозначим неопределенный интеграл от T(x,0) как u(x). Это значит, что \frac{\partial u}{\partial x}=T(x,0). Тогда неопределенный интеграл имеет вид

u(\bar x) = \int_0^{\bar x}T(x,0)\mathrm{d} x

Здесь мы используем \bar x, чтобы отличать переменную интегрирования от внешней переменной. В отличие от представленных выше интегралов, результатом интегрирования является функция, а не скалярная величина. Нам необходимо указать, что для каждого значения \bar x\in[0,1] соответствующее значение u(\bar x) вычисляется при помощи интеграла. К счастью, в среде COMSOL это можно легко сделать всего за три шага. Во-первых, потребуется логическое выражение для переписывания интеграла в виде

u(\bar x) = \int_0^1T(x,0)\cdot(x\leq\bar x)\ \mathrm{d} x

Во-вторых, нам понадобится оператор вычисления интеграла, который будет действовать на нижней границе области из примера. Давайте обозначим его как intop2. В-третьих, мы должны отличать переменную интегрирования от внешней переменной. Принятые обозначения для такого случая: x называется источником (source), а \bar xточкой назначения (destination). Когда используется оператор взаимосвязи для вычисления интеграла, нам доступен встроенный оператор dest, который обозначает, что соответствующее выражение не относится к переменным интегрирования. Точнее, это значит, что в COMSOL \bar x=dest(x). Объединив логическое выражение с оператором dest, мы получим выражение вида T*(x<=dest(x)), которое является именно тем входным выражением, которое требуется для intop2. Объединив все вместе, мы можем вычислить неопределенный интеграл, воспользовавшись intop2(T*(x<=dest(x))), который можно проиллюстрировать следующим графиком:

Plot of the antiderivative Обзор методов вычисления интегралов по времени и пространству
Как построить график неопределенного интеграла с помощью взаимосвязи, оператора dest и логического выражения.

В пакете COMSOL представлены два других оператора взаимосвязи для вычисления интеграла, а именно общая проекция (general projection) и линейная проекция (linear projection). Эти операторы можно использовать для получения множества контурных интегралов в любом направлении в области. Другими словами, вычисление интеграла производится только вдоль одного измерения. В результате мы получаем функцию размерности на единицу меньше, чем размерность области. Для двухмерного примера результатом будет одномерная функция, которая может быть рассчитана на любой границе. Более подробная информация об использовании данных операторов будет представлена в одной из следующих публикаций в нашем блоге.

Вычисление пространственного интеграла посредством дополнительного интерфейса физики

Наиболее гибким способом вычисления пространственных интегралов является добавление дополнительного интерфейса PDE (Дифференциальные уравнения в частных производных). Давайте вспомним пример с неопределенным интегралом и предположим, что мы хотим вычислить неопределенный интеграл не только для y=0. Данная задача может быть сформулирована в виде дифференциального уравнения в частных производных

\frac{\partial u}{\partial x}=T(x,y)

с граничным условием типа Дирихле u=0 на левой границе. Наиболее простым интерфейсом для работы с данным уравнением является интерфейс Coefficient Form PDE (Дифференциальное уравнение в частных производных, коэффициентная форма записи), который потребует следующих настроек:

PDE Interface Обзор методов вычисления интегралов по времени и пространству
Как использовать дополнительный интерфейс физики для вычисления пространственного интеграла.

Зависимая переменная u представляет собой неопределенный интеграл по x и доступна при вычислениях и постобработке. Помимо гибкости, дополнительным преимуществом данного способа является точность, так как интеграл рассчитывается не с вспомогательными величинами, а в процессе вычислений и внутренней оценки погрешности.

Вычисление временного интеграла посредством встроенных операторов

Мы уже упомянули узел Data Series Operations (Операции с рядами данных), который можно использовать для вычисления интеграла по времени. Другой крайне полезный способ вычисления интеграла по времени обеспечивается встроенными операторами timeint и timeavg для вычисления интеграла или среднего значения по времени соответственно. Данные инструменты доступны при постобработке результатов, используются для вычисления интеграла от любого нестационарного выражения на заданном временном интервале. В нашем примере мы рассчитаем среднее значение температуры в диапазоне от 90 до 100 секунд, то есть:

\frac{1}{10}\int_{90}^{100}T(x,y,t)\ \mathrm{d} t

На графике скалярного поля ниже представлен результирующий интеграл, являющийся пространственной функцией переменных (x,y):

Time integration operator timeavg Обзор методов вычисления интегралов по времени и пространству
Как использовать встроенный оператор timeavg для вычисления интеграла по времени.

Схожие операторы существуют для вычисления интегралов на сферических объектах, а именно ballint, circint, diskint и sphint.

Вычисление временного интеграла посредством дополнительного интерфейса физики

В случае если в модели потребуются временные интегралы, вам будет необходимо задать их как дополнительные зависимые переменные. Аналогично представленному выше примеру с интерфейсом Coefficient Form PDE (Дифференциальное уравнение в частных производных в форме коэффициентов), это можно сделать, добавив интерфейс ODE (Обыкновенное дифференциальное уравнение) из раздела Mathematics (Математика). Предположим, например, что на каждом временном шаге требуется вычислять интеграл от величины общего теплового потока на промежутке от старта до текущего момента, который показывает накопленную энергию. Переменная для общего теплового потока рассчитывается в COMSOL автоматически и называется ht.tfluxMag. Интеграл может быть вычислен как дополнительная зависимая переменная с помощью интерфейса Distributed ODE (Распределенное обыкновенное дифференциальное уравнение), который является подузлом интерфейса Domain ODEs and DAEs (Обыкновенные дифференциальные и дифференциальные алгебраические уравнения в области). Правой частью для обыкновенных дифференциальных уравнений в данной области является подынтегральная функция, как представлено на иллюстрации ниже.

Temporal integration Обзор методов вычисления интегралов по времени и пространству
Как использовать дополнительный интерфейс физики для вычисления временного интеграла.

В чем польза от подобных вычислений? Полученный интеграл можно повторно использовать в других интерфейсах физик, вычисления в которых могут зависеть от накопленной в системе энергии. Более того, данный метод теперь доступен для всех видов постобработки, что, несомненно, удобнее и быстрее использования встроенных операторов. Давайте взглянем, например, на модель Carbon Deposition in Hetereogeneous Catalysis (Образование сажевых отложений при гетерогенном катализе), в которой обыкновенные дифференциальные уравнения в области используются для вычисления пористости катализатора при наличии химических реакций в виде нестационарной полевой переменной.

Вычисление интеграла от аналитических функций и выражений

До сих пор мы демонстрировали, каким образом вычислять интеграл от искомых переменных с помощью вычислений или при постобработке. Пока мы не касались интегралов аналитических функций или выражений. Для этой операции в среде COMSOL представлен встроенный оператор integrate(expression, integration variable, lower bound, upper bound).

Выражение может представлять собой любую одномерную функцию, например sin(x). При этом допускается включение дополнительных переменных, например sin(x*y). Второй параметр определяет, по какой переменной вычисляется интеграл. Например, integrate(sin(x*y),y,0,1) выдает функцию переменной x, потому что интегрирование выполняется только по переменной y. Обратите внимание, что данный оператор также может использоваться для работы с аналитическими функциями, которые необходимо задать в узле Definitions (Определения) текущего компонента.

Adding an analytic function Обзор методов вычисления интегралов по времени и пространству
Как добавить аналитическую функцию.
Integrating over an analytic function Обзор методов вычисления интегралов по времени и пространству
Как вычислить интеграл от аналитической функции.

Материалы для дальнейшего изучения


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

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

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


Теги

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