Module Arkode.MRIStep.Dls

module Dls: sig .. end

Direct Linear Solvers operating on dense, banded, and sparse matrices.


include Sundials_LinearSolver.Direct
include Arkode.Dls
val solver : ?jac:'m jac_fn ->
?linsys:'m linsys_fn ->
('m, Sundials.RealArray.t, [> Nvector_serial.kind ] as 'a, [> `Dls ])
Sundials.LinearSolver.t -> 'a Arkode.MRIStep.serial_linear_solver

Create an MRIStep-specific linear solver from a Jacobian approximation function and a generic direct linear solver. The Jacobian approximation function is optional for dense and banded solvers (if not given an internal difference quotient approximation is used), but must be provided for other solvers (or Invalid_argument is raised).

Solver statistics

val get_work_space : [> Nvector_serial.kind ] Arkode.MRIStep.serial_session -> int * int

Returns the sizes of the real and integer workspaces used by a direct linear solver.

val get_num_jac_evals : [> Nvector_serial.kind ] Arkode.MRIStep.serial_session -> int

Returns the number of calls made by a direct linear solver to the Jacobian approximation function.

val get_num_lin_rhs_evals : [> Nvector_serial.kind ] Arkode.MRIStep.serial_session -> int

Returns the number of calls to the right-hand side callback due to the finite difference Jacobian approximation.