Личный опыт: как мы готовили курс по компьютерному моделированию в бакалавриате Нового физтеха

Это — специальная рубрика Нового физтеха ИТМО. Здесь учёные, преподаватели и студенты физико-технического факультета размышляют о науке и трудовых буднях. Михаил Петров, Иван Тофтул, Ксения Барышникова и Игорь Рожанский рассказывают, как команда физтеха подошла к запуску курса по компьютерному моделированию для студентов бакалавриата.

6948e055a7c1ab32107cc7086e450c29.jpg

Было/стало

Физику исторически делили на экспериментальную и теоретическую, но с развитием вычислительных мощностей и упрощением вычислений в целом, появилось направление на стыке — численное моделирование. По сути это «компьютерный» эксперимент, который позволяет разрабатывать сложные физические системы, проверять их жизнеспособность и эффективность еще до трудоемких испытаний на сложном дорогостоящем оборудовании.

К началу третьего курса наши студенты неплохо знают линейную алгебру, дифференциальные исчисления и базовые приёмы численных методов. Далее они подходят ближе к научной работе. Однако реальные задачи в фундаментальной и прикладной науке бывают весьма громоздкие и трудоемкие. Научить видеть те, к которым можно подступиться аналитически, а тем более решать их, чрезвычайно сложно, да и таких задач мало (автор упоминает исследование фундаментального предела скорости звука, где ответ удалось уложить в абстракт (!) статьи).

В своем курсе мы сфокусировались на умении решать физические задачи численно. Мы делали упор на использование готовых библиотек и численных пакетов (например, SciPy и COMSOL), которые позволяют быстро получить ответ и приступить к анализу. При таком подходе компьютер берет на себя вычисления, а студент — фокусируется на понимании закономерностей.

Введение численных расчетов позволяет фильтровать ошибки аналитической теорииВведение численных расчетов позволяет фильтровать ошибки аналитической теории

На первом этапе подготовки курса мы сформулировали следующие задачи:

  1. Научить студентов готовить математическую модель на основе физической (явно записать уравнения, которые будут решаться), а потом и реализовывать ее на компьютере.

  2. Познакомить их с пакетами физического моделирования на примере COMSOL Multiphysics.

  3. Показать, как численные ошибки приводят к ошибкам в физических величинах или даже к неверным физическим результатам.

Лабораторные работы

Они должны быть максимально иллюстративны как с точки зрения численных методов, так и с точки зрения актуальности физической модели. Мы реализовали десять лабораторных работ.

Эпидемия зомби

  • Инструмент — Python, MATLAB.

  • Математика — составление и решение систем ДУ, анализ результатов.

  • Физика — стандартные эпид. модель распространения заболевания вроде SIR и др. (когда мы готовили этот курс, даже не могли предположить, что тема будет столь актуальной).

  • Значимость — понимание типичных тенденций эпидемий помогает эффективно и ответственно действовать в ситуациях схожими с глобальной пандемией. Аналогичное описание динамики системы ещё встречается, например, в экономике.

Оптический пинцет и темпловой шум

  • Инструмент — Python, MATLAB.

  • Математика — решение стохастических динамических  уравнений.

  • Физика — моделирование движения микро- и наночастицы в оптическом пинцете с учетом тепловых шумов.

  • Значимость — добавление стохастики в систему является распространенным приемом для приближении модельной системы к реалистичной.

Квантовая яма

  • Инструмент — Python, MATLAB.

  • Математика — решение задач на собственные значения.

  • Физика — решение уравнения Шредингера, определение состояний электрона в произвольной квантовой яме.

  • Значимость — фундаментальная задача квантовой механики с точки зрения численного моделирования.

Сетка сопротивлений Миллера-Абрамса

  • Инструмент — Python, MATLAB.

  • Математика — решение систем линейных уравнений.

  • Физика — элементы теории перколяции, определение проводимости случайной сетки.

  • Значимость — методы перколяции сейчас используются в биологии, экологии, городском движении, а также для создания высокоемкостных аккумуляторов [раз, два, три].

Определение уровня Ферми

  • Инструмент — Python, MATLAB.

  • Математика — решение алгебраических уравнений,  метод Ньютона.

  • Физика — определение уровня Ферми в полупроводнике с произвольным уровнем легирования.

  • Значимость — модель расчета одного из ключевых параметров из мира полупроводников. Эта задача актуальна, пока фотонный компьютер не стал настольным.

