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)