Обучение

КУРС
Вычислительная физика
2161
Физика радиочастотных технологий
2160 Ф
Прикладная и теоретическая физика
2162
Фотоника и спинтроника
2158
Квантовые материалы
Беспроводные технологии
Гибридные материалы
Численное моделирование

333Развитие современной физики было бы немыслимо без численных расчётов. Вычисления на  высокопроизводительных компьютерах используются для расчета свойств молекул и атомных кластеров в квантовой химии, определения зонной структуры материалов, электронных и оптических свойств
материалов в теории конденсированного состояния, моделирования образования глобальной структуры Вселенной и высокоэнергетических процессов в недрах звёзд в астрофизике.

Вычислительная физика представляет собой быстро разививающуюся дисциплину. Ещё не так давно, во время, когда было написано большинство существующих учебников по численным методам, пользователю приходилось самому писать программный код для рутинных операций таких как поиск собственных значений матриц, интерполяция функций, численное интегрирование, поиск минимума и корней функции, решение линейных уравнений, в то время как сегодня это делается вызовом несложной команды Python или высоко оптимизированных численных библиотек линейной алгебры BLAS и LAPACK, конкурировать с которыми в производительности обычному пользователю сегодня нет ни малейшего смысла. В связи с этим, современная вычислительная физика постепенно становится всё более высокоуровневой, где многие операции, которые в прошлом требовало алгоритмов, сведены к использованию нескольких высокоуровневых команд. С другой стороны, огромная область вычислительной физики -- решение дифференциальных уравнений в частных производных не поддаётся инкапсуляции в рамки универсальных команд или программ. В отдельных случаях оправдано использование сугубо специализированных солверов для решения некоторых видов дифференциальных уравнений, однако, в подавляющем большинстве случаев, каждое дифференциальное уравнение требует индивидуального подхода и разработки кода на "низкоуровневых" языках C и FORTRAN (прим. -- низкоуровневых относительно высокоуровневого Python).

Таким образом, задача современной курса по вычислительной физике состоит в том, чтобы предоставить студенту из огромного накопленного по сей день инструментария вычислительных методов именно те, которые на сегодняшний день смогут пригодятся ему в ходе научных исследований; обозначить ситуации, где крайне желательно написание собственного программного кода на языках Python, C/С++ или FORTRAN, и наоборот, обозначить те, в которых конкурировать с библиотеками BLAS и LAPACK не имеет ни малейшего смысла.
После прохождения курса студент приобретёт навыки работы в операционной системе Linux и владения инструментами Python в применении к научным расчётам, научится пользоваться численными библиотеками линейной алгебры BLAS и LAPACK, собирать собственные модули Python и оптимизированные библиотеки на языке C, разовьёт умение разрабатывать численные схемы, оценивать применимость и точность численного метода, предлагать решение физических задач при помощи инструментария Python, ускорять наиболее трудоёмкие части программного кода с применением параллельного программирования и приобретёт навыки работы на суперкомпьютерном кластере.

Язык обучения
Английский
Образовательная программа:  
Модуль:  
General module
Содержание программы

1. Введение в современную вычислительную физику.

  • Операционная система Linux. Язык программирования Python. Интерактивная среда Jupyter Notebook.
  • Постпроцессинг и визуализация научных результатов. Картинки и анимация в Python. Иcпользуем Python вместо Gnuplot и Origin.
  • Управление версиями программ. Введение в систему контроля версий Git и вэб-хостинг проектов GitHub.
  • Язык C в XXI веке. Что лучше: С или Python? Компилляция динамически встраиваемой библиотеки на C. Отладка, профайлинг и оптимизация программного кода. 

2. Математика Питона. Что скрыто за названиями инструментов Python?

  • Возможности Python: решение алгебраических уравнений и решение систем линейных уравнений в Python. Задачи оптимизации. Интерполяция. Численное интегрирование и дифференцирование. Квадратурные формулы. Преобразование Фурье и другие. Cпец. функции.
  • Математика Питона. 

3. Матрица -- основа численных расчётов

  • Матричные вычисления в Python. Плотные и разреженные матрицы. Схемы хранения матриц. Библиотеки линейной алгебры BLAS и LAPACK. Лекция + Практика

4. Численное решение обыкновенных дифференциальных уравнений

  • Решение обыкновенных дифференциальных уравнений методом конечных разностей. Численные схемы. Порядок и устойчивость численной схемы. Построение явных и неявных численных схем. 

5. Численное решение дифференциальных уравнений в частных производных

  • Типы дифференциальных уравнений в частных производных. Решение уравнений теплопроводности.
  • Решение волновых уравнений. Метод расщепления. Решение эллиптических уравнений методом конечных элементов (FEM). 

6. Вычислительная квантовая химия

  • Атом водорода и уравнение Шредингера. Теория функционала плотности и ab initio методы квантовой химии.
  • GPAW: теория функционала плотности на Python. 

7. Вычислительная физика конденсированных сред

  • Теория функционала плотности в физике конденсированных сред.
  • Экситон-поляритоны в двумерных квантовых ямах.
  • Двумерный электронный газ.
  • Скирмионы в магнитных средах.
  • Солитоны синус-Гордона в сверхпроводящих контактах.
  • Краевые моды в топологических изоляторах. 

8. Вычислительная астрофизика

  • Симуляция спиральных рукавов галактики.
  • Задача N тел в астрономии. Испарение шарового звездного скопления.
  • Вычислительная теория относительности. Распространение гравитационных волн.

9. Метод Монте-Карло

  • Интегрирование методом Монте-Карло. Моделирование случайных процессов. Алоритм Метрополиса. Квантовый метод Монте-Карло. 

10. Магические трюки в численных методах

  • Устойчивость и неустойчивость. Аппроксимация Паде.
  • Алгоритм Одинцова-Семенова-Зорина для решения интегродифференцивальных уравнений. 

11. Высокопроизводительные вычисления

  • Ускорение параллельных вычислений с использованием OpenMP. Ускорение вычислений с использованием графических карт NVIDIA GPU.
  • Основы работы на суперкомпьютерном кластере. Введение в интерфейс обменна данных MPI.
Список литературы

1. С. Граннеман, "Linux, карманный справочник", М.: Издательский дом "Вильямс", 2009.

2. Б. Клеменс, "Язык С в XXI веке", М.: ДМК Пресс, 2018.

3. R. Johanson, "Numerical Python: A Practical Techniques Approach for Industry", eBook.

4. В. А. Ильина и П. К. Силаев, "Численные методы для физиков-теоретиков", Москва-Ижевск: Институт компьютерных исследований, 2004.

5. В. И. Киреев и А. В. Пантелеев, "Численные методы в примерах и задачах" 3-е изд., М.: Высш. шк., 2008.

6. D. R. Lynch, "Numerical Partial Differential Equations for Environmental Scientists and Engineers: A First Practical Course", Springer Science+Business Media Inc., 2005.

7. Я. В. Жумагулов и А. В. Красавин, "Компьютерный практикум в среде matlab: учебное пособие для вузов" 2-е изд., М.: Издательство Юрайт, 2018.

8. В.А. Кашурников и А.В. Красавин, "Численные методы квантовой статистики", 2-ое изд., Москва, Изд-во Физматлит, 2010

Описание курса
Syllabus775.06 КБ