Планарный волновод

  • Инструмент — Python, MATLAB.

  • Математика — решение алгебраических уравнений и задачи на собственные значения.

  • Физика — определение дисперсионных соотношений мод планарного волновода.

  • Значимость — изучение волноводных мод на простом примере. Волноводы сейчас встречаются повсеместно.

0d66334a8816dc9cb3d73f2687083892.png

Точечный заряд над проводящей плоскостью

  • Инструмент — COMSOL Multiphysics.

  • Математика — первое знакомство с COMSOL.

  • Физика — простейшая электростатика.

  • Значимость — знакомство с одним из стандартов численных проверок теор. моделей.

Нормальное падение на границу раздела двух сред

  • Инструмент — COMSOL Multiphysics.

  • Математика — моделирование граничных условий.

  • Физика — прохождение света через границу раздела двух сред.

  • Значимость — знакомство с одним из стандартов численных проверок теор. моделей.

Распределение тепла у провода с током

  • Инструмент — COMSOL Multiphysics.

  • Математика — одновременное использование нескольких пакетов «физики».

  • Физика — джоулев нагрев и уравнение теплопроводности.

  • Значимость — бытовые явления с помощью численного моделирования.

Финальный проект — где лучше поставить WiFi роутер / колонки

  • Инструмент — COMSOL Multiphysics.

  • Значимость — дать задачу с открытым ответом, проверить полученные знания и навыки.

Каждому своё решение

У нас не было жестких ограничений на выбор языка программирования, IDE и методов решения. Остановились на трёх вариантах:

  • Python и MATLAB. Языки высокого уровня со множеством готовых библиотек — очевидный выбор. Разумеется, есть альтернативы, которые выигрывают при определенных сценариях. Например, неплохо зарекомендовала себя Julia, но популярность вариантов выше и возможность «нагуглить» почти любую проблему, перевесила чашу весов.

  • COMSOL Multiphysics — один из стандартов численных расчётов в научном сообществе и настоящий «комбайн» по решению комплексных задач методом конечных элементов (FEM). Позволяет совмещать несколько расчётных модулей в одной симуляции — например, электромагнетизм и теплопроводность. Проверка аналитических формул может сравниваться с численной моделью в COMSOL, что является одной из первых стадий перед сравнением с реальным экспериментом. В Новом физтехе ИТМО это один из наиболее часто используемых инструментов. Для обмена опытом проводятся даже COMSOL Days.

Презентация — это важно

Для карьеры в науке или индустрии необходимо умение внятно представлять результаты своей работы. Поэтому мы сфокусировались на использовании системы вёрстки, которую давно приняли в научном сообществе​. Для оформления предложили следующие рекомендации:

  1. Документ должен быть оформлен в ​LaTeX.

  2. Содержать аннотацию, теоретическое введение, результаты и выводы, как в научной статье.

  3. Картинки должны отображать суть работы — быть понятными для коллег из смежных областей (для этого необходимы подписи осей, параметров и так далее).

Пример одной из иллюстраций для ЛР №1 — многоступенчатая схема противодействия зомби-апокалипсису (работу выполнил Денис Сахно). Здесь можно увидеть историю эпидемии. Студент не стал описывать области в подписях к рисунку, а явно указал их на самом графике.

Дисперсии электрона в периодическом потенциале (ЛР №3, выполнил Денис Седов). График публикационного качества. Есть понятное описание, ссылки на формулы и основные методы.

851ca76d1cef38fb185e28c485df5153.png

Исследование собственных мод плоского волновода (ЛР №6, выполнил Глеб Федорович):

1767f679127fe8125f12269988901621.png

Расчет поля роутера Wi-Fi. Один из финальных проектов (выполнили Руслан Гладков, Никита Устименко, Антон Шубник и Денис Седов). В данной работе студенты представили карты распределения. В процессе группа столкнулась с проблемой — расчет для реальных размеров получался слишком тяжелым, поэтому задачу решали для комнаты сантиметровых размеров.

67c0e7ab47d8e446fb0cca03c37b0933.png

Заключение

Мы коротко рассказали о курсе по компьютерному моделированию. К его окончанию студенты учатся больше смотреть на физику решаемых задач, а не закапываться в численные методы, если в этом нет необходимости. На выходе они получают ряд работ публикационного качества. В данном виде программу слушали бакалавры третьего курса в осеннем семестре 2019 года.

Другие материалы у нас на Хабре:

© Habrahabr.ru