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

Материал из Department of Theoretical and Applied Mechanics
Перейти к: навигация, поиск
(Применение технологии MPI)
(Ссылки для скачивания)
 
(не показаны 4 промежуточные версии 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]]
: Первый процесс обменивается данными только с процессом 2
+
: Первый процесс обменивается данными только с вторым процессом
 
: Последний процесс обменивается данными только с предпоследним процессом  
 
: Последний процесс обменивается данными только с предпоследним процессом  
: Все средние процессы обмениваются с процессами слево, и справо
+
: Все центральные процессы обмениваются с процессами слево, и справо
 
* Начальные и краиние значения на каждом шаге вычисляются по начальным и граничным условиям.
 
* Начальные и краиние значения на каждом шаге вычисляются по начальным и граничным условиям.
  
Строка 80: Строка 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

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

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

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