1. Алгоритм решения уравнений Сен-Венана на разнесенной сетке схемой Хойна Случай докритического потока ( Fr 1 ) Решаемые в настоящей модели уравнения Сен-Венана выглядят следующим образом S SU Er , t x h hr U 1 U 2 gU 2 E U U g 2 r r , t 2 x x C R R S x x hr f sh 1 S . В этом уравнении опущен эффект неоднородности распределения скорости в пределах поперечного сечения потока (ее эффект невелик, Коваленко и др., 2006). Задача решается в области x 0, X , t>0. В случае докритического потока на границе x1 0 задается скорость U x1 , t j , а на границе xn 1 X xn1 2 - уровень воды hr nj 1 [Wu, 2008]. 2 2 Уравнение для импульса в граничной точке i=1 записывается следующим образом (пренебрегая источником в правой части за счет боковых притоков) U x1 , t g j 1 U x1, t 1 4 U 2j U x1, t j U 2 x1, t j t x1 2 j U x ,t g h1 1 hr S1j 1 h1 1 hr S1j 1 2 2 2 x1 2 2 2 x ,1 1 U 2j U x1 , t j 2 F x1 , t j 2 , 2 x1 x1 j 1 C 2 R1j R1j 1 R1j R w1 1 , hr1j 1 R w1 1 , hr1j 1 . 2 2 2 2 2 (1.1) Отсюда следует расчетная формула x1Y hr S1j 1 h1 1 h1 1 , 2 2 2 g hr1j 1 2 j j 2 j U x1 , t j 1 U x1 , t j 1 4 U 2 U x1 , t U x1 , t Y t x1 2 U 2 x1 , t j g C 2 R1j R1j (1.2) 2 x ,1 1 U 2j U x1 , t j 2 F x1 , t j 2 . 2 x x1 1 Предположим, что Si j 1 , i 1,..., n 1 и U i j , i 2,..., n уже вычислены на 2 предыдущей итерации цикла по времени. Тогда, перед расчетом по формуле (1.2) необходимо задать U x1 , t j и U x1 , t j 1 . Коэффициент вязкости x ,i 1 2 на настоящем этапе считается или константой, или величиной, зависящей только от x. Величиной F x1 , t j можно, по-видимому, без существенной ошибки пренебречь. Перейдем к граничным условиям на границе xn X . Уравнение движения для i=n можно записать следующим образом U U t * n g j n U j 2 n 1 4 U nj U nj1 2 xn1 hn 1 hr X xn 2, t j hn 1 hr S nj 1 2 2 xn1 2 x ,n 1 U nj U nj1 2 xn1 2 2 F xn , t j xn1 , 1 Rnj R wn 1 , hr nj 1 R wn 1 , hr nj 1 2 2 2 2 2 2 U g C R R j 2 n 2 j n j n , (1.3) откуда легко выражается U n* . Если Si j 1 , i 1,..., n 1 и U i j , i 2,..., n уже 2 вычислены, то для расчета по формуле (1.3) нужно присвоить значение hr X xn 2, t j . Шаг «предиктор» по схеме Хойна осуществляется по формулам Si*1 2 Si j 1 2 tTs ,i 1 2 , i 1,..., n 1, Ts ,i 1 2 E j ri 1 2 S j i 3 2 Si j 1 2 U i j 1 Si j 1 2 Si j 1 2 U i j (1.4) . 2xi U i* U i j tTU ,i , i 2,..., n 1, TU ,i U j i 1 U i j U i j U i j 1 2 4 xi 1 xi 2 2 hi 1 hr Si j 1 hi 1 hr Si j 1 Er ij 1 Er ij 1 U i j 2 2 2 2 2 2 g (1.5) j j xi 1 xi Si 1 Si 1 U g R R j 2 i C2 j 1 i i j 1 2 x ,i 1 U 2 j i 1 Ui j xi xi 1 xi 2 2 x ,i 1 U i U j 2 j i 1 xi 1 xi 1 xi 1 Ri j 1 R wi 1 , hr ij11 R wi 1 , hr ij11 2 2 2 2 2 2 , . Поскольку Si j 1 , i 1,..., n 1 и U i j , i 2,..., n уже вычислены (U1j U x1 , t j 2 граничное условие), то для расчета по формуле (1.4) нужно только найти Snj 1 f sh hr X xn 2, t j и S1j 1 f sh hr1j 1 , где функция f sh зависит от 2 2 2 формы поперечного сечения реки. Для формулы (1.5) все данные к моменту вычислений готовы. После вычислений по (1.4) и (1.5) находим значения переменных на промежуточном шаге по времени: j 1 Ui j 1 2 1 j Si 1 Si* 1 , i 1,..., n 1, 2 2 2 (1.6) 1 j * U i U i , i 2,..., n. 2 Si 1 2 2 j 1 После этого находим hr1 1 2 по формуле, аналогичной (1.2) 2 j 1 hr1 1 2 2 x1Y j 1 hr S1 1 2 h1 1 h1 1 , 2 2 2 g 2 U j 1 2 U x , t j 1 2 U 2 x , t j 1 2 j 1 j 1 4 1 1 U x1 , t U x1 , t 2 Y t x1 U 2 x1 , t j 1 2 g (1.7) C 2 R1j R1j j 1 j 1 j 1 2 x ,1 1 U 2 2 U x1 , t 2 2 F x1 , t 2 2 , 2 x1 x1 1 R1j R w1 1 , hr1j 1 R w1 1 , hr1j 1 . 2 2 2 2 2 Перед этим вычислением нужно задать U x1 , t j 1 2 . Далее согласно формуле, аналогичной (1.3), находим U nj 1 2 2 j 1 j 1 j 1 2 2 2 1 4 U n U n1 Un xn1 2 j 1 j 1 j 1 Un 2 g hn 1 hr X xn 2, t 2 hn 1 hr S n 1 2 2 2 2 U nj 1 U nj t g 2 j j x C Rn Rn n 1 j 1 j 1 j 1 2 F xn , t 2 2 x ,n 1 U n 2 U n1 2 2 2 xn1 xn1 1 Rnj R wn 1 , hr nj 1 R wn 1 , hr nj 1 2 2 2 2 2 (1.8) Для формулы (1.8) нужно задать hr X xn 2, t j 1 2 . , Теперь можно переходить к шагу «корректор» для внутренних точек расчетной области. Аналогично (1.4) Si j 112 Si j 1 2 tTs ,i 1 2 , i 1,..., n 1, j 1 2 ri 1 2 Ts ,i 1 2 E j 1 j 1 j 1 j 1 j 1 Si 3 22 Si 1 22 U i 1 2 Si 1 22 Si 1 22 U i j 1 (1.9) 2 . 2xi Для этой формулы нужно определить Er i 1 22 , Sn 1 2 f sh hr X xn 2, t 2 j 1 j 1 и S1 1 2 f sh hr1 1 2 . И, наконец, 2 2 j 1 j 1 Ui j 1 2 U i j tTU ,i , i 2,..., n 1, U TU ,i j 1 2 i 1 Ui j 1 U 2 2 j 1 2 i U j 1 2 i 1 4 xi 1 xi j 1 2 2 j 1 j 1 j 1 j 1 j 1 2 2 2 2 hi 1 hr Si 1 2 hi 1 hr Si 1 2 E E U r 1 r 1 i i i 2 2 2 2 2 2 g (1.10) j xi 1 xi Si 1 Si j 1 U g 2 U j 1 2 2 x ,i 1 i C 2 Ri j Ri j 2 j 1 2 i 1 Ui j 1 2 xi xi 1 xi 2 U 1 Ri j R wi 1 , hr ij 1 R wi 1 , hr ij 1 2 2 2 2 2 x ,i 1 2 2 j 1 i 2 2 j 1 U i 1 2 xi 1 xi 1 xi , . Для этой формулы все данные к моменту вычислений готовы. Завершается шаг по времени расчетом уровня воды hr ij11 f sh 1 Si j 11 , i 1,..., n 1. (1.11) 2 2 Теперь запишем алгоритм компактно. В начале цикла известны Si j 1 , i 1,..., n 1 и U i j , i 2,..., n 2 1. Задание U x1 , t j и U x1 , t j 1 2. Расчет hr1j 1 (уравнение (1.2)) 2 3. Задание hr X xn 2, t j 4. Расчет U n* (уравнение (1.3)) 5. Расчет Snj 1 f sh hr X xn 2, t j и S1j 1 f sh hr1j 1 2 2 2 6. Вычисление Si*1 2 , i 1,..., n 1 (формула (1.4)) 7. Вычисление U i* U i j tTU ,i , i 2,..., n 1 (формула(1.5)) j 1 8. Расчет Si 1 2 , i 1,..., n 1, U i j 1 2 , i 2,..., n. (формула (1.6)) 2 9. Задание U x1 , t j 1 2 j 1 10. Нахождение hr1 1 2 (формула (1.7)) 2 11. Задание hr X xn 2, t j 1 2 12. Вычисление U nj 1 (формула (1.8)) 13. Нахождение Er i 1 22 , Sn 1 2 f sh hr X xn 2, t 2 j 1 j 1 j 1 14. Вычисление Sij 112 , i 1,..., n 1 (формула (1.9)) 15. Вычисление U i j 1 2 , i 2,..., n 1 (формула (1.10)) 16. Нахождение hr ij11 f sh 1 Si j 11 , i 1,..., n 1. 2 2 Тестовые эксперименты: 1. «Нет воды» 2. Стационарный поток без трения 3. Состояние покоя при неровном дне 4. Прорыв дамбы 2 и S j 12 f h j 12 sh r1 1 1 1 2 2 Wu, W. (2008), Computational river dynamics, 494 pp., Taylor and Francis Group. 2.Алгоритм решения уравнений Сен-Венана на разнесенной сетке схемой КАБАРЕ Случай докритического потока ( Fr 1 ) В настоящем пункте приведены численная схема и алгоритм решения системы уравнений Сен-Венана, записанной в следующей форме: S SU Er , t x h hr SU SU 2 SgU 2 U Sg 2 S r , t x x C R R x x hr f sh 1 S . (2.1) В дальнейшем также будем обозначать расход воды D SU . В граничных точках i=1,n для расчета уровня воды и скорости течения применяются уравнения (1.2) и (1.3), соответственно. Во внутренней области применяется схема КАБАРЕ. Шаг «предиктор» выглядит следующим образом: j j Si j 11/2 2 Si 1 2 t 2 * TS ,i 1 2 , i 1,..., n 1, TSj,i 1 2 TSj,divadv ,i 1 2 TSj,nondivadv ,i 1 2 , TSj,nondivadv ,i 1 2 Er ,ji 1 2 j S ,divadv ,i 1 2 T U j i 3 2 U i j 1 2 Si j 1 U i j 1 2 U i j 1 2 Si j (2.2) . 2xi Di j 1/2 Di j t 2 * TDj,i , i 2,..., n 1, TDj,i TDj,divadv ,i TDj,nondivadv ,i j D ,divadv ,i T 2 Di j 1/2U i j 1/2 Di j 1/2U i j 1/2 xi 1 xi TDj,nondivadv ,i Si j 1 Si j 1 S 2 j i 1 2 Si j 1 2 j i 2 h h S j hi 1 hr Si j 1 i 1 2 r i 1 2 2 2 g xi 1 xi U g j 2 i 2C R Ri j 2 Si j 1 Si j 1 x ,i 1 U i j 1 U i j x ,i 1 U i j U i j 1 2 2 2 2 . xi 1 xi xi xi 1 (2.3) Здесь 0, если Di j 0 Ui j , i 2,..., n 1 . j j j 2 D S S , если D 0 i 1/2 i i i 1/2 j Далее, по формулам (1.7), (1.8) вычисляются граничные значения на промежуточном, (j+1/2)-м, шаге. Следующий шаг схемы КАБАРЕ заключается в экстраполяции значений площади сечения, скорости и расхода на (j+1)-й шаг. Вначале вычисляются предварительные значения экстраполированных величин. Так, для площади поперечного сечения: j 1/2 1 j 2Si 1/2 Si 1/2 Si j 3/2 , еслиU i j 1 0 и U i j 1 0 2 Si j 1* . 1 j 1/2 j j j j 2S S Si 3/2 , еслиU i 1 0 и U i 1 0 i 1/2 2 i 1/2 (2.4) Далее, к предварительным значениям применяется поправка для обеспечения монотонности схемы («монотонизатор»), которую мы запишем для случая, когда U i j 1 0 и U i j 1 0 (случай U i j 1 0 и U i j 1 0 записывается аналогично): Si j 1 max min Si j 1* , S max , S min , где t 1 j j j 1/2 j 1/2 j 1/2 2 Si 3/2 Si 1/2 TS ,nonadv ,i 1/2 t , Si 1/2 TS ,nonadv ,i 1/2 2 , Smax max , 1 t j 1/2 S j S j T j 1/2 i 1/2 i 1/2 S ,nonadv ,i 1/2 TS , nonadv ,i 1/2 2 2 t (2.5) 1 j j j 1/2 j 1/2 j 1/2 S S T t , S T , i 1/2 S , nonadv ,i 1/2 i 1/2 S , nonadv ,i 1/2 2 i 3/2 2 Smin min , 1 t j 1/2 S j S j T j 1/2 i 1/2 i 1/2 S ,nonadv ,i 1/2 TS , nonadv ,i 1/2 2 2 1/2 1/2 U i j 1/2 U i j 11/2 Si j 3/2 Si j 1/2 1/2 j 1/2 TSj,nonadv T . ,i 1/2 S ,i 1/2 2 xi 1 2 xi 1 xi 1 Экстраполяция скорости и расхода течения осуществляется аналогично, но с дробных узлов сетки j-го шага на дробные узлы (j+1)-го. При выполнении заключительного этапа схемы – корректора слагаемые адвекции, записанные в дивергентной форме, вычисляются по значениям, экстраполированным на (j+1)-й шаг по времени по формулам (2.5) для площади и аналогичным – для скорости и расхода, а остальные члены уравнений – по значениям на (j+1/2)-м шаге: * Si j 112 Si j 11/2 2 t 2 * TS ,i 1 2 , i 1,..., n 1, 1 j 1/2 TS*,i 1 2 TSj,divadv ,i 1 2 TS ,nondivadv ,i 1 2 , 1/2 j 1/2 TSj,nondivadv ,i 1 2 Er ,i 1 2 j 1 S ,divadv ,i 1 2 T U j 1 i 3 2 U i j 112 Si j 11 U i j 112 U i j 112 Si j 1 (2.6) . 2xi Di j 1 Di j 1/2 t 2 * TD*,i , i 2,..., n 1, 1 j 1/2 TD*,i TDj,divadv ,i TD ,nondivadv ,i j 1 D ,divadv ,i T 1 1 1 1 2 Di j 1/2 U i j 1/2 Di j 1/2 U i j 1/2 xi 1 xi 1/2 TDj,nondivadv ,i Si j 11/2 Si j 11/2 S 2 j 1/2 i 1 2 2 Si j 11/2 U i j 1/2 g 2C Ri 2 2 j 1/2 h h S j 1/2 h h S j 1/2 r i 1 i 1 i 12 r i 12 2 2 g xi 1 xi 2 Ri j1/2 Si j 11/2 Si j 11/2 x ,i 1 U i j 11/2 U i j 1/2 x ,i 1 U i j 1/2 U i j 11/2 (2.7) 2 2 2 2 . xi 1 xi xi xi 1 И, наконец, рассчитывается скорость в целых узлах: Ui j 1 0, если Di j 1 0 j 1 , i 2,..., n 1 j 1 j 1 j 1 2 D S S , если D 0 i 1/2 i i i 1/2 . Поскольку схема КАБАРЕ эквивалентна некоторой трехслойной по времени схеме (ссылка), то в ней присутствует вычислительная мода, и для ее подавления применяется фильтра Аселина.