С помощью формул во FlowVision можно задать любую переменную: от вектора гравитации до закона движения подвижного тела. Для этого мы используем Редактор формул. Он умеет вычислять составные функции, задавать физические законы изменения переменных, а из специального - с помощью Редактора формул можно задавать уровень адаптации расчётной сетки в зависимости от номера шага (и многое другое!).
В этой статье мы познакомим вас с этим функционалом, который способен существенно упростить жизнь пользователю.
Во FlowVision задать величину переменной можно несколькими способами, а именно с помощью:
- константы;
- формулы;
- таблицы.
Если переменная задаётся как константа, то её значение постоянно в процессе расчёта и строго равно числу, указанному пользователем. В случае использования формулы, величина переменной считается как сложная функция по заданному закону. А при табличном задании переменной, её величина находится путём линейной интерполяции введённых табличных данных.
Мы рассмотрим второй способ задания величины переменной - с помощью формулы.
Возможности редактора формул
Редактор формул - это компонента Пре-Постпроцессора, с помощью которого во FlowVision осуществляется работа с формулами. Формулами можно задавать значения для переменных из Свойств веществ, Граничных условий, Начальных условий, Модификаторов, Пользовательских переменных и т.д. В качестве эксперимента Вы можете открыть проект FlowVision и пробежаться по дереву проекта. Окажется, что формулами можно задавать практически всё – от вектора гравитации до закона движения Подвижного тела.
На самом деле, Редактор формул позволяет не только вычислять значения переменных по заданным формулам, но и предоставляет широкий набор уже встроенных и готовых к использованию функций. Это набор превосходит базовые возможности инженерного калькулятора и содержит более сложные и актуальные для CFD-инженера опции. Также в редакторе формул можно программировать свои нетривиальные функции, используя широкий спектр операций, в том числе логических, статистических и внешних.
Арсенал Редактора формул
Чтобы создать зависимость, по которой вычисляется величина переменной, необходимо 1) выбрать переменные, из которых состоит функция; 2) связать их операциями. Разберём подробно каждый из этих шагов.
ПЕРЕМЕННЫЕ И КОНСТАНТЫ
При конструировании формул могут быть использованы переменные нескольких типов (более подробно это описано в документации). В окне редактора формул Переменные и константы содержится шесть вкладок.
-
ВСЕ: в этой вкладке собраны все доступные для использования переменные.
-
ФИЗИЧЕСКИЕ: переменные, характеризующие физические процессы. Например, скорость, давление, температура и т.д. (полный список можно найти в документации). Обратите внимание, что помимо Общих переменных (вычисляются во всех фазах) есть переменные, относящиеся только к определенной фазе.
-
ИНТЕГРАЛЬНЫЕ: это характеристики и их интегральные величины. Помимо пользовательских характеристик тут есть и встроенные характеристики - с помощью них очень удобно задавать изменение величины переменной или уровень адаптации в зависимости от текущего шага или времени. Список всех доступных интегральных величин вы найдёте в документации.
-
ПОЛЬЗОВАТЕЛЬСКИЕ: вкладка содержит переменные, которые были созданы пользователем ранее – Локальные, Глобальные, Постоянные. Более подробно про данный тип переменных можно прочитать в нашей документации.
-
ССЫЛКИ - это имена переменных в формуле. После присвоения переменной имени, оно будет отображаться в этой вкладке. Имя переменной сохраняется только в рамках одного окна Редактора формул. Это означает, что открыв окно Редактора формул для задания другого параметра, имя для той же самой переменной нужно будет задавать заново.
-
КОНСТАНТЫ: здесь вы найдёте список общепринятых инженерных констант. Например, число π, скорость света в вакууме, постоянная Стефана-Больцмана, постоянная Планка и другие.
Определившись с нужными нам переменными, перейдем к рассмотрению способов, как эти переменные мы можем обрабатывать.
Во-первых, как мы уже сказали, чтобы использовать переменную в своих формулах, нужно задать ей имя, по которому она будет вызываться. Для этого просто дважды кликните мышкой по нужной переменной и Редактор формул автоматически предложит Вам вариант для названия этой формулы и вы вправе его изменить используя латиницу. После добавления имени оно появится во вкладке Ссылки.
Во-вторых, чтобы получилась формула, к переменным нужно применить операции.
ОПЕРАЦИИ
Окно Операции содержит вкладки с различными наборами функций. Рассмотрим, что лежит в каждой из них (либо прочитайте об этом в документации):
-
Арифметические
- основные функции калькулятора (+,-,*,/, модуль числа)
- скалярное и векторное произведение для векторов
- функции для работы с дробными числами (целая и дробная часть, округления)
- функция, позволяющая задавать линейную интерполяцию
- функция, позволяющая задавать ограничения для переменной
- функция, позволяющая получать случайное значение в заданном интервале чисел
-
Экспоненциальные
- Функции, связанные с возведением числа в степень (степень, экспонента, корень)
- Различные вида функции логарифма (по основанию, десятичный, натуральный)
-
Тригонометрические
- Все основные прямые и обратные тригонометрические функции (по шесть функций)
-
Гиперболические
- Все основные прямые и обратные гиперболические функции (по шесть функций)
-
Логические
- Логические символы (больше/меньше, равно/не равно, не/и/или)
- Логические функции (условное ветвление if)
-
Статистические
- Функции максимума и минимума (выбор макс. и мин. значения из набора чисел)
- Функции суммы и произведения (суммирование и перемножение заданных чисел)
-
Внешние
- Функция градиента и ротора
- Получение макс. и мин. значения переменной во всей области
- Игнорирование гран. условия (используется, когда нужно получить значение переменной из центра пристенной ячейки, а не с самого граничного условия)
-
Специальные (для работы с векторами)
- Задание вектора
- Вычисление длины вектора
- Нормализация вектора
- Вычисление X,Y,Z компоненты вектора
- Отражение вектора
Полезные примеры. Часто используемые формулы
Конечно, с помощью формул Вы можете задать какую угодно сложную функцию для вычисления переменной. Но мы хотим рассказать про некоторые полезные приёмы, связанные с Редактором формул. Лидерами по важности применения в расчётах являются случаи, когда необходимо:
Вместо относительного давления или температуры контролировать абсолютные их значения
Почему это важно делать советуем прочитать в статье про опорные величины. При задании визуализации слоёв переменные Температура и Давление будут отображаться в относительных величинах - это разность между абсолютной и опорной величиной. Чтобы в шкале слоя отображать абсолютная величина создайте пользовательскую переменную, и задайте формулу:
В Редакторе формул в окне Переменные и константы Все > Общие или Все > Фаза N найдем переменную Температура, дважды кликнем мышью. Аналогично поступим со второй переменной – Интегральные > Встроенные характеристики > Опорная температура.
Обратите внимание, что в формуле можно дать комментарии, поставив в начале //.
После создания такой пользовательской переменной её можно будет использовать при вычислении Характеристик, построении слоёв, постпроцессинге и т.д.
Задать зависимость переменной от шага по времени или от текущего времени расчета
Бывает, что если в процессе расчёта сразу задать требуемое значение переменной, то решение становится нестабильным. В этом случае задавать переменную можно плавно – в зависимости от шага или времени. Также задавать зависимость от шага удобно использовать при таком важном этапе проектной работы, как исследование сходимости по сетке. К примеру, вначале адаптация отключена или её уровень невысок (максимальный уровень = 0-1). А затем расчётчик постепенно начинает мельчить сетку, добиваясь неизменности результатов при увеличении числа контрольных объемов. Вместо того чтобы делать это вручную, можно просто задать формулу, причем разными способами.
Либо так:
В обоих случаях задается увеличение уровня адаптации на 1 каждые 1500 шагов. В окно Мониторинга можно вывести контролируемые параметры и смотреть, как они изменяются в зависимости от уровня адаптации. Кстати, помимо формул для этой же задачи можно использовать таблицу – задать с её помощью переменную Максимальный уровень адаптации.
ДРУГИЕ ПОЛЕЗНЫЕ ПРИМЕРЫ
- Задать зависимость переменной от координат. Можно задать неравномерное по диаметру или по длине трубы тепловыделение, или распределение электрического потенциала на пластине (Учебник FlowVision – Взаимодействие двух диэлектриков);
- Задать свойства для веществ в зависимости от температуры и давления;
- Задать периодические процессы во времени (статья в нашем блоге)
- Задать зависимость изменения одних переменных от других, к примеру - скорость вращения одного колеса компрессора задается от скорости второго колеса с учетом зубьев;
- Задать плавное изменение переменных, чтобы избежать развала в начале расчёта (статья в нашем блоге) ;
- Задать «зацикленные» ГУ – связать вход и выход (статья в нашем блоге);
- Получить красивую и информативную визуализацию, к примеру, скачков уплотнения. Для этого используется переменная градиента плотности:
Также эту переменную часто используют при задании адаптации по условию.
- Получения интегральных значений по пользовательским формулам, например Сх, Су;
- Использование пользовательских констант для ГУ, НУ, Модификаторов. Например, задать переменную один раз для нескольких ГУ и/или НУ пользовательской константой и далее ссылаться на эту константу с помощью Редактора формул.
Небольшое отступление про пользовательские переменные
Чаще всего Редактор формул используются именно при задании пользовательских переменных - Локальных, Глобальных и Констант. Локальные пользовательские переменные вычисляются в каждой ячейки расчётной области, а глобальные усредняются во всём пространстве. Именно поэтому при задании глобальных пользовательских переменных (именно их можно выводить в окно мониторинга) нельзя использовать ранее созданные Локальные переменные.
ЗАКЛЮЧЕНИЕ
Очень сложно описать в одной статье все возможности применения Редактора формул, так как он охватывает весь функционал FlowVision. Поэтому если у вас возникнут какие-то конкретные вопросы, то пишите нам в тех. поддержку (support@flowvision.ru), мы вам ответим, а может ещё и напишем новую статью или дополним текущую.