Skip to content

Commit d571ca6

Browse files
Anas_AbdelrehimChrisRackauckas
Anas_Abdelrehim
authored andcommitted
long docstring for cvode_adams + ida
1 parent 8c42d17 commit d571ca6

File tree

1 file changed

+29
-1
lines changed

1 file changed

+29
-1
lines changed

src/common_interface/algorithms.jl

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,21 @@ Base.@pure function CVODE_BDF(;
9393
end
9494
"""
9595
CVODE_Adams: CVode Adams-Moulton solver.
96+
97+
method - This is the method for solving the implicit equation. For BDF this defaults to :Newton while for Adams this defaults to :Functional. These choices match the recommended pairing in the Sundials.jl manual. However, note that using the :Newton method may take less iterations but requires more memory than the :Function iteration approach.
98+
linear_solver - This is the linear solver which is used in the :Newton method.
99+
The choices for the linear solver are:
100+
101+
:Dense - A dense linear solver.
102+
:Band - A solver specialized for banded Jacobians. If used, you must set the position of the upper and lower non-zero diagonals via jac_upper and jac_lower.
103+
:LapackDense - A version of the dense linear solver that uses the Julia-provided OpenBLAS-linked LAPACK for multithreaded operations. This will be faster than :Dense on larger systems but has noticable overhead on smaller (<100 ODE) systems.
104+
:LapackBand - A version of the banded linear solver that uses the Julia-provided OpenBLAS-linked LAPACK for multithreaded operations. This will be faster than :Band on larger systems but has noticable overhead on smaller (<100 ODE) systems.
105+
:Diagonal - This method is specialized for diagonal Jacobians.
106+
:GMRES - A GMRES method. Recommended first choice Krylov method
107+
:BCG - A Biconjugate gradient method.
108+
:PCG - A preconditioned conjugate gradient method. Only for symmetric linear systems.
109+
:TFQMR - A TFQMR method.
110+
:KLU - A sparse factorization method. Requires that the user specifies a Jacobian. The Jacobian must be set as a sparse matrix in the ODEProblem type.
96111
"""
97112
struct CVODE_Adams{Method, LinearSolver, P, PS} <:
98113
SundialsODEAlgorithm{Method, LinearSolver}
@@ -338,7 +353,20 @@ end
338353

339354
# DAE Algorithms
340355
"""
341-
IDA: Newton + Dense solver
356+
IDA: This is the IDA method from the Sundials.jl package.
357+
358+
Note that the constructors for the Sundials algorithms take a main argument:
359+
linearsolver - This is the linear solver which is used in the Newton iterations. The choices are:
360+
361+
:Dense - A dense linear solver.
362+
:Band - A solver specialized for banded Jacobians. If used, you must set the position of the upper and lower non-zero diagonals via jac_upper and jac_lower.
363+
:LapackDense - A version of the dense linear solver that uses the Julia-provided OpenBLAS-linked LAPACK for multithreaded operations. This will be faster than :Dense on larger systems but has noticable overhead on smaller (<100 ODE) systems.
364+
:LapackBand - A version of the banded linear solver that uses the Julia-provided OpenBLAS-linked LAPACK for multithreaded operations. This will be faster than :Band on larger systems but has noticable overhead on smaller (<100 ODE) systems.
365+
:GMRES - A GMRES method. Recommended first choice Krylov method
366+
:BCG - A Biconjugate gradient method.
367+
:PCG - A preconditioned conjugate gradient method. Only for symmetric linear systems.
368+
:TFQMR - A TFQMR method.
369+
:KLU - A sparse factorization method. Requires that the user specifies a Jacobian. The Jacobian must be set as a sparse matrix in the ODEProblem type.
342370
"""
343371
struct IDA{LinearSolver, P, PS} <: SundialsDAEAlgorithm{LinearSolver}
344372
jac_upper::Int

0 commit comments

Comments
 (0)