From d800477a005500b67eba2cb9b6c66e6778f5bcda Mon Sep 17 00:00:00 2001 From: ArnoStrouwen Date: Wed, 21 Aug 2024 21:00:19 +0200 Subject: [PATCH] StabalizedIRK docs --- docs/src/implicit/StabalizedIRK.md | 20 +++++++++++++++++++ .../src/OrdinaryDiffEqStabilizedIRK.jl | 3 ++- .../src/algorithms.jl | 9 +++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 docs/src/implicit/StabalizedIRK.md diff --git a/docs/src/implicit/StabalizedIRK.md b/docs/src/implicit/StabalizedIRK.md new file mode 100644 index 0000000000..719c6308da --- /dev/null +++ b/docs/src/implicit/StabalizedIRK.md @@ -0,0 +1,20 @@ +# OrdinaryDiffEqStabalizedIRK + +Explicit stabilized methods utilize an upper bound on the spectral radius of the Jacobian. +Users can supply an upper bound by specifying the keyword argument `eigen_est`, for example + +```julia +`eigen_est = (integrator) -> integrator.eigen_est = upper_bound` +``` + +```@eval +first_steps = evalfile("./common_first_steps.jl") +first_steps("OrdinaryDiffEqStabalizedIRK", "IRKC") +``` + +## Full list of solvers + +```@docs +IRKC +``` + diff --git a/lib/OrdinaryDiffEqStabilizedIRK/src/OrdinaryDiffEqStabilizedIRK.jl b/lib/OrdinaryDiffEqStabilizedIRK/src/OrdinaryDiffEqStabilizedIRK.jl index cd2cfa4a5f..f16310de7e 100644 --- a/lib/OrdinaryDiffEqStabilizedIRK/src/OrdinaryDiffEqStabilizedIRK.jl +++ b/lib/OrdinaryDiffEqStabilizedIRK/src/OrdinaryDiffEqStabilizedIRK.jl @@ -10,7 +10,8 @@ import OrdinaryDiffEqCore: alg_order, alg_maximum_order, OrdinaryDiffEqAdaptiveAlgorithm, OrdinaryDiffEqAdaptiveImplicitAlgorithm, alg_cache, _unwrap_val, DEFAULT_PRECS, @cache, - _reshape, _vec, full_cache, get_fsalfirstlast + _reshape, _vec, full_cache, get_fsalfirstlast, + generic_solver_docstring using OrdinaryDiffEqDifferentiation: dolinsolve, update_W! using OrdinaryDiffEqNonlinearSolve: NLNewton, nlsolve!, isnewton, build_nlsolver, diff --git a/lib/OrdinaryDiffEqStabilizedIRK/src/algorithms.jl b/lib/OrdinaryDiffEqStabilizedIRK/src/algorithms.jl index 1a59689554..e4b2465860 100644 --- a/lib/OrdinaryDiffEqStabilizedIRK/src/algorithms.jl +++ b/lib/OrdinaryDiffEqStabilizedIRK/src/algorithms.jl @@ -1,3 +1,12 @@ +@doc generic_solver_docstring("Description TBD", + "IRKC", + "Stabalized Implicit Runge Kutta method.", + "REF TBD", + "- `eigen_est`: function of the form + `(integrator) -> integrator.eigen_est = upper_bound`, + where `upper_bound` is an estimated upper bound on the spectral radius of the Jacobian matrix. + If `eigen_est` is not provided, `upper_bound` will be estimated using the power iteration.", + "eigen_est = nothing,") struct IRKC{CS, AD, F, F2, P, FDT, ST, CJ, K, T, E} <: OrdinaryDiffEqNewtonAdaptiveAlgorithm{CS, AD, FDT, ST, CJ} linsolve::F