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 -> tCreates 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 -> dataAliases Nvector.unwrap.
val length : t -> intReturns the sum of the lengths of the component nvectors.
val num_subvectors : t -> intReturns the number of subectors in the array.
val communicator : t -> Mpi.communicatorReturns 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 -> unitSelectively enable or disable fused and array operations.
The with_fused_ops argument enables or disables all such operations.
module Ops:Nvector.NVECTOR_OPSwith type t = t
Underlying nvector operations on mpimany-vector nvectors.
module DataOps:Nvector.NVECTOR_OPSwith type t = data
Nvector operations implemented in OCaml on mpimany-vector payloads.
module Any:sig..end
A generic nvector interface to mpimany-vector nvectors.