Вы находитесь на странице: 1из 35

Институт проблем механики

Российской Академии Наук

С. Д. Алгазин

ЧИСЛЕННЫЕ АЛГОРИТМЫ КЛАССИЧЕСКОЙ


МАТФИЗИКИ.
XIII. Уравнения Навье-Стокса.

Препринт № 805

Москва 2006 г.
Аннотация.

Рассматривается задача об обтекании тела вращения под углом атаки


потоком вязкой несжимаемой жидкости, которая описывается уравнениями
Навье-Стокса. Для малых чисел Рейнольдса решения этих уравнений – гладкие
функции. Построен численный алгоритм без насыщения, который реагирует на
гладкость решения. Конкретные расчёты проводились для сетки из
900=10×10×9 и 700=10×10×7 узлов. Таким образом, в первом случае по
стандартной программе решалась система из 3600 нелинейных уравнений.
Сравнивались значения давления на теневой стороне тела вращения. Оказалось,
что доступны для численного исследования (на этой сетке) задачи с Re ~ 1. Для
больших чисел Рейнольдса необходимо увеличить число узлов сетки.

The abstract.

The problem about a flow of an axially symmetrical body under an angle of


attack a stream of viscous incompressible fluid which one is featured by the equations
of Navier-Stokes Is considered. For small Reynolds numbers of the solution of these
equations - smooth functions. The numerical algorithm without saturation which one
reacts to smooth finish of the solution is builted. Concrete calculations were spent for
a grid from 900=10×10×9 and 700=10×10×7 knots. Thus, in the maiden case under
the standard program the system from 3600 nonlinear equations was solved. Values of
pressure on the shadow leg of an axially symmetrical body were compared. It has
appeared, that are accessible to numerical examination (on this grid) problems with
Re ~1. For greater Reynolds numbers it is necessary to increment number of knots of
a grid.

Работа выполнена при финансовой поддержке Российского


фонда фундаментальных исследований. Проект № 05-01-00250.

055(02)2  Институт проблем механики РАН 2006

2
Введение.

В [1] рассмотрены уравнения Стокса. В настоящей работе эти результаты


обобщаются на уравнения Навье-Стокса. Рассматриваются полные нелинейные,
несжимаемые уравнения Навье-Стокса во внешности тела вращения, когда
вектор скорости потока направлен произвольно относительно оси вращения, т.е.
в общем случае задача трёхмерна. Литература, посвящённая уравнениям Навье-
Стокса, трудно обозрима. Наиболее близок к этой работе препринт Бабенко К.
И. и др.[2]. В нём р ассматривается двумерная задача об обтекании цилиндра
потоком вязкой несжимаемой жидкости. Граничные условия в бесконечности
сносятся на окружность большого диаметра и для решения, полученных в
результате дискретизации нелинейных уравнений, применяется метод
установления по времени. Отметим, что таким образом, при увеличении
радиуса внешней окружности R, нельзя добиться сходимости к решению
внешней задачи. Дело в том, что во внешности круга оператор Лапласа,
который входит в уравнения Навье-Стокса, имеет непрерывный спектр,
заполняющий интервал (- ∞ , 0 .) В расчетах конечно получается спектр
дискретный, но собственные значения соответствующей матрицы (матрицы
дискретного оператора Лапласа) имеют две точки сгущения 0 и - ∞ . Таким
образом, норма матрицы дискретного оператора Лапласа имеет большую
величину (также, как и норма обратной матрицы). В результате в пределе при
R→ ∞ получаем, что метод установления по времени неустойчив.
Наиболее распространённым методом решения уравнений Навье-Стокса
является метод конечных элементов. Из работ Российских авторов отметим
работы Пальцева Б. В. и др. [3-21]. Из иностранных работ отметим работы [22-
23]. Основной трудностью, возникающей при применении метода конечных
элементов, является решение полученной системы нелинейных уравнений
большого размера. Поэтому в настоящей работе применяется альтернативная
методу конечных элементов дискретизация – без насыщения [24]. Дело в том,
что при малых числах Рейнольдса решения уравнений Навье-Стокса – гладкие
функции, [23] и нужно суметь воспользоваться этим обстоятельством, т. е.
построить алгоритм, реагирующий на гладкость решения [24]. В результате
трёхмерная задача об обтекании тела вращения под углом атаки доступна для
численного исследования на сетке из 900 = 10×10×9 узлов. Полученная система
из 3600 нелинейных уравнений решается по стандартной программе.

1. Постановка задачи. Во внешности тела вращения Ω рассмотрим


полные стационарные уравнения Навье-Стокса, которые имеют вид [25]:

∂v1 ∂v1 ∂v1 1 ∂p


(1.1) v1 + v2 + v3 =− + ν∇ 2v1 ,
∂x1 ∂x2 ∂x3 ρ ∂x1

∂v 2 ∂v 2 ∂v 2 1 ∂p
(1.2) v1 + v2 + v3 =− + ν∇ 2 v 2 ,
∂x1 ∂x2 ∂x3 ρ ∂x2

3
∂v 3 ∂v 3 ∂v 3 1 ∂p
(1.3) v1 + v2 + v3 =− + ν∇ 2 v 3 ,
∂x1 ∂x2 ∂x3 ρ ∂x3

∂v1 ∂v 2 ∂v 3
(1.4) + + =0 .
∂x1 ∂x2 ∂x3

Здесь обозначения совпадают с общепризнанными: ( v1 , v 2 , v 3 ) – вектор


скорости, vi, i=1,2,3 – проекции вектора скорости на оси декартовой системы
координат (x1,x2,x3); ρ – плотность жидкости, p – давление, ν – вязкость; ∇ 2 -
оператор Лапласа.
К системе уравнений (1.1) – (1.4) нужно присоединить граничные
условия для vi, i=1,2,3 и давления p.
Введём безразмерные величины. Будем обозначать безразмерные
величины без черты сверху, а размерные с чертой:
x vi p − p∞
xi = i , v i = , p = , где La – характерный линейный размер, v∞ -
La v∞ ρv∞2
модуль скорости потока в бесконечности, p∞ - давление в бесконечности. Тогда
система уравнений (1.1) – (1.4) принимает вид:

∂v1 ∂v1 ∂v1 ∂p 1 2 1


(1.5) v1 + v2 + v3 =− + ∇v ,
∂x1 ∂x2 ∂x3 ∂x1 Re

∂v 2 ∂v 2 ∂v 2 ∂p 1 2 2
(1.6) v1 + v2 + v3 =− + ∇v ,
∂x1 ∂x2 ∂x3 ∂x2 Re

∂v 3 ∂v 3 ∂v 3 ∂p 1 2 3
(1.7) v1 + v2 + v3 =− + ∇v ,
∂x1 ∂x2 ∂x3 ∂x3 Re

∂v1 ∂v 2 ∂v 3
(1.8) + + = 0,
∂x1 ∂x2 ∂x3

1 ν
где = - безразмерный параметр, Re – число Рейнольдса.
Re La v∞
Таким образом, для определения параметров потока, вектора скорости (v1,
v2, v3) и давления р требуется найти решение системы уравнений (1.5) - (1.8),
удовлетворяющее следующим граничным условиям:

vi = 0, i = 1,2,3, vi = v∞i , i = 1,2,3, p ∞ = 0.


∂Ω ∞

Здесь Ω - рассматриваемое тело вращения вокруг оси х3; дΩ — его гра-


ница; v∞i (i = 1,2,3) − скорость жидкости в невозмущенном потоке (в
бесконечности).
Введем систему криволинейных координат (r, θ, φ), связанную с де-
картовыми координатами (х1,х2,х3) соотношениями
4
(1.9) x1=v(r,θ)cosφ, x2=v(r,θ)sinφ, x3=u(r, θ).

Обозначим G область, получаемую меридиональным сечением тела Ω, и


выберем функции и и v следующим образом. Пусть ψ=ψ(z), ψ=u+iv, z=r exp
(iθ) - конформное отображение круга |z| ≤ 1 на внешность области G, причем
центр круга переходит в бесконечно удаленную точку. Удобно считать (r, θ, φ)
сферическими координатами, тогда соотношения (1.9) задают отображение
шара единичного радиуса на внешность тела Ω.
Для эллипсоида вращения вокруг оси х3:
x12 x22 x32
+ + −1 = 0 ,
b2 b2 a 2
функции u и v известны в аналитическом виде (см. [26]). Поверхность шара
единичного радиуса переходит при отображении (1.9) в поверхность тела Ω.
Тогда краевые условия, заданные на дΩ, переносятся на поверхность шара, а
краевые условия, заданные в бесконечности, переносятся в центр шара.
Отметим, что при этом отображении внешняя нормаль к телу переходит во
внутреннею. Это важно для вычисления силы сопротивления (см. ниже).
Обычно при использовании криволинейных координат уравнения для
векторных величин записываются в проекциях на оси собственного базиса,
координатные векторы которого направлены по касательным к координатным
линиям. Этот базис зависит от координат точки пространства. В данном случае
такой подход неудобен, так как отображение (1.9) теряет однозначность на оси
х3 (если v = 0, то φ любое). Это вызывает появление особенностей в решении,
которые вызваны не существом дела, а «плохой» системой координат. Отметим,
что сферическая система координат обладает аналогичным «недостатком».
Выход из этого положения следующий: оставим в качестве искомых
функций проекции вектора скорости vi (i = 1,2,3) на оси декартовой системы
координат, а независимые переменные х1,х2,х3 заменим подстановкой (1.9) на r,
θ, φ. Тогда частные производные по декартовым координатам xi , i=1,2,3 –
выразятся через производные по r, θ и φ:

U(x1,x2,x3)=U(vcosφ,vsinφ,u)

 ∂U ∂U ∂U 1 ∂U
 = α cos ϕ + β cos ϕ − sin ϕ
 ∂x1 ∂r ∂θ v ∂ϕ
 ∂U ∂U ∂U 1 ∂U
(1.10)  = α sin ϕ + β sin ϕ + cos ϕ
 ∂x2 ∂r ∂θ v ∂ϕ
 ∂U rvθ′ ∂U rvr′ ∂U
 = 2 − 2
 ∂x3 w ∂r w ∂θ

