Редактор формул от А до Я

С помощью формул во FlowVision можно задать любую переменную: от вектора гравитации до закона движения подвижного тела. Для этого мы используем Редактор формул. Он умеет вычислять составные функции, задавать физические законы изменения переменных, а из специального - с помощью Редактора формул можно  задавать уровень адаптации расчётной сетки в зависимости от номера шага (и многое другое!). 

В этой статье мы познакомим вас с этим функционалом, который способен существенно упростить жизнь пользователю.

Во FlowVision задать величину перменной можно несколькими способами, а именно с помощью:

  • константы;
  • формулы;
  • таблицы.

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

Мы рассмотрим второй способ задания величины переменной - с помощью формулы. 

Возможности редактора формул

Редактор формул - это компонента Пре-Постпроцессора, с помощью которого во FlowVision осуществляется работа с формулами. Формулами можно задавать значения для переменных из Свойств веществ, Граничных условий, Начальных условий, Модификаторов, Пользовательских переменных и т.д. В качестве эксперимента Вы можете открыть проект FlowVision и пробежаться по дереву проекта. Окажется, что формулами можно задавать практически всё – от вектора гравитации до закона движения Подвижного тела.

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

Арсенал Редактора формул

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

ПЕРЕМЕННЫЕ И КОНСТАНТЫ

При конструировании формул могут быть использованы переменные нескольких типов (более подробно это описано в документации). В окне редактора формул Переменные и константы содержится шесть вкладок. 

  • ВСЕ: в этой вкладке собраны все доступные для использования переменные.

  • ФИЗИЧЕСКИЕ: переменные, характеризующие физические процессы. Например, скорость, давление, температура и т.д. (полный список можно найти в документации). Обратите внимание, что помимо Общих переменных (вычисляются во всех фазах) есть переменные, относящиеся только к определенной фазе. 

  • ИНТЕГРАЛЬНЫЕ: это характеристики и их интегральные величины. Помимо пользовательских характеристик тут есть и встроенные характеристики - с помощью них очень удобно задавать изменение величины переменной или уровень адаптации в зависимости от текущего шага или времени. Список всех доступных интегральных величин вы найдёте в документации.

  • ПОЛЬЗОВАТЕЛЬСКИЕ: вкладка содержит переменные, которые были созданы пользователем ранее – Локальные, Глобальные, Постоянные. Более подробно про данный тип переменных можно прочитать в нашей документации.

  • ССЫЛКИ - это  имена переменных в формуле. После присвоения переменной имени, оно будет отображаться в этой вкладке. Имя переменной сохраняется только в рамках одного окна Редактора формул. Это означает, что открыв окно Редактора формул для задания другого параметра, имя для той же самой переменной нужно будет задавать заново.

  • КОНСТАНТЫ: здесь вы найдёте список общепринятых инженерных констант. Например, число π, скорость света в вакууме, постоянная Стефана-Больцмана, постоянная Планка и другие.

Определившись с нужными нам переменными, перейдем к рассмотрению способов, как эти переменные мы можем обрабатывать.

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

Во-вторых, чтобы получилась формула, к переменным нужно применить операции.

ОПЕРАЦИИ

Окно Операции содержит вкладки с различными наборами функций. Рассмотрим, что лежит в каждой из них (либо прочитайте об этом в документации):

  • Арифметические
    oper1  
    • основные функции калькулятора (+,-,*,/, модуль числа)
    • скалярное и векторное произведение для векторов
    • функции для работы с дробными числами (целая и дробная часть, округления)
    • функция, позволяющая задавать линейную интерполяцию
    • функция, позволяющая задавать ограничения для переменной
    • функция, позволяющая получать случайное значение в заданном интервале чисел
  • Экспоненциальные
    exponent vs logarithm
    • Функции, связанные с возведением числа в степень (степень, экспонента, корень)
    • Различные вида функции логарифма (по основанию, десятичный, натуральный)
  • Тригонометрические
    oper3
    • Все основные прямые и обратные тригонометрические функции (по шесть функций)
  • Гиперболические
    oper4
    • Все основные прямые и обратные гиперболические функции (по шесть функций)
  • Логические
    oper5
    • Логические символы (больше/меньше, равно/не равно, не/и/или)
    • Логические функции (условное ветвление if)
  • Статистические
    oper6
    • Функции максимума и минимума (выбор макс. и мин. значения из набора чисел)
    • Функции суммы и произведения (суммирование и перемножение заданных чисел)
  • Внешние
    oper7
    • Функция градиента и ротора
    • Получение макс. и мин. значения переменной во всей области
    • Игнорирование гран.условия (используется, когда нужно получить значение переменной из центра пристенной ячейки, а не с самого граничного условия)
  • Специальные (для работы с векторами)
    • Задание вектора
    • Вычисление длины вектора
    • Нормализация вектора
    • Вычисление X,Y,Z компоненты вектора
    • Отражение вектора 

