next up previous
Next: Симметрии и разделение задачи Up: ЧИСЛЕННАЯ РЕАЛИЗАЦИЯ ГИДРОДИНАМИЧЕСКОЙ Previous: ЧИСЛЕННАЯ РЕАЛИЗАЦИЯ ГИДРОДИНАМИЧЕСКОЙ

1. Описание модели и ее численная реализация.

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

1.1. Постановка задачи. Ниже используются следующие обозначения: tex2html_wrap_inline5078; tex2html_wrap_inline5080; tex2html_wrap_inline5082 означает, что перечисляются все тройки индексов tex2html_wrap_inline5084, полученные из tex2html_wrap_inline5086 круговой перестановкой; мы предполагаем суммирование по повторяющимся индексам, если не оговорено противное; в параграфе 2 знак суммирования все же сохраняется, поскольку там необходимо знать, по какой совокупности индексов оно происходит. В области tex2html_wrap_inline5088 рассматривается медленное движение вязкой неоднородной несжимаемой жидкости в поле силы тяжести. Предпологается, что физические параметры жидкости являются переменными и задаются в начальный момент времени. В процессе движения жидкости значения ее плотности и вязкости переносятся вместе со средой. Это движение в декартовых координатах описывается известными квазистационарными уравнениями Навье -- Стокса [13, 14, 15, 16, 17, 18, 19, 20]


equation4114
где tex2html_wrap_inline5090 -- вектор скорости, tex2html_wrap_inline5092 -- вектор внешних массовых сил, g -- ускорение свободного падения, p -- давление, tex2html_wrap_inline5098 -- плотность, tex2html_wrap_inline5100 -- динамическая вязкость, tex2html_wrap_inline5102 -- тензор скоростей деформаций.

Уравнение несжимаемости (неразрывности) задается в форме
equation4116
перенос плотности и вязкости описывается уравнениями
equation4120

equation4122
На границе tex2html_wrap_inline5104 области tex2html_wrap_inline5106 рассмoтрим граничные условия прилипания
equation4124
или непротекания вместе с идеальным скольжением
equation4126
tex2html_wrap_inline5108 -- единичная внешняя нормаль в точках границы tex2html_wrap_inline5104.

Таким образом, задача состоит в расчете функций
displaymath4902
удовлетворяющих в области tex2html_wrap_inline5106 при tex2html_wrap_inline5114 уравнениям (1.1)- (1.4), граничным условиям (1.5) или (1.6) и начальным условиям из (1.3) , (1.4). Отметим, что эта задача имеет не более одного решения.

1.2. Преобразование задачи. Исключим из рассмотрения давление p и условие несжимаемости (1.2), введя векторный потенциал tex2html_wrap_inline5118 по формуле tex2html_wrap_inline5120. Выполним операцию tex2html_wrap_inline5122 над равенством (1.1), тогда, учитывая тождества tex2html_wrap_inline5124 и tex2html_wrap_inline5126, получим систему уравнений для нахождения функций tex2html_wrap_inline5128, tex2html_wrap_inline5130, tex2html_wrap_inline5132, которая в развернутой форме имеет вид :
equation4138

equation4140

equation4142

equation4144

equation4146

equation4148
граничные условия для tex2html_wrap_inline5134 в случае прилипания имеют вид
equation4150

displaymath4903
граничные условия для tex2html_wrap_inline5134 в случае непротекания и идеального скольжения можно взять в виде (без суммирования по повторяющимся индексам)
equation4152

displaymath4904

Компоненты тензора tex2html_wrap_inline5138 в развернутой форме имеют вид (без суммирования по повторяющимся индексам)
equation4154

displaymath4905

Равенства (1.7), (1.8), (1.9) умножим соответственно на компоненты tex2html_wrap_inline5140, tex2html_wrap_inline5142, tex2html_wrap_inline5144 пробной вектор-функции tex2html_wrap_inline5146, удовлетворяющей граничным условиям (1.13) или (1.14). Результаты умножения проинтегрируем по tex2html_wrap_inline5106 и перебросим с помощью формулы интегрирования по частям вторые производные на пробные функции. После сложения получившихся трех равенств будем иметь вариационное равенство, которое должно выполняться для любой пробной вектор-функции tex2html_wrap_inline5150, принадлежащей тому же классу гладкости и тем же граничным условиям, что и функция tex2html_wrap_inline5134 :
equation4156
где
displaymath4906

