Нода «Адвекция сетки» (advect grid node)¶
Нода „Advect Grid“ перемещает значения вокселей по полю скоростей с течением времени, используя численное интегрирование. Эта операция называется адвекцией и обычно используется в системах симуляции жидкости, дыма и движения для изменения таких величин, как плотность, температура или цвет, в соответствии с полем потока.
Нода поддерживает несколько методов интегрирования которые обеспечивают компромисс между скоростью, точностью и численной стабильностью. Её можно использовать как для скалярных, так и для векторных сеток при условии, что размер вокселя будет одинаков во всём домене.
Концептуально адвекция эквивалентна отслеживанию каждого вокселя в обратном направлении через поле скоростей с небольшим временным шагом, сэмплингу значения сетки из предыдущего положения и присвоению этого значения текущему вокселю.
Входы (inputs)¶
- Сетка (grid)
Входная сетка, которая будет подвергнута адвекции. Должна иметь равномерный масштаб вокселей.
- Cкорость (velocity)
Векторная сетка определяет направление и величину потока в каждом вокселе. Поле „скорости“ определяет, как значения сетки будут переноситься в пространстве.
- Временной шаг (time step)
Временной шаг, используемый для адвекции, в секундах. Более высокие значения приводят к более быстрому движению, но могут снижать точность или стабильность.
- Метод интеграции (integration scheme)
Метод численного интегрирования, используемый для отслеживания положений вокселей в поле скоростей:
- Полулагранжевый (semi-lagrangian):
Полулагранжево интегрирование первого порядка. Является самым быстрым и стабильным методом, но вносит заметную численную диффузию (размытие).
- Средняя точка (midpoint):
Интегрирование по средней точке второго порядка. В большинстве случаев обеспечивает хороший баланс между скоростью и точностью.
- Рунге-Кутта 3 (Runge-Kutta 3):
Интеграция Рунге-Кутты третьего порядка. Обеспечивает более высокую точность при умеренных вычислительных затратах.
- Рунге-Кутта 4 (Runge-Kutta 4):
Интеграция Рунге-Кутты четвёртого порядка. Одношаговый метод с наивысшей точностью, идеально подходит для детальных симуляций, но вычисления выполняются медленнее.
- МакКормак (MacCormack):
Метод МакКормака с неявным контролем диффузии. Уменьшает численное рассе́яние, сохраняя при этом устойчивость.
- BFECC:
Метод компенсации и исправления ошибок в прямом и обратном направлении. Усовершенствованный метод, минимизирующий рассе́яние и диффузию, сохраняя более чёткие контуры.
- Ограничитель (limiter)
Методика ограничения, используемая для уменьшения артефактов пере- или недорегулирования, возникающих в схемах адвекции высокого порядка:
- Нет* (none):
Ограничения не применяются. Самый быстрый метод, но может приводить к появлению артефактов в областях с резкими изменениями значения.
- Ограничение (clamp):
Ограничивает значения в пределах исходного диапазона, предотвращая выход значений за пределы или их занижение, сохраняя при этом стабильность.
- Сбросить изменения* (revert):
В случаях, когда требуется ограничение, возвращается к интегрированию 1-го порядка. Более консервативно и стабильно, чем применение только ограничения.
Свойства (properties)¶
- Тип данных (data type)
Тип данных, хранящихся в сетке (например, Float, Integer, Vector). Определяет тип переносимого поля.
Выходы (outputs)¶
- Сетка (grid)
Результирующая сетка после адвекции. Каждое значение вокселя перенесено в соответствии с заданным полем скоростей и методом интегрирования. Результат представляет собой состояние сетки после истечения заданного временного шага.