Re: Линия тока
- From
- Sergey Andrianov (2:5020/1507.400)
- To
- Maxim Balagansky
- Date
- 2002-09-20T23:26:02Z
- Area
- RU.ALGORITHMS
Здравствуй, Maxim!
Однажды 20-Sep-02 в 08:54 Maxim Balagansky (2:5001/27.5)
написал All по поводу
-=- Линия тока -=-
MB> Есть трехмерное поле скоростей (U,V,W). Требуется построить линию тока из
MB> произвольной точки объема, как это умеет делать TecPlot. Единственное, что
MB> я могу придумать это такой алгоритм:
MB> 1) Берем произвольную точку объема $x^0=(x_1^0,x_2^0,x_3^0)$
MB> 2) Вычисляем вектор скорости $\bar u=(u,v,w)$ в этой точке
MB> 3) Следующую точку кривой получаем
MB> $x_1^1=x_1^0+u*h$
MB> $x_2^1=x_2^0+v*h$
MB> $x_3^1=x_3^0+w*h$, где h -+- заданный шаг
MB> 4) K пункту 2
MB> Есть одно слабое место в данном алгоритме: пункт 2) :).
На самом деле слабое место совсем не там.
Представь на минутку, что твое поле - не что иное, как вращающееся вокруг оси твердое тело. В этом случае линии тока будут окружностями с центром на оси вращения. У тебя же вместо окружностей получатся раскручивающиеся спирали.
MB> Kак мне расчитать
MB> скорости в произвольной точке, если заданы сеточные данные? Очевидно надо
MB> как-то интерполировать, вот только каким способом? Ведь u,v,w функции трех
MB> (!!!) переменных.
Простейший случай - трилинейная интерполяция. По крайней мере, если поле полученно численно при помощи схемы первого порядка, то это же и наилучший выриант. При численном решении с использованием схемы более высокого порядка, лучше бы и интерполяционный многочлен взять порядком повыше.
MB> А может есть способ и попроще?
Есть посложнее, но устраняющие указанный выше недостаток.
1. Использование более высоких производных (ты используешь только скорости, т.е. первые производные по времени, но можно взять ускорения и т. д.)
2. Вычислять скорость итерационно: найти точку, куда указывает вектор, вычисленный по твоим формулам, найти вектор в этой точке, взять среднее, найти новую конечную точку и т. д...
MB> ЗЫЖ TecPlot меня вполне устраивает, просто это дело принципа. Я еще не
MB> зная о TecPlot'е пытался написать свою программу. Уже не могу
MB> остановиться... :)
Поле для поиска здесь довольно обширно, так что дерзай :).
До свидания, в 23:16 MSK
Sergey
---
* Origin: Sergiev Posad (2:5020/1507.400)