Одномерное уравнение теплопроводности. Суранов Ян Сергеевич. 6 курс — различия между версиями

Материал из Department of Theoretical and Applied Mechanics
Перейти к: навигация, поиск
(Постановка задачи)
 
(не показана 21 промежуточная версия 2 участников)
Строка 1: Строка 1:
 
==Постановка задачи==
 
==Постановка задачи==
Решается однородное [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 уравнение теплопроводности] на промежутке <math>\left[a\ldots b\right]</math>
+
Решается однородное [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 уравнение теплопроводности] на промежутке <math>\left[0\ldots 1\right]</math>
 
:<math>\frac{\partial T\left(x,t\right)}{\partial t} - k^2\frac{\partial^2 T\left(x,t\right)}{\partial x^2} = f(x,t)</math>
 
:<math>\frac{\partial T\left(x,t\right)}{\partial t} - k^2\frac{\partial^2 T\left(x,t\right)}{\partial x^2} = f(x,t)</math>
 
С граничными условиями  
 
С граничными условиями  
 
:<math> \begin{cases}
 
:<math> \begin{cases}
   T(0,t) = T0(t)=cos(2t)+0.5 \\
+
   T(0,t) = T0(t)=cos2t*0.5 \\
   T(1,t) = T1(t)=sin(2t)+0.5
+
   T(1,t) = T1(t)=sin2t*0.5
 
  \end{cases}</math>
 
  \end{cases}</math>
 
и начальным распределением температуры
 
и начальным распределением температуры
:<math>T(x,0) = T0(x)=36.6x</math>
+
:<math>T(x,0) = T0(x)=10х</math>
 
 
  
 
==Реализация==
 
==Реализация==
===Конечно-разностная схема===
+
===Явная конечно разностная схема===
  
 
Задача содержит производную по времени первого порядка и производную по пространственной координате второго порядка.
 
Задача содержит производную по времени первого порядка и производную по пространственной координате второго порядка.
Запишем исходное уравнение в виде
+
Запишем исходное уравнение в виде:
 
:<math>\frac{\partial T\left(x,t\right)}{\partial t} = a^2\frac{\partial^2 T\left(x,t\right)}{\partial x^2}</math>
 
:<math>\frac{\partial T\left(x,t\right)}{\partial t} = a^2\frac{\partial^2 T\left(x,t\right)}{\partial x^2}</math>
  
Введем равномерную сетку <math>0 < x_i < L</math> с шагом разбиения <math>Δx</math>. Шаг по времени назовем <math>Δt</math>
+
Введем сетку <math>0 < x_i < 1</math> с шагом разбиения <math>Δx</math>. Шаг по времени назовем <math>Δt</math>
Построим явную конечно-разностную схему:
+
Построим явную конечную разностную схему:
 
:<math>\frac{T_i^{n+1}-T_i^{n}}{Δ t} = \frac{a^2}{Δx^2}\left(T_{i+1}^{n} - 2T_{i}^{n}+T_{i-1}^{n}\right)</math>
 
:<math>\frac{T_i^{n+1}-T_i^{n}}{Δ t} = \frac{a^2}{Δx^2}\left(T_{i+1}^{n} - 2T_{i}^{n}+T_{i-1}^{n}\right)</math>
 
Где, <math>T_i</math> — значение температуры в <math>i</math>-ом узле.
 
Где, <math>T_i</math> — значение температуры в <math>i</math>-ом узле.
 +
Так как схема трехслойная, то вначале надо иметь уже вычисленные значения функции <math>{T_{i}^{n}}</math>  на первом и нулевом слоях.
  
 +
 +
При <math>{i=0}</math>,<math>{i=1}</math> значения функции определяются из краевых условий.
  
 
==Компьютерная реализация==
 
==Компьютерная реализация==
Скачать программу [[:File:Heat_Equation_Yan.zip]]
+
Скачать программу [[:File:1d_yan.rar]]
 
 
  
 
==Результаты==
 
==Результаты==
[[File:Безымянный1.jpg|thumb|720px|left]]
+
[[File:Безымянный23.jpg|thumb|720px|left]]
[[File:Безымянный.jpg|thumb|720px|center]]
+
[[File:Безымянный233.jpg|thumb|720px|center]]
 
+
*При малом  числе узлов в сетки, для данной многопроцессовой реализации, время расчета увеличивается.
 
+
*При увеличении числа процессов время расчета существенно сокращается, что делает целесообразным использование данного метода.
 
 
  
 
==Полезные ссылки==
 
==Полезные ссылки==
 
[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 Уравнение теплопроводности]

Текущая версия на 10:50, 18 января 2016

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

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

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

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

[math] \begin{cases} T(0,t) = T0(t)=cos2t*0.5 \\ T(1,t) = T1(t)=sin2t*0.5 \end{cases}[/math]

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

[math]T(x,0) = T0(x)=10х[/math]

Реализация[править]

Явная конечно разностная схема[править]

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

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

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

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

Где, [math]T_i[/math] — значение температуры в [math]i[/math]-ом узле. Так как схема трехслойная, то вначале надо иметь уже вычисленные значения функции [math]{T_{i}^{n}}[/math] на первом и нулевом слоях.


При [math]{i=0}[/math],[math]{i=1}[/math] значения функции определяются из краевых условий.

Компьютерная реализация[править]

Скачать программу File:1d_yan.rar

Результаты[править]

Безымянный23.jpg
Безымянный233.jpg
  • При малом числе узлов в сетки, для данной многопроцессовой реализации, время расчета увеличивается.
  • При увеличении числа процессов время расчета существенно сокращается, что делает целесообразным использование данного метода.

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

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