BoundaryValueDiffEqFIRK

Fully Implicit Runge Kutta(FIRK) Methods. To be able to access the solvers in BoundaryValueDiffEqFIRK, you must first install them use the Julia package manager:

using Pkg
Pkg.add("BoundaryValueDiffEqFIRK")
solve(prob::BVProblem, alg, dt; kwargs...)
solve(prob::TwoPointBVProblem, alg, dt; kwargs...)
Nested nonlinear solving in FIRK methods

When encountered with large BVP system, setting nested_nlsolve to true enables FIRK methods to use nested nonlinear solving for the implicit FIRK step instead of solving as a part of the global residual(when default as nested_nlsolve=false),

Full List of Methods

Radau IIA methods

  • RadauIIa1: 1 stage Radau IIA method, with defect control adaptivity
  • RadauIIa2: 2 stage Radau IIA method, with defect control adaptivity.
  • RadauIIa3: 3 stage Radau IIA method, with defect control adaptivity.
  • RadauIIa5: 5 stage Radau IIA method, with defect control adaptivity.
  • RadauIIa7: 7 stage Radau IIA method, with defect control adaptivity.

Lobatto IIIA methods

  • LobattoIIIa2: 2 stage Lobatto IIIa method, with defect control adaptivity.
  • LobattoIIIa3: 3 stage Lobatto IIIa method, with defect control adaptivity.
  • LobattoIIIa4: 4 stage Lobatto IIIa method, with defect control adaptivity.
  • LobattoIIIa5: 5 stage Lobatto IIIa method, with defect control adaptivity.

Lobatto IIIB methods

  • LobattoIIIb2: 2 stage Lobatto IIIb method, with defect control adaptivity.
  • LobattoIIIb3: 3 stage Lobatto IIIb method, with defect control adaptivity.
  • LobattoIIIb4: 4 stage Lobatto IIIb method, with defect control adaptivity.
  • LobattoIIIb5: 5 stage Lobatto IIIb method, with defect control adaptivity.

Lobatto IIIC methods

  • LobattoIIIc2: 2 stage Lobatto IIIc method, with defect control adaptivity.
  • LobattoIIIc3: 3 stage Lobatto IIIc method, with defect control adaptivity.
  • LobattoIIIc4: 4 stage Lobatto IIIc method, with defect control adaptivity.
  • LobattoIIIc5: 5 stage Lobatto IIIc method, with defect control adaptivity.

Detailed Solvers Explanation

BoundaryValueDiffEqFIRK.RadauIIa1Type
  RadauIIa1(; nlsolve = NewtonRaphson(), jac_alg = BVPJacobianAlgorithm(), nested_nlsolve = false, nest_tol = 0.0,
          defect_threshold = 0.1, max_num_subintervals = 3000)

1th stage RadauIIa method.

Keyword Arguments

  • nlsolve: Internal Nonlinear solver. Any solver which conforms to the SciML NonlinearProblem interface can be used. Note that any autodiff argument for the solver will be ignored and a custom jacobian algorithm will be used.
  • jac_alg: Jacobian Algorithm used for the nonlinear solver. Defaults to BVPJacobianAlgorithm(), which automatically decides the best algorithm to use based on the input types and problem type.
    • For TwoPointBVProblem, only diffmode is used (defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff)).
    • For BVProblem, bc_diffmode and nonbc_diffmode are used. For nonbc_diffmode defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff). For bc_diffmode, defaults to AutoForwardDiff if possible else AutoFiniteDiff.
  • nested_nlsolve: Whether or not to use a nested nonlinear solve for the

implicit FIRK step. Defaults to false. If set to false, the FIRK stages are solved as a part of the global residual. The general recommendation is to choose true for larger problems and false for smaller ones.

  • nest_tol: The tolerance for the nested solver. Default is nothing which leads to

NonlinearSolve automatically selecting the tolerance.

  • defect_threshold: Threshold for defect control.
  • max_num_subintervals: Number of maximal subintervals, default as 3000.
Note

For type-stability, the chunksizes for ForwardDiff ADTypes in BVPJacobianAlgorithm must be provided.

References

Reference for Lobatto and Radau methods: bibtex @incollection{Jay2015, author="Jay, Laurent O.", editor="Engquist, Bj{"o}rn", title="Lobatto Methods", booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}}, year="2015", publisher="Springer Berlin Heidelberg", } @incollection{engquist_radau_2015, author = {Hairer, Ernst and Wanner, Gerhard}, editor={Engquist, Bj{"o}rn}, title = {Radau {Methods}}, booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}}, publisher = {Springer Berlin Heidelberg}, year = {2015}, } References for implementation of defect control, based on the bvp5c solver in MATLAB: ```bibtex @article{shampinesolvingnodate, title = {Solving {Boundary} {Value} {Problems} for {Ordinary} {Differential} {Equations} in {Matlab} with bvp4c author = {Shampine, Lawrence F and Kierzenka, Jacek and Reichelt, Mark W}, year = {2000}, }

@article{kierzenkabvp2008, title = {A {BVP} {Solver} that {Controls} {Residual} and {Error}}, author = {Kierzenka, J and Shampine, L F}, year = {2008}, }

@article{russelladaptive1978, title = {Adaptive {Mesh} {Selection} {Strategies} for {Solving} {Boundary} {Value} {Problems}}, journal = {SIAM Journal on Numerical Analysis}, author = {Russell, R. D. and Christiansen, J.}, year = {1978}, } ```

source
BoundaryValueDiffEqFIRK.RadauIIa2Type
  RadauIIa2(; nlsolve = NewtonRaphson(), jac_alg = BVPJacobianAlgorithm(), nested_nlsolve = false, nest_tol = 0.0,
          defect_threshold = 0.1, max_num_subintervals = 3000)

2th stage RadauIIa method.

Keyword Arguments

  • nlsolve: Internal Nonlinear solver. Any solver which conforms to the SciML NonlinearProblem interface can be used. Note that any autodiff argument for the solver will be ignored and a custom jacobian algorithm will be used.
  • jac_alg: Jacobian Algorithm used for the nonlinear solver. Defaults to BVPJacobianAlgorithm(), which automatically decides the best algorithm to use based on the input types and problem type.
    • For TwoPointBVProblem, only diffmode is used (defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff)).
    • For BVProblem, bc_diffmode and nonbc_diffmode are used. For nonbc_diffmode defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff). For bc_diffmode, defaults to AutoForwardDiff if possible else AutoFiniteDiff.
  • nested_nlsolve: Whether or not to use a nested nonlinear solve for the

implicit FIRK step. Defaults to false. If set to false, the FIRK stages are solved as a part of the global residual. The general recommendation is to choose true for larger problems and false for smaller ones.

  • nest_tol: The tolerance for the nested solver. Default is nothing which leads to

NonlinearSolve automatically selecting the tolerance.

  • defect_threshold: Threshold for defect control.
  • max_num_subintervals: Number of maximal subintervals, default as 3000.
Note

For type-stability, the chunksizes for ForwardDiff ADTypes in BVPJacobianAlgorithm must be provided.

References

