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_t
Creates 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_t
Creates 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_t
Creates 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_t
Creates 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_t
Creates 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_t
Creates 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.