α (r ,θ ) = −ruθ′ / w2 , ( w2 = uθ′2 + vθ′2 );


где
β (r ,θ ) = (1 + ruθ′ vr′ / w2 ) / vθ′ ;

В результате получаем:
5
(1.11)
rvθ′ ∂v1 3 rvr′ ∂v
1
(v α cos ϕ + v α sin ϕ + v 2 )
1 2 3
+ (v β cos ϕ + v β sin ϕ − v 2 )
1 2
+
w ∂r w ∂θ
1 1 ∂v1 ∂p ∂p 1 ∂p 1 2 1
+ (− sin ϕ v1 + cos ϕ v 2 ) + ( α cos ϕ + β cos ϕ − sin ϕ )= ∇v;
v v ∂ϕ ∂r ∂θ v ∂ϕ Re

(1.12)
rvθ′ ∂v 2 3 rvr′ ∂v
2
(v1α cos ϕ + v 2α sin ϕ + v 3 ) + ( v1
β cos ϕ + v 2
β sin ϕ − v ) +
w2 ∂r w2 ∂θ
1 1 ∂v 3 ∂p ∂p 1 ∂p 1 2 2
+ (− sin ϕv1 + cos ϕv 2 ) + ( α sin ϕ + β sin ϕ + cos ϕ )= ∇v ;
v v ∂ϕ ∂r ∂θ v ∂ϕ Re

rvθ′ ∂v 3 3 rvr′ ∂v
3
(v1α cos ϕ + v 2α sin ϕ + v 3 ) + ( v1
β cos ϕ + v 2
β sin ϕ − v ) +
w2 ∂r w2 ∂θ
(1.13)
1 1 ∂v 3 rv′ ∂p rvr′ ∂p 1 2 3
+ (− sin ϕv1 + cos ϕv 2 ) + ( θ2 − 2 )= ∇v;
v v ∂ϕ w ∂r w ∂θ Re

∂v1 ∂v1 1 ∂v1 ∂v 2 ∂v 2


α cos ϕ + β cos ϕ − sin ϕ + α sin ϕ + β sin ϕ +
∂r ∂θ v ∂ϕ ∂r ∂θ
(1.14)
1 ∂v 2 rv′ ∂v 3 rvr′ ∂v 3
+ cos ϕ + + θ2 − = 0.
v ∂ϕ w ∂r w2 ∂θ

Приведём соотношения (1.11) – (1.14) к однородным уравнениям по скорости:

vi =−(1 r )v∞i + v i , i = 1, 2,3;


 i
v= v= 0;
i
=r 0=r 1

(1.15)  ∂vi ∂v i
= −v∞i + ,i = 1, 2,3;
 ∂r ∂r

∆vi =∆v i − r (1 + r vr′ )v∞i .
 w2 v

Замена искомых функций vi на v€i (i = 1,2,3) по формуле (1.15) про-


изведена для того, чтобы сделать краевые условия для скорости однородными:
(1.16) v i |r=0 = v i |r=1 =0, i =1,2,3.
Это требуется для более удобной дискретизации лапласиана. Для давле-
ния имеем краевое условие
(1.17) p|r=0 =0.
Лапласиан от функций v i (i = 1,2,3) в переменных (r, θ, φ) принимает
вид:

6
r  ∂  ∂v i  ∂  v ∂v i  1 ∂ 2v i
(1.18) ∆v i =   rv  +   + 2 .
vw2 ∂ ∂  ∂θ  r ∂θ  v ∂ϕ
2
 r  r

Итак, требуется решить уравнения (1.11)-(1.15) в шаре единичного радиуса с


краевыми условиями (1.16), (1.17).

2. Дискретный лапласиан. Для дискретизации лапласиана (1.18) с


однородными краевыми условиями (1.16) применим методику, описанную в [1].
Таким образом, получаем дискретный лапласиан в виде h-матрицы:


l '

2
(2.1) H= Λ k ⊗ hk , L = 2l + 1.
L
k =0

Здесь штрих означает, что слагаемое при k=0 берется с коэффициентом


1/2; знак ⊗ кронекерово произведение матриц; h - матрица размера L × L с
элементами

2π (i − j )
hkij = cos k , (i, j = 1,2,..., L);
L
Λk матрица дискретного оператора, соответствующего дифференциальному
оператору

r  ∂  ∂Φ  ∂  v ∂Φ  k 2
(2.2)   rv  +   − 2 Φ , k = 0,1,..., l
vw2  ∂r  ∂r  ∂θ  r ∂θ  v

с краевыми условиями

(2.3) Ф|r=0 = Ф|r=1 =0.

Для дискретизации дифференциального оператора (2.2), (2.3) выберем по


θ сетку, состоящую из n узлов:
π (2ν − 1)π
θ ν = ( yν + 1), yν = cos ε ν , ε ν = , ν = 1,2,..., n,
2 2n
а также применим интерполяционную формулу


n
Tn ( x) gν 1
g (θ ) = , y= (2θ − π ),
(−1) ν −1
π
(2.4) ν =1 n ( y − yν )
sin ε ν
gν = g (θ ν ),ν = 1,2,..., n; Tn ( x) = cos (narccos( x)).

7
Первую и вторую производные по θ, входящие в соотношения (2.2), получим
дифференцированием интерполяционной формулы (2.4).
По r выберем сетку, состоящую из m узлов:

1 (2ν − 1)π
rν = ( zν + 1), zν = cos χν , χν = , ν = 1,2,..., m,
2 2m

а также применим интерполяционную формулу


m
Tm (r )(r − 1)rq k
(2.5) q (r ) = , qν = q (rν ), z = 2r − 1.
(−1)ν −1
ν =1 m (rν − 1)rν ( z − zν )
sin χν
Первую и вторую производные по r, входящие в выражение (2.2), найдем
дифференцированием интерполяционной формулы (2.5). Дифференцированием
интерполяционных формул (2.4), (2.5) получим значения производных по θ и r,
входящих в левую часть уравнения неразрывности (1.14).
Для дискретизации производных от давления по r используем интер-
поляционную формулу


m
Tm (r )rqν
(2.6) q(r ) = .
(−1)ν −1
ν =1 m rν ( z − zν )
sin χν
Величины, входящие в формулу (2.6), определены выше. Значения
первой производной от давления по r, входящие в левую часть соотношений
(1.11)-(1.13), получим дифференцированием интерполяционной формулы (2.6).
Для построения формулы численного дифференцирования по φ рас-
смотрим интерполяционную формулу


2l
2
s (ϕ ) = Dl (ϕ − ϕ k ) s k , L = 2l + 1, s k = s (ϕ k ),
L
k =0

(2.7) ϕ k = 2πk / L (k = 0,1,...,2l );


l

Dl (ϕ − ϕ k ) = 0,5 + cos j (ϕ − ϕ k ).
j =1

Значения производных по φ определим дифференцированием формулы


(2.7).
Для получения дискретных уравнений Навье-Стокса нужно в уравнениях (1.11)-
(1.14) заменить производные дискретными производными, найденными
дифференцированием соответствующих интерполяционных формул (2.4)-(2.7);
лапласиан заменяется на матрицу Н. Вместо функций v1, v2, v3 и р в дискретные
уравнения Стокса войдут значения этих функций в узлах сетки
(θν , rµ , ϕ k ),ν = 1,2,..., n; µ = 1,2,..., m; k = 0,1,...,2l. В результате имеем систему из
4тпL нелинейных уравнений. В явном виде система дискретных уравнений
8
выписывается ниже. Например, при т = п = 10, L = 9 порядок системы
уравнений 3600.
3. Дискретные уравнения Навье-Стокса.

Обозначим:

rvθ′
(3.1) A(1) = A(1) (v1 , v 2 , v 3 ) = v1α cos ϕ + v 2α sin ϕ + v 3 ;
w2

rvr′
(3.2) A( 2 ) = A( 2 ) (v1 , v 2 , v 3 ) = v1β cos ϕ + v 2 β sin ϕ − v 3 ;
w2

1 1
(3.3) A(3) = A(3) (v1 , v 2 , v 3 ) = − sin ϕ v1 + cosϕ v 2 .
v v
Где α и w2 определены в (1.10). Делаем замену (1.15) и вводим новые
обозначения:

rv′
A (1) = A (1) (v1 , v 2 , v3 ) = (1 − r )v∞1 α cos φ + (1 − r )v∞2 α sin φ + (1 − r )v∞3 θ2 +
w
(3.4)
rv′
+ v1α cos φ + v 2α sin φ + v 3 θ2 ;
w

rv′
A (2) = A (2) (v1 , v 2 , v 3 ) = (1 − r )v∞1 β cos φ + (1 − r )v∞2 β sin φ − (1 − r )v∞3 2r +
w
(3.5)
rv′
+ v1β cos φ + v 2 β sin φ − v 3 2r ;
w

1 1
A (3) =A (3) (v1 , v 2 , v 3 ) =
− sin φ (1 − r )v∞1 + cos φ (1 − r )v∞2 −
v v
(3.6)
1 1
− sin φ v1 + cos φ v 2 .
v v

Пусть в (1.11)-(1.14) (θ, r, φ) – пробегают узлы сетки (θν, rμ, φk),


ν=1,2,…,N; μ =1,2,…,M; k=0,1,…,2l, L=2l+1. Тогда получаем дискретные
уравнения Навье-Стокса:

(3.7)
m n 2l m
Aνµ(1)k (−v∞1 + ∑ Dµµ v ) + Aνµ(2)k (∑ Dνν(θ1) vν11µ k ) + Aνµ(3)k ( ∑ Dkk(φ1) vνµ
(r ) 1
1 νµ1k
1
k1 ) + α µν co φk ( ∑
( pr )
s Dµµ 1
pνµ1k ) +
=µ1 1 =ν1 1 =k1 0 =µ1 1
2l n
1 1 n m 2l
+ β µν cos φk (∑ Dνν(θ1) pν1µ k ) −
sin φk ( ∑ Dkk(φ1) pνµ k1 ) − (∑ ∑ ∑ Hνµ k ,ν1µ1k1 vν11µ1k1 −
=ν1 1 =vµν k1 0 Re ν=1 1 µ=1 1 =k1 0
r v′
− 2
(1 + r r ) v∞1 ),
w v r = rµ
θ =θν