Reference for Lobatto and Radau methods: bibtex @incollection{Jay2015, author="Jay, Laurent O.", editor="Engquist, Bj{"o}rn", title="Lobatto Methods", booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}}, year="2015", publisher="Springer Berlin Heidelberg", } @incollection{engquist_radau_2015, author = {Hairer, Ernst and Wanner, Gerhard}, editor={Engquist, Bj{"o}rn}, title = {Radau {Methods}}, booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}}, publisher = {Springer Berlin Heidelberg}, year = {2015}, } References for implementation of defect control, based on the bvp5c solver in MATLAB: ```bibtex @article{shampinesolvingnodate, title = {Solving {Boundary} {Value} {Problems} for {Ordinary} {Differential} {Equations} in {Matlab} with bvp4c author = {Shampine, Lawrence F and Kierzenka, Jacek and Reichelt, Mark W}, year = {2000}, }

@article{kierzenkabvp2008, title = {A {BVP} {Solver} that {Controls} {Residual} and {Error}}, author = {Kierzenka, J and Shampine, L F}, year = {2008}, }

@article{russelladaptive1978, title = {Adaptive {Mesh} {Selection} {Strategies} for {Solving} {Boundary} {Value} {Problems}}, journal = {SIAM Journal on Numerical Analysis}, author = {Russell, R. D. and Christiansen, J.}, year = {1978}, } ```

source
BoundaryValueDiffEqFIRK.RadauIIa3Type
  RadauIIa3(; nlsolve = NewtonRaphson(), jac_alg = BVPJacobianAlgorithm(), nested_nlsolve = false, nest_tol = 0.0,
          defect_threshold = 0.1, max_num_subintervals = 3000)

3th stage RadauIIa method.

Keyword Arguments

  • nlsolve: Internal Nonlinear solver. Any solver which conforms to the SciML NonlinearProblem interface can be used. Note that any autodiff argument for the solver will be ignored and a custom jacobian algorithm will be used.
  • jac_alg: Jacobian Algorithm used for the nonlinear solver. Defaults to BVPJacobianAlgorithm(), which automatically decides the best algorithm to use based on the input types and problem type.
    • For TwoPointBVProblem, only diffmode is used (defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff)).
    • For BVProblem, bc_diffmode and nonbc_diffmode are used. For nonbc_diffmode defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff). For bc_diffmode, defaults to AutoForwardDiff if possible else AutoFiniteDiff.
  • nested_nlsolve: Whether or not to use a nested nonlinear solve for the

implicit FIRK step. Defaults to false. If set to false, the FIRK stages are solved as a part of the global residual. The general recommendation is to choose true for larger problems and false for smaller ones.

  • nest_tol: The tolerance for the nested solver. Default is nothing which leads to

NonlinearSolve automatically selecting the tolerance.

  • defect_threshold: Threshold for defect control.
  • max_num_subintervals: Number of maximal subintervals, default as 3000.
Note

For type-stability, the chunksizes for ForwardDiff ADTypes in BVPJacobianAlgorithm must be provided.

References

Reference for Lobatto and Radau methods: bibtex @incollection{Jay2015, author="Jay, Laurent O.", editor="Engquist, Bj{"o}rn", title="Lobatto Methods", booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}}, year="2015", publisher="Springer Berlin Heidelberg", } @incollection{engquist_radau_2015, author = {Hairer, Ernst and Wanner, Gerhard}, editor={Engquist, Bj{"o}rn}, title = {Radau {Methods}}, booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}}, publisher = {Springer Berlin Heidelberg}, year = {2015}, } References for implementation of defect control, based on the bvp5c solver in MATLAB: ```bibtex @article{shampinesolvingnodate, title = {Solving {Boundary} {Value} {Problems} for {Ordinary} {Differential} {Equations} in {Matlab} with bvp4c author = {Shampine, Lawrence F and Kierzenka, Jacek and Reichelt, Mark W}, year = {2000}, }

@article{kierzenkabvp2008, title = {A {BVP} {Solver} that {Controls} {Residual} and {Error}}, author = {Kierzenka, J and Shampine, L F}, year = {2008}, }

@article{russelladaptive1978, title = {Adaptive {Mesh} {Selection} {Strategies} for {Solving} {Boundary} {Value} {Problems}}, journal = {SIAM Journal on Numerical Analysis}, author = {Russell, R. D. and Christiansen, J.}, year = {1978}, } ```

source
BoundaryValueDiffEqFIRK.RadauIIa5Type
  RadauIIa5(; nlsolve = NewtonRaphson(), jac_alg = BVPJacobianAlgorithm(), nested_nlsolve = false, nest_tol = 0.0,
          defect_threshold = 0.1, max_num_subintervals = 3000)

5th stage RadauIIa method.

Keyword Arguments

  • nlsolve: Internal Nonlinear solver. Any solver which conforms to the SciML NonlinearProblem interface can be used. Note that any autodiff argument for the solver will be ignored and a custom jacobian algorithm will be used.
  • jac_alg: Jacobian Algorithm used for the nonlinear solver. Defaults to BVPJacobianAlgorithm(), which automatically decides the best algorithm to use based on the input types and problem type.
    • For TwoPointBVProblem, only diffmode is used (defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff)).
    • For BVProblem, bc_diffmode and nonbc_diffmode are used. For nonbc_diffmode defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff). For bc_diffmode, defaults to AutoForwardDiff if possible else AutoFiniteDiff.
  • nested_nlsolve: Whether or not to use a nested nonlinear solve for the

implicit FIRK step. Defaults to false. If set to false, the FIRK stages are solved as a part of the global residual. The general recommendation is to choose true for larger problems and false for smaller ones.

  • nest_tol: The tolerance for the nested solver. Default is nothing which leads to

NonlinearSolve automatically selecting the tolerance.

  • defect_threshold: Threshold for defect control.
  • max_num_subintervals: Number of maximal subintervals, default as 3000.
Note

For type-stability, the chunksizes for ForwardDiff ADTypes in BVPJacobianAlgorithm must be provided.

References

Reference for Lobatto and Radau methods: bibtex @incollection{Jay2015, author="Jay, Laurent O.", editor="Engquist, Bj{"o}rn", title="Lobatto Methods", booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}}, year="2015", publisher="Springer Berlin Heidelberg", } @incollection{engquist_radau_2015, author = {Hairer, Ernst and Wanner, Gerhard}, editor={Engquist, Bj{"o}rn}, title = {Radau {Methods}}, booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}}, publisher = {Springer Berlin Heidelberg}, year = {2015}, } References for implementation of defect control, based on the bvp5c solver in MATLAB: ```bibtex @article{shampinesolvingnodate, title = {Solving {Boundary} {Value} {Problems} for {Ordinary} {Differential} {Equations} in {Matlab} with bvp4c author = {Shampine, Lawrence F and Kierzenka, Jacek and Reichelt, Mark W}, year = {2000}, }

@article{kierzenkabvp2008, title = {A {BVP} {Solver} that {Controls} {Residual} and {Error}}, author = {Kierzenka, J and Shampine, L F}, year = {2008}, }

@article{russelladaptive1978, title = {Adaptive {Mesh} {Selection} {Strategies} for {Solving} {Boundary} {Value} {Problems}}, journal = {SIAM Journal on Numerical Analysis}, author = {Russell, R. D. and Christiansen, J.}, year = {1978}, } ```

