module Direct:sig..end
Direct Linear Solvers
Definitions in this module are more conveniently accessed
through session-specific direct linear solver modules like
Cvode.Dls and Ida.Dls. For example, Cvode.Dls.dense is
an alias for Sundials_LinearSolver.Direct.dense.
val dense : ?context:Sundials.Context.t ->
([> Nvector_serial.kind ] as 'a) Nvector.serial ->
'a Sundials.Matrix.dense ->
(Sundials.Matrix.Dense.t, 'a, [ `Dls ]) Sundials_LinearSolver.serial_tCreates a direct linear solver on dense matrices. The nvector and matrix argument are used to determine the linear system size and to assess compatibility with the linear solver implementation. The matrix is used internally after the linear solver is attached to a session.
val lapack_dense : ?context:Sundials.Context.t ->
([> Nvector_serial.kind ] as 'a) Nvector.serial ->
'a Sundials.Matrix.dense ->
(Sundials.Matrix.Dense.t, 'a, [ `Dls ]) Sundials_LinearSolver.serial_tCreates a direct linear solver on dense matrices using LAPACK.
See Sundials_LinearSolver.Direct.dense. Only available if
Config.lapack_enabled.
val band : ?context:Sundials.Context.t ->
([> Nvector_serial.kind ] as 'a) Nvector.serial ->
'a Sundials.Matrix.band ->
(Sundials.Matrix.Band.t, 'a, [ `Dls ]) Sundials_LinearSolver.serial_tCreates a direct linear solver on banded matrices. The nvector and matrix argument are used to determine the linear system size and to assess compatibility with the linear solver implementation. The matrix is used internally after the linear solver is attached to a session.
val lapack_band : ?context:Sundials.Context.t ->
([> Nvector_serial.kind ] as 'a) Nvector.serial ->
'a Sundials.Matrix.band ->
(Sundials.Matrix.Band.t, 'a, [ `Dls ]) Sundials_LinearSolver.serial_tCreates a direct linear solver on banded matrices using LAPACK.
See Sundials_LinearSolver.Direct.band.
Only available if Config.lapack_enabled.
module Klu:sig..end
KLU direct linear solver operating on sparse matrices (requires KLU).
val klu : ?context:Sundials.Context.t ->
?ordering:Klu.ordering ->
([> Nvector_serial.kind ] as 'a) Nvector.serial ->
('s, 'a) Sundials.Matrix.sparse ->
('s Sundials.Matrix.Sparse.t, 'a, [ `Dls | `Klu ])
Sundials_LinearSolver.serial_tCreates a direct linear solver on sparse matrices using KLU.
See Sundials_LinearSolver.Direct.Klu.make.
Config.NotImplementedBySundialsVersion Solver not available.module Superlumt:sig..end
SuperLUMT direct linear solver operating on sparse matrices (requires SuperLUMT).
val superlumt : ?context:Sundials.Context.t ->
?ordering:Superlumt.ordering ->
nthreads:int ->
([> Nvector_serial.kind ] as 'a) Nvector.serial ->
('s, 'a) Sundials.Matrix.sparse ->
('s Sundials.Matrix.Sparse.t, 'a, [> `Dls | `Slu ])
Sundials_LinearSolver.serial_tCreates a direct linear solver on sparse matrices using SuperLUMT.
See Sundials_LinearSolver.Direct.Superlumt.make.
NB: The Matrix.Sparse.csr format is only supported for Config.sundials_version >= 3.0.0.
Config.NotImplementedBySundialsVersion Solver not available.