9
(3.8)
m n 2l m
Aνµ(1)k (−v∞2 + ∑ Dµµ v€ ) + Aνµ(2)k (∑ Dνν(θ1) v€ν21µ k ) + Aνµ(3)k ( ∑ Dkk(φ1) vνµ2 k1 ) + α µν sin φk ( ∑ Dµµ
(r ) 2
1 νµ1k
( pr )
1
pνµ1k ) +
=µ1 1 =ν1 1 =k1 0 =µ1 1
2l n
1 1 n m 2l
+ β µν sin φk (∑ Dνν(θ1) pν1µ k ) +
cos φk ( ∑ Dkk(φ1) pνµ k1 ) − (∑ ∑ ∑ Hνµ k ,ν1µ1k1 vν21µ1k1 −
=ν1 1 =vµν k1 0 Re ν=1 1 µ=1 1 =k1 0
r v′
− 2
(1 + r r ) v∞2 ),
w v r = rµ
θ =θν

(3.9)
m n 2l
rv′ m
Aνµ(1)k (−v∞3 + ∑ Dµµ v ) + Aνµ(2)k (∑ Dνν(θ1) vν31µ k ) + Aνµ(3)k ( ∑ Dkk(φ1) vνµ3 k1 ) + θ2
(r ) 3
1 νµ1k
( ∑ Dµµ( pr )
pνµ1k ) −
= µ1 1 = ν1 1 = k1 0 = w r = rµ µ1 1
1

θ =θν

rvr′ n
1 n
r m 2l
v′
2
(∑ Dνν(θ1) pν1µ k ) −
− (∑ ∑ ∑ Hνµ k ,ν1µ1k1 vν31µ1k1 − 2 (1 + r r ) v∞3 ),
=w r = rµ ν1 1 = Re =
ν1 1 =
µ1 1 k1 0 w v r = rµ
θ =θν θ =θν

2l m n
1
α µν cos φk ( ∑ Dµµ
sin φ ( vνµ k ) + β µν cos φk (∑ Dνν(θ ) vν1 µ k ) −
k ∑ Dkk1 vνµ k1 ) +
(φ ) 1
(r ) 1

=
1
µ1 1 =
1 1
ν1 1 =
1
vµν k1 0
m n 2l
1
+α µν sin φk ( ∑ Dµµ v ) + β µν sin φk (∑ Dνν(θ1) vν21µ k ) +
(r ) 2
1 νµ1k
cos φk ( ∑ Dkk(φ1) vνµ2 k1 ) +
= µ1 1 = ν1 1 = vµν k1 0
(3.10) rv′ m
rvr′ n
+ θ2 ( ∑ Dµµ 
( pr ) 3
vνµ1k
) − 2
( ∑ Dνν(θ1) vν3 µk ) − (v∞1 α µν cos φk + v∞2 α µν sin φk +
= w r = rµ µ1 1 = 1
w r = rµ ν1 1 1

θ =θν θ =θν

rvθ′
+v∞3 )=
0.
w2 r = rµ
θ =θν

Из уравнений (3.7) – (3.10) требуется определить вектор x = (v1 , v 2 , v 3 , p )′ ,


где v i и p векторы значений соответствующих функций в узлах сетки.
Примечание. D(r),D(pr),D(θ),D(φ)- матрицы численного дифференцирования,
которые получаются дифференцированием интерполяционных формул (2.5)
,(2.6), (2.4), (2.7)соответственно. Программы для их вычисления описаны в
[27].
4. Тексты программ. Конкретные расчёты проводят программы:
tmdif3 и nseq3d06. Программа tmdif3 готовит начальные данные для программы
nseq3d06 и записывает их в файл matr3e. Программа nseq3d06 считывает
начальные данные и производит расчёт для эллипса A = 1, B = 0.5 на сетке из
900 = 10×10×9 узлов. Результаты расчёта выводятся на экран и записываются в
файл nout. Ниже приводятся тексты этих программ.
$objcomment lib:"nseq3d.lib"
PROGRAM TMDIF3
IMPLICIT REAL*8 (A-H,O-Z)
PARAMETER ( N = 10, M = 10, L=8, NT=M*N, NG=NT*(L+1))
DIMENSION DPR(M,M),DR(M,M),DT(N,N),DF(0:L,0:L)
DIMENSION P(M),P1(M),P2(M)
DIMENSION V1(M),V1S(M),V1P(M)

10
DIMENSION V1T(N),V1TS(N),V1TP(N)
DIMENSION V1F(0:L),V1FS(0:L),V1FP(0:L)
DIMENSION DB1(N,N),DB2(N,N)
DIMENSION DL1(M,M),DL2(M,M)
DIMENSION C0(NT,NT),C1(NT,NT),C2(NT,NT),C3(NT,NT),C4(NT,NT)
DIMENSION H(NG,NG),X(NG),Y(NG),Z(NG)
DIMENSION CT(M,N),CR(M,N),CH(M,N)
DIMENSION AL(M,N),BE(M,N),CF(0:L),SF(0:L)
COMMON /EL/ A,B,RLA
COMMON /VEL/ VB(3),RE
DATA PI/3.141592653589D0/,RE/0.1D0/,VB/1.D0,0.D0,0.D0/
C RE=0.1D0
WRITE(*,*) ' RE = ',RE
C PI=3.141592653589D0
CALL DIFR22 (DPR,M,0.D0,0.D0,DL)
CALL DIFR1 (DR,M,0.D0)
CALL DIFT1(DT,N)
CALL DIFF(DF,L)
A=1.D0
B=1.D0
B=0.5d0
RLA=A
NU=1
T1=PI*(1.D0+COS((2.D0*NU-1.D0)*PI/2.D0/N))/2.D0
WRITE (*,*) T1
K=1
F1=2.D0*PI*K/(L+1)
WRITE (*,*) F1
DO MU=1,M
R1=(1.D0+COS((2.D0*MU-1.D0)*PI/2.D0/M))/2.D0
P(MU)=1.5D0*(R1**2)*SIN(T1)*COS(F1)/RE
P1(MU)=3.D0*R1*SIN(T1)*COS(F1)/RE
ENDDO
WRITE (*,*) 'The exact solution'
WRITE (*,*) P1
DO MU=1,M
P2(MU)=0.D0
DO MU1=1,M
P2(MU)=P2(MU)+DPR(MU,MU1)*P(MU1)
ENDDO
ENDDO
WRITE (*,*) 'Approximate solution'
WRITE (*,*) P2
PAUSE
DO MU=1,M
R1=(1.D0+COS((2.D0*MU-1.D0)*PI/2.D0/M))/2.D0
V1 (MU)=-0.75D0*(R1-R1**2)*COS(T1)**2*COS(F1)+0.25D0*R1-
-0.25D0*R1**3
V1S(MU)=-0.75D0*(1.D0-2.D0*R1)*COS(T1)**2*COS(F1)+0.25D0-
-0.75D0*R1**2
ENDDO
WRITE (*,*) 'The exact solution'
WRITE (*,*) V1S
DO MU=1,M
P2(MU)=0.D0
DO MU1=1,M
P2(MU)=P2(MU)+DR(MU,MU1)*V1(MU1)
ENDDO
ENDDO
WRITE (*,*) 'Approximate solution'
11
WRITE (*,*) P2
PAUSE
MU=1
R1=(1.D0+COS((2.D0*MU-1.D0)*PI/2.D0/M))/2.D0
DO NU=1,N
T1=PI*(1.D0+COS((2.D0*NU-1.D0)*PI/2.D0/N))/2.D0
V1T(NU)=-0.75D0*(R1-R1**2)*COS(T1)**2*COS(F1)+0.25D0*R1-
-0.25D0*R1**3
V1TS(NU)=0.75D0*(R1-R1**2)*2.D0*COS(T1)*SIN(T1)*COS(F1)
ENDDO
WRITE (*,*) 'The exact solution'
WRITE (*,*) V1TS
DO NU=1,N
V1TP(NU)=0.D0
DO NU1=1,N
V1TP(NU)=V1TP(NU)+DT(NU,NU1)*V1T(NU1)
ENDDO
ENDDO
WRITE (*,*) 'Approximate solution'
WRITE (*,*) V1TP
PAUSE
NU=1
T1=PI*(1.D0+COS((2.D0*NU-1.D0)*PI/2.D0/N))/2.D0
MU=1
R1=(1.D0+COS((2.D0*MU-1.D0)*PI/2.D0/M))/2.D0
DO K=0,L
F1=2.D0*PI*K/(L+1)
V1F(K)=-0.75D0*(R1-R1**2)*COS(T1)**2*COS(F1)+0.25D0*R1-
-0.25D0*R1**3
V1FS(K)=0.75D0*(R1-R1**2)*COS(T1)**2*SIN(F1)
ENDDO
WRITE (*,*) 'The exact solution'
WRITE (*,*) V1FS
DO K=0,L
V1FP(K)=0.D0
DO K1=0,L
V1FP(K)=V1FP(K)+DF(K,K1)*V1F(K1)
ENDDO
ENDDO
WRITE (*,*) 'Approximate solution'
WRITE (*,*) V1FP
C Дискретный Лапласиан
EPS0=0.D0
CALL MLKG6 (C0,0,DL1,DL2,DB1,DB2,M,N,NT,EPS0)
CALL NMATR(NT,C0,BNORM)
WRITE (*,*) 'BNORM = ',BNORM
CALL MLKG6 (C1,1,DL1,DL2,DB1,DB2,M,N,NT,EPS0)
CALL NMATR(NT,C1,BNORM)
WRITE (*,*) 'BNORM = ',BNORM
CALL MLKG6 (C2,2,DL1,DL2,DB1,DB2,M,N,NT,EPS0)
CALL NMATR(NT,C2,BNORM)
WRITE (*,*) 'BNORM = ',BNORM
CALL MLKG6 (C3,3,DL1,DL2,DB1,DB2,M,N,NT,EPS0)
CALL NMATR(NT,C3,BNORM)
WRITE (*,*) 'BNORM = ',BNORM
CALL MLKG6 (C4,4,DL1,DL2,DB1,DB2,M,N,NT,EPS0)
CALL NMATR(NT,C4,BNORM)
WRITE (*,*) 'BNORM = ',BNORM
C CALL HMATR2(H,NT,L+1,C0,C1)
C CALL HMATR3(H,NT,L+1,C0,C1,C2)
12
C CALL HMATR4(H,NT,L+1,C0,C1,C2,C3)
CALL HMATR5(H,NT,L+1,C0,C1,C2,C3,C4)
NM=L/2
CALL RASPAK (H,NT,NM)
CALL TRANSP (H,NG)
C
I=0
DO NU=1,N
T1=PI*(1.D0+COS((2.D0*NU-1.D0)*PI/2.D0/N))/2.D0
DO MU=1,M
R1=(1.D0+COS((2.D0*MU-1.D0)*PI/2.D0/M))/2.D0
DO K=0,L
F1=2.D0*PI*K/(L+1)
I=I+1
X(I)=-0.75D0*(R1-R1**2)*COS(T1)**2*COS(F1)+0.25D0*R1-
-0.25D0*R1**3
Y(I)=1.5D0*R1**4*(COS(T1)**2*COS(F1)-R1)+
+1.5D0*R1**3*(1.D0-R1)*(2.D0*COS(T1)**2-SIN(T1)**2)*COS(F1)+
+0.75D0*R1**3*(1.D0-R1)*COS(F1)*COS(T1)**2/SIN(T1)**2
ENDDO
ENDDO
ENDDO
OPEN (4,FILE='NOUT')
WRITE (4,*) 'The exact solution'
WRITE (4,*) Y
DO 1 K=1,NG
S=0.D0
DO 2 J=1,NG
2 S=S+H(K,J)*X(J)
1 Z(K)=S
WRITE (4,*) 'Approximate solution'
WRITE (4,*) Z
CALL NORM(NG,Y-Z,RNORM)
WRITE (*,*) 'RNORM =',RNORM
C Вычисление начальных данных для решения системы нелинейных
C уравнений
DO NU=1,N
T1=PI*(1.D0+COS((2.D0*NU-1.D0)*PI/2.D0/N))/2.D0
DO MU=1,M
R1=(1.D0+COS((2.D0*MU-1.D0)*PI/2.D0/M))/2.D0
CT(MU,NU)=R1*VT(R1,T1)/W2(R1,T1)
CR(MU,NU)=R1*VR(R1,T1)/W2(R1,T1)
CH(MU,NU)=-R1*(1.D0+R1*VR(R1,T1)/V(R1,T1))/W2(R1,T1)
AL(MU,NU)=-R1*UT(R1,T1)/W2(R1,T1)
BE(MU,NU)=1./VT(R1,T1)+R1*UT(R1,T1)*VR(R1,T1)/VT(R1,T1)/W2(R1,T1)
ENDDO
ENDDO
DO K=0,L
F1=2.D0*PI*K/(L+1)
CF(K)=COS(F1)
SF(K)=SIN(F1)
ENDDO
C Запись на диск
OPEN (5,FILE='MATR3E')
WRITE(5,*) N,M,L,NT,NG
WRITE(5,*) DPR
WRITE(5,*) DR
WRITE(5,*) DT
WRITE(5,*) DF
WRITE(5,*) H