source
BoundaryValueDiffEqFIRK.RadauIIa7Type
  RadauIIa7(; nlsolve = NewtonRaphson(), jac_alg = BVPJacobianAlgorithm(), nested_nlsolve = false, nest_tol = 0.0,
          defect_threshold = 0.1, max_num_subintervals = 3000)

7th stage RadauIIa method.

Keyword Arguments

  • nlsolve: Internal Nonlinear solver. Any solver which conforms to the SciML NonlinearProblem interface can be used. Note that any autodiff argument for the solver will be ignored and a custom jacobian algorithm will be used.
  • jac_alg: Jacobian Algorithm used for the nonlinear solver. Defaults to BVPJacobianAlgorithm(), which automatically decides the best algorithm to use based on the input types and problem type.
    • For TwoPointBVProblem, only diffmode is used (defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff)).
    • For BVProblem, bc_diffmode and nonbc_diffmode are used. For nonbc_diffmode defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff). For bc_diffmode, defaults to AutoForwardDiff if possible else AutoFiniteDiff.
  • nested_nlsolve: Whether or not to use a nested nonlinear solve for the

implicit FIRK step. Defaults to false. If set to false, the FIRK stages are solved as a part of the global residual. The general recommendation is to choose true for larger problems and false for smaller ones.

  • nest_tol: The tolerance for the nested solver. Default is nothing which leads to

NonlinearSolve automatically selecting the tolerance.

  • defect_threshold: Threshold for defect control.
  • max_num_subintervals: Number of maximal subintervals, default as 3000.
Note

For type-stability, the chunksizes for ForwardDiff ADTypes in BVPJacobianAlgorithm must be provided.

References

Reference for Lobatto and Radau methods: bibtex @incollection{Jay2015, author="Jay, Laurent O.", editor="Engquist, Bj{"o}rn", title="Lobatto Methods", booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}}, year="2015", publisher="Springer Berlin Heidelberg", } @incollection{engquist_radau_2015, author = {Hairer, Ernst and Wanner, Gerhard}, editor={Engquist, Bj{"o}rn}, title = {Radau {Methods}}, booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}}, publisher = {Springer Berlin Heidelberg}, year = {2015}, } References for implementation of defect control, based on the bvp5c solver in MATLAB: ```bibtex @article{shampinesolvingnodate, title = {Solving {Boundary} {Value} {Problems} for {Ordinary} {Differential} {Equations} in {Matlab} with bvp4c author = {Shampine, Lawrence F and Kierzenka, Jacek and Reichelt, Mark W}, year = {2000}, }

@article{kierzenkabvp2008, title = {A {BVP} {Solver} that {Controls} {Residual} and {Error}}, author = {Kierzenka, J and Shampine, L F}, year = {2008}, }

@article{russelladaptive1978, title = {Adaptive {Mesh} {Selection} {Strategies} for {Solving} {Boundary} {Value} {Problems}}, journal = {SIAM Journal on Numerical Analysis}, author = {Russell, R. D. and Christiansen, J.}, year = {1978}, } ```

source
BoundaryValueDiffEqFIRK.LobattoIIIa2Type
  LobattoIIIa2(; nlsolve = NewtonRaphson(), jac_alg = BVPJacobianAlgorithm(), nested_nlsolve = false, nest_tol = 0.0,
          defect_threshold = 0.1, max_num_subintervals = 3000)

2th stage LobattoIIIa method.

Keyword Arguments

- `nlsolve`: Internal Nonlinear solver. Any solver which conforms to the SciML
`NonlinearProblem` interface can be used. Note that any autodiff argument for
  the solver will be ignored and a custom jacobian algorithm will be used.
  • jac_alg: Jacobian Algorithm used for the nonlinear solver. Defaults to BVPJacobianAlgorithm(), which automatically decides the best algorithm to use based on the input types and problem type.
    • For TwoPointBVProblem, only diffmode is used (defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff)).
    • For BVProblem, bc_diffmode and nonbc_diffmode are used. For nonbc_diffmode defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff). For bc_diffmode, defaults to AutoForwardDiff if possible else AutoFiniteDiff.
  • nested_nlsolve: Whether or not to use a nested nonlinear solve for the implicit FIRK step. Defaults to false. If set to false, the FIRK stages are

solved as a part of the global residual. The general recommendation is to choose true for larger problems and false for smaller ones.

  • nest_tol: The tolerance for the nested solver. Default is nothing which leads to

NonlinearSolve automatically selecting the tolerance.

  • defect_threshold: Threshold for defect control.
  • max_num_subintervals: Number of maximal subintervals, default as 3000.
Note

For type-stability, the chunksizes for ForwardDiff ADTypes in BVPJacobianAlgorithm must be provided.

References

  Reference for Lobatto and Radau methods:
  ```bibtex
      @Inbook{Jay2015,
      author="Jay, Laurent O.",
      editor="Engquist, Bj{"o}rn",
      title="Lobatto Methods",
      booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}},
      year="2015",
      publisher="Springer Berlin Heidelberg",
      }
      @incollection{engquist_radau_2015,
      author = {Hairer, Ernst and Wanner, Gerhard},
      title = {Radau {Methods}},
      booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}},
      publisher = {Springer Berlin Heidelberg},
      editor="Engquist, Bj{"o}rn",
      year = {2015},
  }
  ```
  References for implementation of defect control, based on the `bvp5c` solver in MATLAB:
  ```bibtex
  @article{shampine_solving_nodate,
  title = {Solving {Boundary} {Value} {Problems} for {Ordinary} {Differential} {Equations} in {Matlab} with bvp4c
  author = {Shampine, Lawrence F and Kierzenka, Jacek and Reichelt, Mark W},
  year = {2000},
  }

  @article{kierzenka_bvp_2008,
      title = {A {BVP} {Solver} that {Controls} {Residual} and {Error}},
      author = {Kierzenka, J and Shampine, L F},
      year = {2008},
  }

  @article{russell_adaptive_1978,
      title = {Adaptive {Mesh} {Selection} {Strategies} for {Solving} {Boundary} {Value} {Problems}},
      journal = {SIAM Journal on Numerical Analysis},
      author = {Russell, R. D. and Christiansen, J.},
      year = {1978},
      file = {Russell and Christiansen - 1978 - Adaptive Mesh Selection Strategies for Solving Bou.pdf:/Users/AXLRSN/Zotero/storage/HKU27A4T/Russell and Christiansen - 1978 - Adaptive Mesh Selection Strategies for Solving Bou.pdf:application/pdf},
  }
  ```
source
BoundaryValueDiffEqFIRK.LobattoIIIa3Type
  LobattoIIIa3(; nlsolve = NewtonRaphson(), jac_alg = BVPJacobianAlgorithm(), nested_nlsolve = false, nest_tol = 0.0,
          defect_threshold = 0.1, max_num_subintervals = 3000)

3th stage LobattoIIIa method.

Keyword Arguments

- `nlsolve`: Internal Nonlinear solver. Any solver which conforms to the SciML
`NonlinearProblem` interface can be used. Note that any autodiff argument for
  the solver will be ignored and a custom jacobian algorithm will be used.
  • jac_alg: Jacobian Algorithm used for the nonlinear solver. Defaults to BVPJacobianAlgorithm(), which automatically decides the best algorithm to use based on the input types and problem type.
    • For TwoPointBVProblem, only diffmode is used (defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff)).
    • For BVProblem, bc_diffmode and nonbc_diffmode are used. For nonbc_diffmode defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff). For bc_diffmode, defaults to AutoForwardDiff if possible else AutoFiniteDiff.
  • nested_nlsolve: Whether or not to use a nested nonlinear solve for the implicit FIRK step. Defaults to false. If set to false, the FIRK stages are