displaymath4907
Величины tex2html_wrap_inline5154 и tex2html_wrap_inline5138 выражаются через tex2html_wrap_inline5134 по формулам (1.15); величины tex2html_wrap_inline5160 и tex2html_wrap_inline5162 выражаются через tex2html_wrap_inline5150 по тем же формулам, где вместо tex2html_wrap_inline5166 нужно подставить tex2html_wrap_inline5168, tex2html_wrap_inline5170. Отметим, что билинейная форма tex2html_wrap_inline5172 симметрична, то-есть tex2html_wrap_inline5174, и неотрицательна: tex2html_wrap_inline5176 для любой допустимой tex2html_wrap_inline5150; правая часть tex2html_wrap_inline5180 преобразуется к виду, в котором отсутствует дифференцирование функции tex2html_wrap_inline5098.

Итак, решение исходной задачи сведено к нахождению функций tex2html_wrap_inline5128, tex2html_wrap_inline5130, tex2html_wrap_inline5132, удовлетворяющих в области tex2html_wrap_inline5106 при tex2html_wrap_inline5114 вариационному уравнению (1.16), начальным условиям из (1.10), (1.11) и граничным условиям (1.13) или (1.14).

Преобразованная задача (1.16) имеет бесконечно много решений. Действительно, если tex2html_wrap_inline5134 -- некоторое решение этой задачи, то tex2html_wrap_inline5196, где tex2html_wrap_inline5198 -- произвольная функция из tex2html_wrap_inline5200, также будет решением преобразованной задачи. Тем не менее, можно показать, что граничные условия (1.13) или (1.14) обеспечивают, единственность нахождения рассматриваемых ниже дискретных аппроксимаций. В задаче (1.16) никакие граничные условия не могут обеспечить единственность ее решения. Для определенности можно рассматривать нормальные решения, т.е. решения минимизирующие какую-либо норму.

1.3. Схема расчета задачи. Начальные данные tex2html_wrap_inline5202 и tex2html_wrap_inline5204 из (1.10), (1.11) подставляются в краевую задачу (1.7) - (1.9) с граничными условиями (1.13) или (1.14) для расчета векторного потенциала tex2html_wrap_inline5134 и поля скоростей tex2html_wrap_inline5208 в момент времени tex2html_wrap_inline5210, затем эти поля используются в задачах (1.10), (1.11) для расчета вязкости tex2html_wrap_inline5100 и плотности tex2html_wrap_inline5098 в области tex2html_wrap_inline5106 в момент времени tex2html_wrap_inline5218. Далее момент времени tex2html_wrap_inline5218 принимается за начальный и схема расчетов повторяется. Поле векторного потенциала tex2html_wrap_inline5134 рассчитывается методом Галеркина с базисом, состоящим из трикубических сплайнов на соответствующих кубических элементах (этот базис строится ниже). Вязкость и плотность могут вычисляться из уравнений переноса каким-либо методом, например, сдвигом вдоль поля скоростей tex2html_wrap_inline5208 и последующей интерполяции на всю область. Шаг по времени tex2html_wrap_inline5226 может выбираться автоматически так, чтобы максимальное смещение материальных точек среды не превосходило заданной достаточно малой величины h. Для этого отыскивается tex2html_wrap_inline5230 на соответствующих элементах, а затем полагается tex2html_wrap_inline5232.

