- PVSM.RU - https://www.pvsm.ru -

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

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

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

Было/стало

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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


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

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

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

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

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


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

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

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

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

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


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

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

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

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

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


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

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

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

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

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


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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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


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

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

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

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

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


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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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


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


Автор: itmo

Источник [27]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/blog-kompanii-universitet-itmo/361166

Ссылки в тексте:

[1] Нового физтеха ИТМО: https://physics.itmo.ru/ru

[2] Михаил Петров: https://physics.itmo.ru/ru/personality/mikhail_petrov

[3] Иван Тофтул: https://physics.itmo.ru/ru/personality/ivan_toftul

[4] Ксения Барышникова: https://physics.itmo.ru/ru/personality/kseniya_baryshnikova

[5] Игорь Рожанский: https://physics.itmo.ru/ru/personality/igor_rozhanskiy

[6] мало: https://habr.com/ru/post/536430/

[7] фундаментального предела скорости звука: https://advances.sciencemag.org/content/6/41/eabc8662

[8] SciPy: https://www.scipy.org/

[9] COMSOL: http://www.multiphysics.org/

[10] COMSOL Multiphysics: https://en.wikipedia.org/wiki/COMSOL_Multiphysics

[11] SIR: https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology

[12] Сетка сопротивлений Миллера-Абрамса: https://journals.aps.org/pr/abstract/10.1103/PhysRev.120.745

[13] раз: https://pubs.rsc.org/en/content/articlehtml/2012/nr/c2nr33099g

[14] два: https://pubs.rsc.org/lv/content/articlehtml/2019/ta/c9ta05118j

[15] три: https://iopscience.iop.org/article/10.1149/2.062301jes/meta

[16] фотонный компьютер: https://www.nature.com/articles/d41586-020-03434-7

[17] повсеместно: https://en.wikipedia.org/wiki/Fiber-optic_communication

[18] Julia: https://julialang.org/

[19] COMSOL Multiphysics: https://www.comsol.com/

[20] FEM: https://ru.wikipedia.org/wiki/%2525D0%25259C%2525D0%2525B5%2525D1%252582%2525D0%2525BE%2525D0%2525B4_%2525D0%2525BA%2525D0%2525BE%2525D0%2525BD%2525D0%2525B5%2525D1%252587%2525D0%2525BD%2525D1%25258B%2525D1%252585_%2525D1%25258D%2525D0%2525BB%2525D0%2525B5%2525D0%2525BC%2525D0%2525B5%2525D0%2525BD%2525D1%252582%2525D0%2525BE%2525D0%2525B2

[21] COMSOL Days: https://physics.itmo.ru/en/media/26

[22] The founder’s guide to AngelList: https://habr.com/ru/company/spbifmo/blog/538946/

[23] Первый сезон подкаста «ITMO Research_»: https://habr.com/ru/company/spbifmo/blog/536258/

[24] Startups going global: a guide to Product Hunt: https://habr.com/ru/company/spbifmo/blog/535828/

[25] Говорим о Codeforces с основателем проекта: https://habr.com/ru/company/spbifmo/blog/538918/

[26] PopMech and its ancestors: a foray into the history of tech: https://habr.com/ru/company/spbifmo/blog/522458/

[27] Источник: https://habr.com/ru/post/540116/?utm_source=habrahabr&utm_medium=rss&utm_campaign=540116