Ariadne.jl
Newton Method using Krylov.jl (montoison-orban-2023)[@cite]
API
Ariadne.newton_krylov! — FunctionArguments
F!:F!(res, u, p)solvesres = F(u) = 0u₀: Initial guessp: ParametersM: Length of the output ofF!. Defaults tolength(u₀)
Keyword Arguments
tol_rel: Relative tolerancetol_abs: Absolute tolerancemax_niter: Maximum number of iterationsforcing: Maximum forcing term for inexact Newton. Ifnothingan exact Newton method is used.verbose:Workspace:M:N:krylov_kwargcallback:
Arguments
F!:F!(res, u, p)solvesres = F(u) = 0u: Initial guessp:res: Temporary for residual
Keyword Arguments
tol_rel: Relative tolerancetol_abs: Absolute tolerancemax_niter: Maximum number of iterationsforcing: Maximum forcing term for inexact Newton. Ifnothingan exact Newton method is used.verbose:Workspace:M:N:krylov_kwargcallback:
Ariadne.newton_krylov — Functionnewton_krylov(F, u₀::AbstractArray, M::Int = length(u₀); kwargs...)Arguments
F:res = F(u₀, p)solvesres = F(u₀) = 0u₀: Initial guessp: ParametersM: Length of the output ofF. Defaults tolength(u₀).
Keyword Arguments
tol_rel: Relative tolerancetol_abs: Absolute tolerancemax_niter: Maximum number of iterationsforcing: Maximum forcing term for inexact Newton. Ifnothingan exact Newton method is used.verbose:Workspace:M:N:krylov_kwargcallback:
Parameters
Ariadne.Forcing — TypeForcingImplements forcing for inexact Newton-Krylov. The equation $‖F′(u)d + F(u)‖ <= η * ‖F(u)‖$ gives the inexact Newton termination criterion.
Implemented variants
Ariadne.Fixed — TypeFixed(η = 0.1)Ariadne.EisenstatWalker — TypeEisenstatWalker(η_max = 0.999, γ = 0.9)Internal
Ariadne.JacobianOperator — TypeJacobianOperatorEfficient implementation of J(f,x,p) * v and v * J(f, x,p)'
Ariadne.BatchedJacobianOperator — TypeBatchedJacobianOperator{N}