Численное решение краевых задач. Учебно-методическое пособие
.pdfМинистерство науки и высшего образования Российской Федерации НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Ю.А. ГОСТЕЕВ
ЧИСЛЕННОЕ РЕШЕНИЕ КРАЕВЫХ ЗАДАЧ
Учебно-методическое пособие
НОВОСИБИРСК
2019
1
УДК 53:519.6(075.8) Г 725
Рецензенты:
д-р техн. наук, профессор А.В. Чичиндаев канд. техн. наук, доцент Ю.В. Телкова
Работа подготовлена на кафедре аэрогидродинамики для студентов III и IV курсов ФЛА направления «Баллистика
и гидроаэродинамика» и утверждена Редакционно-издательским советом университета в качестве учебно-методического пособия
Гостеев Ю.А.
Г 725 Численное решение краевых задач: учебно-методическое пособие / Ю.А. Гостеев. – Новосибирск: Изд-во НГТУ, 2019. – 66 с.
ISBN 978-5-7782-4075-9
На примерах рассмотрены основные конечно-разностные методы решения краевых и начально-краевых задач для уравнений математической физики. Приведены расчетные программы на языке Фортран и задания расчетно-графических работ. Показаны приемы работы в пакете прикладных программ при решении краевых задач методом конечных объемов. В приложении содержится необходимый материал для создания графических пользовательских приложений.
Пособие предназначено для студентов III и IV курсов ФЛА направления «Баллистика и гидроаэродинамика», изучающих дисциплины «Вычислительная математика» и «Численные методы механики жидкости и газа».
|
УДК 53:519.6(075.8) |
ISBN 978-5-7782-4075-9 |
© Гостеев Ю.А., 2019 |
|
© Новосибирский государственный |
|
технический университет, 2019 |
2
ВВЕДЕНИЕ
В пособии на примерах рассмотрены основные конечно-разностные методы решения краевых и начально-краевых задач для уравнений математическойфизики.ПриведенырасчетныепрограммынаязыкеФортран и задания расчетно-графических работ. Показаны приемы работы в пакете прикладных программ при решении краевых задач методом конечных объемов. В приложении содержится необходимый материал для создания графических пользовательских приложений.
Успешное усвоение материала пособия предполагает знание основ математического анализа, специальных разделов высшей математики, программирования на алгоритмическом языке Фортран.
Пособие предназначено для студентов III и IV курсов ФЛА направления «Баллистика и гидроаэродинамика», изучающих дисциплины «Вычислительная математика» и «Численные методы механики жидкости и газа».
3
1. ЧИСЛЕННОЕ РЕШЕНИЕ КРАЕВОЙ ЗАДАЧИ ДЛЯ ОДУ
ЦЕЛЬ РАБОТЫ
Получить навыки решения краевой задачи для обыкновенного дифференциального уравнения методами конечных разностей и конечных объемовспомощьюсобственнойпрограммыиспециализированногоПО.
ЗАДАНИЕ
Методами конечных разностей (МКР) и конечных объемов (МКО) решить краевую задачу для поля температуры плоского слоя:
d 2T S(x) 0, |
0 x l , |
|
|
dx2 |
|
|
|
T Tл |
при |
x 0 , |
(1) |
T Tп |
при |
x l . |
|
Здесь x – координата, l – толщина слоя; – коэффициент теплопроводности материала; S – источник тепла; Tл и Tп – граничные темпе-
ратуры. Определить потоки тепла на границах qл,п (dT /dn) x 0,L ,
где n – внешняя нормаль.
Варианты заданий приведены в таблице.
Номер |
Материал |
l , м |
Tл , С |
Tп , С |
S , МВт/м3 |
варианта |
|
|
|
|
|
1 |
Медь |
0,05 |
200 |
10 |
cos( x /l) |
|
|
|
|
|
|
2 |
Сталь |
0,10 |
20 |
300 |
2 x /l |
|
|
|
4 |
|
|
|
|
|
|
|
|
|
Окончание таблицы |
||||
|
|
|
|
|
|
|
|
|
|
|
|
Номер |
Материал |
l , м |
|
Tл , С |
|
Tп , С |
|
|
S , МВт/м3 |
||
варианта |
|
|
|
|
|
|
|
|
|
|
|
3 |
Титан |
0,15 |
|
500 |
|
|
10 |
|
|
|
3e 2x/l |
4 |
Никель |
0,20 |
|
100 |
|
|
600 |
|
|
|
4cos(5 x /l) |
|
|
|
|
|
|
|
|
|
|
|
|
5 |
Медь |
0,25 |
|
50 |
|
|
100 |
|
|
|
5 3 x /l |
6 |
Сталь |
0,20 |
|
150 |
|
|
10 |
|
|
|
4e x/l |
7 |
Титан |
0,15 |
|
15 |
|
|
20 |
|
|
|
3sin(2 x /l) |
|
|
|
|
|
|
|
|
|
|
|
|
8 |
Никель |
0,10 |
|
400 |
|
|
15 |
|
|
|
2 4 x /l |
9 |
Медь |
0,05 |
|
30 |
|
|
350 |
|
|
|
e 3x/l |
10 |
Сталь |
0,10 |
|
200 |
|
|
20 |
|
|
|
2cos(3 x /l) |
|
|
|
|
|
|
|
|
|
|
|
|
11 |
Титан |
0,15 |
|
10 |
|
|
250 |
|
|
|
3 5 x /l |
12 |
Никель |
0,20 |
|
300 |
|
|
30 |
|
|
|
4sin(0,5 x /l) |
|
|
|
|
|
|
|
|
|
|
|
|
13 |
Медь |
0,24 |
|
450 |
|
|
20 |
|
|
|
3 1 3x /l |
14 |
Сталь |
0,22 |
|
120 |
|
|
570 |
|
|
|
4e1 3x/l |
15 |
Титан |
0,16 |
|
60 |
|
|
90 |
|
|
|
5cos(1 4 x /l) |
|
|
|
|
|
|
|
|
|
|
|
|
16 |
Никель |
0,11 |
|
140 |
|
|
20 |
|
|
|
3 3 2 x /l |
17 |
Медь |
0,07 |
|
30 |
|
|
230 |
|
|
|
6e1 2x/l |
18 |
Сталь |
0,12 |
|
330 |
|
|
25 |
|
|
|
2sin(1 2 x /l) |
|
|
|
|
|
|
|
|
|
|
|
|
19 |
Титан |
0,14 |
|
50 |
|
|
340 |
|
|
|
3 4 1 x /l |
20 |
Никель |
0,18 |
|
220 |
|
|
15 |
|
|
|
2e1 x/l |
|
|
|
УКАЗАНИЯ |
|
|
|
|
|
|||
Точное решение задачи (1) имеет вид |
|
|
|
|
|
||||||
|
Te (x) Tл r2(0) Tп Tл r2(0) r2(l) |
x |
r2(x), |
||||||||
|
l |
||||||||||
|
r2(x) dx r(x)dx , |
r(x) S(x)/ . |
(2) |
||||||||
Дифференцируя (2), найдем точные выражения для qл,п .
5
МКР
Задача (1) есть частный случай линейной краевой задачи для ОДУ второго порядка
u p(x)u q(x)u r(x), |
a x b, |
u(a) uл, |
u(b) uп . |
(3) |
1. На отрезке [a,b] введите разностную сетку (x1,x2, ...,xN ) , где
xi a (i 1)h , i 1,...,N, h (b a)/(N 1). С помощью формул численного дифференцирования замените дифференциальную задачу (3) разностной:
u1 uл ,
ui 1 2ui ui 1 |
p(x ) |
ui 1 ui 1 |
q(x)u |
r(x ), |
i 2,...,N 1, (4) |
|
|
||||
h2 |
i |
2h |
i |
i |
|
|
|
|
|
uN uп .
Собирая коэффициенты при ui 1, ui , ui 1, найдите для вектора неизвестных (u1 ,…,uN ) СЛАУ с трехдиагональной матрицей, которую решаем методом прогонки. Для определения граничных потоков тепла q1 и qN используйте аппроксимацию производной по несимметричным формулам второго порядка:
du |
|
3u 4u |
|
u |
|
du |
|
u |
N 2 |
4u |
N |
1 |
3u |
N |
|
||
|
|
|
1 |
2 |
|
3 , |
|
|
|
|
|
|
. |
||||
|
|
|
2h |
|
|
|
|||||||||||
dx 1 |
|
2h |
|
|
|
dx N |
|
|
|
|
|
|
|
||||
2. Напишите фортран-программу, реализующую метод конечных разностей (4). За основу возьмите программу Kraev1 (см. ниже), которая
решает задачу (1) для слоя Al ( 202,4Вт м 1К 1 ) толщиной l 1 м с граничными температурами uл 300 К, uп 500 К и источником тепла
S(x) Smax sin(5 x) , Smax 1,6192 МВт/м3. Данная задача имеет точное решение:
|
|
|
|
|
|
|
|
|
|
|
r |
x |
|
r |
|
|
|
|
|||
u |
|
(x) u |
|
|
|
u |
|
u |
|
|
max |
sin(5 l) |
|
|
|
max |
sin(5 x) , |
r |
S |
|
/ . |
e |
л |
|
п |
л |
|
|
|
max |
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
(5 )2 |
l |
|
(5 )2 |
|
|
|
|
|||
6
3. Используя программу, проведите расчеты для числа шагов (N 1) 10, 20, 40 и 80. Полученные данные занесите в таблицу.
N |
max max ue(xi) – ui |
qл – q1 |
qп – qN |
|
|
|
|
На основании анализа погрешности сделайте вывод о порядке аппроксимации метода. Постройте графики точного и приближенного решения для разных N, убедитесь в сеточной сходимости приближенного решения (т. е. убедитесь в уменьшении влияния сетки на решение при ее измельчении).
program kraev1 parameter(N=11)
dimension c(N),d(N),e(N),f(N),x(N),u(N),ue(N) common /par1/ xR,uL,uR,rmax open(10,file='res.dat')
xL=0.0; uL=300 xR=1.0; uR=500
rmax=8e3 ! Smax/lambda h=(xR-xL)/(N-1); h2=h*h do j=1,N; x(j)=xL+(j-1)*h;
c(j)=1.0-(h/2)*p(x(j)); d(j)=h2*q(x(j))-2.0 e(j)=1.0+(h/2)*p(x(j)); f(j)=h2*r(x(j)) end do
c(1)=0.0; e(1)=0.0; d(1)=1.0; f(1)=uL c(N)=0.0; e(N)=0.0; d(N)=1.0; f(N)=uR call Progon(N,c,d,e,f,u)
print*,' x u uex' do j=1,N
ue(j)=uex(x(j))
print '(3(1x,1pe12.5))',x(j),u(j),ue(j) write(10,100)x(j),u(j),ue(j)
end do du=maxval(abs(u-ue))/uL print*,' du=',du
100 format(3(1x,1pe12.5)) end
7
function p(x) p=0.0
end function q(x) q=0.0
end
function r(x)
common /par1/ xR,uL,uR,rmax pi=4.*atan(1.) r=-rmax*sin(5.*pi*x)
end
function uex(x)
common /par1/ xR,uL,uR,rmax pi=4.*atan(1.); rmax5=rmax/(5*pi)**2
uex=uL+((uR-uL)-rmax5*sin(5*pi*xR))*x/xR+rmax5*sin(5*pi*x) end
Результаты:
x u uex
0.00000E+00 3.00000E+02 3.00000E+02
1.00000E-01 3.60000E+02 3.52423E+02 |
||
2.00000E-01 |
3.40000E+02 |
3.40000E+02 |
3.00000E-01 |
3.20000E+02 |
3.27577E+02 |
4.00000E-01 |
3.80000E+02 |
3.80000E+02 |
5.00000E-01 |
4.40000E+02 |
4.32423E+02 |
6.00000E-01 |
4.20000E+02 4.20000E+02 |
|
7.00000E-01 |
4.00000E+02 |
4.07577E+02 |
8.00000E-01 |
4.60000E+02 |
4.60000E+02 |
9.00000E-01 |
5.20000E+02 |
5.12423E+02 |
1.00000E+00 |
5.00000E+02 |
5.00000E+02 |
du= 2.5257669E-02 |
|
|
МКО (ПАКЕТ ANSYS)
1. Создание проекта (программа Workbench). После запуска Workbench раскройте в «Toolbox» закладку «Analyses Systems» и выберите «Fluid Flow (Fluent)» (двойной клик «мыши» либо перетаскивание
8
на поле «Project Schematic»). Сохраните проект (кнопка «Save») в специально созданной рабочей папке. Путь к рабочей папке не должен содержать букв кириллицы.
2. Создание геометрической модели расчетной области (DesignModeler). Выполните двойной клик «мыши» по пункту «Geometry» в схеме проекта. При первом запуске выберите единицу измерения длины («Meter» по умолчанию). Далее создайте на плоскости xy чер-
теж: выделите «XYPlane», нажмите кнопку «New Sketch» ; на за-
кладке «Sketching» с помощью инструментов «Draw» -> «Rectangle» и «Dimensions» -> «Horizontal», «Vertical» начертите прямоугольную область длиной l (0 x l ) и высотой l /40 (0 y l /40). (Для те-
стовой задачи l 1 м.) Затем переключитесь на закладку «Modeling», выберите пункт меню «Concept»->«Surfaces From Sketches»
9
и нажмите кнопку
. Сохраните проект и выйдите из DesignModeler.
3. Генерация расчетной сетки и задание границ (Meshing). Выполните двойной клик «мыши» по пункту «Mesh» в схеме проекта. В дре-
вовидном списке выберите «Mesh» (ПКМ) -> «Insert» -> «Sizing». Выде-
лите нижнюю и верхнюю горизонтальные границы области (при этом соответствующий фильтр выделения объектов должен быть активным:
) и в окне свойств нажмите «Apply». Также в окне свойств задайте «Type» = «Number of Divisions», «Number of Divisions» = 10, «Behavior» = «Hard». Аналогичные действия выполните для левой и правой вертикальных границ, причем задайте число ячеек
«Number of Divisions» = 1. Далее выполните «Mesh» -> «Insert» -> «Mapped Face Meshing» и в свойствах укажите область для «Geometry».
Затем нажмите
. Будет сгенерирована конечно-объем- ная сетка с ячейками прямоугольной формы. Теперь создайте граничные поверхности: выделяя граничную линию, вызывайте контекстное меню (ПКМ) -> «Create Named Selection». Левая граница – «left», пра-
вая – «right», нижняя – «bot», верхняя – «top». Перед сохранением про-
екта выполните
.
4. Задание физической модели, начальных и граничных условий, параметров численного алгоритма (Fluent). Запуск препроцессора осуществляется с помощью кнопки «Setup» в дереве проекта.
Впункте «General» раздела «Solution Setup» выберите опцию «Time» = «Steady» для решения стационарной задачи.
Впункте «Models» подключите уравнение энергии «Energy – On».
Впункте «Materials» выберите материал твердого тела: выделите
«Solid» и нажмите кнопку «Create/Edit». В окне «Create/Edit Materials» вызовите базу данных «Fluent Database…», измените «Material Type» на
«Solid» и выберите в списке требуемый материал («aluminum (al)» для тестовой задачи), затем нажмите «Copy» и «Close». В окне «Create/Edit Materials» выберите «Change/Create» и «Close».
Создайте в каталоге проекта файл «source.с», содержащий пользовательскую функцию (UDF) для расчета источника тепла. Содержимое файла для тестовой задачи:
10
