module Banded:sig
..end
Banded preconditioners.
type
bandrange = {
|
mupper : |
(* | The upper half-bandwidth. | *) |
|
mlower : |
(* | The lower half-bandwidth. | *) |
}
The range of nonzero entries in a band matrix.
val prec_left : bandrange ->
(Nvector_serial.data, [> Nvector_serial.kind ], 's)
Arkode.Spils.preconditioner
A band matrix Arkode.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.
NB: Banded preconditioners may not be used for problems involving a non-identity mass matrix.
val prec_right : bandrange ->
(Nvector_serial.data, [> Nvector_serial.kind ], 's)
Arkode.Spils.preconditioner
Like Arkode.Spils.Banded.prec_left
but preconditions from the right.
val prec_both : bandrange ->
(Nvector_serial.data, [> Nvector_serial.kind ], 's)
Arkode.Spils.preconditioner
Like Arkode.Spils.Banded.prec_left
but preconditions from both sides.
type([> Nvector_serial.kind ], [< `ARKStep | `MRIStep ])
serial_session =(Nvector_serial.data, [> Nvector_serial.kind ] as 'a,
[< `ARKStep | `MRIStep ] as 'b)
session
Alias for sessions based on serial nvectors.
val get_work_space : ([> Nvector_serial.kind ], [< `ARKStep | `MRIStep ])
serial_session -> int * int
Returns the sizes of the real and integer workspaces used by the banded preconditioner module.
real_size
, integer_size
)val get_num_rhs_evals : ([> Nvector_serial.kind ], [< `ARKStep | `MRIStep ])
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.