Заметим, если функции tex2html_wrap_inline5202 и tex2html_wrap_inline5204 симметричны относительно плоскостей tex2html_wrap_inline5238 и tex2html_wrap_inline5240, то поле скоростей tex2html_wrap_inline5208, вязкость tex2html_wrap_inline5100 и плотность tex2html_wrap_inline5098 будут оставаться симметричными относительно этих плоскостей и во все моменты времени tex2html_wrap_inline5114. Поэтому, согласно результатам параграфов 2 и 3, решение задачи достаточно найти в области
displaymath4908
и затем результат симметрично отразить относительно упомянутых плоскостей. На самих плоскостях следует рассматривать граничные условия непротекания и идеального скольжения. Если функция tex2html_wrap_inline5202 симметрична относительно плоскостей tex2html_wrap_inline5238 и tex2html_wrap_inline5240, то, согласно результатам параграфов 2 и 3, решение исходной задачи можно свести к решению четырех независимых подзадач в tex2html_wrap_inline5256. Если tex2html_wrap_inline5258, то решение исходной задачи можно свести к решению восьми независимых подзадач в
displaymath4909
Возможны и другие варианты использования симметрий, см. параграфы 2 и 3.

1.4. Детали вычислительной схемы. Опишем кратко способ построения базисных элементов, который опирается на понятие одномерного базисного кубического сплайна. Одномерным кубическим сплайном s(x), соответствующим какому-либо разбиению отрезка tex2html_wrap_inline5262, называется [23] функция, удовлетворяющая следующим двум условиям (краевые условия пока не указываем):
1) на каждом отрезке разбиения она является кубическим полиномом;
2) функции s(x), tex2html_wrap_inline5266, tex2html_wrap_inline5268 непрерывны на области определения.
При решении задачи интерполяции требуется найти сплайн, который в узлах разбиения совпадает со значениями интерполируемой функции. Кроме того, для однозначного представления интерполируемой функции необходимо наложить два дополнительных граничных условия. Таким образом, для однозначного представления кубическим сплайном на концах отрезка должны выполняться по два граничных условия, например:
displaymath4910
или
displaymath4911

