Module Cvode.Spils.Banded

module Banded: sig .. end

Banded preconditioners.


type bandrange = {
   mupper : int; (*

The upper half-bandwidth.

*)
   mlower : int; (*

The lower half-bandwidth.

*)
}

The range of nonzero entries in a band matrix.

val prec_left : bandrange ->
(Nvector_serial.data, [> Nvector_serial.kind ]) Cvode.Spils.preconditioner

A band matrix Cvode.Spils.preconditioner based on difference quotients. The call prec_left br instantiates a left preconditioner which generates a banded approximation to the Jacobian with br.mlower sub-diagonals and br.mupper super-diagonals.

val prec_right : bandrange ->
(Nvector_serial.data, [> Nvector_serial.kind ]) Cvode.Spils.preconditioner

Like Cvode.Spils.Banded.prec_left but preconditions from the right.

val prec_both : bandrange ->
(Nvector_serial.data, [> Nvector_serial.kind ]) Cvode.Spils.preconditioner

Like Cvode.Spils.Banded.prec_left but preconditions from both sides.

Banded statistics
val get_work_space : [> Nvector_serial.kind ] Cvode.serial_session -> int * int

Returns the sizes of the real and integer workspaces used by the banded preconditioner module.

val get_num_rhs_evals : [> Nvector_serial.kind ] Cvode.serial_session -> int

Returns the number of calls to the right-hand side callback for the difference banded Jacobian approximation. This counter is only updated if the default difference quotient function is used.