13
WRITE(5,*) CT
WRITE(5,*) CR
WRITE(5,*) CH
WRITE(5,*) AL
WRITE(5,*) BE
WRITE(5,*) CF
WRITE(5,*) SF
WRITE(5,*) VB,PI,RE
WRITE(*,*) 'The end of record on a disk'
STOP
END
FUNCTION V(R,T)
IMPLICIT REAL*8 (A-H,O-Z)
COMMON /EL/ A,B,RLA
V=0.5D0*((A-B)*R - (A+B)/R)*SIN(T)
V =V /RLA
RETURN
END
FUNCTION W2(R,T)
IMPLICIT REAL*8 (A-H,O-Z)
COMMON /EL/ A,B,RLA
W2=0.25D0*((A-B)*R+(A+B)/R)**2*SIN(T)**2+
+0.25D0*((A-B)*R-(A+B)/R)**2*COS(T)**2
W2=W2/RLA**2
RETURN
END
FUNCTION UT(R,T)
IMPLICIT REAL*8 (A-H,O-Z)
COMMON /EL/ A,B,RLA
UT=-0.5D0*((A-B)*R + (A+B)/R)*SIN(T)
UT=UT/RLA
RETURN
END
FUNCTION VT(R,T)
IMPLICIT REAL*8 (A-H,O-Z)
COMMON /EL/ A,B,RLA
VT=0.5D0*((A-B)*R - (A+B)/R)*COS(T)
VT=VT/RLA
RETURN
END
FUNCTION VR(R,T)
IMPLICIT REAL*8 (A-H,O-Z)
COMMON /EL/ A,B,RLA
VR=0.5D0*( A-B + (A+B)/R**2)*SIN(T)
RETURN
END
SUBROUTINE NORM(N,Y,RNORM)
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION Y(1)
RNORM=0.D0
DO 1 J=1,N
IF(ABS(Y(J)).GT.RNORM) RNORM=ABS(Y(J))
1 CONTINUE
RETURN
END
SUBROUTINE NMATR (N,A,BNORM)
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION A(N,N)
BNORM = 0.D0
DO 1 I=1,N
14
C=0.D0
DO 2 J=1,N
2 C=C+ABS(A(I,J))
IF (C.GT.BNORM) BNORM=C
1 CONTINUE
RETURN
END
C
SUBROUTINE HMATR2(H,M,N,C0,C1)
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION H(1),C0(M,M),C1(M,M)
PI=3.141592653589D0
NM=(N+1)/2
I0=0
DO 1 NU=1,M
DO 1 MU=1,M
DO 1 L=1,NM
I0=I0+1
1 H(I0)=C0(NU,MU)/N
I0=0
DO 3 NU=1,M
DO 3 MU=1,M
I2=0
DO 3 K=1,NM
I0=I0+1
H(I0)=H(I0)+(2.D0/N)*C1(NU,MU)*COS(1*2.D0*PI*I2/N)
3 I2=I2+1
RETURN
END

C
SUBROUTINE HMATR3(H,M,N,C0,C1,C2)
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION H(1),C0(M,M),C1(M,M),C2(M,M)
PI=3.141592653589D0
NM=(N+1)/2
I0=0
DO 1 NU=1,M
DO 1 MU=1,M
DO 1 L=1,NM
I0=I0+1
1 H(I0)=C0(NU,MU)/N
I0=0
DO 3 NU=1,M
DO 3 MU=1,M
I2=0
DO 3 K=1,NM
I0=I0+1
H(I0)=H(I0)+(2.D0/N)*C1(NU,MU)*COS(1*2.D0*PI*I2/N)
3 I2=I2+1
I0=0
DO 4 NU=1,M
DO 4 MU=1,M
I2=0
DO 4 K=1,NM
I0=I0+1
H(I0)=H(I0)+(2.D0/N)*C2(NU,MU)*COS(2*2.D0*PI*I2/N)
4 I2=I2+1
RETURN
END
15
C
SUBROUTINE HMATR4(H,M,N,C0,C1,C2,C3)
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION H(1),C0(M,M),C1(M,M),C2(M,M),C3(M,M)
PI=3.141592653589D0
NM=(N+1)/2
I0=0
DO 1 NU=1,M
DO 1 MU=1,M
DO 1 L=1,NM
I0=I0+1
1 H(I0)=C0(NU,MU)/N
I0=0
DO 3 NU=1,M
DO 3 MU=1,M
I2=0
DO 3 K=1,NM
I0=I0+1
H(I0)=H(I0)+(2.D0/N)*C1(NU,MU)*COS(1*2.D0*PI*I2/N)
3 I2=I2+1
I0=0
DO 4 NU=1,M
DO 4 MU=1,M
I2=0
DO 4 K=1,NM
I0=I0+1
H(I0)=H(I0)+(2.D0/N)*C2(NU,MU)*COS(2*2.D0*PI*I2/N)
4 I2=I2+1
I0=0
DO 5 NU=1,M
DO 5 MU=1,M
I2=0
DO 5 K=1,NM
I0=I0+1
H(I0)=H(I0)+(2.D0/N)*C3(NU,MU)*COS(3*2.D0*PI*I2/N)
5 I2=I2+1
RETURN
END
C
SUBROUTINE HMATR5(H,M,N,C0,C1,C2,C3,C4)
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION H(1),C0(M,M),C1(M,M),C2(M,M),C3(M,M),C4(M,M)
PI=3.141592653589D0
NM=(N+1)/2
I0=0
DO 1 NU=1,M
DO 1 MU=1,M
DO 1 L=1,NM
I0=I0+1
1 H(I0)=C0(NU,MU)/N
I0=0
DO 3 NU=1,M
DO 3 MU=1,M
I2=0
DO 3 K=1,NM
I0=I0+1
H(I0)=H(I0)+(2.D0/N)*C1(NU,MU)*COS(1*2.D0*PI*I2/N)
3 I2=I2+1
I0=0
DO 4 NU=1,M
16
DO 4 MU=1,M
I2=0
DO 4 K=1,NM
I0=I0+1
H(I0)=H(I0)+(2.D0/N)*C2(NU,MU)*COS(2*2.D0*PI*I2/N)
4 I2=I2+1
I0=0
DO 5 NU=1,M
DO 5 MU=1,M
I2=0
DO 5 K=1,NM
I0=I0+1
H(I0)=H(I0)+(2.D0/N)*C3(NU,MU)*COS(3*2.D0*PI*I2/N)
5 I2=I2+1
I0=0
DO 6 NU=1,M
DO 6 MU=1,M
I2=0
DO 6 K=1,NM
I0=I0+1
H(I0)=H(I0)+(2.D0/N)*C4(NU,MU)*COS(4*2.D0*PI*I2/N)
6 I2=I2+1
RETURN
END