Введем на отрезке tex2html_wrap_inline5262 разбиение
displaymath4912
Точкам разбиения tex2html_wrap_inline5272, поставим в соответствие сплайны tex2html_wrap_inline5274, которые имеют вид
displaymath4913
(носитель=
displaymath4914

displaymath4915
(носители=
displaymath4916

displaymath4917
(носитель=
displaymath4918

Носитель сплайна tex2html_wrap_inline5276 имеет длину 4h, у остальных сплайнов длина носителя 3h. Ниже в таблицах указаны коэффициенты кубических полиномов, составляющих сплайн, при соответствующих степенях аргумента; под каждой таблицей перечисляются граничные условия, которым удовлетворяют соответствующие сплайны:

tex2html_wrap_inline5276:
tabular3024
\
displaymath4919
в качестве tex2html_wrap_inline5308 или tex2html_wrap_inline5310 выбирается один из следующих трех сплайнов или их некоторая комбинация

tex2html_wrap_inline5312:
tabular3035

displaymath4920
tex2html_wrap_inline5336:
tabular3047

displaymath4921
tex2html_wrap_inline5360:
tabular3059

displaymath4922
в качестве tex2html_wrap_inline5386 или tex2html_wrap_inline5388 выбирается один из следующих трех сплайнов или их некоторая комбинация
tex2html_wrap_inline5390:
tabular3070

displaymath4923

displaymath4924
tex2html_wrap_inline5410:
tabular3079
\
displaymath4925

displaymath4926
tex2html_wrap_inline5430:
tabular3091

displaymath4927

displaymath4928
Конкретный вид сплайнов tex2html_wrap_inline5308, tex2html_wrap_inline5310, tex2html_wrap_inline5386, tex2html_wrap_inline5388 будет зависеть от типа граничных условий для интерполируемой функции. При рассмотрении условий идеального скольжения сплайны tex2html_wrap_inline5312, tex2html_wrap_inline5430 не принимаются во внимание. Набор сплайнов tex2html_wrap_inline5274, tex2html_wrap_inline5466, линейно независим, проэтому является базисом в натянутом на него линейном пространстве. Подробная теория сплайнов с анализом их сходимости дается, например, в [23]. Отметим одно важное свойство системы стандартных и базисных сплайнов: набор стандартных сплайнов tex2html_wrap_inline5468 симметричен относительно середины отрезка, на котором они рассматриваются; при симметричных граничных условиях для интерполируемой функции систему базисных сплайнов tex2html_wrap_inline5274, tex2html_wrap_inline5466, можно выбрать симметричной относительно середины отрезка [0,l].

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

displaymath4929

displaymath4930

Рассмотрим пространство, базисом в котором является множество функций, являющихся всевозможными произведениями трех одномерных базисных сплайнов относительно соответствующих переменных (далее такие элементы иногда будем называть трикубическими сплайнами или базисными функциями)
equation4161

Сплайны tex2html_wrap_inline5484 зависят, вообще говоря, от номера оси, т.к. на каждой из осей могут рассматриваться свои разбиения отрезка. С целью упрощения обозначений эту зависимость опускаем.

Приближения к искомым функциям будем искать из указанного выше пространства. Поскольку, в зависимости от вида граничных условий, компоненты векторного потенциала tex2html_wrap_inline5134 будут приближаться, вообще говоря, разными наборами базисных функций, то для отличия одного набора базисных функций от другого будем использовать верхний индекс. Базисные функции для приближения tex2html_wrap_inline5098 и tex2html_wrap_inline5100 будем отличать соответствующими надчеркиваниями. Отметим одно важное свойство набора базисных функций, о котором в одномерном случае упоминалось выше: если краевые условия задачи симметричны относительно плоскости tex2html_wrap_inline5492, то таковыми можно задать и наборы базисных функций.

Искомую функцию tex2html_wrap_inline5134 будем приближать линейными комбинациями базисных вектор-функций tex2html_wrap_inline5496,


equation4163
здесь tex2html_wrap_inline5498 - орт соответствующей координатной оси.

Функции tex2html_wrap_inline5098 и tex2html_wrap_inline5100 будем приближать линейными комбинациями по системам базисных функций, которые строятся аналогично предыдущей (при этом в качестве базисных функций достаточно использовать кусочно-линейные функции)
equation4165

equation4167

Выпишем систему линейных алгебраических уравнений для нахождения приближения к функции tex2html_wrap_inline5134, то есть неизвестных коэффициентов tex2html_wrap_inline5506 в (1.19). Для этого подставим (1.19)-(1.21) в вариационное уравнение (1.16) и по очереди переберем все пробные функции tex2html_wrap_inline5150:
displaymath4931

После перегруппировки членов приходим к следующей системе линейных алгебраических уравнений:
displaymath4932

displaymath4933

displaymath4934
где коэффициенты имеют следующий вид:
displaymath4935

displaymath4936


displaymath4937

displaymath4938


displaymath4939

displaymath4940


displaymath4941

displaymath4942


displaymath4943

displaymath4944


displaymath4945

displaymath4946

displaymath4947

displaymath4948


displaymath4949

displaymath4950


displaymath4951

displaymath4952

Коэфициенты A, B и C с индексами являются интегралами от произведений базисных сплайнов и их производных:
displaymath4953

displaymath4954

displaymath4955
где tex2html_wrap_inline5516 -- производная порядка tex2html_wrap_inline5518. Коэффициенты в правых частях уравнений принимают вид
displaymath4956

displaymath4957

displaymath4958
Интегралы A, B, C, P, Q, R (с соответствующими индексами) могут быть вычислены аналитически и рассчитываются заранее. Уравнения линейной системы формируются независимо друг от друга, поэтому процесс формирования матрицы системы и вектора правой части может быть распараллелен.

Введем следующую линейную нумерацию уравнений и неизвестных: объекту с индексом (p,i,j,k), где tex2html_wrap_inline5534, tex2html_wrap_inline5536, tex2html_wrap_inline5538, tex2html_wrap_inline5540, припишем номер
displaymath4959

displaymath4960

При такой нумерации базисных функций tex2html_wrap_inline5542 и неизвестных коэффициентов tex2html_wrap_inline5506 матрица системы будет ленточной с шириной ленты пропорциональной tex2html_wrap_inline5546 и практически не зависящей от tex2html_wrap_inline5548. При этой нумерации матрица системы получается симметричной и положительно определенной.

Полученную линейную систему можно решать точными и приближенными методами. Существенная трудность решения системы на ЭВМ состоит в ее очень большой размерности. Так для сетки tex2html_wrap_inline5550 получается 9000000 элементов матрицы и 3000 неизвестных. Отметим, что среди элементов матрицы будет много нулевых; этот факт можно учитывать при хранении матрицы и решении системы уравнений. В качестве базового метода решения системы уравнений выбран метод Холесского (метод квадратного корня) [21, 22]. Как указывалось выше, для задачи с симметричными граничными условиями система базисных функций может быть выбрана симметричной, что влечет наличие некоторых tex2html_wrap_inline5552 - симметричных инволюций на пространстве приближенных решений. Тогда, согласно результатам параграфов 2 и 3, решение системы линейных уравнений можно свести к решению нескольких независимых подсистем. Симметрию матрицы системы можно использовать также для сокращения вычислений элементов матрицы и уменьшения объемa памяти, необходимой для их хранения. Но главный выигрыш получается благодаря тому, что, если, например, решение системы с примерно tex2html_wrap_inline5554 неизвестными сводится к решению 8 независимых подсистем примерно с tex2html_wrap_inline5556 неизвестными каждая, то матрицы и соответствующие фактор-матрицы этих подсистем, с учетом ленточной структуры, содержат примерно в 32 раза меньше ненулевых элементов каждая, чем матрица и соответствующая факторматрица исходный системы. Все вместе они содержат в 4 раза меньше ненулевых элементов.

Обратимся к процедурам нахождение вязкости и плотности. Подставим в (1.10), (1.11) представление искомых функций в виде сплайн-интерполянтов. Умножим обе части этого равенства на пробные функции
displaymath4961
проинтегрируем обе части по области tex2html_wrap_inline5106 и получим систему линейных дифференциальных уравнений для нахождения неизвестных tex2html_wrap_inline5560
displaymath4962

displaymath4963

displaymath4964
где
displaymath4965

displaymath4966

displaymath4967

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

Возможны другие варианты расчета плотности и вязкости, основанные на методе обратного хода и позволяющие избежать образования при расчете так называемых ложных диапировых структур [24, 25]. Например, можно поступить следующим образом. Уравнения (1.3), (1.4) имеют характеристики, описываемые системой обыкновенных дифференциальных уравнений
displaymath4968
где x(t) нужно рассматривать как вектор с компонентами tex2html_wrap_inline5564. Вдоль характеристик плотность и вязкость сохраняют свои значения
displaymath4969
Методом Эйлера расчет характеристик в обратном времени с шагом tex2html_wrap_inline5566 можно вести по формуле
displaymath4970
Отсюда получаем
displaymath4971

displaymath4972

Таким образом, полученные формулы позволяют определять плотность и вязкость в момент времени t по известным распределениям плотности и вязкости на предыдущем шаге по времени и по известному полю скоростей, уже рассчитанному в момент времени t.

1.5. Вычисление прогиба поверхности. Погружение (прогиб) поверхности в каждый момент времени будем вычислять по формуле [11, 25]:
displaymath4973
компонента tex2html_wrap_inline5572 рассчитывается по формуле
displaymath4974
где давление p с точностью до константы можно определить с помощью интегрирования:
displaymath4975

displaymath4976

displaymath4977

Легко заметить, что поверхность
displaymath4978
отличается от реальной сдвигом на константу вдоль оси tex2html_wrap_inline5576 (профили этих поверхностей одинаковы). Реальная поверхность должна быть такова, чтобы выполнялся закон сохранения массы, и поэтому реальную поверхность можно рассчитать по формуле
displaymath4979
где A - среднее значение tex2html_wrap_inline5580, например,
displaymath4980

1.6. Тестирование решения задачи. Точность решения всей задачи определяется главным образом той точностью, с которой удается решить систему уравнений Стокса с помощью предложенной вычислительной схемы. Проще всего получить представление о величине погрешности используемой аппроксимации -- это решить приближенным методом задачу, для которой известно точное решение, и сравнить приближенное решение с точным. Это просто сделать, если ``идти в обратном направлении'': надо взять гладкую вектор-функцию, удовлетворяющую краевым условиям, объявить ее решением, подставить в оператор системы уравнений и получить требуемую правую часть.

Зададим функцию tex2html_wrap_inline5134 следующим образом:
displaymath4981
На границе области tex2html_wrap_inline5584 функция tex2html_wrap_inline5586 удовлетворяют условиям идеального скольжения с непроницаемостью.

Подставляя tex2html_wrap_inline5134 в формулу (1.16), получаем правую часть для тестового примера:
displaymath4982

displaymath4983

displaymath4984
причем эти интегралы можно вычислить точно.

Тестовый пример аппроксимировался на сетке из tex2html_wrap_inline5590 узлов при постоянной вязкости. В этом случае задача обладает тремя пространственными симметриями относительно плоскостей tex2html_wrap_inline5592, поэтому решение системы tex2html_wrap_inline5594 сводится к решению 8 независимых подсистем tex2html_wrap_inline5596, размерность вектора неизвестных в которых в 8 раз меньше размерности вектора неизвестных для исходной системы. Полученное приближенное решение tex2html_wrap_inline5598, tex2html_wrap_inline5600, tex2html_wrap_inline5602 удовлетворяет точности
displaymath4985

Другой способ оценки точности решения основан на законе сохранения массы. Общая масса жидкости в области tex2html_wrap_inline5106 должна оставаться постоянной во времени. Ее легко вычислить с помощью интегрирования плотности по области tex2html_wrap_inline5106. Было установлено, что изменение массы не превышает 0.3% на каждом шаге по времени.

1.7. Расчеты. Численно моделировалось погружение тонкой эклогитовой линзы в поле силы тяжести в среде с постоянной вязкостью. Вычисления проводились при следующих значениях безразмерных параметров задачи.

Область tex2html_wrap_inline5106 представляла собой параллелепипед
displaymath4986

Линза представляла собой часть эллиптического цилиндра
displaymath4987

Вязкость tex2html_wrap_inline5610, функция tex2html_wrap_inline5204 задавалась формулой
displaymath4988

Аппроксимация исходной задачи производилась на сетке из tex2html_wrap_inline5590 узлов. Векторный потенциал аппроксимировался трикубическими сплайнами. В качестве граничных условий взяты условия идеального скольжения. Система линейных алгебраических уравнений решалась методом Холесского. Плотность аппроксимировалась на сетке из tex2html_wrap_inline5616 узлов с помощью трилинейных функций. Использование трилинейных функций позволило аппроксимировать разрывную функцию плотности лучше, чем при интерполяции трикубическими сплайнами. Шаг по времени, с которым проводились пересчеты плотности, выбирался по следующей формуле:
displaymath4989

Вычисления проводились на IBM PC-486/66/8. Восемь фактор-матриц в методе Холесского формировалась 2.5 часа, один шаг по времени делался за 0.3 часа (сюда входило: решение системы линейных алгебраических уравнений с помощью фактор-матриц, расчет поля скоростей по векторному потенциалу на сетке tex2html_wrap_inline5616, нахождение плотности на сетке tex2html_wrap_inline5616). Тот же самый пример был расчитан на многопроцессорном комплексе МВС-100. Расчет проводился на 8 процессорах, факторматрицы формировались за 19 минут, один шаг по времени делался за 4 минуты.

Результаты численных расчетов приводятся в виде плоских сечений (tex2html_wrap_inline5622 и tex2html_wrap_inline5624) в различные моменты времени (t=0, t=64, t=96). Поля скоростей обозначаются стрелками (длина стрелки прямо пропорциональна величине скорости), включения более плотного тела обозначаются штриховкой. На последних рисунках изображены прогиб поверхности, линии и множества уровня. Масштаб по времени равен 0.5 млн. лет. По расчетам в средних сечениях средняя скорость погружения линзы на рассматриваемом промежутке времени примерно равна 0.92 км/млн.лет; поверхность опускается вслед за линзой примерно 10 млн. лет на глубину 2.8 км, а затем начинает медленно подниматся со средней скоростью примерно 9.73 м/млн.лет.

figure3508

figure3512

figure3516

figure3520

figure3524

figure3528

figure3532

figure3536


next up previous
Next: Симметрии и разделение задачи Up: ЧИСЛЕННАЯ РЕАЛИЗАЦИЯ ГИДРОДИНАМИЧЕСКОЙ Previous: ЧИСЛЕННАЯ РЕАЛИЗАЦИЯ ГИДРОДИНАМИЧЕСКОЙ