"УМФ и конечные элементы" для магистрантов (сост. Жуков М.Ю.)

advertisement
Федеральное агентство по образованию Российской Федерации
Федеральное государственное образовательное учреждение
высшего профессионального образования
«ЮЖНЫЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»
Факультет математики, механики и компьютерных наук
Рассмотрено и рекомендовано
УТВЕРЖДАЮ
на заседании кафедры вычислительной матема-
Декан факультета математики, механики и ком-
тики и математической физики ЮФУ
пьютерных наук
Протокол №____от _________________ 2008 г.
________________________ Карякин М.И.
Зав. кафедрой ________________ Жуков М.Ю.
«_____» ________________ 2008 г.
УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС
учебной дисциплины
«Уравнения матфизики и конечные элементы»
для магистерской образовательной программы по направлению
010500 «Прикладная математика и информатика»
Составитель: д.ф.-м.н., профессор Жуков М.Ю.
Ростов-на-Дону
2008
010500
Пояснительная записка
Программа по дисциплине «Уравнения матфизики и конечные элементы»
предназначена для подготовки магистров по магистерской образовательной
программе «Математическая физика» специальности «Прикладная математика
и информатика». Она может использоваться студентами других специальностей, изучающих методы решения задач математической физики, а также желающими расширить свои знания в области постановки, решения и анализа задач численными методами.
Дисциплина «Уравнения матфизики и конечные элементы» знакомит магистрантов с основами метода конечных элементов, базовыми понятиями теории, способам постановки физических задач, разработки численных алгоритмов
для их решения на компьютере с помощью пакета прикладных программ, реализующих метод конечных элементов. Изучается специализированный язык
FreeFem++, предназначенный для записи формулировок задач, методов их решения и визуального анализа. Особое внимание уделяется проблеме перехода
от сильной к слабой постановке задачи, проблеме триангуляции области, выбору конечных элементов, конструированию алгоритмов решения эволюционных
задач, способам визуализации результатов расчетов. Рассматриваются современные варианты конструирования кодов программ, основанные на создании
макросов. Магистранты должны освоить общие и специфические приемы конструирования алгоритмов, методы создания и использования библиотек, приемы верификации алгоритмов, а также методы анализа решений.
Важное место в курсе отводится постановке задач математической физики — задач теплопроводности, массопереноса, гидродинамики, электродинамики, математической биологии. Большое внимание уделяется способам построения и анализа математических моделей реальных физических, химических и
биологических задач, таких как, задача о распространении тепла в неоднородной области, задача переноса пассивных и активных примесей, задача об окрас2
010500
ке шкур животных, задача переноса-диффузии вихря, проблема тепловой гравитационной и концентрационной конвекции, задача о течении жидкости в
сложных двумерных областях, задача о переносе вещества электрическим полем. Очевидно, что указанные модели могут непосредственно применяться при
исследовании загрязнения рек, процессов разделения и перемешивания химически и биологически активных многокомпонентных смесей, процессов переноса лекарства в крови, при изучении движения микроорганизмов.
При изложении материала по математическому моделированию используется единообразный подход: описание физического процесса основные →
уравнения → область решения задачи → краевые и начальные условия → переход к слабой формулировке → алгоритм решения → алгоритм контроля вычислений → алгоритм визуализации. Такая схема позволяет легче усваивать
разнородный материал и развивает навыки решения реальных задач.
При изучении языка делается акцент на специфику синтаксиса, типы и
структуры данных, на механизмы реализации алгоритмов решения эволюционных задач, что особенно важно при создании нового программного обеспечения, разработке комплексов программ и отдельных приложений.
Знания, полученные в рамках курса, могут использоваться в исследованиях, в научной работе, при написании магистерской диссертации, а также понять, для какого круга задач применимы методы математического моделирования и метод конечных элементов.
Требования к слушателям курса – знать основы алгоритмизации и программирования в рамках курса «Языки программирования»; основы методов
вычисления в рамках курса «Численные методы»; уравнениями математической физики в рамках курсов «Уравнения математической физики» и «Концепции современного естествознания».
Основной целью курса «Уравнения матфизики и конечные элементы»
является ознакомление студентов с современным состоянием в этой области,
3
010500
освещение проблематики, связанной с использованием математических моделей и метода конечных элементов для их численного решения, введение студентов в круг понятий и задач, связанных с решением широкого круга задач
математической физики при помощи компьютера.
Задачи курса сводятся к знакомству с основными понятиями и основами
метода конечных элементов, базовыми понятиями теории, способам постановки физических задач, разработки численных алгоритмов для их решения на
компьютере с помощью пакета прикладных программ, реализующих метод конечных элементов, изучению специализированного языка FreeFem++. Большое
внимание уделяется математическим основам метода конечных элементов —
проблемам триагуляции, конструирования базисных функций, алгоритмам решения. В круг задач курса входит рассмотрение конкретных примеров математических моделей реальных физических (и иных) процессов.
Основной задачей курса является выработка у студентов умения самостоятельно анализировать и решать теоретические и практические задачи, связанные с математическим моделированием широкого круга явлений, описываемых
уравнениями математической физики.
Изучение курса позволит получить теоретическую и практическую базу,
необходимую для успешного решения и анализа производственных наукоемких
задач на компьютере.
Магистранты должны научиться разрабатывать программы, позволяющие
детально исследовать различные математические модели, проводить вычислительный эксперимент и анализировать полученный результат, уметь использовать широкий спектр приемов и возможностей, предоставляемых пакетом прикладных программ для решения задач методом конечных элементов.
Большинство ключевых терминов, используемых в курсе, содержится в
глоссарии.
4
010500
Учебно-тематический план курса
«Уравнения матфизики и конечные элементы»
для магистерской образовательной программы по направлению 010500
«Прикладная математика и информатика»
Число часов:
Всего: 9 семестр – 102
Аудиторно: лекции
51,
практические занятия 17,
лабораторные занятия 34
Самостоятельная работа: 102.
Виды отчетности:
самостоятельные работы; отчеты по индивидуальным заданиям, выполненным
на компьютере; зачет, экзамен.
Содержание курса
Лекционные занятия
№
Часы
Тема
лекции
с. р.
3
3
3
3
Модуль 1. Основы метода конечных элементов
1
Метод конечных элементов в одномерных задачах. Слабое и сильное решения. Финитные и базисные функции.
Естественные и главные краевые условия.
2
Метод конечных элементов в двумерном случае. Задача
Дирихле для уравнений Лапласа. Слабое решение. Построение приближенного решения методом конечных
элементов.
5
010500
3
Интерполяция кусочно-линейными функциями. Барицен-
3
3
3
3
3
3
3
3
трические координаты. Кусочно-линейная интерполяция.
Базисные функции в FreeFem++ — основные приемы конструирования конечных элементов. Численное интегрирование по области и по границе области.
Модуль 2. Решение задач для уравнения Лапласа
4
Физические задачи, приводящие к стационарным уравнениям Пуассона — теплопроводность, диффузия, электростатика, проводимость.
5
Физические задачи, приводящие к стационарным уравнениям Пуассона — потенциальное течение несжимаемой
жидкости, обтекание крыла.
6
Решение задач о стационарном распределении температуры в областях сложной геометрии: в полигональной области, в области с отверстиями, в криволинейной области.
Слабая формулировка задач, специфика постановки краевых условий на границах сложной области.
Модуль 3. Решение нестационарных задач для уравнения Лапласа
7
Решение задач о нестационарном распределении темпера-
3
3
3
3
туры в областях сложной геометрии. Слабая формулировка задач, постановка краевых условий. Аппроксимация
производных по времени — явная и неявная схемы, схема
Кранка–Никольсона. Многошаговые методы. Постановка
начальных условий.
8
Алгоритмы решения эволюционной задачи для систем
уравнений. Приведение систем к слабой форме. Задача
для уравнений реакция-диффузия. Математическая модель описания окраски шкур животных.
6
010500
9
Принципы выбора пространства конечных элементов для
3
3
3
3
3
3
3
3
3
3
3
3
решения нестационарных задач. Вычисление норм. Теоремы вложения.
Модуль 4. Уравнения переноса
10
Постановка задачи Коши для гиперболических уравнений.
Метод характеристик в одномерном и двумерном случаях.
Способы аппроксимации уравнений переноса. Материальная производная.
11
Тестовые задачи, демонстрирующие специфику уравнений переноса — одномерное уравнение переноса примеси, двумерная задача о твердотельном вращении жидкости.
12
Специфические возможности, предоставляемые языком
FreeFem++ для решения уравнений переноса. Использование законов сохранения для контроля точности вычислений.
13
Уравнения для описания процессов переноса и диффузии
вихревых структур в жидкости. Различные варианты
представления уравнений — переменные вихрь–функция
тока, переменные скорость–давление. Особенности конструирования краевых условий при использовании различных переменных.
14
Алгоритм решения задачи перенос-диффузия вихря,
принципы организации кода, контроль погрешности вычислений, способы визуализации векторных полей. Примеры постановки задач для исследования движения вихрей в квадратной области, в круге и на торе.
Модуль 5. Движение жидкости и примесей
7
010500
15
Постановка задачи о тепловой конвекции. Аппроксимация
3
3
3
3
3
3
51 ч.
51 ч.
по времени и метод проекций. Постановка краевых условий для определения давления. Решение задачи Неймана.
Определение давления. Определение поля скоростей.
Особенности постановки задач для различных областей
— прямоугольная область, круг, области сложной конфигурации.
16
Задача о переносе примеси электрическим полем. Бездиффузионные модели переноса. Задача Римана о распаде
начального разрыва. Краевые и начальные условия.
17
Задача на собственные значения. Простые и кратные собственные значения. Собственные функции. Решение тестовых задач в случае оператора Лапласа для квадратной
и прямоугольной областей.
Рекомендованная литература
Основная
К лекциям 1-3
Модуль 1. Основы метода конечных элементов
1. Марчук Г. И. Методы вычислительной математики. М.: Наука, 1980.
2. Марчук Г. И., Агошков В. И. Введение в проекционно-сеточные методы.
М.: Наука. Главная редакция физико-математической литературы, 1981.
3. Бахвалов Н. С., Жидков Н. П., Кобельков Г. М. Численные методы. М.:
Наука, 1987.
4. Жуков М. Ю., Ширяева Е. В. Использование пакета конечных элементов
FreeFem++ для задач гидродинамики, электрофореза и биологии. Ростовна-Дону: Изд-во ЮФУ, 2008.
8
010500
К лекциям 4-6
Модуль 2. Решение задач для уравнения Лапласа
1. Тихонов А. Н., Самарский А.А. Уравнения математической физики. М.:
Наука. 1966.
2. Юдович В. И. Лекции об уравнениях математической физики. Часть первая. Ростов-на-Дону: «Экспертное бюро», 1999.
3. Владимиров В. С. Уравнения математической физики. М.:Наука, 1988.
4. Соболев С. Л., Уравнения математической физики. М.:ГИТТЛ, 1966.
5. Годунов С. К., Уравнения математической физики. М.:Наука, 1988.
6. Джеффрис Г., Свирлс Б. Методы математической физики. М.: Мир, 1969.
7. Ландау Л.Д., Лифшиц Е.М. Гидродинамика. М.: Наука, 1986.
8. Жуков М. Ю., Ширяева Е. В. Использование пакета конечных элементов
FreeFem++ для задач гидродинамики, электрофореза и биологии. Ростовна-Дону: Изд-во ЮФУ, 2008.
К лекциям 7-9
Модуль 3. Решение нестационарных задач для уравнения Лапласа
1. Тихонов А. Н., Самарский А.А. Уравнения математической физики. М.:
Наука. 1966.
2. Юдович В. И. Лекции об уравнениях математической физики. Часть первая. Ростов-на-Дону: «Экспертное бюро», 1999.
3. Владимиров В. С. Уравнения математической физики. М.:Наука, 1988.
4. Соболев С. Л., Уравнения математической физики. М.:ГИТТЛ, 1966.
5. Годунов С. К., Уравнения математической физики. М.:Наука, 1988.
6. Джеффрис Г., Свирлс Б. Методы математической физики. М.: Мир, 1969.
7. Жуков М. Ю., Ширяева Е. В. Использование пакета конечных элементов
FreeFem++ для задач гидродинамики, электрофореза и биологии. Ростовна-Дону: Изд-во ЮФУ, 2008.
9
010500
8. Марчук Г. И. Методы вычислительной математики. М.: Наука, 1980.
9. Марчук Г. И., Агошков В. И. Введение в проекционно-сеточные методы.
М.: Наука. Главная редакция физико-математической литературы, 1981.
10.Годунов С. К., Рябенький. Конечно разностные схемы. М.: Наука, 1973.
К лекциям 10-14
Модуль 4. Уравнения переноса
1. Жуков М. Ю., Ширяева Е. В. Использование пакета конечных элементов
FreeFem++ для задач гидродинамики, электрофореза и биологии. Ростовна-Дону: Изд-во ЮФУ, 2008.
2. Рождественский Б. Л., Яненко Н. Н. Системы квазилинейных уравнений.
М.: Наука, 1978.
3. Уизем Дж. Линейные и нелинейные волны. М.: Мир, 1977.
4. Бабский В. Г., Жуков М. Ю., Юдович В. И. Математическая теория электрофореза. Киев: Наукова думка, 1983.
5. Бабский В. Г., Жуков М. Ю. Биофизические методы: Теоретические основы электрофореза. М.: Изд. МГУ, 1990.
6. Жуков М. Ю. Массоперенос электрическим полем. Ростов н/Д: Изд. РГУ,
2005.
7. Тихонов А. Н., Самарский А.А. Уравнения математической физики. М.:
Наука. 1966.
8. Марчук Г. И., Агошков В. И. Введение в проекционно-сеточные методы.
М.: Наука. Главная редакция физико-математической литературы, 1981.
К лекциям 15-17
Модуль 5. Движение жидкости и примесей
1. Михлин С. Г.
Вариационные методы в математической физике.
М.:Наука, 1970.
10
010500
2. Михлин С. Г. Численная реализация вариационных методов. М.:
Наука,1966.
3. Бабский В. Г., Жуков М. Ю., Юдович В. И. Математическая теория электрофореза. Киев: Наукова думка, 1983.
4. Бабский В. Г., Жуков М. Ю. Биофизические методы: Теоретические основы электрофореза. М.: Изд. МГУ, 1990.
5. Жуков М. Ю. Массоперенос электрическим полем. Ростов на Дону: Изд.
РГУ, 2005.
6. Тихонов А. Н., Самарский А.А. Уравнения математической физики. М.:
Наука. 1966.
7. Марчук Г. И., Агошков В. И. Введение в проекционно-сеточные методы.
М.: Наука. Главная редакция физико-математической литературы, 1981.
8. Флетчер К. Вычислительные методы в динамике жидкостей. Т. 1, 2. М.:
Мир, 1991.
9. Гершуни Г.,З., Жуховицкий Е. М. Конвективная устойчивость несжимаемой жидкости. М.: Наука, 1972.
10.Левич В. Физико-химическая гидродинамика. М.: Наука, 1959.
11.Жуков М. Ю., Ширяева Е. В. Использование пакета конечных элементов
FreeFem++ для задач гидродинамики, электрофореза и биологии. Ростовна-Дону: Изд. ЮФУ, 2008.
Дополнительная литература
1. Сабоннадьер Ж.-К., Кулон Ж.-Л. Метод конечных элементов и САПР. М.:
Мир, 1989.
2. Оден Дж. Конечные элементы в нелинейной механике сплошных сред.
М.: Мир, 1976.
3. Норри Д., де Фриз Ж. Введение в метод конечных элементов. М.: Мир,
1981.
11
010500
4. Hecht F., Pironneau O., Le Hyaric A., Ohtsuka K. FreeFem++. Version 2.17-1.
http://www.freefem.org/ff++
5. Стренг Г., Фикс Дж. Теория метода конечных элементов. М.: Мир, 1977.
6. Митчелл Э., Уэйт Р. Метод конечных элементов для уравнений с частными производными. М.: Мир, 1981.
7. Деклу Ж. Метод конечных элементов. М.: Мир, 1976
8. Зенкевич О. Метод конечных элементов в технике. М.: Мир, 1975.
9. Зенкевич О., Морган К. Конечные элементы и аппроксимация. М.: Мир,
1986.
10.Лионс Ж.–Л., Мадженес Э. Неоднородные граничные задачи и их приложения. М.: Мир, 1971.
11.Марри Дж. Нелинейные дифференциальные уравнения в биологии. Лекции о моделях: Пер. с англ. М.: Мир, 1983.
12.Люстерник Л. Л., Соболев В. И. Элементы функционального анализа. М.:
Наука, 1965.
13.Лайтфут Э. Явления переноса в живых системах. М.: Мир, 1977.
14.Препарата Ф., Шеймос М. Вычислительная геометрия: Введение. М.:
Мир, 1989.
Технология обучения студента при модульном построении курса «Уравнения матфизики и конечные элементы»
Весь учебный курс состоит из 5 учебных модулей, для каждого из них определены формы промежуточного контроля знаний (контрольная работа, индивидуальное задание), приведенные в таблице 1.
№ п.п.
1
Модуль
Девятый семестр
Основы метода конечных элементов
2
Решение задач для уравнения Лапласа
12
Форма контроля
Контрольная работа
Индивидуальное
010500
4
Решение нестационарных задач для уравнения
Лапласа
Уравнения переноса
5
Движение жидкости и примесей
3
задание
Индивидуальное
задание
Индивидуальное
задание
Индивидуальное
задание
Табл. 1.
Контрольные вопросы
К модулю 1
1. .Что такое базисная функция
2. Дать определение носителя базисной функции.
3. Может ли быть базисная функция кусочно-линейной.
4. Является ли решение линейной комбинацией базисных функций.
5. В чем заключается основное отличие конечно-разностного метода от метода конечных элементов.
6. Что такое кусочно-линейная интерполяция.
7. Для чего вводятся барицентрические координаты.
8. Перечислить несколько типов конечных элементов.
9. Дать определение функции Куранта
10. Для каких областей можно строить триангуляцию.
11. Какой способ принят в пакете FreeFem++ для описания области, в которой решается задача.
12. Как в пакете FreeFem++ вычисляются интегралы по границе области.
13. Как в пакете FreeFem++ вычисляются интегралы по области.
14. Как задаются однородные краевые условия Неймана в пакете FreeFem++.
15. Что такое слабое решение задачи.
16. Для чего используется формула Грина при решении задачи Дирихле.
13
010500
К модулю 2
1. Какие физические задачи решаются при помощи уравнений Лапласа и
Пуассона.
2. Укажите причину, по которой в методе конечных элементов используется
слабая формулировка задачи.
3. Укажите причину, по которой в пакете FreeFem++ требуется записывать в
слабой формулировке.
4. В чем заключается различие представления в пакете FreeFem++ краевых
условий первого и краевых условий второго и третьего рода.
5. Отличаются ли принципиально способы решения методом конечных элементов задачи в прямоугольной области и в полигональной области (в
круге, в круге с отверстием).
6. При помощи какой конструкции в пакете FreeFem++ задается граница
области.
7. При помощи какой конструкции в пакете FreeFem++ задается триангуляция области.
8. При помощи какой конструкции в пакете FreeFem++ задается пространство конечных элементов.
9. Какие конструкции используются в пакете FreeFem++ для записи и решения задачи в слабой формулировке.
10. Как задаются аргументы функции при ее описании с помощью служебного слова fun.
11. Как задаются аргументы FE-функции.
12. Перечислить несколько специальных функций,
имеющихся в пакете
FreeFem++.
13. Что можно визуализировать при помощи функции plot().
14
010500
К модулю 3
1. Имеются ли в пакете FreeFem++ конструкции, предназначенные непосредственно для решения нестационарных задач.
2. Чем принципиально отличаются явные и неявные схемы дискретизации
нестационарной задачи.
3. Можно ли в пакете FreeFem++ использовать аппроксимации производных
по времени, используя более двух временных слоев.
4. Отличается ли в пакете FreeFem++ общая схема конструирования алгоритма для решения стационарной и решения нестационарной задачи.
5. При помощи каких конструкций в пакете FreeFem++ можно осуществлять
вывод данных в числовом формате.
6. Какие типы данных имеются в пакете FreeFem++.
7. Можно ли в пакете FreeFem++ использовать комплексные числа.
8. Какие типы циклов имеются в пакете FreeFem++.
9. Какие условные операторы можно использовать в пакете FreeFem++.
10. Для чего нужны теоремы вложения при оценке погрешностей вычислений.
11. Какие нормы можно использовать при оценке погрешностей.
12. Перечислите несколько способов контроля погрешности вычислений с
использованием средств пакета FreeFem.
К модулю 4
1. Что такое характеристика и какие ее основные свойства.
2. Что такое материальная производная.
3. Для чего в пакете FreeFem++ используется функций convect().
4. Можно ли в пакете FreeFem++ задавать области с движущейся границей.
5. Для чего в пакете FreeFem++ используются адаптируемые сетки.
6. Перечислите несколько физических задача, которые можно решать, используя метод характеристик.
15
010500
7. Можно ли в пакете FreeFem++ использовать сетки, сгенерированные другими программами.
8. Что такое переменные вихрь–функция тока и переменные скорость–
давление.
9. В чем заключаются трудности при задании краевых условий в переменных вихрь–функция тока.
10. Можно ли в пакете FreeFem++ решать уравнения переноса, не используя
функцию convect().
11. Какие конструкции используются в пакете FreeFem++ при решении задач
с периодическими краевыми условиями.
К модулю 5
1. Какие физические задачи можно, используя метод проекций.
2. В чем специфика численного решения задачи Неймана для определения
давления.
3. Можно ли в пакете FreeFem++ решать задачи, записанные в полярных
координатах.
4. Какие трехмерные задачи можно решать при помощи пакета FreeFem++ ,
предназначенного для решения двумерных задач.
5. Можно ли при помощи пакета FreeFem++ решать нелинейные задачи.
6. Сформулируйте основной принцип построения алгоритма в пакете
FreeFem++ при записи слабой формулировки нелинейных задач.
7. Что такое задача Римана для гиперболических уравнений.
8. Для чего нужны макросы в пакете FreeFem++.
9. Можно ли при помощи пакета FreeFem++ решать задачу методом конечных элементов, не используя конструкции solve(), problem().
10.Дайте определение задачи для нахождения собственных значений и приведите ее слабую формулировку.
16
010500
11.Можно ли в пакете FreeFem++ задачу на собственные значения в случае
кратных собственных значений.
12.Приведите примеры использования операций для работы с матрицами в
пакете FreeFem++.
13.Приведите примеры использования операций для работы с разреженными
матрицами в пакете FreeFem++.
14.Имеются ли в пакете FreeFem++ возможность преобразования в друг друга обычных матриц и разреженных матриц.
15.Всегда ли возможна триангуляция области при решении задачи с деформируемой границей.
16.Какие возможности имеются в пакете FreeFem++ для предотвращения
«дефектной» деформации границ области.
17.Можно ли в пакете FreeFem++ создавать собственные типы конечных
элементов.
18.Как создавать библиотеки программ в пакете FreeFem++
19.Опишите схему экономичного алгоритма в случае, когда примесь переносится жидкостью и электрическим полем и зависимость скорости и давления жидкости от концентрации примеси отсутствует.
20.Какой вид имеет формула Грина в случае полярных координат.
Методические рекомендации по самостоятельной работе
Самостоятельная работа магистрантов заключается в изучении литературы, осмыслении вводимых понятий и конструкций метода конечных элементов,
анализе задачи, выборе способа алгоритмизации для численного решения, выборе способа контроля точности и визуализации результатов. При интерпретации решения какой-либо физической или иной задачи следует обращать внимание на эффективность представления результатов расчета в численной и визуальной форме. Исследуя решение новой задачи, магистрант должен уметь выбирать эффективные и надежные алгоритмы решения, использовать специфику
17
010500
возможностей, предоставляемых пакетом FreeFem++, проводить тестирование
программы, верифицировать полученные результаты, уметь интерпретировать
полученные результаты. При реализации программы необходимо использовать
существующие методы и принципы создания программного продукта, предусматривать эксплуатацию программного продукта для широкого диапазона параметров, предусматривать защиту от неопытного пользователя.
В процессе самостоятельной работы рекомендуется обратить внимание на
многообразие возможностей реализации алгоритма, на многообразие специальных средств и методов пакета, уяснить назначение, достоинства и недостатки
различных из них.
Примеры вопросов для контрольной работы
К модулю 1
1. При помощи функции border() задать отрезок, соединяющий две заданные точки (фрагмент границы).
2. Является ли правильным следующий фрагмент кода
real n=4;
…………………….
mesh Th = buildmesh ( G1(5*n)+ G2(15)+…+ Gk(5) );
3. Является ли правильным следующий фрагмент кода
fespace
Vh(Th,P2);
Vh u, v;
func u = sin(x)*cos(y);
4. Какой задаче соответствует фрагмент кода
solve Heat(u,v) =
int2d( dx(u)*dx(v)+ dy(u)*dy(v))+
on(C, u=1);
5. Задать функцию
.
6. Правильно ли задана некоторая функции при помощи кода
func H = x * sin (x);
18
010500
7. Записать формулу Грина для области, расположенной между двумя концентрическими окружностями.
8. Пусть v является FE-функцией. Что будет изображено на экране дисплея
после выполнения
plot(v, bw=1, wait=1);
Записать слабую формулировку задачи u  f ( x, y ), ( x, y )  D, uD  1.
9. В каком виде разыскивается решение задачи при использовании метода
конечных элементов.
10. Дайте определение барицентрических координат.
11. Запишите кусочно-линейную базисную функцию для одномерной задачи,
решаемой методом конечных элементов.
12. Что такое носитель функции.
19
010500
Практические занятия
№
Часы
Тема
Сем.
с. р.
Модуль 1. Основы метода конечных элементов и введение в язык
FreeFem++
1
Типы данных языка FreeFem++. Глобальные перемен-
1
1
1
1
1
1
1
1
1
1
1
1
1
1
ные. Математические операции. Способы задания
функции одной переменной — элементарные функции,
случайные функции, специальные функции.
2
Способы задания функции двух переменных. Конечноэлементные функции. Выбор конечных элементов.
3
Основные принципы записи задач в слабой формулировке. Способы записи задач в языке FreeFem++. Слабая
форма задачи и краевые условия.
4
Вариационные формы и разреженные матрицы.
Модуль 2. Решение задач для уравнения Лапласа
5
Решение
уравнения
теплопроводности
на
языке
FreeFem++. Реализация различных типов краевых условий.
6
Решение задачи о потенциальном стационарном течении несжимаемой жидкости.
7
Решение уравнений теплопроводности и диффузии с
пространственно-неоднородными коэффициентами.
Модуль 3. Решение нестационарных задач для уравнения Лапласа
20
010500
8
Конструирование алгоритмов решения эволюционной
задачи.
Способы
записи
алгоритмов
на
1
1
1
1
1
1
1
1
1
1
1
1
1
1
языке
FreeFem++. Общая схема организации программного
кода для решения эволюционных задач.
9
Модель окраски прямоугольной шкуры. Исследование
возникновения пространственной структуры — собственные функции линеаризованной задачи.
10
Приемы контроля погрешности. Специфика способов
визуализации данных при решении эволюционных задач. Основные принципы проведения вычислительного
эксперимента.
Модуль 4. Уравнения переноса
11
Задача о твердотельном вращении жидкости. Точное
решение задачи. Задача о переносе локализованного
возмущения поверхности жидкости.
12
Специфические возможности, предоставляемые языком
FreeFem++ для решения уравнений переноса. Встроенные процедуры аппроксимации материальной производной.
13
Задача о движении набора вихрей в круговой и прямоугольной области. Способы задания начальных распределений вихрей — монопольный вихрь, дипольный
вихрь, вихрь Бесселя.
Модуль 5. Движение жидкости и примесей
14
Численные методы, обеспечивающие разрешимость
краевой задачи Неймана. Согласование начальных и
краевых условий.
21
010500
15
Задача о течении Куэтта–Тейлора между вращающими-
2
2
1
1
ся цилиндрами. Метод конечных элементов для полярных координат. Слабая формулировка задачи. Проекционный алгоритм решения задачи о движении жидкости.
16
Задача о переносе примесей жидкостью. Задача о переносе примесей электрическим полем. Задача о совместном переносе примесей жидкостью и электрическим
полем. Задачи со свободной границей.
Лабораторные занятия
№
Часы
Тема
Лаб.р.
с. р.
Модуль 1. Основы метода конечных элементов и введение в язык
FreeFem++
1
Знакомство с программным обеспечением для работы с
2
2
2
2
2
2
2
пакетом FreeFem++ — основное назначение, специфика
установки и настройки ПО. Способы ввода и вывода
данных различного типа на языке FreeFem++. Программирование по формулам с использованием встроенных
функций.
2
Определение функций пользователя. Способы задания
границ области, триангуляция области. Средства визуализации — команда plot и ее параметры.
3
Оператор условного перехода. Циклы. Работа с массивами.
4
Разреженные матрицы и операции над ними.
1
5
Контрольная работа «Основные конструкции языка
1
FreeFem++»
22
010500
Модуль 2. Решение задач для уравнения Лапласа
6
Решение
уравнения
теплопроводности
на
языке
2
2
FreeFem++ в прямоугольнике и круге. Реализация различных типов краевых условий. Способы визуализации
полей температуры.
7
Задача об обтекании крыла. Задание профилей крыла.
2
2
8
Исследование стационарного распределения температу-
2
2
ры в областях сложной геометрии: в полигональной области, в области с отверстиями, в криволинейной области.
Модуль 3. Решение нестационарных задач для уравнения Лапласа
9
Исследование задач о нестационарном распределении
2
2
2
2
2
2
2
2
2
2
2
2
температуры. Сравнение различных схем аппроксимации по времени.
10
Исследование образования пространственно-временных
структур, вызванных диффузионной неустойчивостью.
11
Сравнение эффективности различных способов контроля точности вычислений — сравнение с точным решением задачи, сравнение решений на временных слоях, сравнение решений на различных сетках.
Модуль 4. Уравнения переноса
12
Программная реализация задачи о твердотельном вращении
жидкости
без
использования
специальных
средств языка FreeFem++.
13
Использование функции convect() для аппроксимации
материальной производной. Параметры функции.
14
Исследование поведения семи вихрей в кольцевой области. Модель планетарных вихрей.
23
010500
Модуль 5. Движение жидкости и примесей
15
Определение поля вихря скорости по известному рас-
2
2
пределению вектора скорости. Контроль погрешности
вычислений. Вычисление функции тока.
16
Макросы. Приемы создания библиотек алгоритмов.
2
2
17
Исследование задачи о волновом роторе.
2
2
Виды отчетности: 4 индивидуальных задания, 1 контрольная работа.
Рекомендованная литература
Основная
1. Тихонов А. Н., Самарский А.А. Уравнения математической физики. М.:
Наука. 1966.
2. Юдович В. И. Лекции об уравнениях математической физики. Часть первая. Ростов-на-Дону: «Экспертное бюро», 1999.
3. Жуков М. Ю., Ширяева Е. В. Использование пакета конечных элементов
FreeFem++ для задач гидродинамики, электрофореза и биологии. Ростовна-Дону: Изд-во ЮФУ, 2008.
4. Марчук Г. И. Методы вычислительной математики. М.: Наука, 1980.
5. Марчук Г. И., Агошков В. И. Введение в проекционно-сеточные методы.
М.: Наука. Главная редакция физико-математической литературы, 1981.
6. Годунов С. К., Рябенький. Конечно разностные схемы. М.: Наука, 1973.
Дополнительная литература
1. Флетчер К. Вычислительные методы в динамике жидкостей. Т. 1, 2. М.:
Мир, 1991.
2. Гершуни Г.,З., Жуховицкий Е. М. Конвективная устойчивость несжимаемой жидкости. М.: Наука, 1972.
3. Левич В. Физико-химическая гидродинамика. М.: Наука, 1959.
24
010500
4. Сабоннадьер Ж.-К., Кулон Ж.-Л. Метод конечных элементов и САПР. М.:
Мир, 1989.
5. Оден Дж. Конечные элементы в нелинейной механике сплошных сред.
М.: Мир, 1976.
6. Норри Д., де Фриз Ж. Введение в метод конечных элементов. М.: Мир,
1981.
7. Hecht F., Pironneau O., Le Hyaric A., Ohtsuka K. FreeFem++. Version 2.17-1.
http://www.freefem.org/ff++
8. Стренг Г., Фикс Дж. Теория метода конечных элементов. М.: Мир, 1977.
9. Митчелл Э., Уэйт Р. Метод конечных элементов для уравнений с частными производными. М.: Мир, 1981.
10.Деклу Ж. Метод конечных элементов. М.: Мир, 1976
11.Зенкевич О. Метод конечных элементов в технике. М.: Мир, 1975.
12.Зенкевич О., Морган К. Конечные элементы и аппроксимация. М.: Мир,
1986.
13.Лионс Ж.–Л., Мадженес Э. Неоднородные граничные задачи и их приложения. М.: Мир, 1971.
14.Марри Дж. Нелинейные дифференциальные уравнения в биологии. Лекции о моделях: Пер. с англ. М.: Мир, 1983.
15.Лайтфут Э. Явления переноса в живых системах. М.: Мир, 1977.
25
010500
//////////
Пример лабораторной работы к модулю 1
Лабораторная работа № 2. Определение функций пользователя. Способы
задания границ области, триангуляция области. Средства визуализации —
команда plot и ее параметры
1. Определение функций пользователя
Пример 1.1 (функция одного аргумента). Дана функция
мощью служебного слова func определить функцию
;
. С пои вычислить ее при
.
Решение. Создадим функцию для вычисления
:
func real Sumxy(real t1)
{
return t1+t1^2;
}
Вызов функции для вычисления значений при
и
осуществляем в
операторах вывода
cout << "s+s^2 = " << Sumxy(2) << endl;
cout << "s+s^2 = " << Sumxy(-2) << endl;
Задание 1.1. Наберите предлагаемый код в редакторе Crimson Editor, компилируйте с помощью FreeFem++ и посмотрите результат работы.
Задание 1.2. На основе кода из примера 1.1 создайте собственные функции с
именами shx, chx, thx:
,
,
.
Проведите тестирование созданных функций, используя для сравнения результаты, полученные с помощью соответствующих встроенных функций языка
FreeFem++: sinh(x), cosh(x) , tanh(x).
26
010500
Замечание. Имена
и
нельзя использовать в качестве аргументов функций
пользователя.
Пример 1.2. Сформировать границу области в виде кардиоиды с помощью
элементарных функций.
Решение. Код программы на языке FreeFem++ будем иметь вид:
real b = 1.0,
a = b;
//
кардиоида
func real phix(real t)
{
return a*cos(t)*cos(t) + b*cos(t);
}
func real phiy(real t)
{
return a*sin(t)*cos(t) + b*sin(t);
}
border C(t=0,2*pi) { x=phix(t); y=phiy(t); }
plot(C(50), wait=1);
// рисование границы области
Задание 1.3. В коде предыдущего примера укажите значения параметров
при которых кривая будет иметь вид:
Рис. 1. Улитка Паскаля (слева — без самопересечения;
справа — с самопересечением)
27
и ,
010500
Пример 1.4 (функция двух аргументов). Определить функцию
Вычислить ее значение при
;
.
.
Решение. Создадим функцию для вычисления
:
func ff = x*y;
Вызов функции для вычисления значения в точке
:
cout << "ff = " << ff(2.0, 1.5) << endl;
Пример 1.5 (конечноэлементные функции). Задание формулы-функции
на
FE-пространстве может иметь вид:
func f = x^2 + y^2;
mesh Th = square(20,20,[2*x,2*y]);
//
квадрат [0,2]x[0,2]
fespace Vh(Th, P1);
Vh fh = f;
//
fh - проекция f в Vh (веществ. значение)
plot(fh);
func zf = f * exp(x+1i*y);
Vh<complex> zh = zf;
// zh - проекция zf (в компл. FE-простр. Vh)
Заметим, что команда plot применима только для вещественных FEфункций, т.е. использование вызова plot(zh) приведет к ошибке.
Приведем пример создания комплексной функции и FE-пространств:
mesh Th = square(20,20);
fespace Vh(Th,P2);
// опр. пространства конечных элементов
func z = x+y*1i;
// z = x + iy
func f = imag(sqrt(z));
// f = Im(sqrt(z))
func g = real(sqrt(z));
// g = Re(sqrt(z))
Vh fh = f;
plot(fh, wait=1);
// линии уровня функции f
Vh gh = g;
plot(gh, wait=1);
// линии уровня функции g
plot(fh, gh, wait=1);
// линии уровня функций f и g
28
010500
Задание 1.4. Наберите предлагаемые коды в редакторе Crimson Editor, компилируйте с помощью FreeFem++ и посмотрите результат работы. Предложите
несколько вариантов своих функций.
2. Способы задания границ области, триангуляция области
Задание 2.1. Запустите программу FreeFemEditor на выполнение. Откройте окно редактора сеток с помощью команд меню Tools
Mesh Editor. Редактор
Mesh Editor предназначен для задания простейших прямоугольных сеток.
Рис. 2. Окно редактора Mesh Editor
а) Ознакомьтесь с возможным набором команд для построения прямоугольных
сеток с помощью функций square и border.
б) Поэкспериментируйте с возможным набором аргументов этих функций и
просмотрите результаты конструирования сеток (кнопка «Показать сетку»).
в) Ответьте на вопросы: «какой параметр позволяет задать сетку типа Union
Jack» и «чем сетка Union Jack отличается от обычной».
Задание 2.2. С помощью команд меню Tools
Mesh Drawing программы
FreeFemEditor откройте окно для рисования полигональных сеток.
29
010500
Рис. 3. Окно редактора Mesh Drawing
а) С помощью указателя мыши нарисуйте любую незамкнутую область.
б) При нажатии кнопки «Создать код» происходит замыкание полигональной
области и формирование кода на языке FreeFem++ для задания границы нарисованной границы области.
в) Ознакомьтесь со спецификой задания границы в случае полигональной области.
г) Просмотрите результаты конструирования сеток.
Задание 2.3. а) Наберите в редактор Crimson Editor предлагаемый ниже код для
триангуляции круглых областей и посмотрите результат работы.
border Gamma1(t=0,2*pi){ x=cos(t); y=sin(t); }
border Gamma2(t=0,2*pi){ x=0.3+0.3*cos(t); y=0.3*sin(t); }
plot(Gamma1(50) + Gamma2(+30), wait=1) ; // визуализация границы
mesh ThWithoutHole = buildmesh(Gamma1(50) + Gamma2(+150));
mesh ThWithHole = buildmesh(Gamma1(50) + Gamma2(-30));
plot(ThWithoutHole, wait=1);
plot(ThWithHole, wait=1);}
б) Ответьте на вопрос: для чего используется отрицательное значение параметра, задающего число точек на границе.
в) Запишите операторы для задания и визуализации круговой границы.
г) Запишите операторы для триангуляции круговой области и ее визуализации.
3. Средства визуализации — команда plot и ее параметры
30
010500
aspectratio= (bool) выражение, отвечающее за растягивание области по
всему графическому окну;
bb= массив от 2D массива (типа [[0.1,0.2],[0.5,0.6]]), задающий область окна
графического вывода. Окно задается координатами угловых точек —0.1,0.2 и
[0.5,0.6] в нашем случае;
boundary= (bool) выражение, отвечающее за способ вывода границ области;
bw= (bool) выражение, отвечающее за способ вывода изображения: с ис-
пользованием черно-белой (=true) или цветной (=false) палитры;
cmm= (string) строковое выражение, выдаваемое в графическое окно;
coef= (real) коэффициент, равный отношению единицы длины стрелок век-
торов к единице длины области;
fill= (bool) заливка областей между изолиниями (=0 — нет заливки);
grey= (bool) выражение, отвечающее за способ вывода изображения: с ис-
пользованием оттенков серого (1) или нет (=0);
hsv= (real[int]) вещественный массив, определяющий
значений па-
раметров цветовой модели HSV:
real[int] Colors = [h1,s1,v1, h2,s2,v2, ..., hn,sn,vn],
где hi, si, vi —параметры цветовой модели HSV (H — Hue (оттенок), S —
Saturation (насыщенность), V — Value (значение яркости)). Каждый параметр — вещественное число из отрезка [0,1];
nbarrow= (int) количество цветов векторных значений (=20);
nbiso= (int) количество выводимых изолиний (=20);
ps= (string) выражение для сохранения рисунка в postscript-файл (с расши-
рением ps);
value= (bool) выражение, отвечающее за возможность вывода «легенды»
(value=1 — показывать легенду, отражающую значения изолиний и направления векторов);
varrow= (real[int]) множество номеров выводимых цветных стрелок;
31
010500
viso= (real[int]) массив значений
, где
. Служит для по-
строения выбранных изолиний;
wait= (bool) выражение ожидания команды (=false). Если true, то про-
грамма прервет выполнение до нажатия клавиши на клавиатуры или щелчка
мыши, при этом при нажатии любой клавиши на клавиатуре, кроме нижеперечисленных, происходит продолжение работы программы.
Специальными считаются символы:
+
увеличить область вокруг указателя мыши,
–
уменьшить область вокруг указателя мыши,
=
восстановить начальный размер области вывода, графического окна c
C
увеличить длину стрелок,
c
уменьшить длину стрелок,
r
восстановить (перерисовать) графическое окно,
f
включить/выключить заливку между изолиниями,
b
выбрать черно-белый цвет изображения,
g
выбрать палитру: оттенки серого или цветная,
m
оказать/убрать сетку,
v
показать/убрать легенду,
p
сохранить изображение в postscript файл (с именем freefem.ps в каталог
с текущим edp-файлом),
?
вывести подсказку о ключах.
Задание 3.1(параметры команды plot, wait). а) Ознакомьтесь с параметрами
команды plot. б) Запустите на выполнение любой из предлагаемых выше кодов, содержащий команду plot, указав значение параметра wait=1. Изменить
вид выводимого рисунка, изменяя с клавиатуры ключи параметра wait.
Пример 3.1 (сохранение изображения в файл). Обратим внимание, что ключи
параметра wait дублируют действия некоторых параметров команды plot.
32
010500
Например, сохранить изображение в ps-файл с именем freefem.ps можно с помощью ключа p в случае использования команды
plot(u, wait=1);
и при использовании параметра ps
plot(u, ps="freefem.ps");
Существенное отличие состоит в том, что во втором случае можно задать другое имя для файла. Это особенно удобно, когда результаты расчетов сохраняются, например, в цикле:
func f = tanh(exp(x)^2-exp(y)^2);
mesh Th = square(5,5);
fespace Vh(Th, P1);
Vh fh = f;
plot(fh, ps="TestFuncInit.ps");
plot(Th, ps="Test0.ps");
for (int i=1; i<3; i++)
{ Th = adaptmesh(Th, fh);
fh = f;
// функция на новой сетке
plot(Th, ps="Test" + i + ".ps");
}
plot(fh, ps="TestFunc.ps");
При работе программы сохраняются пять файлов: TestFuncInit.ps, Test0.ps,
Test1.ps, Test2.ps, TestFunc.ps
Задание 3.2. а) С помощью параметров команды plot изменить способ визуализации (например, используйте заливку области, добавьте легенду и т.п.). б) Измените FE-функцию и область для триангуляции, результаты запишите в файлы
с другими именами.
Пример 3.2 (изображение изолиний FE-функций). Будем изображать изолинии некоторой функции, но выбранные не по умолчанию, а специальным обра-
33
010500
зом, например, с шагом 0,1. Для этого будем использовать параметр viso, который позволяет выбрать отдельные изолинии.
mesh Th = square(25,25);
fespace Vh(Th, P2);
Vh u = exp(-10*(x-0.5)^2)*exp(-10*(y-0.5)^2);
real[int] viso(8);
for (int i=0; i<viso.n; i++)
viso[i] = i*0.1;
plot(u, viso=viso(0:viso.n-1), value=1);
Задание 3.3. а) Посмотрите результат работы предложенного кода. б) Измените
код таким образом, чтобы получить три ps-файла, в каждый из которых отличается значением параметра viso (с шагами 0,1; 0,2; 0,3).
Пример 3.3 (изображение сечения FE-функций). Для рисования сечения FEфункции значения аргументов и сеточной функции предварительно необходимо занести в массивы.
real s = 50;
// количество точек графика
real[int] xx(s), uu(s);
// вспомогательные массивы
mesh Th = square(30,30,[-1+2*x,-1+2*y]);//квадрат [-1,1]x[- 1,1]
fespace Vh(Th, P2);
Vh uh = sin(2*pi*x) * cos(y); // задание сеточной функции uh
for (int i=0; i<s; i++)
{ x=-1+2*i/s;
xx[i]=i;
}
y=0;
uu[i]=uh;
// занесение значений аргумента и функции в массивы
plot([xx,uu], wait=1);
Задание 3.4. а) Задайте область для триангуляции — прямоугольник
; б) Определите FE-функцию с использованием экспоненты и
тригонометрических функций. в) Изобразите три различных сечения FEфункции.
34
010500
Пример 3.4 (изображение векторного поля). Для изображения векторного
поля
необходимо задать сеточную функцию для каждой его ком-
поненты.
mesh Th = square(10,10,[-1+2*x,-1+2*y]);
fespace Vh(Th,P2);
Vh Fx = sin(2*pi*y),
Fy = -sin(2*pi*x);
plot([Fx,Fy], wait=1, coef=0.06);
Задание 3.5 (использование параметра hsv). а) Посмотрите результат работы
предлагаемого ниже кода, демонстрирующего две цветовые схемы. б) Предложите свой вариант цветовой схемы. в) Посмотрите, как влияет использование
параметра hsv на визуализацию некоторого векторного поля.
real a=2.0, b=1.0;
// ширина и высота прямоугольной области
border Gamma2(t=0,1){ x=a*t; y=0; };
// bottom
border Gamma11(t=0,1){ x=a; y=b*t; };
// right
border Gamma3(t=0,1){ x=a*(1-t); y=b; };
// top
border Gamma12(t=0,1){ x=0; y=b*(1-t); };
// left
mesh Th =
buildmesh(Gamma2(10)+Gamma11(5)+Gamma3(10)+Gamma12(5));
fespace Vh(Th, P2);
Vh u = 2*x;
plot(u, fill=1, wait=1);
// рисование до изменения параметра hsv
real[int] colorhsv = [ 0.75, 1.0, 1.0,
0.5,
1.0, 0.75,
0.0,
1.0, 1.0
];
plot(u, fill=1, hsv=colorhsv, wait=1);
Методические рекомендации по выполнению лабораторных заданий
Лабораторные занятия по курсу «Уравнения матфизики и конечные элементы» проводятся в компьютерном классе. В качестве основного прикладного
программного обеспечения следует использовать пакет конечных элементов
35
010500
FreeFem++ и дополнительно — пакет символьных вычислений Maple, пакеты
научной графики Grapher и Surfer, графическая оболочка конструирования сеток и решения уравнения теплопроводности (разработана в учебной компьютерной лаборатории кафедры вычислительной математики и математической
физики, автор: зав. лаб. Е.В. Ширяева) FreeFemEditor. Для оформления отчета
желательно использовать издательскую систему LaTeX.
На каждом лабораторном занятии студенты получают задания, для выполнения которых требуется знание теоретического материала, полученного на
лекциях.
36
010500
Примерный вариант индивидуального задания. Модуль 2
Постановка задачи:
Пусть дано уравнение
,
Граничные условия имеют вид:
.
,
1. Записать слабую формулировку задачи.
2. Пусть
,
,
,
,
,
,
.
3. Написать последовательность операторов для задания границ области.
4. Написать последовательность операторов, строящих триангуляцию.
5. Записать последовательность операторов, задающих пространство конечных элементов.
6. Определить на пространстве конечных элементов необходимые для решения функции.
7. Задать требуемые функции , ,…
8. Используя оператор solve, решить задачу, записанную в слабой формулировке.
9. Используя оператор plot(), обеспечить визуализацию решения.
10.Провести вычислительный эксперимент, изменяя размеры сетки и выбирая различные конечные элементы.
11.Дать интерпретацию полученным результатам.
12.Результаты оформить в виде отчета (текст программы, результаты расчета, анализ результатов).
Примечание: в вариантах заданий предполагается использовать различные
функции и области (см. п.2).
37
010500
Примерный вариант индивидуального задания. Модуль 3
Постановка задачи:
Пусть дано уравнение
,
Граничные условия имеют вид:
,
Начальное условие имеет вид:
.
,
.
1. Записать слабую формулировку задачи.
2. Пусть
,
,
,
,
,
,
.
3. Написать последовательность операторов для задания границ области.
4. Написать последовательность операторов, строящих триангуляцию.
5. Записать последовательность операторов, задающих пространство конечных элементов.
6. Определить на пространстве конечных элементов необходимые для
решения функции.
7. Задать требуемые функции , ,…
8. Используя оператор problem, записать слабую формулировку задачи.
9. Используя схему Кранка–Никольсона, записать алгоритм решения задачи на языке FreeFem++.
10.Используя оператор plot(), обеспечить визуализацию решения.
11.Провести вычислительный эксперимент, изменяя размеры сетки и шаг
по времени.
12.Дать интерпретацию полученным результатам.
13.Результаты оформить в виде отчета (текст программы, результаты
расчета, анализ результатов).
Примечание: в вариантах заданий предполагается использовать различные
функции и области (см. п.2).
38
010500
Примерный вариант индивидуального задания. Модуль 4
Постановка задачи:
Пусть даны уравнения, описывающие течение жидкости
,
,
Граничные условия имеют вид:
,
.
,
Начальное условие имеет вид:
1. Пусть
— круг радиуса
.
,
с центром в точке
выбрать «локальный вихрь», например,
.
. В качестве
.
Рассмотреть случай нескольких локализованных вихрей различной интенсивности. Параметры задачи выбрать самостоятельно (объяснить
сделанный выбор).
2. Составить алгоритм решения задачи и провести вычислительный эксперимент, контролируя погрешность вычислений.
3. Дать интерпретацию полученным результатам.
4. Результаты оформить в виде отчета (текст программы, результаты
расчета, анализ результатов).
Примечание: в вариантах заданий предполагается использовать различные
функции и области (см. п.1).
39
010500
Примерный вариант индивидуального задания. Модуль 5
Вариант 1.
Постановка задачи:
Пусть даны уравнения, описывающие течение жидкости
,
,
.
Граничные условия имеют вид:
,
Начальное условие имеет вид:
,
1. Пусть
.
,
.
Параметры ,
, , , ,
выбрать самостоятельно (объяснить сделанный вы-
бор).
2. Составить алгоритм решения задачи и провести вычислительный эксперимент, контролируя погрешность вычислений.
3. Дать интерпретацию полученным результатам.
4. Результаты оформить в виде отчета (текст программы, результаты расчета,
анализ результатов).
Вариант 2.
Постановка задачи:
Пусть дана задача на собственные значения
,
.
Граничные условия имеют вид:
1. Пусть
,
. Определить собственные значения и вектора. Вы-
брать в качестве другие области, например, круг, круг с отверстием, полигон.
40
010500
2. Составить алгоритм решения задачи и провести вычислительный эксперимент, контролируя погрешность вычислений.
3. Дать интерпретацию полученным результатам.
4. Результаты оформить в виде отчета (текст программы, результаты расчета,
анализ результатов).
Примечание: в вариантах заданий предполагается использовать различные
функции и области (см. п.1).
41
010500
Примерные варианты экзаменационных билетов
БИЛЕТ 1
1. Сильная и слабая формулировка задачи для стационарного уравнения Пуассона в двумерном случае. Типы краевых условий. Продемонстрировать переход к слабой формулировке на примере уравнения теплопроводности.
2. Сформулировать определение понятия
главных и естественных краевых
условий.
3. Описать общую схему алгоритма решения задачи методом конечных элементов.
4. Написать фрагмент кода на языке FreeFem++, реализующий задание границы области в случае правильного шестиугольника и построение сетки.
5. Перечислить возможности оператора plot().
БИЛЕТ 2
1. Метод проекции для решения задачи о течении жидкости, записанной в переменных скорость–давление. Специфика численного решения задачи Неймана для определения давления.
2. Перечислить алгоритмы, используемые в языке FreeFem++ для построения
разреженных матриц.
3. Барицентрические координаты. Способ конструирования квадратичных базисных функций.
4. Написать фрагмент кода на языке FreeFem++, реализующий визуализацию
векторного поля в заранее заданной части области .
5. Описать структуру оператора convect().
42
010500
Вопросы и задания для самостоятельного контроля студентов и оценки результативности изучения дисциплины
1. Сформулировать определение базисной функции и ее носителя.
2. Привести пример простейшей кусочно-линейно базисной функции в двумерном случае.
3. Дать определение естественных и главных краевых условий.
4. Какие операторы используются в языке FreeFem++ для конструирования
сеток и операций с ними.
5. Перечислить возможности оператора plot().
6. Имеются ли в языке FreeFem++ специальные возможности для аппроксимации материальной производной.
7. Что такое сетка Union Jack.
8. Какие формулы используются для интерполяции интегралов по области и
ее границе.
9. Запишите последовательность операторов, задающих границу треугольной области.
10.Можно ли использовать кривые Безье для задания границ области.
11.Запишите уравнения движения вязкой несжимаемой жидкости.
12.Запишите уравнения переноса примеси электрическим полем.
13.Запишите уравнения движения вихря в переменных вихрь–функция тока.
14.Приведите простейшие пример уравнения диффузии–переноса.
15.Запишите уравнения тепловой гравитационной конвекции.
16.Запишите обобщенную задачу на собственные значения.
17.Можно ли применять метод характеристик в многомерном случае.
18.Пусть задана крестообразная область, через которую протекает жидкость
вязка несжимаемая жидкость. Сформулируйте граничные условия.
43
010500
19.Пусть дано уравнение неразрывности. Введите функцию тока.
20.Какое
уравнение
следует
из
интегрального
закона
сохранения
для произвольного достаточно гладкого контура.
21.Запишите слабую формулировку задачи для бигармонического оператора.
22.Запишите формулу Грина в полярных координатах.
23.Можно ли средствами языка FreeFem++ задать нормаль к границе.
24.Назовите принципиальное различие явных и неявных схем аппроксимации нестационарной задачи.
25.Приведите алгоритм решения нестационарной задачи, использующей аппроксимации производных по времени с учетом трех временных слоев.
26.Какие встроенные операции имеются в пакете FreeFem++ для работы с
комплексными числами.
27.Какие встроенные операции имеются в пакете FreeFem++ для работы с
матрицами.
28.Какие встроенные операции имеются в пакете FreeFem++ для работы с
разреженными матрицами.
29.Запишите определение функции двух переменных, не используя служебное слово func и не задавая пространство конечных элементов.
30.Какие нормы можно использовать при оценке погрешностей.
31.Укажите несколько способов контроля погрешности вычислений с использованием средств пакета FreeFem для нестационарной задачи.
32.Для чего в пакете FreeFem++ используется функций convect().
33.Можно ли в пакете FreeFem++ задавать области с движущейся границей.
34.Для чего предназначены операторы trinagulate, splitmesh и trunc.
35.Возможно ли в пакете FreeFem++ решение уравнений переноса без использования функции convect().
44
010500
36.Укажите способ задания периодических краевых условий в пакете
FreeFem++.
37.Можно ли в пакете FreeFem++ решать задачи, записанные в полярных
координатах.
38.Можно ли решать трехмерные задачи с вращательной симметрией при
помощи пакета FreeFem++.
39.Запишите пример аппроксимации нелинейной краевой задачи для уравнений вида
.
40.Запишите пример аппроксимации нелинейной краевой задачи для уравнений вида
.
41.Запишите макрос для выражения
.
42.Для чего предназначена функция EigenValue. Перечислите набор обязательных параметров.
43.Всегда ли возможна триангуляция области при решении задачи с деформируемой границей.
45
010500
Глоссарий
Автомодельная переменная — для какой-либо задачи комбинация исходных переменных, позволяющая понижать порядок исходных уравнений,
например, сводить уравнения в частных производных к обыкновенным дифференциальным уравнениям.
Анизотропная сетка — размер треугольников триангуляции по различным направлениям различен.
Анизотропи́я — неодинаковость физических (физико-химических)
свойств среды (например, электропроводности, теплопроводности и др.) по
различным направлениям внутри этой среды.
Вихрь скорости —
, где
— скорость.
Вязкость — свойство текучих тел оказывать сопротивление перемещению одной их части относительной другой (см. также Кинематическая вязкость).
Барицентрические координаты — относительные площади треугольников, на которые можно разбить исходный треугольник, выбирая некоторую
внутреннюю точку в качестве вершины. Барицентрические координаты являются линейными функциями исходных прямоугольных координат.
Билинейная форма (функционал) — функция
, где
—
произвольное линейное пространство, линейная по каждому из своих аргументов.
Волна разрежения — автомодельное решение гиперболических уравнений. Решение характеризуется наличием двух слабых разрывов — передний и
задний фронт волны разрежения.
46
010500
Главные краевые условия — краевые условия, которым можно удовлетворить за счет выбора базисных функций (см. также естественные краевые
условия).
Диффузия — процесс переноса вещества из области с высокой концентрацией в область с низкой концентрацией.
Дорожка Кармана — дорожка (цепочка) вихрей, возникающая за обтекаемым препятствием.
Естественная конвекция — конвекция (перемешивание жидкости), возникающая в жидкости при её неравномерном нагревании в поле тяготения.
Естественные краевые условия — краевые условия, удовлетворение
которых возможно за счет преобразования задачи, а не за счет выбора базисных
функций (см. также главные краевые условия).
Кинематическая вязкость (кинематический коэффициент вязкости) —
отношение обычного коэффициента вязкости (динамического) к плотности вещества.
Конвекция — перенос теплоты, массы или электрических зарядов движущейся средой.
Концентрация примеси — величина, характеризующая количественный
состав примеси, например, количество молей в единице объема.
Краевое условие Дирихле — задание функции на границе.
Краевое условие Неймана — задание нормальной производной функции
на границе.
Краевое условие Ньютона (Фурье, Робина) — задание линейной комбинации функции и нормальной производной на границе.
47
010500
Кусочно-линейная интерполяция — интерполяция, в которой точки интерполяции соединяются прямолинейными отрезками, и интерполируемая
функция приближается полученной ломаной.
Линия уровня — линии, вдоль которых функция принимает постоянные
значения.
Метод конечных элементов (МКЭ) — численный проекционноразностный метод решения задач прикладной механики.
Моль — количество структурных единиц вещества, 1 моль = 6.03e23
структурных единиц (например, молекул).
Носитель функции — замкнутая область, вне которой функция тождественно обращается в нуль.
Пассивная примесь — примесь, не влияющая на свойства окружающей
среды.
Плотность потока примеси — количество (масса) вещества, переносимого в единицу времени через единицу площади поперечного сечения при
условии, что перенос осуществляется перпендикулярно этому сечению.
Плотность вещества — это физическая величина, характеризующая зависимость массы тела от вещества, равная отношению массы тела к единице
его объёма.
Плотность электрического тока — количество электрического заряда,
переносимого в единицу времени через единицу площади поперечного сечения
проводника при условии, что ток направлен перпендикулярно этому сечению и
равномерно по нему распределен.
Ударная волна — решение уравнений, имеющее разрыв I рода (см.
сильный разрыв).
48
010500
Разреженная матрица — матрица, большинство элементов которой равно нулю. Например, треугольная, ленточная.
Сильный разрыв — для некоторой функции разрыв I рода.
Слабый разрыв — для некоторой функции разрыв I рода ее производной
(функция может быть и непрерывной).
Течение Куэтта–Тейлора — вращательно-симметричное течение между
двумя соосными цилиндрами.
Триангуляция — множество, состоящее из конечного числа непересекающихся треугольников, покрывающих некоторую область.
Узлы триангуляции — вершины треугольников триангуляции.
Финитная функции — функция, носитель которой является компактной
областью.
Характеристика — линия, вдоль которой решение уравнения не изменяется.
Числа подобия — число Рэлея (Ra), число Грасгофа (Gr), число Прандтля (Pr).
Электрический потенциал — энергетическая характеристика электрического поля; равна отношению потенциальной энергии заряда в поле к величине этого заряда.
Электрическая проводимость вещества — способность вещества проводить под действием постоянного электрического поля постоянный электрический ток.
Электромиграционное размытие — «размазывание» концентрации
примеси в отсутствии процессов диффузии, как правило, обусловлено зависимостью скорости переноса примеси от ее концентрации.
49
010500
Электрофорез — процесс переноса вещества электрическим полем.
Фронт волны разрежения — слабый разрыв автомодельного решения.
Функция тока — функция, позволяющая в двумерном случае автоматически удовлетворить уравнению неразрывности
функция тока
определяется соотношениями
, если
,
, то
.
FreeFem++ — язык, используемый для численного решения задач математической физики.
Конечный элемент P0 — кусочно-постоянный конечный элемент.
Конечный элемент P1 — кусочно-линейный непрерывный конечный
элемент.
Конечный элемент P2 — кусочно-квадратичный непрерывный конечный элемент.
Конечный элемент P1nc — кусочно-линейный конечный элемент, непрерывный лишь в середине стороны треугольника.
Конечный элемент P1b — строится на основе элементов P1 с добавлением bubble function.
Конечный элемент P2b — строится на основе элементов P2 с добавлением bubble function.
50
010500
Пример лекции по курсу
на основе учебно-научного издания Жуков М. Ю., Ширяева Е. В. Использование пакета конечных элементов FreeFem++ для задач гидродинамики,
электрофореза и биологии. Ростов-на-Дону: Изд-во ЮФУ, 2008.
51
010500
52
010500
53
010500
54
010500
55
010500
56
010500
57
010500
58
010500
59
Download