Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция№10.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.08 Mб
Скачать

Листинг_№10

%Программа сравнения разностных схем (40), (45)

%на примере динамики образования ударной волны

%Очищаем рабочее пространство

clear all

%Задаем пределы области интегрирования G=[0,T]x[0,a]

T=4; a=2;

%Задаем параметры сетки по времени и пространству

tau=0.001; h=0.01; r=tau/h;

%Определяем параметры псевдовязкости схем (40), (45)

nu=1; nu1=0.1;

%Задаем сетки по времени и пространству

t=0:tau:T; x=0:h:a;

Nt=length(t); Nx=length(x);

%Определяем левое граничное условие u(t,0)=0

for m=1:Nt

y(m,1)=0;

end

%Определяем правое граничное условие u(t,0)=0

for m=1:Nt

y(m,Nx)=0;

end

%Определяем начальное условие u(0,x)=sin(pi x)^2,

%0<=x<=1; u(0,x)=0, 1<x<=2

for n=1:Nx

if x(n)<=1

y(1,n)=sin(pi*x(n))^2;

else

y(1,n)=0;

end

end

%Организуем цикл расчета по схеме (40) на различные

%моменты времени

for m=1:(Nt-1)

for n=2:(Nx-1)

y(m+1,n)=(1-r*(y(m,n)-y(m,n-1)))*y(m,n)-...

0.5*r*nu^2*(y(m,n+1)-y(m,n-1))*...

(y(m,n+1)-2*y(m,n)+y(m,n-1));

end

end

%Рисуем профили волны в различные моменты времени на

%одном и том же графике в координатах решение -

%пространственная координата

for m=1:35:Nt

subplot(1,2,1);

plot(x,y(m,:));

hold on

end

%Организуем цикл расчета по схеме (45) на различные

%моменты времени

for m=1:(Nt-1)

for n=2:(Nx-1)

y(m+1,n)=(1-r*(y(m,n)-y(m,n-1)))*y(m,n)+...

r*nu1*(y(m,n+1)-2*y(m,n)+y(m,n-1));

end

end

%Рисуем профили волны в различные моменты времени

for m=1:35:Nt

subplot(1,2,2);

plot(x,y(m,:));

hold on

end

Итоговый результат работы кода листинга_№10 представлен на рис.14. Слева на рис.14 приведены профили волны на различные моменты времени, рассчитанные по разностной схеме (40). Жирными линиями на графике выделено начальное распределение и уже сформировавшаяся ударная волна в последний момент времени. Заметно, что ударная волна слегка размазана в соответствии с выбором величины параметра . Аналогичная картина представлена на рис.14 справа, где приведены результаты расчета по “линейной” разностной схеме (45). Визуальное сравнение левого и правого рисунков показывает их неплохое совпадение. Это удалось добиться за счет подбора параметра 1.

Рис.14. Изучение механизма образования ударной волны на примере решения квазилинейного уравнения переноса с помощью разностных схем (40), (45)

Консервативные схемы. В условиях высокой степени неопределенности процедуры составления разностных схем, одним из важнейших свойств, которым может удовлетворять схема является свойство консервативности — следствие того или иного закона сохранения.

Рассмотрим закон сохранения на примере уравнения переноса, записанного в дивергентной форме (33). Выберем некоторую ячейку сетки и проинтегрируем по ней уравнение (33), тогда получится следующее точное интегральное соотношение:

. (46)

Уравнение (33) можно проинтегрировать по всей области G(t,x) = [x0,xN][t0,tM] и получить выражение, аналогичное (46), т.е.

. (47)

Уравнение (47) напоминает физический закон сохранения, где первый интеграл описывает изменение величины за истекшее время, а второй интеграл есть разность потоков через правую и левую границы области G. Выражение (47) является законом сохранения для квазилинейного уравнения переноса (28). Аналогично можно рассматривать уравнение (46) в качестве закона сохранения, но для отдельной ячейки, где также есть сохраняемая величина и потоки на соответствующих границах. Просуммируем теперь уравнение (46) по всем ячейкам области G, тогда

. (48)

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

Не всякая разностная схема обладает таким свойством. Схемы, в которых закон сохранения во всей области является следствием закона сохранения в отдельных ячейках, называются консервативными. Если в некоторой схеме разностный закон сохранения нарушается во всей области G, то такую схему называют неконсервативной.

Построим некоторые примеры консервативных схем. Аппроксимируем интегралы в (47) по формулам прямоугольника, тогда получим явную схему следующего вида:

. (49)

Консервативность разностной схемы (49) проверяется непосредственно суммированием по m и n, т.е.

. (50)

Выражение (50) является конечно-разностной аппроксимацией закона сохранения в форме (47).

Можно построить и другие консервативные разностные схемы, выбирая различные шаблоны. Например, следуя шаблону рис.2,в, можно получить консервативную неявную схему бегущего счета:

. (51)

Решая квадратное уравнение (51) относительно и выбирая положительное значение корня, находим

. (51)

Построены также схемы, которые удовлетворяют многим законам сохранения. Такие схемы называют полностью консервативными.

Изучим схемы (49), (51) на предмет описания процесса образования ударной волны. На листинге_№11 приведен код соответствующей программы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]