Сюда будут выкладываться материалы, связанные с дисциплиной "Численные методы"
В этом задании нужно проверить работу нескольких численных методов при моделировании одномерного уравнения теплопроводности. Результатом является интерактивная программа, позволяющая менять константы уравнения, численный метод его решения, представленный разностной схемой, константы самого численного метода.
Модельное уравнение: dT/dt + u * dT/dx - chi * d^2T/dx^2 = 0
Разностные схемы:
- Явная по потоку (ecf)
- Явная против потока (ebf)
- Явная центральная (ec)
- Неявная по потоку (icf)
- Неявная против потока (ibf)
- Неявная центральная (ic)
- (Диффорте-Франкла?) ("чехарда") (lf)
Начальные условия (T0(x_i) - начальная температура в i-ой пространственной точке):
- Ступенька (T0(x_1) = T0(x_2) = .. = T0(x_i) = 1 != T0(x_i+1) = 0 = T0(x_i+2) = ... = T0(x_n))
- Единичный импульс (T0(x_1) = T0(x_2) = ... = T0(x_i-1) = 0 != T0(x_i) = 1 != T0(x_i+1) = 0 = ... = T0(x_n))
Граничные условия:
- Температура на левой и правой границе является константой по времени.
Описание программы:
Пользователь взаимодействует с программой через консольный интерфейс. Допустимы команды:
- set <key> <value> - устанавливает значение переменной
- get <key> - получает значение переменной
- getall - выводит все доступные переменные
- call <callback> - запускает программу (синхронно)
Используемые переменные:
- init - начальное распределение, может быть "edge" (ступенька), "splash" (импульс), "prev" (конечный результат предыдущего запуска)
- dx - пространственный шаг вычисления
- dt - временной шаг вычисления
- u, chi - параметры уравнения
- s, r - число Куранта, сеточное число Рейнольдса, позволяют задать соответствющие им u, chi
- n - число пространственных шагов
- iterations - число итераций по времени
- method - используемый метод, соответствующие константы приведены выше
- interval - задержка показа следующего кадра при визуализации
Программы, запускаемые call:
- fromrs - подставляет u, chi на основе r, s
- calculate - запускает вычисления и визуализирует их