Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Это — специальная рубрика Нового физтеха ИТМО. Здесь учёные, преподаватели и студенты физико-технического факультета размышляют о науке и трудовых буднях. Михаил Петров, Иван Тофтул, Ксения Барышникова и Игорь Рожанский рассказывают, как команда физтеха подошла к запуску курса по компьютерному моделированию для студентов бакалавриата.
Было/стало
Физику исторически делили на экспериментальную и теоретическую, но с развитием вычислительных мощностей и упрощением вычислений в целом, появилось направление на стыке — численное моделирование. По сути это «компьютерный» эксперимент, который позволяет разрабатывать сложные физические системы, проверять их жизнеспособность и эффективность еще до трудоемких испытаний на сложном дорогостоящем оборудовании.
К началу третьего курса наши студенты неплохо знают линейную алгебру, дифференциальные исчисления и базовые приёмы численных методов. Далее они подходят ближе к научной работе. Однако реальные задачи в фундаментальной и прикладной науке бывают весьма громоздкие и трудоемкие. Научить видеть те, к которым можно подступиться аналитически, а тем более решать их, чрезвычайно сложно, да и таких задач мало (автор упоминает исследование фундаментального предела скорости звука, где ответ удалось уложить в абстракт(!) статьи).
В своем курсе мы сфокусировались на умении решать физические задачи численно. Мы делали упор на использование готовых библиотек и численных пакетов (например, SciPy и COMSOL), которые позволяют быстро получить ответ и приступить к анализу. При таком подходе компьютер берет на себя вычисления, а студент — фокусируется на понимании закономерностей.
На первом этапе подготовки курса мы сформулировали следующие задачи:
Научить студентов готовить математическую модель на основе физической (явно записать уравнения, которые будут решаться), а потом и реализовывать ее на компьютере.
Познакомить их с пакетами физического моделирования на примере COMSOL Multiphysics.
Показать, как численные ошибки приводят к ошибкам в физических величинах или даже к неверным физическим результатам.
Лабораторные работы
Они должны быть максимально иллюстративны как с точки зрения численных методов, так и с точки зрения актуальности физической модели. Мы реализовали десять лабораторных работ.
Эпидемия зомби
Инструмент — Python, MATLAB.
Математика — составление и решение систем ДУ, анализ результатов.
Физика — стандартные эпид. модель распространения заболевания вроде SIR и др. (когда мы готовили этот курс, даже не могли предположить, что тема будет столь актуальной).
Значимость — понимание типичных тенденций эпидемий помогает эффективно и ответственно действовать в ситуациях схожими с глобальной пандемией. Аналогичное описание динамики системы ещё встречается, например, в экономике.
Оптический пинцет и темпловой шум
Инструмент — Python, MATLAB.
Математика — решение стохастических динамических уравнений.
Физика — моделирование движения микро- и наночастицы в оптическом пинцете с учетом тепловых шумов.
Значимость — добавление стохастики в систему является распространенным приемом для приближении модельной системы к реалистичной.
Квантовая яма
Инструмент — Python, MATLAB.
Математика — решение задач на собственные значения.
Физика — решение уравнения Шредингера, определение состояний электрона в произвольной квантовой яме.
Значимость — фундаментальная задача квантовой механики с точки зрения численного моделирования.
Сетка сопротивлений Миллера-Абрамса
Инструмент — Python, MATLAB.
Математика — решение систем линейных уравнений.
Физика — элементы теории перколяции, определение проводимости случайной сетки.
Значимость — методы перколяции сейчас используются в биологии, экологии, городском движении, а также для создания высокоемкостных аккумуляторов [раз, два, три].
Определение уровня Ферми
Инструмент — Python, MATLAB.
Математика — решение алгебраических уравнений, метод Ньютона.
Физика — определение уровня Ферми в полупроводнике с произвольным уровнем легирования.
Значимость — модель расчета одного из ключевых параметров из мира полупроводников. Эта задача актуальна, пока фотонный компьютер не стал настольным.
Планарный волновод
Инструмент — Python, MATLAB.
Математика — решение алгебраических уравнений и задачи на собственные значения.
Физика — определение дисперсионных соотношений мод планарного волновода.
Значимость — изучение волноводных мод на простом примере. Волноводы сейчас встречаются повсеместно.
Точечный заряд над проводящей плоскостью
Инструмент — COMSOL Multiphysics.
Математика — первое знакомство с COMSOL.
Физика — простейшая электростатика.
Значимость — знакомство с одним из стандартов численных проверок теор. моделей.
Нормальное падение на границу раздела двух сред
Инструмент — COMSOL Multiphysics.
Математика — моделирование граничных условий.
Физика — прохождение света через границу раздела двух сред.
Значимость — знакомство с одним из стандартов численных проверок теор. моделей.
Распределение тепла у провода с током
Инструмент — COMSOL Multiphysics.
Математика — одновременное использование нескольких пакетов «физики».
Физика — джоулев нагрев и уравнение теплопроводности.
Значимость — бытовые явления с помощью численного моделирования.
Финальный проект — где лучше поставить WiFi роутер / колонки
Инструмент — COMSOL Multiphysics.
Значимость — дать задачу с открытым ответом, проверить полученные знания и навыки.
Каждому своё решение
У нас не было жестких ограничений на выбор языка программирования, IDE и методов решения. Остановились на трёх вариантах:
Python и MATLAB. Языки высокого уровня со множеством готовых библиотек — очевидный выбор. Разумеется, есть альтернативы, которые выигрывают при определенных сценариях. Например, неплохо зарекомендовала себя Julia, но популярность вариантов выше и возможность «нагуглить» почти любую проблему, перевесила чашу весов.
COMSOL Multiphysics — один из стандартов численных расчётов в научном сообществе и настоящий «комбайн» по решению комплексных задач методом конечных элементов (FEM). Позволяет совмещать несколько расчётных модулей в одной симуляции — например, электромагнетизм и теплопроводность. Проверка аналитических формул может сравниваться с численной моделью в COMSOL, что является одной из первых стадий перед сравнением с реальным экспериментом. В Новом физтехе ИТМО это один из наиболее часто используемых инструментов. Для обмена опытом проводятся даже COMSOL Days.
Презентация — это важно
Для карьеры в науке или индустрии необходимо умение внятно представлять результаты своей работы. Поэтому мы сфокусировались на использовании системы вёрстки, которую давно приняли в научном сообществе. Для оформления предложили следующие рекомендации:
Документ должен быть оформлен в LaTeX.
Содержать аннотацию, теоретическое введение, результаты и выводы, как в научной статье.
Картинки должны отображать суть работы — быть понятными для коллег из смежных областей (для этого необходимы подписи осей, параметров и так далее).
Пример одной из иллюстраций для ЛР №1 — многоступенчатая схема противодействия зомби-апокалипсису (работу выполнил Денис Сахно). Здесь можно увидеть историю эпидемии. Студент не стал описывать области в подписях к рисунку, а явно указал их на самом графике.
Дисперсии электрона в периодическом потенциале (ЛР №3, выполнил Денис Седов). График публикационного качества. Есть понятное описание, ссылки на формулы и основные методы.
Исследование собственных мод плоского волновода (ЛР №6, выполнил Глеб Федорович):
Расчет поля роутера Wi-Fi. Один из финальных проектов (выполнили Руслан Гладков, Никита Устименко, Антон Шубник и Денис Седов). В данной работе студенты представили карты распределения. В процессе группа столкнулась с проблемой — расчет для реальных размеров получался слишком тяжелым, поэтому задачу решали для комнаты сантиметровых размеров.
Заключение
Мы коротко рассказали о курсе по компьютерному моделированию. К его окончанию студенты учатся больше смотреть на физику решаемых задач, а не закапываться в численные методы, если в этом нет необходимости. На выходе они получают ряд работ публикационного качества. В данном виде программу слушали бакалавры третьего курса в осеннем семестре 2019 года.
Другие материалы у нас на Хабре:
The founder’s guide to AngelList
Первый сезон подкаста «ITMO Research_»
Startups going global: a guide to Product Hunt
Говорим о Codeforces с основателем проекта
PopMech and its ancestors: a foray into the history of tech