Примечание.

1. Подпрограммы DIFR22, DIFR1, DIFT1, DIFF, MLKG6 описаны в [27],


RASPAK, TRANSP – описаны в [1], HMATR5(H,M,N,C0,C1,C2,C3,C4)
производит вычисление h-матрицы дискретного лапласиана по
формуле [2.1].
2. Параметры сетки заданы в операторе:
PARAMETER ( N = 10, M = 10, L=8, NT=M*N, NG=NT*(L+1))
Здесь задано 10 узлов по θ, 10 узлов по r, 9 узлов по φ. Для
увеличения числа узлов по φ нужно вычислить соответствующее
число клеток h-матрицы программой MLKG6 и изменить подпрограмму
HMATR5. Например, при L=10 нужно вычислить клетку C5
подпрограммой CALL MLKG6
(C5,5,DL1,DL2,DB1,DB2,M,N,NT,EPS0), конечно нужно описать этот
массив C5(NT,NT). Далее нужно изменить подпрограмму HMATR5:
Добавить в конце программы цикл:
I0=0
DO 7 NU=1,M
DO 7 MU=1,M
I2=0
DO 7 K=1,NM
I0=I0+1
H(I0)=H(I0)+(2.D0/N)*C5(NU,MU)*COS(5*2.D0*PI*I2/N)
7 I2=I2+1
В параметрах подпрограммы нужно указать вызов C5 и описать его
размерность (сравни HMATR5 и HMATR4, последняя подпрограмма для L=6).
Дальнейшее увеличение размерности по φ проводится аналогично.

program nseq3d06
use dfimsl
IMPLICIT REAL(8) (A-H,O-Z)
integer(4), parameter :: np = 3600 ! np - число уравнений
integer(4) :: itmax = 200 ! Максимально допустимое число
итераций
17
real(8):: x(np), xguess(np), errrel, fnorm, f(np)
external fcn ! Обязательный атрибут для fcn
Common /matrix/ DPR(10,10),DR(10,10),DT(10,10),DF(0:8,0:8),
&
H(900,900),CT(10,10),CR(10,10),CH(10,10),
&
AL(10,10),BE(10,10),CF(0:8),SF(0:8),VB(3),
&
PI,RE,N,M,L,NT,NG
COMMON /EL/ A,B,RLA
A=1.D0
B=1.D0
B=0.5d0
RLA=A
! Считывание с диска начальных данных
OPEN (5,FILE='MATR3E')
READ(5,*) N,M,L,NT,NG
READ(5,*) DPR
READ(5,*) DR
READ(5,*) DT
READ(5,*) DF
READ(5,*) H
READ(5,*) CT
READ(5,*) CR
READ(5,*) CH
READ(5,*) AL
READ(5,*) BE
READ(5,*) CF
READ(5,*) SF
READ(5,*) VB,PI,RE
! Считывание числа Рейнольдса
WRITE (*,*) 'Re = ?'
READ (*,*) RE
! Задание вектора скорости в бесконечности
VB(1)=1.0d0/sqrt(3.0d0)
VB(2)=1.0d0/sqrt(3.0d0)
VB(3)=1.0d0/sqrt(3.0d0)
! Расчёт начального приближения
I=0
DO NU=1,N
T1=PI*(1.D0+COS((2.D0*NU-1.D0)*PI/2.D0/N))/2.D0
DO MU=1,M
R1=(1.D0+COS((2.D0*MU-1.D0)*PI/2.D0/M))/2.D0
DO K=0,L
F1=2.D0*PI*K/(L+1)
I=I+1
xguess(I)=-0.75D0*(R1-R1**3)*SIN(T1)**2*COS(F1)**2+0.25D0*R1-0.25D0*R1**3
xguess(NG+I)=-0.75D0*(R1-R1**3)*SIN(T1)**2*COS(F1)*SIN(F1)
xguess(2*NG+I)=0.75D0*(R1-R1**3)*SIN(T1)*COS(T1)*COS(F1)
xguess(3*NG+I)=1.5D0*R1**2*SIN(T1)*COS(F1)/RE
ENDDO
ENDDO
ENDDO
! Проверка fcn
OPEN (4,FILE='NOUT')
WRITE (4,*) 'Re = ', RE
WRITE (4,*) 'N = ', N, 'M = ', M, 'L = ',L, 'NG = ', NG
WRITE (4,*) 'V = ',VB
call fcn(xguess, f, np)
CALL NORM1(NP,f,RNORM,IK)

18
WRITE (*,*) 'IK = ',IK, 'RNORM = ',RNORM
WRITE (4,*) 'RNORM = ',RNORM
write (4,*) f
!xguess = 1.0d0 ! Начальное приближение
errrel = 0.001d0 ! Относительная ошибка
! Поиск решения
call dneqnf(fcn, errrel, np, itmax, xguess, x, fnorm)
CALL NORM(NP,X-XGUESS,RNORM)
WRITE (4,*) 'RNORM = ',RNORM
WRITE (4,*) 'Приближённое решение'
WRITE (4,*) X
call dwrrrn('x', 1, np, x, 1, 0) ! Вывод результата
print *, 'fnorm', fnorm
! Файл для Tecplot
open (7,file='Vel.dat')
write (7,*) 'TITLE = "Velocity"'
write (7,*) 'VARIABLES = "X","Y","Z","Vx","Vy","Vz"'
write (7,*) 'ZONE I=10, J =10, K = 9, F=point'
I=0
DO NU=1,N
T1=PI*(1.D0+COS((2.D0*NU-1.D0)*PI/2.D0/N))/2.D0
DO MU=1,M
R1=(1.D0+COS((2.D0*MU-1.D0)*PI/2.D0/M))/2.D0
DO K=0,L
F1=2.D0*PI*K/(L+1)
I=I+1
write (7,12) V(R1,T1)*COS(F1), V(R1,T1)*SIN(F1), U(R1,T1), &
X(I), X(NG+I), X(2*NG+I)
ENDDO
ENDDO
ENDDO
12 FORMAT (1X6E12.3)
!cx0=cx(Re,pi,m,n,l,NG,x)
!write (*,*) 'cx = ',cx0
! Проверка сиимметричности давлениия на сфере
write (4,*) 'Проверка сиимметричности давлениия на сфере'
K=0
DO NU=1,N
T1=PI*(1.D0+COS((2.D0*NU-1.D0)*PI/2.D0/N))/2.D0
S2=0.d0
DO MU=1,M
Xmu=COS((2.D0*MU-1.D0)*PI/2.D0/M)
I1=IND(NU,MU,K,M,L)
cnu=0.5d0
Teta=(2.D0*MU-1.D0)*PI/2.D0/M
do Lm=1,M-1
cnu=cnu+cos(Lm*Teta)
enddo
S2=S2+x(3*NG+I1)*cnu/(Xmu+1.d0)
ENDDO
p=4.d0*S2/m
write (4,*) p
enddo
stop
end program nseq3d06
subroutine fcn(x, f, np) ! Следует обратить внимание на
порядок
IMPLICIT REAL(8) (A-H,O-Z)
integer(4):: n ! следования параметров
подпрограммы/сл,
19
real(8):: x(np), f(np) ! иной, чем в случае NEQBF

Common /matrix/ DPR(10,10),DR(10,10),DT(10,10),DF(0:8,0:8),


