BoundaryValueDiffEqMIRKN
Monotonic Implicit Runge Kutta Nyström(MIRKN) Methods. To only use the MIRKN methods form BoundaryValueDiffEq.jl, you need to install them use the Julia package manager:
using Pkg
Pkg.add("BoundaryValueDiffEqMIRKN")solve(prob::SecondOrderBVProblem, alg, dt; kwargs...)
solve(prob::TwoPointSecondOrderBVProblem, alg, dt; kwargs...)Full List of Methods
MIRKN4: 4 stage Monotonic Implicit Runge-Kutta-Nyström method, with no error control adaptivity.MIRKN6: 4 stage Monotonic Implicit Runge-Kutta-Nyström method, with no error control adaptivity.
Detailed Solvers Explanation
BoundaryValueDiffEqMIRKN.MIRKN4 — Type
MIRKN4(; nlsolve = nothing, optimize = nothing, jac_alg = BVPJacobianAlgorithm(),
defect_threshold = 0.1, max_num_subintervals = 3000)4th order Monotonic Implicit Runge Kutta Nyström method.
Fields
nlsolve: Optional nonlinear solver algorithm.nothingselects the package default.optimize: Optional optimization solver algorithm.nothingdisables optimization-based initialization.jac_alg: Jacobian construction configuration used by the nonlinear solver.defect_threshold: Defect-control threshold used to refine the mesh.max_num_subintervals: Maximum number of mesh subintervals permitted during refinement.
Keyword Arguments
nlsolve = nothing: Internal nonlinear solver. Any solver that conforms to the SciMLNonlinearProbleminterface can be used. Its autodiff setting is ignored because MIRKN usesjac_algto construct the Jacobian.optimize = nothing: Internal optimization solver. Any solver that conforms to the SciMLOptimizationProbleminterface can be used for initialization. Load the solver package before constructing the algorithm.jac_alg = BVPJacobianAlgorithm(): Jacobian algorithm used for the nonlinear solver. It automatically selects an algorithm from the problem and input types.- For
TwoPointBVProblem, onlydiffmodeis used (defaults toAutoSparse(AutoForwardDiff())if possible elseAutoSparse(AutoFiniteDiff())). - For
BVProblem,bc_diffmodeandnonbc_diffmodeare used. Fornonbc_diffmodedefaults toAutoSparse(AutoForwardDiff())if possible elseAutoSparse(AutoFiniteDiff()). Forbc_diffmode, defaults toAutoForwardDiffif possible elseAutoFiniteDiff.
- For
defect_threshold = 0.1: Threshold for defect control.max_num_subintervals = 3000: Maximum number of mesh subintervals.
For type-stability, the chunksizes for ForwardDiff ADTypes in BVPJacobianAlgorithm must be provided.
Examples
julia> using BoundaryValueDiffEqMIRKN: MIRKN4
julia> MIRKN4().max_num_subintervals
3000References
@article{Muir2001MonoImplicitRM,
title={Mono-Implicit Runge-Kutta-Nystr{"o}m Methods with Application to Boundary Value Ordinary Differential Equations},
author={Paul H. Muir and Mark F. Adams},
journal={BIT Numerical Mathematics},
year={2001},
volume={41},
pages={776-799}
}BoundaryValueDiffEqMIRKN.MIRKN6 — Type
MIRKN6(; nlsolve = nothing, optimize = nothing, jac_alg = BVPJacobianAlgorithm(),
defect_threshold = 0.1, max_num_subintervals = 3000)6th order Monotonic Implicit Runge Kutta Nyström method.
Fields
nlsolve: Optional nonlinear solver algorithm.nothingselects the package default.optimize: Optional optimization solver algorithm.nothingdisables optimization-based initialization.jac_alg: Jacobian construction configuration used by the nonlinear solver.defect_threshold: Defect-control threshold used to refine the mesh.max_num_subintervals: Maximum number of mesh subintervals permitted during refinement.
Keyword Arguments
nlsolve = nothing: Internal nonlinear solver. Any solver that conforms to the SciMLNonlinearProbleminterface can be used. Its autodiff setting is ignored because MIRKN usesjac_algto construct the Jacobian.optimize = nothing: Internal optimization solver. Any solver that conforms to the SciMLOptimizationProbleminterface can be used for initialization. Load the solver package before constructing the algorithm.jac_alg = BVPJacobianAlgorithm(): Jacobian algorithm used for the nonlinear solver. It automatically selects an algorithm from the problem and input types.- For
TwoPointBVProblem, onlydiffmodeis used (defaults toAutoSparse(AutoForwardDiff())if possible elseAutoSparse(AutoFiniteDiff())). - For
BVProblem,bc_diffmodeandnonbc_diffmodeare used. Fornonbc_diffmodedefaults toAutoSparse(AutoForwardDiff())if possible elseAutoSparse(AutoFiniteDiff()). Forbc_diffmode, defaults toAutoForwardDiffif possible elseAutoFiniteDiff.
- For
defect_threshold = 0.1: Threshold for defect control.max_num_subintervals = 3000: Maximum number of mesh subintervals.
For type-stability, the chunksizes for ForwardDiff ADTypes in BVPJacobianAlgorithm must be provided.
Examples
julia> using BoundaryValueDiffEqMIRKN: MIRKN6
julia> MIRKN6().max_num_subintervals
3000References
@article{Muir2001MonoImplicitRM,
title={Mono-Implicit Runge-Kutta-Nystr{"o}m Methods with Application to Boundary Value Ordinary Differential Equations},
author={Paul H. Muir and Mark F. Adams},
journal={BIT Numerical Mathematics},
year={2001},
volume={41},
pages={776-799}
}