Module Nvector_mpiplusx

module Nvector_mpiplusx: sig .. end

The standard mpiplusx nvectors of Sundials. They couple an nvector with an mpi communicator.

type data = 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.

type t = (data, kind) Nvector.t 

The type of mpiplusx nvectors.

type Nvector.gdata += 
| MpiPlusX of data

Generic wrapper for

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.