&
H(900,900),CT(10,10),CR(10,10),CH(10,10),
&
AL(10,10),BE(10,10),CF(0:8),SF(0:8),VB(3),
&
PI,RE,N,M,L,NT,NG
I=0
DO NU=1,N
T1=PI*(1.D0+COS((2.D0*NU-1.D0)*PI/2.D0/N))/2.D0
DO MU=1,M
R1=(1.D0+COS((2.D0*MU-1.D0)*PI/2.D0/M))/2.D0
DO K=0,L
F1=2.D0*PI*K/(L+1)
I=I+1
A1=(1.D0-R1)*VB(1)*AL(MU,NU)*CF(K)+(1.D0-R1)*VB(2)*AL(MU,NU)*SF(K)+ &
(1.D0-
R1)*VB(3)*CT(MU,NU)+VB(1)*AL(MU,NU)*CF(K)+VB(2)*AL(MU,NU)*SF(K)+ &
VB(3)*CT(MU,NU)
A2=(1.D0-R1)*VB(1)*BE(MU,NU)*CF(K)+(1.D0-R1)*VB(2)*BE(MU,NU)*SF(K)-
&
(1.D0-
R1)*VB(3)*CR(MU,NU)+VB(1)*BE(MU,NU)*CF(K)+VB(2)*BE(MU,NU)*SF(K)- &
VB(3)*CR(MU,NU)
A3=-SF(K)*(1.D0-R1)*VB(1)/V(R1,T1)+CF(K)*(1.D0-R1)*VB(2)/V(R1,T1)- &
SF(K)*VB(1)/V(R1,T1)+CF(K)*VB(2)/V(R1,T1)
! Проверка линеаризованной задачи
! A1=0.D0; A2=0.D0; A3=0.D0
! Первое уравнение
U11=-VB(1)
DO MU1=1,M
I11=IND(NU,MU1,K,M,L)
U11=U11+DR(MU,MU1)*X(I11)
ENDDO
F(I)=A1*U11
U12=0.D0
DO NU1=1,N
I12=IND(NU1,MU,K,M,L)
U12=U12+DT(NU,NU1)*X(I12)
ENDDO
F(I)=F(I)+A2*U12
U13=0.D0
DO K1=0,L
I13=IND(NU,MU,K1,M,L)
U13=U13+DF(K,K1)*X(I13)
ENDDO
F(I)=F(I)+A3*U13
U14=0.D0
DO MU1=1,M
I14=IND(NU,MU1,K,M,L)
U14=U14+DPR(MU,MU1)*X(3*NG+I14)
ENDDO
F(I)=F(I)+AL(MU,NU)*CF(K)*U14
U15=0.D0
DO NU1=1,N
I15=IND(NU1,MU,K,M,L)
U15=U15+DT(NU,NU1)*X(3*NG+I15)
ENDDO
20
F(I)=F(I)+BE(MU,NU)*CF(K)*U15
U16=0.D0
DO K1=0,L
I16=IND(NU,MU,K1,M,L)
U16=U16+DF(K,K1)*X(3*NG+I16)
ENDDO
F(I)=F(I)-SF(K)*U16/V(R1,T1)
U17=VB(1)*CH(MU,NU)
DO J=1,NG
U17=U17+H(I,J)*X(J)
ENDDO
F(I)=F(I)-U17/RE
! Второе уравнение
U21=-VB(2)
DO MU1=1,M
I21=IND(NU,MU1,K,M,L)
U21=U21+DR(MU,MU1)*X(NG+I21)
ENDDO
F(NG+I)=A1*U21
U22=0.D0
DO NU1=1,N
I22=IND(NU1,MU,K,M,L)
U22=U22+DT(NU,NU1)*X(NG+I22)
ENDDO
F(NG+I)=F(NG+I)+A2*U22
U23=0.D0
DO K1=0,L
I23=IND(NU,MU,K1,M,L)
U23=U23+DF(K,K1)*X(NG+I23)
ENDDO
F(NG+I)=F(NG+I)+A3*U23
U24=0.D0
DO MU1=1,M
I24=IND(NU,MU1,K,M,L)
U24=U24+DPR(MU,MU1)*X(3*NG+I24)
ENDDO
F(NG+I)=F(NG+I)+AL(MU,NU)*SF(K)*U24
U25=0.D0
DO NU1=1,N
I25=IND(NU1,MU,K,M,L)
U25=U25+DT(NU,NU1)*X(3*NG+I25)
ENDDO
F(NG+I)=F(NG+I)+BE(MU,NU)*SF(K)*U25
U26=0.D0
DO K1=0,L
I26=IND(NU,MU,K1,M,L)
U26=U26+DF(K,K1)*X(3*NG+I26)
ENDDO
F(NG+I)=F(NG+I)+CF(K)*U26/V(R1,T1)
U27=VB(2)*CH(MU,NU)
DO J=1,NG
U27=U27+H(I,J)*X(NG+J)
ENDDO
F(NG+I)=F(NG+I)-U27/RE
! Третье уравнение
U31=-VB(3)
DO MU1=1,M
I31=IND(NU,MU1,K,M,L)
U31=U31+DR(MU,MU1)*X(2*NG+I31)
ENDDO
21
F(2*NG+I)=A1*U31
U32=0.D0
DO NU1=1,N
I32=IND(NU1,MU,K,M,L)
U32=U32+DT(NU,NU1)*X(2*NG+I32)
ENDDO
F(2*NG+I)=F(2*NG+I)+A2*U32
U33=0.D0
DO K1=0,L
I33=IND(NU,MU,K1,M,L)
U33=U33+DF(K,K1)*X(2*NG+I33)
ENDDO
F(2*NG+I)=F(2*NG+I)+A3*U33
U34=0.D0
DO MU1=1,M
I34=IND(NU,MU1,K,M,L)
U34=U34+DPR(MU,MU1)*X(3*NG+I34)
ENDDO
F(2*NG+I)=F(2*NG+I)+CT(MU,NU)*U34
U35=0.D0
DO NU1=1,N
I35=IND(NU1,MU,K,M,L)
U35=U35+DT(NU,NU1)*X(3*NG+I35)
ENDDO
F(2*NG+I)=F(2*NG+I)-CR(MU,NU)*U35
U37=VB(3)*CH(MU,NU)
DO J=1,NG
U37=U37+H(I,J)*X(2*NG+J)
ENDDO
F(2*NG+I)=F(2*NG+I)-U37/RE
! Четвёртое уравнение (уравнение неразрывности)
U41=0.D0
DO MU1=1,M
I41=IND(NU,MU1,K,M,L)
U41=U41+DR(MU,MU1)*X(I41)
ENDDO
F(3*NG+I)=AL(MU,NU)*CF(K)*U41
U42=0.D0
DO NU1=1,N
I42=IND(NU1,MU,K,M,L)
U42=U42+DT(NU,NU1)*X(I42)
ENDDO
F(3*NG+I)=F(3*NG+I)+BE(MU,NU)*CF(K)*U42
U43=0.D0
DO K1=0,L
I43=IND(NU,MU,K1,M,L)
U43=U43+DF(K,K1)*X(I43)
ENDDO
F(3*NG+I)=F(3*NG+I)-SF(K)*U43/V(R1,T1)
U44=0.D0
DO MU1=1,M
I44=IND(NU,MU1,K,M,L)
U44=U44+DR(MU,MU1)*X(NG+I44)
ENDDO
F(3*NG+I)=F(3*NG+I)+AL(MU,NU)*SF(K)*U44
U45=0.D0
DO NU1=1,N
I45=IND(NU1,MU,K,M,L)
U45=U45+DT(NU,NU1)*X(NG+I45)
ENDDO
22
F(3*NG+I)=F(3*NG+I)+BE(MU,NU)*SF(K)*U45
U46=0.D0
DO K1=0,L
I46=IND(NU,MU,K1,M,L)
U46=U46+DF(K,K1)*X(NG+I46)
ENDDO
F(3*NG+I)=F(3*NG+I)+CF(K)*U46/V(R1,T1)
U47=0.D0
DO MU1=1,M
I47=IND(NU,MU1,K,M,L)
U47=U47+DR(MU,MU1)*X(2*NG+I47)
ENDDO
F(3*NG+I)=F(3*NG+I)+CT(MU,NU)*U47
U48=0.D0
DO NU1=1,N
I48=IND(NU1,MU,K,M,L)
U48=U48+DT(NU,NU1)*X(2*NG+I48)
ENDDO
F(3*NG+I)=F(3*NG+I)-CR(MU,NU)*U48
F(3*NG+I)=F(3*NG+I)-(VB(1)*AL(MU,NU)*CF(K)+VB(2)*AL(MU,NU)*SF(K)+ &
VB(3)*CT(MU,NU))
ENDDO
ENDDO
ENDDO
end subroutine fcn
FUNCTION V(R,T)
IMPLICIT REAL*8 (A-H,O-Z)
COMMON /EL/ A,B,RLA
V=0.5D0*((A-B)*R - (A+B)/R)*SIN(T)
V =V /RLA
RETURN
END
FUNCTION U(R,T)
IMPLICIT REAL*8 (A-H,O-Z)
COMMON /EL/ A,B,RLA
U=0.5D0*((A-B)*R + (A+B)/R)*COS(T)
U =U /RLA
RETURN
END
FUNCTION IND(NU,MU,K,M,L)
IND=(NU-1)*M*(L+1)+(MU-1)*(L+1)+K+1
RETURN
END
SUBROUTINE NORM1(N,Y,RNORM,I)
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION Y(1)
RNORM=0.D0
DO 1 J=1,N
IF(ABS(Y(J)).GT.RNORM) I=J
IF(ABS(Y(J)).GT.RNORM) RNORM=ABS(Y(J))
1 CONTINUE
RETURN
END

SUBROUTINE NORM(N,Y,RNORM)
IMPLICIT REAL*8 (A-H,O-Z)
DIMENSION Y(1)
RNORM=0.D0
DO 1 J=1,N
IF(ABS(Y(J)).GT.RNORM) RNORM=ABS(Y(J))
23
1 CONTINUE
RETURN
END
function cx(Re,pi,m,n,L,NG,x)
implicit real(8) (a-h,o-z)
dimension x(1),c(100)
c1=0.d0
call cnu0pi(c,n)
DO K=0,L
F1=2.D0*PI*K/(L+1)
DO NU=1,N
T1=PI*(1.D0+COS((2.D0*NU-1.D0)*PI/2.D0/N))/2.D0
S1=0.d0
S2=0.d0
S3=0.d0
S4=0.d0
DO MU=1,M
Xmu=COS((2.D0*MU-1.D0)*PI/2.D0/M)
I1=IND(NU,MU,K,M,L)
cnu=0.5d0
Teta=(2.D0*MU-1.D0)*PI/2.D0/M
do Lm=1,M-1
cnu=cnu+cos(Lm*Teta)
enddo
S1=S1+x(I1)*cnu/(Xmu**2-1.d0)
S2=S2+x(NG+I1)*cnu/(Xmu**2-1.d0)
S3=S3+x(2*NG+I1)*cnu/(Xmu**2-1.d0)
S4=S4+x(3*NG+I1)*cnu/(Xmu+1.d0)
ENDDO
v1= 8.d0*S1/m
v2= 8.d0*S2/m
v3= 8.d0*S3/m
p = 4.d0*S4/m
f=-((((-1.d0+v1)*(sin(t1)**3*cos(f1)**2-cos(2.0d0*t1)*sin(t1))+ &
v2*(sin(t1)**3*sin(f1)*cos(f1))+ &
v3*(sin(t1))**2*cos(t1)*cos(f1)))/Re-p*sin(t1)**2*cos(f1))
c1=c1+4.0d0*c(nu)*f/(L+1)
ENDDO
enddo
cx=c1
return
end
subroutine cnu0pi(c,n)
implicit real(8) (a-h,o-z)
dimension c(n)
pi=3.141592653589d0
do nu=1,n
c(nu)=1.d0
!c(nu)=0.5d0
do L=2,n-1,2
psi=(2.d0*nu-1.d0)*pi/2.d0/n
c(nu)=c(nu)-2.d0*cos(L*psi)/(L*L-1.d0)
enddo
c(nu)=c(nu)*pi/n
enddo
return
end

24
Примечание.

1. Common блок в начале программы

Common /matrix/ DPR(10,10),DR(10,10),DT(10,10),DF(0:8,0:8),


&
H(900,900),CT(10,10),CR(10,10),CH(10,10),
&
AL(10,10),BE(10,10),CF(0:8),SF(0:8),VB(3),
&
PI,RE,N,M,L,NT,NG