solved as a part of the global residual. The general recommendation is to choose true for larger problems and false for smaller ones.

  • nest_tol: The tolerance for the nested solver. Default is nothing which leads to

NonlinearSolve automatically selecting the tolerance.

  • defect_threshold: Threshold for defect control.
  • max_num_subintervals: Number of maximal subintervals, default as 3000.
Note

For type-stability, the chunksizes for ForwardDiff ADTypes in BVPJacobianAlgorithm must be provided.

References

  Reference for Lobatto and Radau methods:
  ```bibtex
      @Inbook{Jay2015,
      author="Jay, Laurent O.",
      editor="Engquist, Bj{"o}rn",
      title="Lobatto Methods",
      booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}},
      year="2015",
      publisher="Springer Berlin Heidelberg",
      }
      @incollection{engquist_radau_2015,
      author = {Hairer, Ernst and Wanner, Gerhard},
      title = {Radau {Methods}},
      booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}},
      publisher = {Springer Berlin Heidelberg},
      editor="Engquist, Bj{"o}rn",
      year = {2015},
  }
  ```
  References for implementation of defect control, based on the `bvp5c` solver in MATLAB:
  ```bibtex
  @article{shampine_solving_nodate,
  title = {Solving {Boundary} {Value} {Problems} for {Ordinary} {Differential} {Equations} in {Matlab} with bvp4c
  author = {Shampine, Lawrence F and Kierzenka, Jacek and Reichelt, Mark W},
  year = {2000},
  }

  @article{kierzenka_bvp_2008,
      title = {A {BVP} {Solver} that {Controls} {Residual} and {Error}},
      author = {Kierzenka, J and Shampine, L F},
      year = {2008},
  }

  @article{russell_adaptive_1978,
      title = {Adaptive {Mesh} {Selection} {Strategies} for {Solving} {Boundary} {Value} {Problems}},
      journal = {SIAM Journal on Numerical Analysis},
      author = {Russell, R. D. and Christiansen, J.},
      year = {1978},
      file = {Russell and Christiansen - 1978 - Adaptive Mesh Selection Strategies for Solving Bou.pdf:/Users/AXLRSN/Zotero/storage/HKU27A4T/Russell and Christiansen - 1978 - Adaptive Mesh Selection Strategies for Solving Bou.pdf:application/pdf},
  }
  ```
source
BoundaryValueDiffEqFIRK.LobattoIIIa4Type
  LobattoIIIa4(; nlsolve = NewtonRaphson(), jac_alg = BVPJacobianAlgorithm(), nested_nlsolve = false, nest_tol = 0.0,
          defect_threshold = 0.1, max_num_subintervals = 3000)

4th stage LobattoIIIa method.

Keyword Arguments

- `nlsolve`: Internal Nonlinear solver. Any solver which conforms to the SciML
`NonlinearProblem` interface can be used. Note that any autodiff argument for
  the solver will be ignored and a custom jacobian algorithm will be used.
  • jac_alg: Jacobian Algorithm used for the nonlinear solver. Defaults to BVPJacobianAlgorithm(), which automatically decides the best algorithm to use based on the input types and problem type.
    • For TwoPointBVProblem, only diffmode is used (defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff)).
    • For BVProblem, bc_diffmode and nonbc_diffmode are used. For nonbc_diffmode defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff). For bc_diffmode, defaults to AutoForwardDiff if possible else AutoFiniteDiff.
  • nested_nlsolve: Whether or not to use a nested nonlinear solve for the implicit FIRK step. Defaults to false. If set to false, the FIRK stages are

solved as a part of the global residual. The general recommendation is to choose true for larger problems and false for smaller ones.

  • nest_tol: The tolerance for the nested solver. Default is nothing which leads to

NonlinearSolve automatically selecting the tolerance.

  • defect_threshold: Threshold for defect control.
  • max_num_subintervals: Number of maximal subintervals, default as 3000.
Note

For type-stability, the chunksizes for ForwardDiff ADTypes in BVPJacobianAlgorithm must be provided.

References

  Reference for Lobatto and Radau methods:
  ```bibtex
      @Inbook{Jay2015,
      author="Jay, Laurent O.",
      editor="Engquist, Bj{"o}rn",
      title="Lobatto Methods",
      booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}},
      year="2015",
      publisher="Springer Berlin Heidelberg",
      }
      @incollection{engquist_radau_2015,
      author = {Hairer, Ernst and Wanner, Gerhard},
      title = {Radau {Methods}},
      booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}},
      publisher = {Springer Berlin Heidelberg},
      editor="Engquist, Bj{"o}rn",
      year = {2015},
  }
  ```
  References for implementation of defect control, based on the `bvp5c` solver in MATLAB:
  ```bibtex
  @article{shampine_solving_nodate,
  title = {Solving {Boundary} {Value} {Problems} for {Ordinary} {Differential} {Equations} in {Matlab} with bvp4c
  author = {Shampine, Lawrence F and Kierzenka, Jacek and Reichelt, Mark W},
  year = {2000},
  }

  @article{kierzenka_bvp_2008,
      title = {A {BVP} {Solver} that {Controls} {Residual} and {Error}},
      author = {Kierzenka, J and Shampine, L F},
      year = {2008},
  }

  @article{russell_adaptive_1978,
      title = {Adaptive {Mesh} {Selection} {Strategies} for {Solving} {Boundary} {Value} {Problems}},
      journal = {SIAM Journal on Numerical Analysis},
      author = {Russell, R. D. and Christiansen, J.},
      year = {1978},
      file = {Russell and Christiansen - 1978 - Adaptive Mesh Selection Strategies for Solving Bou.pdf:/Users/AXLRSN/Zotero/storage/HKU27A4T/Russell and Christiansen - 1978 - Adaptive Mesh Selection Strategies for Solving Bou.pdf:application/pdf},
  }
  ```
source
BoundaryValueDiffEqFIRK.LobattoIIIa5Type
  LobattoIIIa5(; nlsolve = NewtonRaphson(), jac_alg = BVPJacobianAlgorithm(), nested_nlsolve = false, nest_tol = 0.0,
          defect_threshold = 0.1, max_num_subintervals = 3000)

5th stage LobattoIIIa method.

Keyword Arguments

- `nlsolve`: Internal Nonlinear solver. Any solver which conforms to the SciML
`NonlinearProblem` interface can be used. Note that any autodiff argument for
  the solver will be ignored and a custom jacobian algorithm will be used.
  • jac_alg: Jacobian Algorithm used for the nonlinear solver. Defaults to BVPJacobianAlgorithm(), which automatically decides the best algorithm to use based on the input types and problem type.
    • For TwoPointBVProblem, only diffmode is used (defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff)).
    • For BVProblem, bc_diffmode and nonbc_diffmode are used. For nonbc_diffmode defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff). For bc_diffmode, defaults to AutoForwardDiff if possible else AutoFiniteDiff.
  • nested_nlsolve: Whether or not to use a nested nonlinear solve for the implicit FIRK step. Defaults to false. If set to false, the FIRK stages are

