DASKR.jl
Это пакет-оболочка для импорта решателей из DASKR в интерфейс SciML. DASKR.jl не включен автоматически в DifferentialEquations.jl. Для использования этого алгоритма необходимо установить и использовать пакет:
using Pkg
Pkg.add("DASKR")
using DASKR
Эти методы могут использоваться независимо от остальной части DifferentialEquations.jl.
API решателей DAE
#
DASKR.daskr
— Type
function daskr(;linear_solver=:Dense,
jac_upper=0,jac_lower=0,max_order = 5,
non_negativity_enforcement = 0,
non_negativity_enforcement_array = nothing,
max_krylov_iters = nothing,
num_krylov_vectors = nothing,
max_number_krylov_restarts = 5,
krylov_convergence_test_constant = 0.05,
exclude_algebraic_errors = false)
Это оболочка для известного алгоритма DASKR.
DASKR представляет собой решатель систем дифференциально-алгебраических уравнений (DAE). В нем предусмотрены варианты как прямых, так и итерационных (крыловских) методов решения линейных систем, возникающих на каждом (неявном) временном шаге. DASKR является вариантом пакета DASPK [1]. В дополнение ко всем возможностям DASPK, DASKR позволяет находить корни заданного набора функций при интеграции системы DAE.
В отличие от более старого пакета DASSL, в DASKR доступна процедура вычисления согласованных начальных условий для большого класса задач (в который входят полуявные системы с индексом 1) [2]. Эта процедура содержит параметры для ограничений неравенства для выбранных компонентов. В пакет также включена возможность, позволяющая исключать алгебраические компоненты из локального управления погрешностями.
Выбор линейного решателя
В качестве линейного решателя можно выбрать следующие:
-
:Dense
-
:Banded
-
:SPIGMR
, метод Крылова
Другие именованные аргументы
-
jac_upper=0,jac_lower=0
: используется для установки верхней и нижней полос для ленточного якобиана. Значение по умолчанию — 0. Игнорируется, если только не используется линейный решатель:Banded
. -
max_order = 5
: максимальный порядок метода BDF. -
non_negativity_enforcement = 0
, нужно ли применять неотрицательность в решении. По умолчанию используется0
или false. Для включения может быть установлено значение1
. -
non_negativity_enforcement_array = nothing
, массив из нулей и единиц для задания применения неотрицательности к подмножеству состояний. -
max_krylov_iters=nothing
: максимальное количество итераций для линейного решателя в подпространстве Крылова до отклонения шага. По умолчанию имеет значениеnothing
или обнаруживается автоматически. -
num_krylov_vectors=nothing
: максимальное количество состояний истории в векторе GMRES. По умолчанию имеет значениеnothing
или выбирается автоматически. -
max_number_krylov_restarts=5
: если вы поймете, что это, откройте проблему или отправьте запрос на вытягивание. -
krylov_convergence_test_constant = 0.05
: некоторая константа в тесте сходимости DASKR. -
exclude_algebraic_errors = false
: учитываются ли алгебраические переменные при проверке погрешностей адаптивных временных шагов. Значение по умолчанию — false.