1612725465-542b3179b36a4849700e0b2ecf7da111 (828844), страница 21
Текст из файла (страница 21)
Затемпо формуле (8.71), в которой величины H0 и M0 следует заменить наH2 и M2 соответственно, вычисляется полная глубина. И, наконец, поформуле (8.70) определяется скорость докритического течения. Графики полученного решения для свободной границы изображены на рис.
32.Например, в случае, когда гидравлический прыжок расположен в точкеxjump = 11, полная глубина правее неровности дна принимает постоянное значение H∞ = 0, 9618810, а при xjump = 11, 5 – H∞ = 0, 9190666.Полученные точные решения стационарной задачи не зависят от времени, тем не менее, они могут использоваться при тестировании численных алгоритмов, предназначенных для численного решения нестационарной системы уравнений (8.1). Для этого надо задать некоторыеначальные данные и решать задачу для уравнений (8.1) методом установления, т. е.
искать предельное во времени решение нестационарнойразностной задачи.8.6. Схема предиктор-корректор для линейных уравнениймелкой воды c правой частью. В предыдущих параграфах мы ужевидели, что из схемы предиктор-корректор при задании того или иногозначения схемного параметра θ могут быть получены противопоточнаяи другие явные схемы, которые тем самым можно рассматривать какчастный случай схемы предиктор-корректор.
Эту более общую схемумы и выпишем для нелинейных уравнений (8.1), взяв за основу схему (7.53), (7.49), построенную для линейных уравнений мелкой воды.Однако система уравнений (7.3), полученная в предположении посто143янной глубины дна (h(x) ≡ h0 = const), является, в отличие от (8.1),однородной, поэтому прямой перенос схемы (7.53), (7.49) на нелинейныеуравнения (8.1), описывающие течение жидкости над неровным дном,невозможен. Следовательно, необходимо предварительно обобщить этусхему на случай системы линейных уравнений с ненулевой правой частью G.Итак, пусть дно неровное и функция, описывающая его форму, представляется в виде h(x) = h0 + b(x), где b(x) – малая добавка.
Линеаризуем систему уравнений (8.1), используя тот же прием, что и в § 7. В результате вместо системы (7.3) получаем неоднородную систему уравнений()∂u ∂f0+=G≡,(8.74)h0 hx∂t∂xв которой векторы u и f заданы прежними выражениями (7.5), а полнаяглубина определяется как функция H(x, t) = η(x, t) + h(x).Для неоднородной системы (8.74) аналогом уравнения (7.14) будетнеоднородное уравнениеL∂u∂u+ ΛL= LG,∂t∂x(8.75)поэтому система разностных уравнений (7.42) принимает вид(nDj+1/21 nn)−1 s∗j+1/2 − 2 (sj+1 + sj )sn+1− snjj+Λττ /2∗sj+1/2 − s∗j−1/2h+ Λ snx,j+1/2 = LGj+1/2 ,(8.76)= LGj ,где(Gj+1/2 =0),h0 hx,j+1/2()0Gj =,h0 hx,jhx,j+1/2 =hx,j =h(xj+1 ) − h(xj ),hh(xj+1 ) − h(xj−1 ).2h(8.77)(8.78)Далее уравнения (8.76) преобразуются точно так же, как уравнения (7.42).
В результате вместо уравнения (7.45) получаемu∗j+1/2 − 21 (unj+1 + unj )τ /2()n+ RDj+1/2ΛLunx,j+1/2 − LGj+1/2 = 0, (8.79)144уравнение (7.49) модифицируется к видуf ∗j+1/2 − f ∗j−1/2un+1− unjj+= Gj ,τh(8.80)а из уравнения (8.79), после умножения его слева на матрицу A0 , получается аналог уравнения (7.53):()f ∗j+1/2 − 12 (f nj+1 + f nj )n+ RDj+1/2ΛL f nx,j+1/2 − Gj+1/2 = 0.
(8.81)τ /2Это уравнение аппроксимирует уравнение для вектора потоков()∂f∂f+ A0− G = 0.(8.82)∂t∂xИтак, для неоднородной системы линейных уравнений (8.74) построена схема предиктор-корректор (8.81), (8.80), которая при G ≡ 0 совпадает с описанной в § 7 схемой (7.53), (7.49).8.7. Схема предиктор-корректор для нелинейных уравнений мелкой воды является обобщением схемы (8.81), (8.80). На первом шаге схемы вычисляется вектор потоков f ∗j+1/2 с помощью разностного уравнения, аппроксимирующего дифференциальное уравнение длявектора f()∂f∂f+A− G = 0.(8.83)∂t∂xУравнение (8.83) получено в результате умножения уравнения (8.1) слева на матрицу A. Видим, что линейным аналогом уравнения (8.83) является уравнение (8.82), поэтому в качестве «предикторного» уравненияестественно взять следующий аналог линейного разностного уравнения (8.81):)n()f ∗j+1/2 − 12 (f nj+1 + f nj ) (+ RDΛLf nx,j+1/2 − Gnj+1/2 = 0, (8.84)τ /2j+1/2где( )f nj = f unj ,f nx,j+1/2 =(Gnj+1/2 =f nj+1 − f nj,h),0nHj+1/2hx,j+1/2145(8.85)(8.86)nHj+1/2=nHjn + Hj+1,2hx,j+1/2 =h(xj+1 ) − h(xj ),h(8.87)строками матрицы Lnj+1/2 являются левые собственные векторы lnk,j+1/2(k = 1, 2) матрицы Anj+1/2 , соответствующие ее собственным значениямλnk,j+1/2 , столбцами матрицы Rnj+1/2 служат правые собственные векторы r nk,j+1/2 матрицы Anj+1/2 ,Λnj+1/2 = λn1,j+1/200λn2,j+1/2,(8.88)nkматрица Dj+1/2определена формулой (7.43), при этом ее элементы θj+1/2nзадаются по формуле (7.39), в которой σk = sgn(λk,j+1/2 ),kg̃j+1/2=[|λk | (1 − æ|λk |) pk]n,j+1/2θ0k =1− 1,æ|λnk,j+1/2 |(8.89)pnk,j+1/2 – компоненты вектора P nj+1/2 = Lnj+1/2 unx,j+1/2 .Матрица Anj+1/2 аппроксимирует матрицу Якоби (8.4) в центре ячейки xj+1/2 .
Для исходной матрицы A выполняется равенство∂f∂u=A.∂x∂x(8.90)Оказывается, что матрицу Anj+1/2 можно выбрать так, чтобы равенствовида (8.90) выполнялось и для сеточных функций.Лемма 8.1. Пусть матрица Anj+1/2 задана формулойAnj+1/2 = гдеunj+1/2 =0−unj unj+1unj + unj+1,2+1nHj+1/2nHj+1/2=,(8.91)2unj+1/2nHjn + Hj+1.2Тогда выполняется равенствоf nx,j+1/2 = Anj+1/2 unx,j+1/2 .146(8.92)Д о к а з а т е л ь с т в о. Справедливость формулы (8.92) устанавливается непосредственным умножением матрицы (8.91) на разностнуюпроизводнуюunj+1 − unjunx,j+1/2 =(8.93)hи использованием выражений (8.2) для векторов u и f .Собственные значения матрицы Anj+1/2 вычисляются по формуламλn1,j+1/2 = (u − c)nj+1/2 ,гдеcnj+1/2√(=unj+1/2)2λn2,j+1/2 = (u + c)nj+1/2 ,(8.94)n− unj unj+1 + Hj+1/2.(8.95)Векторыr n1,j+1/2=−cnj+1/2()1,λn1,j+1/22r n2,j+1/2=cnj+1/2(1)λn2,j+1/22являются правыми собственными векторами матрицы Anj+1/2 , соответствующими ее собственным значениям (8.94), а векторыln1,j+1/2 =(1(cnj+1/2 )2−λn2,j+1/21)T,ln2,j+1/2 =(1(cnj+1/2 )2−λn1,j+1/21)T– левыми, при этомlk · r m = δk,m ,(8.96)k, m = 1, 2,где δk,m – символы Кронекера.
Таким образом, матрицы Lnj+1/2 и Rnj+1/2 ,составленные из этих векторов, запишутся какLnj+1/2 =Rnj+1/2 =1(cnj+1/2 )2cnj+1/22−λn2,j+1/21−λn1,j+1/21,−11−λn1,j+1/2λn2,j+1/2147(8.97),(8.98)и для них будут выполняться аналоги равенств (7.11)–(7.13):n(LR)j+1/2 = E,n(LAR)j+1/2 = Λnj+1/2 ,nAnj+1/2 = (RΛL)j+1/2 . (8.99)С учетом этих равенств и выражения (8.92) уравнение шага предиктор (8.84) можно переписать в следующей эквивалентной форме:f ∗j+1/2 − 12 (f nj+1 + f nj ) ()n()n+ RDΛ j+1/2 ΛLux − LG j+1/2 = 0. (8.100)τ /2На шаге корректор находятся величины un+1на (n + 1)-м слое поjвремени.
Для этого используется аппроксимация дивергентной системы (8.1), аналогичная аппроксимации (8.80),f ∗j+1/2 − f ∗j−1/2un+1− unjj+= G∗j ,τhгдеG∗j(=0Hj∗ hx,j),hx,j =h(xj+1 ) − h(xj−1 ),2h(8.101)(8.102)h – шаг равномерной сетки, h(x) – функция, описывающая дно бассейна.Заметим, что для реализации шага корректор (8.101) требуются потоки f ∗j+1/2 и «предикторные» величины Hj∗ , определенные в целыхузлах. Потоки определяются из уравнения (8.100), а для вычислениявеличин Hj∗ разностного уравнения пока нет. Получим его на основеаппроксимации недивергентной системы (8.3) с помощью разностногоуравнения, аналогичного линейному уравнению (8.79) в целых узлах:)n(u∗j − unj+ RD(ΛLux − LG) = 0,τ /2jгдеunj =unj+1 + unj−1,2unx,j =unj+1 − unj−1,2h(8.103)(8.104)матрицы L, R, Λ определяются формулами (8.97), (8.98), (8.88), но вычисляются в рассматриваемом случае в целых узлах с использованиемсобственных значений√( )n2nnnnnλ1,j = (u − c)j , λ2,j = (u + c)j , cj =unj − unj+1 unj−1 + H j148матрицыAnj = 01n−unj−1 unj+1 + H j,2unjаппроксимирующей в целых узлах матрицу (8.4),0n.Gj = nH j hx,j(8.105)Предикторная величина u∗j входит только в источниковый член G∗jшага корректор (8.101).
Точнее, в источниковом члене используетсятолько первая компонента вектора u∗j , которая определяется на основепервого разностного уравнения системы (8.103)n[ 1 + θ1 ()Hj∗ − H j+λ1 λ2 Hx − λ1 (Hu)x + Hhx −τ /2λ2 − λ1(8.106))]n2 (1+θ−λ1 λ2 Hx − λ2 (Hu)x + Hhx= 0,λ2 − λ1jгде при вычислении всех разностных производных используются центральные разности (8.104) и (8.102), а для вычисления функций θjk применяется формула (7.39), в которой индекс j + 1/2 заменяется()n на целыйиндекс j и используются компоненты вектора P nj = Lux j .Отметим некоторые свойства полученной схемы. Легко проверить,что уравнения (8.1) сохраняют состояние покоя жидкости, т.
е. еслив начальный момент времени заданы условияη(x, 0) ≡ 0,u(x, 0) ≡ 0,(8.107)то система уравнений (8.1) имеет решениеu(x, t) ≡ 0,H(x, t) = h(x),(8.108)соответствующее при t > 0 покою жидкости с невозмущенной свободной границей η(x, t) ≡ 0.
Желательно, чтобы этим свойством обладалаи разностная схема для нелинейных уравнений мелкой воды.Теорема 8.1. Пустьηjn ≡ 0,unj ≡ 0.149(8.109)Тогда при использовании схемы (8.100), (8.101), (8.106) состояние покоя жидкости сохранится и на (n + 1)-м слое по времени:ηjn+1 ≡ 0,un+1≡ 0.j(8.110)Д о к а з а т е л ь с т в о. Используя выражения (8.86), (8.88), (8.97),получаем равенства[ ()]nHhx()n1LG j+1/2 = 2,(8.111)cHhxj+1/2(ΛLux[)nj+1/21= 2c(−λ1 λ2 Hx + λ1 (Hu)x−λ1 λ2 Hx + λ2 (Hu)x)]n.(8.112)j+1/2С учетом условий (8.109) и определения (8.95) получаем, чтоn= hx,j+1/2 ,Hx,j+1/2n(Hu)x,j+1/2 ≡ 0,h(xj ) + h(xj+1 ),2()2= − cnj+1/2 = −hj+1/2 ,nHj+1/2= hj+1/2 =n(λ1 λ2 )j+1/2поэтому()nΛLux − LG j+1/2 ≡ 0.Тогда из уравнения (8.100) следует, чтоnn0f+fj+1jf ∗j+1/2 == h2 (xj ) + h2 (xj+1 ) .24(8.113)(8.114)Из второго «предикторного» уравнения (8.106) также получаем равенствоnn+ Hj−1Hj+1h(xj+1 ) + h(xj−1 )Hj∗ ==.(8.115)22Подставляя найденные величины (8.114), (8.115) в уравнение шага корректор (8.101), получаем равенство un+1= unj , из которого следует, чтоjHjn+1 = Hjn , un+1= unj , т.
е. справедливость утверждения (8.110).j150В примере 8.3 было показано, что если при t = 0 заданы начальные данные (8.20), соответствующие гидравлическому прыжку (8.51)–(8.53), то задача Коши (8.1), (8.20) имеет решение, описываемое формулой (8.54), согласно которой гидравлический прыжок сохраняет своеположение при t > 0, т. е. u(x, t) = u(x, 0). Оказывается, что в случаепостоянной глубины бассейна схема предиктор-корректор также сохраняет начальный гидравлический прыжок.Теорема 8.2. Пусть дно горизонтальное (G ≡ 0) и{{u1 , j ≤ j0 ,H1 , j ≤ j0 ,nnuj =Hj =(8.116)u 2 , j > j0 ,H 2 , j > j0 ,где величины u1 , u2 , H1 , H2 удовлетворяют соотношениям (8.51)–= unj , т.