1612725465-542b3179b36a4849700e0b2ecf7da111 (828844), страница 13
Текст из файла (страница 13)
Сравнивая рисунки 19 и 20, видим,что в последнем случае численное решение более точное как на грубой,так и на мелкой сетках. Однако «размазывание» разрыва все еще значительное. Поэтому имеет смысл проводить расчеты на неравномерныхсетках, имеющих сгущения узлов в зоне больших значений градиентарешения.5.2. В нестационарных задачах особенности решения типа зон с большими градиентами с течением времени смещаются, меняют свое положение, поэтому неравномерная сетка, отслеживающая их, должна бытьподвижной. Такие подвижные сетки, подстраивающиеся под решениеи учитывающие изменение решения со временем, называются динамически адаптивными.
Координаты узлов подвижной сетки на отрезкеΩ̄ будем обозначать через xnj , а шаги – через hnj+1/2 = xnj+1 − xnj , гдеn – номер слоя по времени.Далее будем предполагать, что существует некоторое гладкое невырожденное преобразование координатx = x(q, t),x(0, t) = 0,x(1, t) = l(5.7)(5.8)с положительным якобианом J = xq , которое в каждый момент времени t взаимно-однозначно отображает единичный отрезок Q̄ = [0, 1] наΩ̄. Покроем отрезок Q̄ равномерной неподвижной сеткой Q̄h с шагомh = 1/N , состоящей из узлов qj = jh (j = 0, . .
. , N ), и будем считать,что узлы xnj неравномерной сетки на Ω̄ являются образами узлов qjравномерной сетки Q̄h при преобразовании координат (5.7), (5.8).Разностная схема на неравномерной сетке xnj = x(qj , tn ) строитсятак. Сначала в исходной задаче производится переход к новой независимой переменной q, а далее для полученной задачи строится схема наравномерной сетке Q̄h .Согласно сказанному, перейдем в задаче (5.1)–(5.3) к независимымпеременным q, t.
Пусть v(q, t) = u(x(q, t), t), т. е. функция v принимаетв точке (q, t) такое же значение, что и функция u в точке (x, t), соответствующей точке (q, t) при отображении (5.7). Тогда, согласно правилу85дифференцирования сложной функции, получаем, что∂u∂v∂q∂v∂t∂v∂q(x, t) =(q, t) (x, t) +(q, t) (x, t) =(q, t) (x, t),∂x∂q∂x∂t∂x∂q∂x∂u∂v∂q∂v∂t∂v∂q∂v(x, t) =(q, t) (x, t) +(q, t) (x, t) =(q, t) (x, t) +(q, t).∂t∂q∂t∂t∂t∂q∂t∂tДалее в этих выражениях заменим производные ∂q/∂x и ∂q/∂t напроизводные ∂x/∂q и ∂x/∂t.
Для этого продифференцируем тождествоx = x(q(x, t), t) сначала по переменной x, а затем – по t:1=∂q∂x(q, t) (x, t),∂q∂x0=∂x∂q∂x(q, t) (x, t) +(q, t).∂q∂t∂tОтсюда получаем выражения1∂q(x, t) =,∂xJ(q, t)∂q1∂x(x, t) = −·(q, t).∂tJ(q, t) ∂tСледовательно,1 ∂v∂u=,∂xJ ∂q∂uxt ∂v ∂v=−+,∂tJ ∂q∂tи уравнение переноса (5.1) записывается в новых координатах в видеследующего уравнения в недивергентной форме относительно искомойфункции v:a − xtvt +vq = 0.(5.9)JЕсли уравнение (5.9) умножить на J и учесть тождество Jt = xtq ,то уравнение переноса (5.1) можно записать в новых координатах (q, t)и в дивергентной форме(Jv)t + [(a − xt )v]q = 0.(5.10)В результате, в координатах (q, t) задача (5.1)–(5.3) принимает следующий вид:(Jv)t + [(a − xt )v]q = 0,q ∈ (0, 1],v(q, 0) = v0 (q) ≡ u0 (x(q, 0)) ,v(0, t) = µ0 (t),0 ≤ t ≤ T.86q ∈ Q̄,0 < t ≤ T,(5.11)(5.12)(5.13)Аналогом схемы предиктор-корректор (3.3), (3.4) в случае подвижной сетки будет двухшаговая схема, на шаге предиктор которой аппроксимируется уравнение в недивергентной форме (5.9), а на шаге корректор – в дивергентной (5.10).
Первое из этих уравнений аппроксимируется в центрах ячеек qj+1/2 = qj +h/2 равномерной сетки Qh , а второе – вовнутренних узлах этой сетки:)(∗nnvj+1/2− 21 vjn + vj+1− vjna − xt,j+1/2 vj+1+=0,(5.14)∗nτj+1/2Jj+1/2h∗∗(a − xt,j+1/2 )vj+1/2− (a − xt,j−1/2 )vj−1/2− (Jv)nj(Jv)n+1j+= 0. (5.15)τhЗдесьxn+1− xnj1j,(5.16)xt,j+1/2 = (xt,j + xt,j+1 ) , xt,j =2τ)xnj+1 − xnj1( nnnJj+1/2=, Jjn =Jj+1/2 + Jj−1/2.(5.17)h2К этим уравнениям добавляются разностные краевые и начальныеусловия:v0n = µ0 (tn ),(5.18)vj0 = u0 (x0j ),j = 0, . . . , N.(5.19)5.3.
Опишем алгоритм решения на подвижной сетке полученной разностной задачи. Вначале методом эквираспределения строится неравномерная сетка x0j на начальном слое по времени, т. е. при n = 0. Сутьметода эквираспределения заключается в том, что из множества всевозможных отображений вида (5.7), (5.8) выбирается то, которое приt = 0 является решением краевой задачи(w(x, 0)xq )q = 0,q ∈ (0, 1),x(0, 0) = 0, x(1, 0) = l,(5.20)где w(x, t) – заданная управляющая функция (см. § 2.7). Для вычисления координат x0j узлов неравномерной сетки на начальном временно́мслое будем использовать разностную схемуx0j+1 − x0jx0j − x0j−1 )1( 00wj+1/2− wj−1/2= 0,hhhx00 = 0, x0N = l,87j = 1, .
. . , N − 1,(5.21)0аппроксимирующую задачу (5.20). Здесь wj+1/2= w(x0j+1/2 , 0), x0j+1/2 =( 0)0xj + xj+1 /2. Для определенности будем предполагать далее, что управляющая функция задана в видеw(x, t) = 1 + α|ux (x, t)|,(5.22)где α – параметр управляющей функции.Поскольку задача (5.21) является нелинейной, то для ее решениябудем использовать итерационный метод. В качестве начального итерационного приближения для сетки x0j выберем равномерную на отрезке0,m[0, l] сетку x0,0на m-й итерации уже построj = jl/N . Пусть сетка xj0,mена и hj+1/2 – ее шаги. На этой сетке, используя заданную функциюu0 (x) из начального условия (5.2), вычисляем управляющую функцию u0 (x0,m ) − u0 (x0,m ) j+1j0,mwj+1/2 = 1 + α h0,mj+1/2и с ее помощью находим новое расположение узлов x0,m+1на (m + 1)-йjитерации.
Для этого методом прогонки решаем линейную разностнуюзадачу1 ( 0,m xj+1 − xj0,m xjwj+1/2− wj−1/2hh0,m+1x0,m+1=0,x= l,0N0,m+10,m+1)− x0,m+1j−1= 0,hj = 1, . . . , N − 1.0,m+1Итерационный процесс продолжается до сходимости с заданной точностью координат узлов x0,m, например, пока не будет выполнено услоjвие окончания итерацийmax |x0,m+1− x0,m| < ε.jj0≤j≤NПоследнее итерационное приближение и принимается за неравномерную сетку x0j на начальном слое по времени. На полученной сетке вычисляется начальная сеточная функцияvj0 ≡ u0j = u0 (x0j ),j = 0, .
. . , Nи происходит переход к построению сетки x1j и вычислению решения vj1на первом временно́м слое n = 1.88Пусть сетка xnj на n-м слое по времени построена и на ней вычислено решение vjn . Опишем алгоритм построения неравномерной сеткиxn+1на следующем слое по времени и вычисления на этом слое решеjния vjn+1 .Для вычисления координат xn+1будем использовать конечно-разjностный аналог уравнения(w(x, t)xq )q = βxt ,(5.23)которое отличается от уравнения (5.20) классического метода эквираспределения наличием члена с первой производной по времени (β – положительный параметр, подбираемый экспериментальным путем в целяхуменьшения осцилляций траекторий узлов сетки). При малом β влияние этого члена незначительно, а при больши́х значениях параметраβ величины смещений узлов уменьшаются, сетка становится «малоподвижной».Конечно-разностная задача для поиска координат узлов xn+1выjглядит так:n+1)xn+1− xn+1xn+1− xnjxn+11( njj−1jj+1 − xjn− wj−1/2,wj+1/2=βhhhτj = 1, .
. . , N − 1,(5.24)xn+1= 0,0xn+1= l,Nпри этом управляющая функция вычисляется по известному решениюна n-м слое по времени: vn − vn j+1j nwj+1/2 = 1 + α n(5.25). hj+1/2 Система разностных уравнений (5.24) имеет строгое диагональноепреобладание, поэтому решить ее можно методом скалярной прогонки[23, 27]. Величины vj∗ определяются на основе уравнения (5.14). Расчеточередного шага по времени завершается вычислением величин vjn+1 .Для этого используются уравнения (5.15).5.4. Экспериментальную проверку свойств схемы (5.14), (5.15) выполним на той же тестовой задаче и при тех же входных данных (5.5),которые рассматривались в пп.
5.1. Для построения адаптивной сетки89использовалась управляющая функция (5.22), которая аппроксимировалась подобно (5.25). Параметр α во всех расчетах был одинаковыми полагался равным 5. Параметр β для уравнения (5.24) также не изменялся и брался равным 10.Следующие рисунки демонстрируют влияние на численное решениепараметра θ. На рис. 21 изображено поведение численного решения, полученного по схеме Лакса – Вендроффа (θ ≡ 0). Видно, что применениеадаптивной сетки не устраняет осцилляции в численном решении, ноположение скачка передается лучше, чем при использовании равномерной сетки с тем же количеством узлов (ср. рисунки 18, а и 21, а).На рис. 22 изображено поведение численного решения, полученногос помощью противопоточной схемы (5.31), приведенной ниже. Видно,что при применении адаптивной сетки положение скачка передаетсялучше, чем при использовании равномерной сетки с тем же количествомузлов (ср.