solved as a part of the global residual. The general recommendation is to choose true for larger problems and false for smaller ones.

  • nest_tol: The tolerance for the nested solver. Default is nothing which leads to

NonlinearSolve automatically selecting the tolerance.

  • defect_threshold: Threshold for defect control.
  • max_num_subintervals: Number of maximal subintervals, default as 3000.
Note

For type-stability, the chunksizes for ForwardDiff ADTypes in BVPJacobianAlgorithm must be provided.

References

  Reference for Lobatto and Radau methods:
  ```bibtex
      @Inbook{Jay2015,
      author="Jay, Laurent O.",
      editor="Engquist, Bj{"o}rn",
      title="Lobatto Methods",
      booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}},
      year="2015",
      publisher="Springer Berlin Heidelberg",
      }
      @incollection{engquist_radau_2015,
      author = {Hairer, Ernst and Wanner, Gerhard},
      title = {Radau {Methods}},
      booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}},
      publisher = {Springer Berlin Heidelberg},
      editor="Engquist, Bj{"o}rn",
      year = {2015},
  }
  ```
  References for implementation of defect control, based on the `bvp5c` solver in MATLAB:
  ```bibtex
  @article{shampine_solving_nodate,
  title = {Solving {Boundary} {Value} {Problems} for {Ordinary} {Differential} {Equations} in {Matlab} with bvp4c
  author = {Shampine, Lawrence F and Kierzenka, Jacek and Reichelt, Mark W},
  year = {2000},
  }

  @article{kierzenka_bvp_2008,
      title = {A {BVP} {Solver} that {Controls} {Residual} and {Error}},
      author = {Kierzenka, J and Shampine, L F},
      year = {2008},
  }

  @article{russell_adaptive_1978,
      title = {Adaptive {Mesh} {Selection} {Strategies} for {Solving} {Boundary} {Value} {Problems}},
      journal = {SIAM Journal on Numerical Analysis},
      author = {Russell, R. D. and Christiansen, J.},
      year = {1978},
      file = {Russell and Christiansen - 1978 - Adaptive Mesh Selection Strategies for Solving Bou.pdf:/Users/AXLRSN/Zotero/storage/HKU27A4T/Russell and Christiansen - 1978 - Adaptive Mesh Selection Strategies for Solving Bou.pdf:application/pdf},
  }
  ```
source
BoundaryValueDiffEqFIRK.LobattoIIIb2Type
  LobattoIIIb2(; nlsolve = NewtonRaphson(), jac_alg = BVPJacobianAlgorithm(), nested_nlsolve = false, nest_tol = 0.0,
          defect_threshold = 0.1, max_num_subintervals = 3000)

2th stage LobattoIIIb method.

Keyword Arguments

  • nlsolve: Internal Nonlinear solver. Any solver which conforms to the SciML NonlinearProblem interface can be used. Note that any autodiff argument for the solver will be ignored and a custom jacobian algorithm will be used.
  • jac_alg: Jacobian Algorithm used for the nonlinear solver. Defaults to BVPJacobianAlgorithm(), which automatically decides the best algorithm to use based on the input types and problem type.
    • For TwoPointBVProblem, only diffmode is used (defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff)).
    • For BVProblem, bc_diffmode and nonbc_diffmode are used. For nonbc_diffmode defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff). For bc_diffmode, defaults to AutoForwardDiff if possible else AutoFiniteDiff.
  • nested_nlsolve: Whether or not to use a nested nonlinear solve for the

implicit FIRK step. Defaults to true. If set to false, the FIRK stages are solved as a part of the global residual. The general recommendation is to choose true for larger problems and false for smaller ones.

  • nest_tol: The tolerance for the nested solver. Default is nothing which leads to

NonlinearSolve automatically selecting the tolerance.

  • defect_threshold: Threshold for defect control.
  • max_num_subintervals: Number of maximal subintervals, default as 3000.
Note

For type-stability, the chunksizes for ForwardDiff ADTypes in BVPJacobianAlgorithm must be provided.

References

Reference for Lobatto and Radau methods: bibtex @Inbook{Jay2015, author="Jay, Laurent O.", editor="Engquist, Bj{"o}rn", title="Lobatto Methods", booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}}, year="2015", publisher="Springer Berlin Heidelberg", } @incollection{engquist_radau_2015, author = {Hairer, Ernst and Wanner, Gerhard}, title = {Radau {Methods}}, booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}}, publisher = {Springer Berlin Heidelberg}, editor="Engquist, Bj{"o}rn", year = {2015}, } References for implementation of defect control, based on the bvp5c solver in MATLAB: ```bibtex @article{shampinesolvingnodate, title = {Solving {Boundary} {Value} {Problems} for {Ordinary} {Differential} {Equations} in {Matlab} with bvp4c author = {Shampine, Lawrence F and Kierzenka, Jacek and Reichelt, Mark W}, year = {2000}, }

@article{kierzenkabvp2008, title = {A {BVP} {Solver} that {Controls} {Residual} and {Error}}, author = {Kierzenka, J and Shampine, L F}, year = {2008}, }

@article{russelladaptive1978, title = {Adaptive {Mesh} {Selection} {Strategies} for {Solving} {Boundary} {Value} {Problems}}, journal = {SIAM Journal on Numerical Analysis}, author = {Russell, R. D. and Christiansen, J.}, year = {1978}, file = {Russell and Christiansen - 1978 - Adaptive Mesh Selection Strategies for Solving Bou.pdf:/Users/AXLRSN/Zotero/storage/HKU27A4T/Russell and Christiansen - 1978 - Adaptive Mesh Selection Strategies for Solving Bou.pdf:application/pdf}, } ```

source
BoundaryValueDiffEqFIRK.LobattoIIIb3Type
  LobattoIIIb3(; nlsolve = NewtonRaphson(), jac_alg = BVPJacobianAlgorithm(), nested_nlsolve = false, nest_tol = 0.0,
          defect_threshold = 0.1, max_num_subintervals = 3000)

3th stage LobattoIIIb method.

Keyword Arguments

  • nlsolve: Internal Nonlinear solver. Any solver which conforms to the SciML NonlinearProblem interface can be used. Note that any autodiff argument for the solver will be ignored and a custom jacobian algorithm will be used.
  • jac_alg: Jacobian Algorithm used for the nonlinear solver. Defaults to BVPJacobianAlgorithm(), which automatically decides the best algorithm to use based on the input types and problem type.
    • For TwoPointBVProblem, only diffmode is used (defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff)).
    • For BVProblem, bc_diffmode and nonbc_diffmode are used. For nonbc_diffmode defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff). For bc_diffmode, defaults to AutoForwardDiff if possible else AutoFiniteDiff.
  • nested_nlsolve: Whether or not to use a nested nonlinear solve for the

implicit FIRK step. Defaults to true. If set to false, the FIRK stages are solved as a part of the global residual. The general recommendation is to choose true for larger problems and false for smaller ones.

  • nest_tol: The tolerance for the nested solver. Default is nothing which leads to

NonlinearSolve automatically selecting the tolerance.

  • defect_threshold: Threshold for defect control.
  • max_num_subintervals: Number of maximal subintervals, default as 3000.
Note

For type-stability, the chunksizes for ForwardDiff ADTypes in BVPJacobianAlgorithm must be provided.

