Первое занятие – 24 сентября
Дальше каждый четверг в 20:30, аудитория 1.18.
Численное моделирование
физических процессов
Годовой курс, на котором вы пишете на C++ программы, воспроизводящие поведение реальных физических систем: полёт тела в воздухе, колебания маятника, движение планеты по орбите, течение жидкости сквозь пористую среду.
Результат задачи – не число в консоли, а работающая модель с графиками и анимацией. Формула в тетради описывает явление, а модель его показывает: видно, что происходит при другой начальной скорости, при большем трении, при слишком крупном шаге по времени. Понимание физики после этого другое.
Планета вокруг звезды и спутник вокруг планеты – программа на C++ в сотню строк, запущенная прямо на этой странице. Крутите ползунки: орбита пересчитывается на каждом кадре, готовой траектории в коде нет. Открыть задачу →
Первый – четыре общие задачи механики. Второй – собственный проект, тему выбираете сами.
C++ считает, а графическая библиотека курса на GLFW, ImGui и ImPlot показывает: одна программа и решает задачу, и рисует результат.
Свою тему доводите до готовой работы с моделью, расчётами и графиками – с ней можете защитить проект и выступить на конференции.
Школьную физику и готовность разбираться. Опыт в C++ не нужен: «Основы C++» дают ровно столько, чтобы написать свой main.cpp.
Семестр 1 – Фундамент
Четыре задачи, одинаковые для всех. У каждой – физика явления,
вывод расчётной схемы, построчный разбор шаблона программы
main.cpp,
живая симуляция и задания на анализ и понимание программы.
Движение под углом к горизонту
Тело брошено под углом. Подобрать скорость и угол так, чтобы попасть в мишень.
- 1 Физика: движение тела, брошенного под углом
- 2 Точная формула и шаг по времени
- 3 Разбор main.cpp
- 4 Что здесь нового в C++
- 5 Задания
Сложение колебаний
Сумма синусоид на одном графике. Близкие частоты дают биения – амплитуда суммы медленно нарастает и затухает.
- 1 Физика: гармоническое колебание
- 2 Биения и сложение многих колебаний
- 3 Шаг по времени и ложные частоты
- 4 Разбор main.cpp
- 5 Что здесь нового в C++
- 6 Задания
Математический маятник
Колебания маятника и фазовая диаграмма «угол – скорость». Учёт сопротивления воздуха.
- 1 Физика: уравнение маятника
- 2 Безразмерные переменные
- 3 Численный метод: симплектический Эйлер
- 4 Фазовая диаграмма
- 5 Разбор main.cpp
- 6 Задания
Движение в центральном поле
Планета вокруг звезды. Первая и вторая космические скорости, сохранение энергии и момента импульса, законы Кеплера.
- 1 Физика: закон тяготения
- 2 Безразмерные переменные
- 3 Численный метод: движение по плоскости
- 4 Разбор main.cpp
- 5 Что здесь нового в C++
- 6 Задания
Семестр 2 – Собственный проект
Одна большая задача на полгода – та, у которой в курсе ещё нет разбора. Тему берёте из списка или предлагаете свою; дальше литература, выбор метода, код, проверка на случае с известным ответом и защита. Работа доводится до вида задач первого семестра: программа, графики, разбор.
Примерные темы
Список открытый: своя тема принимается, если у неё есть уравнение и способ проверить ответ.
Работы прошлого года
Вычислительная гидродинамика (LBM)
Течение в пористой среде. Метод с использованием решёточного уравнения Больцмана. Проницаемость, закон Дарси, зависимость Козени–Кармана.
Молекулярная динамика
Частицы с потенциалом Леннард-Джонса. Температура, давление, уравнение состояния и фазовые переходы.