Полезные примеры. Часто используемые формулы

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

Вместо относительного давления или температуры контролировать абсолютные их значения

Почему это важно делать советуем прочитать в статье про опорные величины. При задании визуализации слоёв переменные Температура и Давление будут отображаться в относительных величинах - это разность между абсолютной  и опорной величиной. Чтобы в шкале слоя отображась абсолютная величина создайте пользовательскую переменную, и задайте формулу: 

В Редакторе формул в окне Переменные и константы  Все > Общие или Все > Фаза N найдем переменную Температура, дважды кликнем мышью.  Аналогично поступим со второй переменной – Интегральные > Встроенные характеристики > Опорная температура.

Обратите внимание, что в формуле можно дать комментарии, поставив в начале //.

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

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

Бывает, что если в процессе расчёта сразу задать требуемое значение переменной, то решение становится нестабильным. В этом случае задавать переменную можно плавно – в зависимости от шага или времени. Также задавать зависимость от шага удобно использовать при таком важном этапе проектной работы, как исследование сходимости по сетке. К примеру, вначале адаптация отключена или её уровень невысок (максимальный уровень = 0-1). А затем расчётчик постепенно начинает мельчить сетку, добиваясь неизменности результатов при увеличении числа контрольных объемов. Вместо того чтобы делать это вручную, можно просто задать формулу, причем разными способами. 

Либо так:

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

ДРУГИЕ ПОЛЕЗНЫЕ ПРИМЕРЫ
  • Задать зависимость переменной от координат. Можно задать неравномерное по диаметру или по длине трубы тепловыделение, или распределение электрического потенциала на пластине (Учебник FlowVision – Взаимодействие двух диэлектриков);
  • Задать свойства для веществ в зависимости от температуры и давления;
  • Задать периодические процессы во времени (статья в нашем блоге)
  • Задать зависимость изменения одних переменных от других, к прмиеру - скорость вращения одного колеса компрессора задается от скорости второго колеса с учетом зубьев;
  • Задать плавное изменение переменных, чтобы избежать развала в начале рассчета (статья в нашем блоге) ;
  • Задать «зацикленные» ГУ – связать вход и выход (статья в нашем блоге);
  • Получить красивую и информативную визуализацию, к примеру, скачков уплотнения. Для этого используется переменная градиента плотности:

Также эту переменную часто используют при задании адаптации по условию.

  • Получения интегральных значений по пользовательским формулам, например Сх, Су;
  • Использование пользовательских констант для ГУ, НУ, Модификаторов. Например, задать переменную один раз для нескольких ГУ и/или НУ пользовательской константой и далее ссылаться на эту константу с помощью Редактора формул.
Небольшое отступление про пользовательские переменные

Чаще всего Редактор формул используются именно при задании пользовательских переменных - Локальных, Глобальных и Констант. Локальные пользовательские переменные вычисляются в каждой ячейки расчётной области, а глобальные осредняются во всём пространстве. Именно поэтому при задании глобальных пользовательских переменных (именно их можно выводить в окно мониторинга) нельзя использовать ранее созданные Локальные переменные.

ЗАКЛЮЧЕНИЕ

Очень сложно описать в одной статье все возможнности применения Редактора формул, так как он охватывает весь функционал FlowVision. Поэтому если у вас возникнут какие-то конкретные вопросы, то пишите нам в тех.поддержку (Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.), мы вам ответим, а может ещё и напишем новую статью или дополним текущую.

Об авторе
Author: Сергей Степанов
Инженер технической поддержки
Экспертиза в областях: CFD, теплофизика.