References

Reference for Lobatto and Radau methods: bibtex @Inbook{Jay2015, author="Jay, Laurent O.", editor="Engquist, Bj{"o}rn", title="Lobatto Methods", booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}}, year="2015", publisher="Springer Berlin Heidelberg", } @incollection{engquist_radau_2015, author = {Hairer, Ernst and Wanner, Gerhard}, title = {Radau {Methods}}, booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}}, publisher = {Springer Berlin Heidelberg}, editor="Engquist, Bj{"o}rn", year = {2015}, } References for implementation of defect control, based on the bvp5c solver in MATLAB: ```bibtex @article{shampinesolvingnodate, title = {Solving {Boundary} {Value} {Problems} for {Ordinary} {Differential} {Equations} in {Matlab} with bvp4c author = {Shampine, Lawrence F and Kierzenka, Jacek and Reichelt, Mark W}, year = {2000}, }

@article{kierzenkabvp2008, title = {A {BVP} {Solver} that {Controls} {Residual} and {Error}}, author = {Kierzenka, J and Shampine, L F}, year = {2008}, }

@article{russelladaptive1978, title = {Adaptive {Mesh} {Selection} {Strategies} for {Solving} {Boundary} {Value} {Problems}}, journal = {SIAM Journal on Numerical Analysis}, author = {Russell, R. D. and Christiansen, J.}, year = {1978}, file = {Russell and Christiansen - 1978 - Adaptive Mesh Selection Strategies for Solving Bou.pdf:/Users/AXLRSN/Zotero/storage/HKU27A4T/Russell and Christiansen - 1978 - Adaptive Mesh Selection Strategies for Solving Bou.pdf:application/pdf}, } ```

source
BoundaryValueDiffEqFIRK.LobattoIIIb4Type
  LobattoIIIb4(; nlsolve = NewtonRaphson(), jac_alg = BVPJacobianAlgorithm(), nested_nlsolve = false, nest_tol = 0.0,
          defect_threshold = 0.1, max_num_subintervals = 3000)

4th stage LobattoIIIb method.

Keyword Arguments

  • nlsolve: Internal Nonlinear solver. Any solver which conforms to the SciML NonlinearProblem interface can be used. Note that any autodiff argument for the solver will be ignored and a custom jacobian algorithm will be used.
  • jac_alg: Jacobian Algorithm used for the nonlinear solver. Defaults to BVPJacobianAlgorithm(), which automatically decides the best algorithm to use based on the input types and problem type.
    • For TwoPointBVProblem, only diffmode is used (defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff)).
    • For BVProblem, bc_diffmode and nonbc_diffmode are used. For nonbc_diffmode defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff). For bc_diffmode, defaults to AutoForwardDiff if possible else AutoFiniteDiff.
  • nested_nlsolve: Whether or not to use a nested nonlinear solve for the

implicit FIRK step. Defaults to true. If set to false, the FIRK stages are solved as a part of the global residual. The general recommendation is to choose true for larger problems and false for smaller ones.

  • nest_tol: The tolerance for the nested solver. Default is nothing which leads to

NonlinearSolve automatically selecting the tolerance.

  • defect_threshold: Threshold for defect control.
  • max_num_subintervals: Number of maximal subintervals, default as 3000.
Note

For type-stability, the chunksizes for ForwardDiff ADTypes in BVPJacobianAlgorithm must be provided.

References

Reference for Lobatto and Radau methods: bibtex @Inbook{Jay2015, author="Jay, Laurent O.", editor="Engquist, Bj{"o}rn", title="Lobatto Methods", booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}}, year="2015", publisher="Springer Berlin Heidelberg", } @incollection{engquist_radau_2015, author = {Hairer, Ernst and Wanner, Gerhard}, title = {Radau {Methods}}, booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}}, publisher = {Springer Berlin Heidelberg}, editor="Engquist, Bj{"o}rn", year = {2015}, } References for implementation of defect control, based on the bvp5c solver in MATLAB: ```bibtex @article{shampinesolvingnodate, title = {Solving {Boundary} {Value} {Problems} for {Ordinary} {Differential} {Equations} in {Matlab} with bvp4c author = {Shampine, Lawrence F and Kierzenka, Jacek and Reichelt, Mark W}, year = {2000}, }

@article{kierzenkabvp2008, title = {A {BVP} {Solver} that {Controls} {Residual} and {Error}}, author = {Kierzenka, J and Shampine, L F}, year = {2008}, }

@article{russelladaptive1978, title = {Adaptive {Mesh} {Selection} {Strategies} for {Solving} {Boundary} {Value} {Problems}}, journal = {SIAM Journal on Numerical Analysis}, author = {Russell, R. D. and Christiansen, J.}, year = {1978}, file = {Russell and Christiansen - 1978 - Adaptive Mesh Selection Strategies for Solving Bou.pdf:/Users/AXLRSN/Zotero/storage/HKU27A4T/Russell and Christiansen - 1978 - Adaptive Mesh Selection Strategies for Solving Bou.pdf:application/pdf}, } ```

source
BoundaryValueDiffEqFIRK.LobattoIIIb5Type
  LobattoIIIb5(; nlsolve = NewtonRaphson(), jac_alg = BVPJacobianAlgorithm(), nested_nlsolve = false, nest_tol = 0.0,
          defect_threshold = 0.1, max_num_subintervals = 3000)

5th stage LobattoIIIb method.

Keyword Arguments

  • nlsolve: Internal Nonlinear solver. Any solver which conforms to the SciML NonlinearProblem interface can be used. Note that any autodiff argument for the solver will be ignored and a custom jacobian algorithm will be used.
  • jac_alg: Jacobian Algorithm used for the nonlinear solver. Defaults to BVPJacobianAlgorithm(), which automatically decides the best algorithm to use based on the input types and problem type.
    • For TwoPointBVProblem, only diffmode is used (defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff)).
    • For BVProblem, bc_diffmode and nonbc_diffmode are used. For nonbc_diffmode defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff). For bc_diffmode, defaults to AutoForwardDiff if possible else AutoFiniteDiff.
  • nested_nlsolve: Whether or not to use a nested nonlinear solve for the

implicit FIRK step. Defaults to true. If set to false, the FIRK stages are solved as a part of the global residual. The general recommendation is to choose true for larger problems and false for smaller ones.

  • nest_tol: The tolerance for the nested solver. Default is nothing which leads to

NonlinearSolve automatically selecting the tolerance.

  • defect_threshold: Threshold for defect control.
  • max_num_subintervals: Number of maximal subintervals, default as 3000.
Note

For type-stability, the chunksizes for ForwardDiff ADTypes in BVPJacobianAlgorithm must be provided.

References