Рассчитан на заданную сетку N=10, M=10, L=8 т.е. 900 узлов. Для
другой сетки его нужно изменить. Размерности этих массивов указаны в
начале программы tmdif3. Такой же Common блок нужно вставить в
подпрограмму fcn.

2. Нужно также изменить параметр числа уравнений. В программе


np=3600. Нужно поставить новое значение.

3. В программе используется стандартная программа для решения


системы нелинейных уравнений dneqnf [28].

4. В файл Vel.dat записываются данные для Tecplot.

5. Результаты расчётов. Конкретные расчёты производились для шара


радиуса 1, вектор скорости в бесконечности равен v = (1,0,0), эллипсоида A=1,
B = 0.5 при двух направлениях вектора скорости в бесконечности v = (1,0,0) и v
= (1,1,1)/sqrt(3) на сетках из 900 = 10×10×9 и 700 = 10×10×7 узлов. Выводились
на печать значения давления на теневой стороне шара (эллипсоида) при θ
пробегающем узлы сетки и φ=0. Результаты расчётов представлены ниже:
Шар R=1, V=(1,0,0)

Re = 0.100000000000000
N = 10 M = 10 L = 8 NG = 900
RNORM = 0.566755745666508
RNORM = 2.25381742979672
cx = 53.8017245092719
Проверка сиимметричности давлениия на сфере

-0.464867003921752
2.09663620129077
6.82615431488980
12.6380318842517
16.9072430508266
16.9072430535427
12.6380318818960
6.82615431664222
2.09663619981290
-0.464867021216389

Re = 0.100000000000000

25
N = 10 M = 10 L = 6 NG = 700
RNORM = 2.32067064202368

Проверка сиимметричности давлениия на сфере

-0.120512235605826
2.10077742253847
6.84477268185351
12.5867321080440
16.6535038683932
16.6535038696520
12.5867321087336
6.84477268206215
2.10077742240610
-0.120512248406545

Re = 1.00000000000000
N = 10 M = 10 L = 8 NG = 900
RNORM = 0.566758188624022
RNORM = 1.85622433788941
cx = 10.9165911137733

Проверка сиимметричности давлениия на сфере

-0.619143146838573
-0.154977616032801
0.761356439605746
2.16553300886520
3.37968089966430
3.37968090290760
2.16553301336521
0.761356439061879
-0.154977618272468
-0.619143136037867

Re = 1.00000000000000
N = 10 M = 10 L = 6 NG = 700
RNORM = 1.61121637944562

Проверка сиимметричности давлениия на сфере

-0.326830619713956
-0.126271549842852
0.722360570049850
1.80924509608950
2.53407451635900
2.53407451711801
1.80924509723304
0.722360570323930
-0.126271549693067
-0.326830622381797

Re = 5.310000000000000E-002
N = 10 M = 10 L = 8 NG = 900
RNORM = 0.566753348204634
cx = 141.077316493218

Проверка сиимметричности давлениия на сфере

-0.148559910378485
26
4.41634799400807
12.8797320795403
22.9247635212190
30.0361909272547
30.0361909218882
22.9247635254677
12.8797320741111
4.41634799377488
-0.148559902367000

Re = 2.655000000000000E-002
N = 10 M = 10 L = 8 NG = 900
RNORM = 0.566748236345522
RNORM = 2.70298781554544
cx = 277.553962477657

Проверка сиимметричности давлениия на сфере

0.290267199493474
9.20815744768917
25.5572312712466
44.5775094999418
57.8292623527121
57.8292623620776
44.5775094893973
25.5572312805316
9.20815744479441
0.290267109295435

Re = 0.121850000000000
N = 10 M = 10 L = 8 NG = 900
RNORM = 0.566756232409076
RNORM = 2.21711291311578
cx = 63.7334852238571

Проверка сиимметричности давлениия на сфере

-0.546449962469689
1.62707352047729
5.60915031848993
10.5739261889325
14.2648204772767
14.2648204794420
10.5739261853727
5.60915031991302
1.62707351799619
-0.546449977138080

Re = 0.363850000000000
N = 10 M = 10 L = 8 NG = 900
RNORM = 0.566757714042785
RNORM = 2.12642733071093
cx = 23.9935812150960

Проверка сиимметричности давлениия на сфере

-0.561282918377063
0.224189867776963
1.94827443094017
4.29930595838703
27
6.15231840772038
6.15231840727500
4.29930595833222
1.94827443055855
0.224189867034025
- 0.561282912496956

Re = 0.746500000000000
N = 10 M = 10 L = 8 NG = 900
RNORM = 0.566758096447235
RNORM = 2.03947523475654
cx = 13.5976635683187

Проверка сиимметричности давлениия на сфере

-0.270736932801389
-0.138673932574962
0.978957667193734
2.68654965500235
3.93690977422954
3.93690977634343
2.68654965274381
0.978957658548897
-0.138673938709378
-0.270737032259533

Эллипсоид A=1, B=0,5; V=(1,0,0)

Re = 0.100000000000000
N = 10 M = 10 L = 8 NG = 900
V = 1.00000000000000 0.000000000000000E+000
0.000000000000000E+000
RNORM = 27.9837975416242
RNORM = 17.1111012855924

Проверка сиимметричности давлениия на сфере

0.681997866603131
12.3749773038750
24.3430348113289
25.1351611489324
23.4242142324279
23.4242142384720
25.1351611743120
24.3430348245748
12.3749773286490
0.681997783575103

Re = 0.100000000000000
N = 10 M = 10 L = 6 NG = 700
V = 1.00000000000000 0.000000000000000E+000
0.000000000000000E+000
RNORM = 17.0201311365744

Проверка сиимметричности давлениия на сфере

1.29767689962678
12.3700085220635
24.3416277306569
28
24.8550143803690
22.8827498145754
22.8827498110809
24.8550143823760
24.3416277239559
12.3700085230853
1.29767694293161

Re = 1.00000000000000
N = 10 M = 10 L = 8 NG = 900
V = 1.00000000000000 0.000000000000000E+000
0.000000000000000E+000
RNORM = 3.38583662350056
RNORM = 2.79454959134685

Проверка сиимметричности давлениия на сфере

-0.361230045979721
0.874340156077618
3.19918044084037
4.09868749134195
4.20240699923339
4.20240699909798
4.09868749008569
3.19918044060441
0.874340156778701
-0.361230047438596

Re = 1.00000000000000
N = 10 M = 10 L = 6 NG = 700
V = 1.00000000000000 0.000000000000000E+000
0.000000000000000E+000
RNORM = 2.40075207803839

Проверка сиимметричности давлениия на сфере

-0.550594140517013
0.995323568668202
3.03434338144603
3.33044753508521
3.04858135031112
3.04858135006093
3.33044753493757
3.03434338093937
0.995323569184120
-0.550594141549939

Эллипсоид A=1, B=0,5; V=(1,1,1)/sqrt(3.0)

Re = 0.100000000000000
N = 10 M = 10 L = 8 NG = 900
V = 0.577350269189626 0.577350269189626
0.577350269189626
RNORM = 24.0307704029246
RNORM = 28.3042841550050

Проверка сиимметричности давлениия на сфере

24.1090926151110
29
27.9480812377110
26.9538931882897
19.8910148523083
14.1621797493254
11.2003082625814
7.94261837902390
1.08545499811139
-12.7662487452315
-22.2448135302644

Re = 0.100000000000000
N = 10 M = 10 L = 6 NG = 700
V = 0.577350269189626 0.577350269189626
0.577350269189626
RNORM = 28.9695556055097

Проверка сиимметричности давлениия на сфере

24.2298124198272
27.9087946393524
27.1178857880226
20.4596475291812
15.4134008947970
12.1981836145007
7.74746357495922
-0.291870923071681
-13.6911364438648
-22.0035944483874

Re = 1.00000000000000
N = 10 M = 10 L = 8 NG = 900
V = 0.577350269189626 0.577350269189626
0.577350269189626
RNORM = 3.21867184365714
RNORM = 4.72279029330677

Проверка сиимметричности давлениия на сфере

2.59347296066003
3.56340239405105
3.96369388741086
2.74882992251275
2.04495964352833
1.28854911221314
0.711811403916300
-0.516948186680814
-1.85642099511590
-3.16777688388596

Re = 1.00000000000000
N = 10 M = 10 L = 6 NG = 700
V = 0.577350269189626 0.577350269189626
0.577350269189626
RNORM = 4.61764688883066

Проверка сиимметричности давлениия на сфере

3.73891949048346
3.92012661716348
4.31719338917841
30
3.58029080847856
2.67468369717597
2.24949308615439
1.24964917716227
-0.544708613735824
-2.09326223551972
-1.96236849520539

Выводы. Как видно из рассмотрения проведённых расчётов на сетке из


900 узлов доступны для численного исследования течения с числами Рейнольдса
~ 1.

6. Вычисление сопротивления. Для шара радиуса 1 проводилось вычисление


коэффициента сопротивления cx и сравнение полученных данных с
экспериментом [25]. Проекция силы действующей на шар на ось x равна
Fx = ∫ ( p11n1 + p12 n2 + p13n3 )dσ , где pij – компонеты тензора напряжений. Для
Σ
шара n1=sinθcosφ, n2=sinθsinφ, n3=cosθ;

∂v1
p11 = − p + 2 µ ,
∂x1
 ∂v1 ∂v 2 
p12 = µ  + ,

 2x ∂x 1 

 ∂v ∂v 
1 3
p13 = µ  + .
 ∂x3 ∂x1 

Частные производные по xi выражаются через производные по r,θ и φ по


формуле (1.10). Учитывая, что на поверхности сферы производные по θ и φ
равны нулю, всилу граничных условий, получаем:

∂v1 ∂v 2
p1 j n j = − p sin θ cos ϕ + µ[(sin 2 θ cos 2 ϕ − cos 2θ ) + sin 2 θ sin ϕ cos ϕ +
∂r ∂r
∂v 3
+ sin θ cos θ cos ϕ ], dσ = R 2 Sinθdθdϕ .
∂r

π 2π
2π n 2l

