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

Материал из Department of Theoretical and Applied Mechanics
Перейти к: навигация, поиск
(Конечно-разностная схема)
(Ссылки для скачивания)
 
(не показано 6 промежуточных версий 1 участника)
Строка 23: Строка 23:
 
:<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>\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>U_i</math> — значение температуры в <math>i</math>-ом узле.
* Условие сходимости явной схемы:<math>dt<dx^2/2</math>
+
* Условие сходимости явной схемы:<math>dt<dx^2/2</math>, где dt - шаг по времени, dx - шаг по координате
  
 
===Применение технологии MPI===
 
===Применение технологии MPI===
Разветвление для уравнения теплопроводности осуществляется путем разбиением отрезка интегрирования на некоторые интервалы. На каждом интервале, процесс интегрирования осуществляется отдельным процессом, при этом в связи с использованием явной схемы, соседние процессы должны обменивать крайними значениями в предыдущем шаге для выполнения следующего шага.
+
Разветвление для уравнения теплопроводности осуществляется путем разбиением отрезка интегрирования на некоторые интервалы. На каждом интервале, процесс интегрирования осуществляется отдельным процессом, при этом в связи с использованием явной схемы, соседние процессы должны обменивать крайними значениями, получены на предыдущем шаге, для выполнения следующего шага.
 
[[File:Sendandreceive.png|Схема передачи данных между процессами|center]]
 
[[File:Sendandreceive.png|Схема передачи данных между процессами|center]]
 +
: Первый процесс обменивается данными только с вторым процессом
 +
: Последний процесс обменивается данными только с предпоследним процессом
 +
: Все центральные процессы обмениваются с процессами слево, и справо
 +
* Начальные и краиние значения на каждом шаге вычисляются по начальным и граничным условиям.
  
 
===Данные для расчета===
 
===Данные для расчета===
Строка 76: Строка 80:
 
Для малого числа узлов в сетке использовать многопроцессорные вычисления не выгодно: время работы программы неуменьшается.
 
Для малого числа узлов в сетке использовать многопроцессорные вычисления не выгодно: время работы программы неуменьшается.
 
Заметим что при увеличении количества процессов, скорость расчета параллельно повысилась
 
Заметим что при увеличении количества процессов, скорость расчета параллельно повысилась
==Ссылки для скачивания==
 
:Скачать реализацию 1d [[File:HeatEquation.rar|HeatEquation 2KB]]
 
:Скачать реализацию 2d [[File:MPI2x.rar|MPI2x.rar 2KB]]
 
 
 
==Полезные ссылки==
 
==Полезные ссылки==
 
[https://ru.wikipedia.org/wiki/%D0%A3%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%82%D0%B5%D0%BF%D0%BB%D0%BE%D0%BF%D1%80%D0%BE%D0%B2%D0%BE%D0%B4%D0%BD%D0%BE%D1%81%D1%82%D0%B8 Уравнение теплопроводности]
 
[https://ru.wikipedia.org/wiki/%D0%A3%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%82%D0%B5%D0%BF%D0%BB%D0%BE%D0%BF%D1%80%D0%BE%D0%B2%D0%BE%D0%B4%D0%BD%D0%BE%D1%81%D1%82%D0%B8 Уравнение теплопроводности]

Текущая версия на 22:38, 14 января 2016

Постановка задачи[править]

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

Решается однородное уравнение теплопроводности на промежутке [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

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

Полезные ссылки[править]

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