Reference for Lobatto and Radau methods: bibtex @Inbook{Jay2015, author="Jay, Laurent O.", editor="Engquist, Bj{"o}rn", title="Lobatto Methods", booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}}, year="2015", publisher="Springer Berlin Heidelberg", } @incollection{engquist_radau_2015, author = {Hairer, Ernst and Wanner, Gerhard}, title = {Radau {Methods}}, booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}}, publisher = {Springer Berlin Heidelberg}, editor="Engquist, Bj{"o}rn", year = {2015}, } References for implementation of defect control, based on the bvp5c solver in MATLAB: ```bibtex @article{shampinesolvingnodate, title = {Solving {Boundary} {Value} {Problems} for {Ordinary} {Differential} {Equations} in {Matlab} with bvp4c author = {Shampine, Lawrence F and Kierzenka, Jacek and Reichelt, Mark W}, year = {2000}, }

@article{kierzenkabvp2008, title = {A {BVP} {Solver} that {Controls} {Residual} and {Error}}, author = {Kierzenka, J and Shampine, L F}, year = {2008}, }

@article{russelladaptive1978, title = {Adaptive {Mesh} {Selection} {Strategies} for {Solving} {Boundary} {Value} {Problems}}, journal = {SIAM Journal on Numerical Analysis}, author = {Russell, R. D. and Christiansen, J.}, year = {1978}, file = {Russell and Christiansen - 1978 - Adaptive Mesh Selection Strategies for Solving Bou.pdf:/Users/AXLRSN/Zotero/storage/HKU27A4T/Russell and Christiansen - 1978 - Adaptive Mesh Selection Strategies for Solving Bou.pdf:application/pdf}, } ```

source
BoundaryValueDiffEqFIRK.LobattoIIIc2Type
  LobattoIIIc2(; nlsolve = NewtonRaphson(), jac_alg = BVPJacobianAlgorithm(), nested_nlsolve = false, nest_tol = 0.0,
          defect_threshold = 0.1, max_num_subintervals = 3000)

2th stage LobattoIIIc method.

Keyword Arguments

  • nlsolve: Internal Nonlinear solver. Any solver which conforms to the SciML NonlinearProblem interface can be used. Note that any autodiff argument for the solver will be ignored and a custom jacobian algorithm will be used.
  • jac_alg: Jacobian Algorithm used for the nonlinear solver. Defaults to BVPJacobianAlgorithm(), which automatically decides the best algorithm to use based on the input types and problem type.
    • For TwoPointBVProblem, only diffmode is used (defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff)).
    • For BVProblem, bc_diffmode and nonbc_diffmode are used. For nonbc_diffmode defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff). For bc_diffmode, defaults to AutoForwardDiff if possible else AutoFiniteDiff.
  • nested_nlsolve: Whether or not to use a nested nonlinear solve for the

implicit FIRK step. Defaults to true. If set to false, the FIRK stages are solved as a part of the global residual. The general recommendation is to choose true for larger problems and false for smaller ones.

  • nest_tol: The tolerance for the nested solver. Default is nothing which leads to

NonlinearSolve automatically selecting the tolerance.

  • defect_threshold: Threshold for defect control.
  • max_num_subintervals: Number of maximal subintervals, default as 3000.
Note

For type-stability, the chunksizes for ForwardDiff ADTypes in BVPJacobianAlgorithm must be provided.

References

Reference for Lobatto and Radau methods: bibtex @Inbook{Jay2015, author="Jay, Laurent O.", editor="Engquist, Bj{"o}rn", title="Lobatto Methods", booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}}, year="2015", publisher="Springer Berlin Heidelberg", } @incollection{engquist_radau_2015, author = {Hairer, Ernst and Wanner, Gerhard}, title = {Radau {Methods}}, booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}}, publisher = {Springer Berlin Heidelberg}, editor="Engquist, Bj{"o}rn", year = {2015}, } References for implementation of defect control, based on the bvp5c solver in MATLAB: ```bibtex @article{shampinesolvingnodate, title = {Solving {Boundary} {Value} {Problems} for {Ordinary} {Differential} {Equations} in {Matlab} with bvp4c author = {Shampine, Lawrence F and Kierzenka, Jacek and Reichelt, Mark W}, year = {2000}, }

@article{kierzenkabvp2008, title = {A {BVP} {Solver} that {Controls} {Residual} and {Error}}, author = {Kierzenka, J and Shampine, L F}, year = {2008}, }

@article{russelladaptive1978, title = {Adaptive {Mesh} {Selection} {Strategies} for {Solving} {Boundary} {Value} {Problems}}, journal = {SIAM Journal on Numerical Analysis}, author = {Russell, R. D. and Christiansen, J.}, year = {1978}, file = {Russell and Christiansen - 1978 - Adaptive Mesh Selection Strategies for Solving Bou.pdf:/Users/AXLRSN/Zotero/storage/HKU27A4T/Russell and Christiansen - 1978 - Adaptive Mesh Selection Strategies for Solving Bou.pdf:application/pdf}, } ```

source
BoundaryValueDiffEqFIRK.LobattoIIIc3Type
  LobattoIIIc3(; nlsolve = NewtonRaphson(), jac_alg = BVPJacobianAlgorithm(), nested_nlsolve = false, nest_tol = 0.0,
          defect_threshold = 0.1, max_num_subintervals = 3000)

3th stage LobattoIIIc method.

Keyword Arguments

  • nlsolve: Internal Nonlinear solver. Any solver which conforms to the SciML NonlinearProblem interface can be used. Note that any autodiff argument for the solver will be ignored and a custom jacobian algorithm will be used.
  • jac_alg: Jacobian Algorithm used for the nonlinear solver. Defaults to BVPJacobianAlgorithm(), which automatically decides the best algorithm to use based on the input types and problem type.
    • For TwoPointBVProblem, only diffmode is used (defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff)).
    • For BVProblem, bc_diffmode and nonbc_diffmode are used. For nonbc_diffmode defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff). For bc_diffmode, defaults to AutoForwardDiff if possible else AutoFiniteDiff.
  • nested_nlsolve: Whether or not to use a nested nonlinear solve for the

implicit FIRK step. Defaults to true. If set to false, the FIRK stages are solved as a part of the global residual. The general recommendation is to choose true for larger problems and false for smaller ones.

  • nest_tol: The tolerance for the nested solver. Default is nothing which leads to

NonlinearSolve automatically selecting the tolerance.

  • defect_threshold: Threshold for defect control.
  • max_num_subintervals: Number of maximal subintervals, default as 3000.
Note

For type-stability, the chunksizes for ForwardDiff ADTypes in BVPJacobianAlgorithm must be provided.

References

Reference for Lobatto and Radau methods: bibtex @Inbook{Jay2015, author="Jay, Laurent O.", editor="Engquist, Bj{"o}rn", title="Lobatto Methods", booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}}, year="2015", publisher="Springer Berlin Heidelberg", } @incollection{engquist_radau_2015, author = {Hairer, Ernst and Wanner, Gerhard}, title = {Radau {Methods}}, booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}}, publisher = {Springer Berlin Heidelberg}, editor="Engquist, Bj{"o}rn", year = {2015}, } References for implementation of defect control, based on the bvp5c solver in MATLAB: ```bibtex @article{shampinesolvingnodate, title = {Solving {Boundary} {Value} {Problems} for {Ordinary} {Differential} {Equations} in {Matlab} with bvp4c author = {Shampine, Lawrence F and Kierzenka, Jacek and Reichelt, Mark W}, year = {2000}, }

@article{kierzenkabvp2008, title = {A {BVP} {Solver} that {Controls} {Residual} and {Error}}, author = {Kierzenka, J and Shampine, L F}, year = {2008}, }

@article{russelladaptive1978, title = {Adaptive {Mesh} {Selection} {Strategies} for {Solving} {Boundary} {Value} {Problems}}, journal = {SIAM Journal on Numerical Analysis}, author = {Russell, R. D. and Christiansen, J.}, year = {1978}, file = {Russell and Christiansen - 1978 - Adaptive Mesh Selection Strategies for Solving Bou.pdf:/Users/AXLRSN/Zotero/storage/HKU27A4T/Russell and Christiansen - 1978 - Adaptive Mesh Selection Strategies for Solving Bou.pdf:application/pdf}, } ```

