Одномерное уравнение теплопроводности. Буй Ван Шань. 6 курс — различия между версиями

Материал из Department of Theoretical and Applied Mechanics
Перейти к: навигация, поиск
(Конечно-разностная схема)
(Применение технологии MPI)
Строка 28: Строка 28:
 
Разветвление для уравнения теплопроводности осуществляется путем разбиением отрезка интегрирования на некоторые интервалы. На каждом интервале, процесс интегрирования осуществляется отдельным процессом, при этом в связи с использованием явной схемы, соседние процессы должны обменивать крайними значениями, получены на предыдущем шаге, для выполнения следующего шага.
 
Разветвление для уравнения теплопроводности осуществляется путем разбиением отрезка интегрирования на некоторые интервалы. На каждом интервале, процесс интегрирования осуществляется отдельным процессом, при этом в связи с использованием явной схемы, соседние процессы должны обменивать крайними значениями, получены на предыдущем шаге, для выполнения следующего шага.
 
[[File:Sendandreceive.png|Схема передачи данных между процессами|center]]
 
[[File:Sendandreceive.png|Схема передачи данных между процессами|center]]
: Первый процесс обменивается данными только с процессом 2
+
: Первый процесс обменивается данными только с вторым процессом
 
: Последний процесс обменивается данными только с предпоследним процессом  
 
: Последний процесс обменивается данными только с предпоследним процессом  
 
: Все средние процессы обмениваются с процессами слево, и справо
 
: Все средние процессы обмениваются с процессами слево, и справо

Версия 19:40, 11 декабря 2015

Постановка задачи

Пример численного решения уравнения теплопроводности. Цветом и высотой поверхности передана температура данной точки.

Решается однородное уравнение теплопроводности на промежутке [math]\left[a\ldots b\right][/math]

[math]\frac{\partial U\left(x,t\right)}{\partial t} - k^2\frac{\partial^2 U\left(x,t\right)}{\partial x^2} = f(x,t)[/math]

С граничными условиями

[math] \begin{cases} U(a,t) = M1(t) \\ U(b,t) = M2(t) \end{cases}[/math]

и начальным распределением температуры

[math]U(x,0) = U0(x)[/math]
  • Где :[math]f(x,t), U0(x), M1(t), M2(t)[/math] - Известные функции

Реализация

Конечно-разностная схема

Явная разностная схема

Задача содержит производную по времени первого порядка и производную по пространственной координате второго порядка. Запишем исходное уравнение в виде

[math]\frac{\partial U\left(x,t\right)}{\partial t} = a^2\frac{\partial^2 U\left(x,t\right)}{\partial x^2}[/math]

Введем равномерную сетку [math]0 \lt x_i \lt L[/math] с шагом разбиения [math]Δx[/math]. Шаг по времени назовем [math]Δt[/math] Построим явную конечно-разностную схему:

[math]\frac{U_i^{n+1}-U_i^{n}}{Δ t} = \frac{a^2}{Δx^2}\left(U_{i+1}^{n} - 2U_{i}^{n}+U_{i-1}^{n}\right)[/math]

Где, [math]U_i[/math] — значение температуры в [math]i[/math]-ом узле.

  • Условие сходимости явной схемы:[math]dt\lt dx^2/2[/math], где dt - шаг по времени, dx - шаг по координате

Применение технологии MPI

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

Схема передачи данных между процессами
Первый процесс обменивается данными только с вторым процессом
Последний процесс обменивается данными только с предпоследним процессом
Все средние процессы обмениваются с процессами слево, и справо
  • Начальные и краиние значения на каждом шаге вычисляются по начальным и граничным условиям.

Данные для расчета

[math] \begin{cases} a=0;b=1\\ M1(t)=6t+0.887\\ M2(t)=0.0907\\ U0(x)=cos(x+0.48)\\ f(x,t)=0\\ k=1 \end{cases}[/math]

Результаты

  • Решение
    • 2 процесса
Решение при запуске 2-х процессов
  • 4 процесса
Решение при запуске 4-х процессов
  • Погрешность вычисления
  • Зависимость времени расчета от количества процессов при постоянных шагах вычисления: dx = 0.001; dt = 0.000001
Зависимость времени расчета от кол. процессов
Количество процессов Время рассчета (сек)
2 96.58
4 49.4
8 28.66
10 23.63
20 12.89
30 9.27
40 7.52

Для малого числа узлов в сетке использовать многопроцессорные вычисления не выгодно: время работы программы неуменьшается. Заметим что при увеличении количества процессов, скорость расчета параллельно повысилась

Ссылки для скачивания

Скачать реализацию 1d Файл:HeatEquation.rar
Скачать реализацию 2d Файл:MPI2x.rar

Полезные ссылки

Уравнение теплопроводности