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