source
BoundaryValueDiffEqFIRK.LobattoIIIc4Type
  LobattoIIIc4(; nlsolve = NewtonRaphson(), jac_alg = BVPJacobianAlgorithm(), nested_nlsolve = false, nest_tol = 0.0,
          defect_threshold = 0.1, max_num_subintervals = 3000)

4th stage LobattoIIIc method.

Keyword Arguments

  • nlsolve: Internal Nonlinear solver. Any solver which conforms to the SciML NonlinearProblem interface can be used. Note that any autodiff argument for the solver will be ignored and a custom jacobian algorithm will be used.
  • jac_alg: Jacobian Algorithm used for the nonlinear solver. Defaults to BVPJacobianAlgorithm(), which automatically decides the best algorithm to use based on the input types and problem type.
    • For TwoPointBVProblem, only diffmode is used (defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff)).
    • For BVProblem, bc_diffmode and nonbc_diffmode are used. For nonbc_diffmode defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff). For bc_diffmode, defaults to AutoForwardDiff if possible else AutoFiniteDiff.
  • nested_nlsolve: Whether or not to use a nested nonlinear solve for the

implicit FIRK step. Defaults to true. If set to false, the FIRK stages are solved as a part of the global residual. The general recommendation is to choose true for larger problems and false for smaller ones.

  • nest_tol: The tolerance for the nested solver. Default is nothing which leads to

NonlinearSolve automatically selecting the tolerance.

  • defect_threshold: Threshold for defect control.
  • max_num_subintervals: Number of maximal subintervals, default as 3000.
Note

For type-stability, the chunksizes for ForwardDiff ADTypes in BVPJacobianAlgorithm must be provided.

References

Reference for Lobatto and Radau methods: bibtex @Inbook{Jay2015, author="Jay, Laurent O.", editor="Engquist, Bj{"o}rn", title="Lobatto Methods", booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}}, year="2015", publisher="Springer Berlin Heidelberg", } @incollection{engquist_radau_2015, author = {Hairer, Ernst and Wanner, Gerhard}, title = {Radau {Methods}}, booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}}, publisher = {Springer Berlin Heidelberg}, editor="Engquist, Bj{"o}rn", year = {2015}, } References for implementation of defect control, based on the bvp5c solver in MATLAB: ```bibtex @article{shampinesolvingnodate, title = {Solving {Boundary} {Value} {Problems} for {Ordinary} {Differential} {Equations} in {Matlab} with bvp4c author = {Shampine, Lawrence F and Kierzenka, Jacek and Reichelt, Mark W}, year = {2000}, }

@article{kierzenkabvp2008, title = {A {BVP} {Solver} that {Controls} {Residual} and {Error}}, author = {Kierzenka, J and Shampine, L F}, year = {2008}, }

@article{russelladaptive1978, title = {Adaptive {Mesh} {Selection} {Strategies} for {Solving} {Boundary} {Value} {Problems}}, journal = {SIAM Journal on Numerical Analysis}, author = {Russell, R. D. and Christiansen, J.}, year = {1978}, file = {Russell and Christiansen - 1978 - Adaptive Mesh Selection Strategies for Solving Bou.pdf:/Users/AXLRSN/Zotero/storage/HKU27A4T/Russell and Christiansen - 1978 - Adaptive Mesh Selection Strategies for Solving Bou.pdf:application/pdf}, } ```

source
BoundaryValueDiffEqFIRK.LobattoIIIc5Type
  LobattoIIIc5(; nlsolve = NewtonRaphson(), jac_alg = BVPJacobianAlgorithm(), nested_nlsolve = false, nest_tol = 0.0,
          defect_threshold = 0.1, max_num_subintervals = 3000)

5th stage LobattoIIIc method.

Keyword Arguments

  • nlsolve: Internal Nonlinear solver. Any solver which conforms to the SciML NonlinearProblem interface can be used. Note that any autodiff argument for the solver will be ignored and a custom jacobian algorithm will be used.
  • jac_alg: Jacobian Algorithm used for the nonlinear solver. Defaults to BVPJacobianAlgorithm(), which automatically decides the best algorithm to use based on the input types and problem type.
    • For TwoPointBVProblem, only diffmode is used (defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff)).
    • For BVProblem, bc_diffmode and nonbc_diffmode are used. For nonbc_diffmode defaults to AutoSparse(AutoForwardDiff) if possible else AutoSparse(AutoFiniteDiff). For bc_diffmode, defaults to AutoForwardDiff if possible else AutoFiniteDiff.
  • nested_nlsolve: Whether or not to use a nested nonlinear solve for the

implicit FIRK step. Defaults to true. If set to false, the FIRK stages are solved as a part of the global residual. The general recommendation is to choose true for larger problems and false for smaller ones.

  • nest_tol: The tolerance for the nested solver. Default is nothing which leads to

NonlinearSolve automatically selecting the tolerance.

  • defect_threshold: Threshold for defect control.
  • max_num_subintervals: Number of maximal subintervals, default as 3000.
Note

For type-stability, the chunksizes for ForwardDiff ADTypes in BVPJacobianAlgorithm must be provided.

References

Reference for Lobatto and Radau methods: bibtex @Inbook{Jay2015, author="Jay, Laurent O.", editor="Engquist, Bj{"o}rn", title="Lobatto Methods", booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}}, year="2015", publisher="Springer Berlin Heidelberg", } @incollection{engquist_radau_2015, author = {Hairer, Ernst and Wanner, Gerhard}, title = {Radau {Methods}}, booktitle = {Encyclopedia of {Applied} and {Computational} {Mathematics}}, publisher = {Springer Berlin Heidelberg}, editor="Engquist, Bj{"o}rn", year = {2015}, } References for implementation of defect control, based on the bvp5c solver in MATLAB: ```bibtex @article{shampinesolvingnodate, title = {Solving {Boundary} {Value} {Problems} for {Ordinary} {Differential} {Equations} in {Matlab} with bvp4c author = {Shampine, Lawrence F and Kierzenka, Jacek and Reichelt, Mark W}, year = {2000}, }

@article{kierzenkabvp2008, title = {A {BVP} {Solver} that {Controls} {Residual} and {Error}}, author = {Kierzenka, J and Shampine, L F}, year = {2008}, }

@article{russelladaptive1978, title = {Adaptive {Mesh} {Selection} {Strategies} for {Solving} {Boundary} {Value} {Problems}}, journal = {SIAM Journal on Numerical Analysis}, author = {Russell, R. D. and Christiansen, J.}, year = {1978}, file = {Russell and Christiansen - 1978 - Adaptive Mesh Selection Strategies for Solving Bou.pdf:/Users/AXLRSN/Zotero/storage/HKU27A4T/Russell and Christiansen - 1978 - Adaptive Mesh Selection Strategies for Solving Bou.pdf:application/pdf}, } ```

source