Module Nvector_parallel

module Nvector_parallel: sig .. end
The standard parallel nvectors of Sundials (requires MPI).
Author(s): Timothy Bourke (Inria/ENS), Jun Inoue (Inria/ENS), Marc Pouzet (UPMC/ENS/Inria)
Version: 2.7.0

type data = Sundials.RealArray.t * int * Mpi.communicator 
Parallel nvectors carry triples of a local bigarray of floats, a global length, and an MPI communicator.
type kind 
Represents the internal layout of a parallel nvector.
type t = (data, kind) Nvector.t 
The type of parallel nvectors.
exception IncorrectGlobalSize
Raised by make if the given global length is not consistent with the sum of local lengths across all parallel instances.
val make : int -> int -> Mpi.communicator -> float -> t
make nl ng c iv creates a new parallel nvector with nl local elements, that is part of a global array with ng elements. The local elements are initialized to iv, and communications occur on c.
val clone : t -> t
Creates an nvector with a distinct underlying array but that shares the original global size and communicator.
val unwrap : t -> data
Aliases Nvector.unwrap.
val pp : Format.formatter -> t -> unit
Pretty-print the local portion of a parallel nvector using the Format module.
val local_array : t -> Sundials.RealArray.t
local_array nv returns the local array a underlying the parallel nvector nv.
val local_length : t -> int
Returns the number of local elements for a parallel nvector.
val global_length : t -> int
Returns the number of global elements for a parallel nvector.
val communicator : t -> Mpi.communicator
Returns the communicator used for the parallel nvector.
module MakeOps (A : sig
type local_data 
val get : local_data -> int -> float
val set : local_data -> int -> float -> unit
val fill : local_data -> float -> unit
val make : int -> float -> local_data
val clone : local_data -> local_data
val length : local_data -> int
end) : Nvector.NVECTOR_OPS with type t = A.local_data * int * Mpi.communicator
Produce a set of parallel Nvector.NVECTOR_OPS from basic operations on an underlying array.
module Ops: Nvector.NVECTOR_OPS  with type t = t
Underlying nvector operations on parallel nvectors.
module DataOps: Nvector.NVECTOR_OPS  with type t = data
Nvector operations on implemented in OCaml.