∑ ν ∑ fνk ,
Fx = ∫ (sin θ ∫ p1 j n j dϕ )dθ =
c
L ν =1 k =0
0 0
где сν – коэффициенты квадратурной формулы по θ на [0,π]:

π n −1
cos lψ ν (2ν − 1)π
cν = (1 − 2 ∑ ), ψ ν = ,ν = 1,2,..., n.
l =2 ( 2 ) l − 1
2
n 2n

Вычисляются подпрограммой: subroutine cnu0pi(c,n).

31
1 ∂v€1 ∂v€2
f = − p sin θ cos ϕ +
2
[(sin θ cos ϕ − cos 2θ sin θ )(−1 +
3 2
) + sin θ sin ϕ cos ϕ
3
+
Re ∂r ∂r
∂v€3
+ sin 2 θ cos θ cos ϕ ]
∂r

Fx 4 n 2l
cx =
1
= ∑ ν ∑ fνk .
c
L ν =1 k =0
ρU ∞2 ⋅ πR 2
2
Вычисляется подпрограммой: function cx(Re,pi,m,n,L,NG,x)
Здесь x – вектор решения системы нелинейных уравнений.
Остальные параметры: число Рейнольдса, π и параметры сетки.

Замечание. При расчёте по этой формуле коэффициент сопротивления


получается отрицательным. Дело в том, что при отображении (1.9) внешняя
нормаль к шару переходит во внутреннею. В программе это учтено (изменён
знак f).
Осталось привести формулу для вычисления p и производных от
компонент скорости на поверхности шара:

4 m cν pν m−1
(2ν − 1)π
p (1) = ∑
m ν =1 1 + xν
, cν = 0 . 5 + ∑
l =1
cos lθν , xν = cos θν ,θν =
2m
ν = 1,2,..., m;

8 m cν uν m−1
(2ν − 1)π
u′(1) = ∑
m ν =1 xν − 1
2
, cν = 0 . 5 + ∑
l =1
cos lθν , xν = cos θν ,θν =
2m
ν = 1,2,..., m;

Примечание. pν и uν – значения давления и скорости в узлах сетки по r.

Результаты расчётов на сетке из 900 узлов приведены в таблице.

Re cx
Расчёт опыт
0.02655 277.55 476.6
0.12185 63.73 109.6
0.36385 23.99 38.82
0.7465 13.60 19.40

Как видно из рассмотрения таблицы расхождение с опытом от 30% до


40%.
Заключение.
По поводу получения полных версий описанных программ обращайтесь по
электронному адресу: algazinsd@mail.ru или на адрес Института проблем
механики РАН, 119526, Москва, проспект Вернадского д.101, к.1.

32
Литература.

1. Алгазин С. Д. Численные алгоритмы без насыщения в классических


задачах математической физики. М.: Научный Мир, 2002, 155 стр.

2. Бабенко К. И., Введенская Н. Д., Орлова М. Г. О стационарном


обтекании кругового цилиндра вязкой жидкостью// Препринт №41 за
1969 г., ИПМатем, АН СССР, 36 стр.
3. Меллер Н.Л., Пальцев Б.В., Хлюпина Е.Г. О конечно-элементных
реализациях итерационных методов с расщеплением граничных
условий для систем Стокса и типа Стокса в шаровом слое.
Осесимметричный случай // Ж. вычисл. матем. и матем. физ. 1999. Т.
39. № 1. С. 98-123.
4. Меллер НА., Пальцев Б.В., Хлюпина Е.Г. О билинейной конечно-
элементной реализации метода с расщеплением граничных условий
для системы Стокса в шаровом слое в осесимметричном случае //
Юбилейный (электронный) сб. тр. членов и сотрудников ОИВТА
РАН, посвященный 275-летию РАН. М., 1999. Разд. 1.8 с.
5. Меллер НА.. Пальцев Б.В.. Хлюпина Е.Г. О численном методе с
расщеплением граничных условий для стационарной системы Навье-
Стокса в шаровом слое в случае осевой симметрии //Тезисы
Международ. конф. "Differential Equations and Related Topics",
посвященной 100-летию со дня рождения акад. И.Г. Петровского. М.:
МГУ, 2001. С. 311-313.
6. Пальцев Б.В. О быстросходящихся итерационных методах с
расщеплением граничных условий для многомерной системы типа
Стокса. Периодические "течения" между параллельными стенками //
Докл. РАН. 1992. Т. 325. № 5. С. 926-931.
7. Пальцев Б.В. О быстросходящихся итерационных методах с
неполным расщеплением граничных условий для многомерной
сингулярно возмущенной системы типа Стокса // Матем. сб. 1994. Т.
185. №4. С. 101-150.
8. Пальцев Б.В. О быстросходящихся итерационных методах с полным
расщеплением граничных условий для многомерной сингулярно
возмущенной системы типа Стокса // Матем. сб. 1994. Т. 185. № 9. С.
109-138.
9. Пальцев Б.В.. Чечель И.И. О точных оценках скорости сходимости
итерационных методов с расщеплением граничных условий для
системы типа Стокса в слое с условием периодичности // Ж. вычисл.
матем. и матем. физ. 2000. Т. 40. № 12. С. 1823-1837.
10. Пальцев Б.В. О методах с расщеплением граничных условий для
системы типа Стокса в областях с круговой симметрией //
Функциональные пространства. Дифференц. операторы. Пробл.
матем. образования. Тр. Междунар. конф., посвященной 75-летию
чл.-корр. РАН, проф. Л.Д. Кудрявцева. М.: Изд-во РУДН. 1998. Т. 2.
С. 124-128.

33
11. Пальцев Б.В. Об условиях сходимости итерационных методов с
полным расщеплением граничных условий для системы Стокса в
шаре и шаровом слое // Ж. вычисл. матем. и матем. физ. 1995. Т. 35.
№ 6. С. 935-963.

12. Пальцев Б.В. Оптимизация значений релаксационных параметров


одношагового варианта итерационного метода с расщеплением
граничных условий для системы Стокса в шаровом слое // Вестн.
РУДН. 2001. Т. 8. Вып. 2. С. 74-90.
13. Пальцев Б.В.. Чечель И.И. Алгоритмы численных реализаций на
основе билинейных конечных элементов итерационных методов с
расщеплением граничных условий для системы типа Стокса в полосе
при условии периодичности // Ж. вычисл. матем. и матем. физ. 1997.
Т. 37. № 7. С. 799-815.
14. Пальцев Б.В., Чечель И.И. О реальных качествах билинейных
конечно-элементных реализаций методов с расщеплением граничных
условий для системы типа Стокса // Ж. вычисл. матем. и матем. физ.
1998. Т. 38. №2. С. 247-261.
15. Пальцев Б.В.. Чечель И.И. О некоторых способах повышения
скорости сходимости на высоких гармониках билинейных конечно-
элементных реализаций итерационных методов с расщеплением
граничных условий для системы типа Стокса // Ж. вычисл. матем. и
матем. физ. 1998. Т. 38. № 6. С. 956-970.
16. Лозинский АС. Об ускорении конечно-элементных реализаций
итерационных процессов с расщеплением граничных условий для
системы типа Стокса в слое с условием периодичности // Ж. вычисл.
матем. и матем. физ. 2000. Т. 40. № 9. С. 1339-1363.
17. Пальцев Б.В.. Чечель И.И. О конечно-элементных типа линейных,
второго порядка точности вплоть до полюсов аппроксимациях
операторов Лапласа-Бельтрами, градиента и дивергенции на сфере в
IR в осесимметричном случае // Докл. РАН. 2004. Т. 395. № 3. С. 308-
315.
18. Пальцев Б.В.. Чечель И.И. Повышение скорости сходимости
билинейных конечно-элементных реализаций итерационных методов
с расщеплением граничных условий для системы типа Стокса при
больших значениях сингулярного параметра // Ж. вычисл. матем. и
матем. физ. 2004. Т. 44. № 11. С. 2049-2068.
19. Belash V.O.. Pal'tsev B.V.. Chechei' I.I. On convergence rate of some
iterative methods for bilinear and bicubic finite clement schemes for the
dissipative Helmholtz equation with large values of a singular parameter//
Russ. J. Numer. Analys. Math. Modelling. 2002. T. 17. № 6. P. 485-520.
20. Пальцев Б.В. О смешанной задаче с неоднородными граничными
условиями для эллиптических с параметром уравнений второго
порядка в липшицевых областях // Матем. сб. 1996. Т. 187. №4. С.
59—116.
21. Мс CormickS.F.. RugeJ.W. Multigrid methods for variational problems //
S1AM J. Numer. Analys. 1982. V. 19. Mb 5. P. 924-929.

34
22. Г. Ламб. Гидродинамика. Гос. изд-во технико-теоритической
литературы, Москва 1947 Ленинград, 928 стр.
23. Р. Темам. Уравнения Навье-Стокса. Теория и численный анализ. Изд-
во «Мир», 1981, 408 стр.
24. Бабенко К. И. Основы численного анализа. М.: Наука, 1986. 744 с.;
Издание второе, исправленное и дополненное, под редакцией А. Д.
Брюно. Москва-Ижевск, РХД, 2002. 847 с.
25. Лойцянский Л. Г. Механика жидкости и газа, «Наука», 1973, 418 стр.
26. Корн Г и Т. Корн. Справочник по математике. «Наука», 1978, 831
стр.
27. Алгазин С. Д. Численные алгоритмы классической матфизики. V.
Уравнения Стокса // Препринт № 700, ИПМех РАН, 2002 г.,40 стр.
28. Бартеньев О. В. Фортран для профессионалов. Математическая
библиотека IMSL (часть вторая). Москва, Диалог Мифи, 2001, 319
стр.

Алгазин Сергей Дмитриевич

Численные алгоритмы классической матфизики.

XIII. Уравнения Навье-Стокса.

Подписано к печати 29.05.2006. Заказ № 12 2006. Тираж 50 экз.


________________________________________________________

Отпечатано на ризографе Института проблем механики РАН


119526, Москва, пр-т Вернадского, 101

35

Вам также может понравиться