module Nvector_mpimany:sig
..end
The standard mpimany-vector nvectors of Sundials.
typedata =
Nvector.any Sundials.ROArray.t * Mpi.communicator * int
The data in underlying nvectors is exposed as an array of wrapped values together with an MPI communicator and the sum of their lengths.
type
kind
Represents the internal layout of an mpimany-vector nvector.
typet =
(data, kind) Nvector.t
The type of mpimany-vector nvectors.
type
Nvector.gdata +=
| |
MpiMany of |
Generic wrapper for Nvector_mpimany.data
.
val wrap : ?context:Sundials.Context.t ->
?with_fused_ops:bool ->
?comm:Mpi.communicator -> Nvector.any Sundials.ROArray.t -> t
Creates a mpimany-vector nvector from an array of generic nvectors. If the communicator argument is not given then all nvectors in the array that have a communicator must have the same communicator which becomes the communicator of the new nvector (at least one element must have a communicator). If the communicator argument is given, each array element may use any or no communicator.
An optional argument permits to enable all the fused and array operations for a given nvector (they are disabled by default).
Invalid_arg
if an mpi communicator is not specified or found.val unwrap : t -> data
Aliases Nvector.unwrap
.
val length : t -> int
Returns the sum of the lengths of the component nvectors.
val num_subvectors : t -> int
Returns the number of subectors in the array.
val communicator : t -> Mpi.communicator
Returns the communicator used for the nvector.
See also: Nvector_parallel.get_communicator
and
Nvector_parallel.hide_communicator
.
val enable : ?with_fused_ops:bool ->
?with_linear_combination:bool ->
?with_scale_add_multi:bool ->
?with_dot_prod_multi:bool ->
?with_linear_sum_vector_array:bool ->
?with_scale_vector_array:bool ->
?with_const_vector_array:bool ->
?with_wrms_norm_vector_array:bool ->
?with_wrms_norm_mask_vector_array:bool ->
?with_dot_prod_multi_local:bool -> t -> unit
Selectively enable or disable fused and array operations.
The with_fused_ops
argument enables or disables all such operations.
module Ops:Nvector.NVECTOR_OPS
with type t = t
Underlying nvector operations on mpimany-vector nvectors.
module DataOps:Nvector.NVECTOR_OPS
with type t = data
Nvector operations implemented in OCaml on mpimany-vector payloads.
module Any:sig
..end
A generic nvector interface to mpimany-vector nvectors.