module Nvector_mpiplusx:sig
..end
The standard mpiplusx nvectors of Sundials. They couple an nvector with an mpi communicator.
typedata =
Nvector.any * Mpi.communicator
The data in underlying nvectors is exposed as an array of wrapped values together with an MPI communicator.
type
kind
Represents the internal layout of an mpiplusx nvector.
typet =
(data, kind) Nvector.t
The type of mpiplusx nvectors.
type
Nvector.gdata +=
| |
MpiPlusX of |
Generic wrapper for Nvector_mpiplusx.data
.
val wrap : ?context:Sundials.Context.t ->
?with_fused_ops:bool -> Mpi.communicator -> Nvector.any -> t
Creates an mpiplusx nvector from an mpi communicator and a generic nvector.
An optional argument permits to enable all the fused and array operations for a given nvector (they are disabled by default).
val unwrap : t -> data
Aliases Nvector.unwrap
.
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 -> 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 mpiplusx nvectors.
module DataOps:Nvector.NVECTOR_OPS
with type t = data
Nvector operations implemented in OCaml on mpiplusx payloads.
module Any:sig
..end
A generic nvector interface to mpiplusx nvectors.