Диссертация (1102250), страница 5
Текст из файла (страница 5)
Поскольку вектор скорости Ẋi (ψ, t) перпендикулярен фронту в точке Xi (ψ, t), и Pi (ψ, t) k Ẋi (ψ, t),то в качестве направляющего вектора для отрезка выбирался импульс Pi (ψ, t).Отрезок строился таким образом, чтобы точка фронта Xi (ψ, t) делила бы егопополам. При таком построении координата y в формуле (2.5) — это ± расстояние от точки на отрезке до центра отрезка. Далее, на каждом отрезке строиласьнеравномерная сетка так, чтобы ее узлы были гуще около фронта.
В данной работе узлы сетки на половине отрезка определялись следующим образом lπhiπh(i − 1)yi = yi−1 − · cos− cos,222h=1,mi = 1, . . . , m. (2.9)Здесь l — это длина отрезка, а m — это количество точек сетки на половинеотрезка. На Рисунке 2.5 изображен кусок сетки, построенной для окрестностирегулярных точек фронта. После этого, в узлах сетки по формуле (2.6) можно вычислить возвышение свободной поверхности жидкости. Производная поуглу Xψ (ψi, t) для внутренних точек фронта вычислялась через центральныеразностиX(ψi+1, t) − X(ψi−1, t)∂X(ψi , t) =,∂ψψi+1 − ψi−1а производная Xψ (ψi, t) в первой и последней точке вычислялась через направленные разности∂X(ψ2 , t) − X(ψ1, t)X(ψ1 , t) =,∂ψψ2 − ψ1∂X(ψN , t) − X(ψN −1, t)X(ψN , t) =.∂ψψN − ψN −1Если волновой фронт имеет такую форму, что никакие два отрезка сетки непересекаются, тогда при вычислении возвышения по формуле (2.6) суммирования не будет.
В каждой точке сетки будет учитываться вклад только от тойточки фронта, через которую проведен отрезок, содержащий эту точку. Если32же линии сетки, соответствующие различным участкам волнового фронта имеют пересечения, то итоговое возвышение вычисляется как сумма возвышенийот различных участков волнового фронта. Например, пусть точка yj лежит наотрезке, который проводился через участок волнового фронта Γ1t . Пусть также точка yj попадает внутрь области, ограниченной сеткой, построенной дляучастка фронта Γ2t . В таком случае возвышение в точке yj будет вычислятьсякак сумма возвышений от участков волнового фронта Γ1t и Γ2t . Вклад от участкафронта Γ2t вычислялся с помощью линейной интерполяции.
Алгоритм построения суммы функций, заданных на сетке с не совпадающими узлами, приводитсяв последнем параграфе данной главы.Теперь опишем алгоритм нахождения фокальных точек на фронте, которыйбыл реализован в данной работе. Этот алгоритм основан на том факте, что припрохождении через фокальную точку якобиан J = det (Ẋ, Xψ ) меняет знак [33].Причем, если зафиксировать фронт в какой-нибудь момент времени, и начатьдвигаться вдоль него, то при прохождении через фокальную точку якобиан Jпоменяет знак. Также, если рассмотреть какую-нибудь характеристику, которая проходит через фокальную точку, то после прохождения через нее, якобианJ тоже поменяет знак.
В первом случае якобиан J вычисляется на фронте, аво втором случае — на характеристиках. В этой работе при интегрированиисистемы Гамильтона (2.4) на каждом шаге по времени вычислялся знак якобиана J для всех точек фронта. Далее, для того, чтобы найти фокальные точкив какой-то момент времени, в цикле просматривались знаки стандартных якобианов для всех точек фронта. Пусть, например, получилось так, что якобианJ имеет разные знаки в точках X(ψi , t) и X(ψi+1, t).
Тогда фокальная точканаходится где-то между ними. Далее положение фокальной точки уточнялосьпри помощи метода деления отрезка пополам.332.4Сравнение асимптотических формул дляокрестности регулярных точек фронтас численным моделированием волн цунамиВ этом параграфе будет произведено сравнение результатов расчета возвышения свободной поверхности жидкости для окрестности регулярных точек фронта, посчитанного по асимптотическим формулам, с численным решением уравнений мелкой воды (2.1).Рис. 2.6. Возвышение свободной поверхности жидкости в окрестности точки самопересеченияфронта, численное решение уравнений мелкой воды.
Вид с наружной стороны фронтаВ качестве сравниваемой области была выбрана окрестность точки самопересечения фронта. В данной работе при численном решении уравнений (2.1) использовалась явная схема, построенная на разнесенном шаблоне (см. [36], схема22◦), на котором переменные определяются следующим образом:kηi,j= η (i · hx , j · hy , k · τ ) ,uki,j = u ((i − 0.5) · hx , j · hy , k · τ ) ,kvi,j= v (i · hx , (j − 0.5) · hy , k · τ ) .Здесь u, v — это компоненты скорости по осям x1, x2 соответственно, η — возвышение свободной поверхности жидкости, hx , hy — шаги равномерной сетки34Рис. 2.7.
Возвышение свободной поверхности жидкости в окрестности точки самопересеченияфронта, численное решение уравнений мелкой воды. Вид с внутренней стороны фронта(по пространству), τ — шаг по времени. Система уравнений мелкой воды, записанная в конечных разностях выглядит следующим образом:ûi,j − ui,jη̂i,j − η̂i−1,j=−,τhxv̂i,j − vi,jη̂i,j − η̂i,j−1=−,τhy(2.10)(d1 + d2 ) · ui+1,j − (d0 + d1) · ui,jη̂i,j − ηi,j=−τ2 · hx(b1 + b2) · vi,j+1 − (b0 + b1) · vi,j+.2 · hyЗдесь введены следующие обозначения:d0 = D(ui,j ),d1 = D(ui+1,j ),d2 = D(ui+2,j ),b0 = D(vi,j ),b1 = D(vi,j+1),b2 = D(ui,j+2),где, например, D(ui,j ) — это глубина в точке сетки для переменной u с порядковыми номерами (i, j).
Далее, если ξi,j — это ξ(. . . , k ·τ ), то ξˆi,j ≡ ξ(. . . , (k +1)·τ ),ξ = {u, v, η}. Граничным условием было условие полного отражения (η)n = 0,где ()n означает дифференцирование по направлению внешней нормали к границе. В конечно-разностном виде это условие было записано следующим образом. Пусть ηi,j — это возвышение свободной поверхности жидкости в точке35(i, j), и индекс i соответствует оси x, а индекс j соответствует оси y.
Пусть также точка (i, j) находится на расстоянии hx от границы по оси x. Тогда значение∗η на границе ηi,jвыбиралось таким же, как в ближайшей соседней точке (i, j),∗т. е. ηi,j= ηi,j .Стоит отметить, что несмотря на то, что в данной работе рассматривается свободное распространение волн в океане, такое граничное условие можноиспользовать, если в интересующий нас момент времени волна находится достаточно далеко от границы расчетной области.
Параметры дна, а также параметрµ и время счета такие же, как для Рисунков 2.3, 2.4. В качестве расчетной области был взят квадрат со стороной l = 7. Начало координат находится в центреквадрата, сетка была выбрана равномерной, и число точек сетки по каждомунаправлению составляло 10000.Рис. 2.8. Два сечения возвышения свободной поверхности жидкости по оси Y , проходящиечерез точку самопересечения фронта. Первое сечение посчитано по асимптотическим формулам для окрестности регулярных точек фронта, второе посчитано с помощью конечноразностной схемыНа Рисунках 2.6, 2.7 изображено возвышение свободной поверхности жидкости в окрестности точки самопересечения фронта, полученное при численном36решении уравнений мелкой воды.
Небольшие осцилляции, которые здесь можно наблюдать получаются как результат замены дифференциального уравненияразностной схемой.На Рисунке 2.8 изображены сечения возвышения свободной поверхностижидкости по оси Y , проходящие через точку самопересечения фронта. Болеевысокое и гладкое сечение — это то же сечение, что и на Рисунке 2.2, а сечениепониже и с осцилляциями — это сечение вдоль оси Y Рисунков 2.6, 2.7.2.5Алгоритм вычисления суммы функций,построенных на сетках с не совпадающимиузламиВ данном пункте приводится описание алгоритма, который использовался припостроении возвышения свободной поверхности жидкости в окрестности точексамопересечения фронта.
Пусть Γ1 и Γ2 — пересекающиеся участки фронта.Пусть, также для Γ1 и Γ2 построены сетки M1 и M2 соответственно, в узлахкоторых вычислено возвышение свободной поверхности жидкости по формуTле (2.6). Задача заключается в том, чтобы для области M1 M2 найти суммувозвышений свободной поверхности жидкости. При этом, узлы сеток M1 и M2не совпадают.Опишем алгоритм построения результирующей поверхности, вычисленнойна сетке M1 . Для этого, сначала нужно найти те точки M1 , которые попали вобласть, ограниченную сеткой M2. Алгоритм нахождения таких точек следующий.
Пусть P — точка сетки M1 , а η(P ) — возвышение свободной поверхностижидкости, вычисленное в точке P . Разобьем область, ограниченную сеткой M2на области, каждая из которых ограничена двумя соседними отрезками, перпендикулярными участку фронта Γ2 . Это те же отрезки, которые использовалисьпри построении возвышения свободной поверхности жидкости в окрестности ре-37Рис. 2.9. Попадание точки P сетки M1 в область, ограниченную сеткой M2гулярных точек фронта. Затем для каждой такой области, заключенной междудвумя соседними отрезками, будем проверять принадлежит ли точка P этой области. На Рисунке 2.9 изображено попадание точки P в область, заключеннуюмежду отрезками AB и CD. Для проверки принадлежности точки P указаннойобласти, разобьем ее на два треугольника — ABC и BDC.
Опишем проверку−→ −−→ −→на попадание точки P в треугольник ABC. Рассмотрим вектора P A, P B и P Cкак вектора из R3 с координатой x3 = 0, и вычислим следующие векторные−→ −−→ −−→ −→−→ −→произведения: [P A, P B], [P B, P C] и [P C, P A].Если все координаты x3 этих векторных произведений имеют один и тотже знак, то точка P попала в треугольник ABC.