Cartcomm
Date: 2014-05-09

mpi

## Class Cartcomm

- java.lang.Object
- - mpi.Comm
  - - mpi.Intracomm
    - - mpi.Cartcomm

-     public class Cartcomm
      extends Intracomm

- - ### Field Summary

    - ### Fields inherited from class mpi.Comm

      `group, mpjdevComm`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Object` | `clone()` Clone the communicator This method will be called only by intracommunicator ....
    `int[]` | `Coords(int rank)` Translate process rank to logical process coordinates.
    `static void` | `Dims_create(int nnodes, int[] dims)` Select a balanced distribution of processes per coordinate direction.
    `CartParms` | `Get()` Returns Cartesian topology information.
    `int` | `Map(int[] dims, boolean[] periods)` Compute an optimal placement.
    `int` | `Rank(int[] coords)` Translate logical process coordinates to process rank.
    `ShiftParms` | `Shift(int direction, int disp)` Compute source and destination ranks for ``shift'' communication.
    `Cartcomm` | `Sub(boolean[] remain_dims)` Partition Cartesian communicator into subgroups of lower dimension.
    `int` | `Topo_test()` Returns the type of topology associated with the communicator.

    - ### Methods inherited from class mpi.Intracomm

      `Allgather, Allgatherv, Allreduce, Alltoall, Alltoallv, Barrier, Bcast, Compare, Create_cart, Create_graph, Create, Gather, Gatherv, Reduce_scatter, Reduce, Scan, Scatter, Scatterv, Split`

    - ### Methods inherited from class mpi.Comm

      `Abort, Attr_delete, Attr_get, Bsend_init, Bsend, bsend, Create_intercomm, Free, Group, Ibsend, ibsend, Iprobe, Irecv, irecv, Irsend, irsend, Isend, isend, Issend, issend, Pack_size, Pack, Probe, Rank, Recv_init, Recv, recv, Rsend_init, Rsend, rsend, Send_init, Send, send, Sendrecv_replace, sendrecv, Sendrecv, Size, Ssend_init, Ssend, ssend, Test_inter, Unpack`

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### clone

          public java.lang.Object clone()
                                 throws MPIException

      Description copied from class: `Intracomm`
      Clone the communicator This method will be called only by intracommunicator .... changed the return value to Intracomm ...(instead of Object) ...
      Overrides:
        `clone` in class `Intracomm`
      Throws:
        `MPIException`

    - #### Rank

          public int Rank(int[] coords)
                   throws MPIException

      Translate logical process coordinates to process rank.

      `coords` | Cartesian coordinates of a process
      returns: | rank of the specified process

      Java binding of the MPI operation `MPI_CART_RANK`.

      Throws:
        `MPIException`

    - #### Coords

          public int[] Coords(int rank)
                       throws MPIException

      Translate process rank to logical process coordinates.

      `rank` | rank of a process
      returns: | Cartesian coordinates of the specified process

      Java binding of the MPI operation `MPI_CART_COORDS`.

      Throws:
        `MPIException`

    - #### Shift

          public ShiftParms Shift(int direction,
                         int disp)
                           throws MPIException

      Compute source and destination ranks for ``shift'' communication.

      `direction` | coordinate dimension of shift
      `disp` | displacement
      returns: | object containing ranks of source and destination processes

      Java binding of the MPI operation `MPI_CART_SHIFT`.

      Throws:
        `MPIException`

    - #### Sub

          public Cartcomm Sub(boolean[] remain_dims)
                       throws MPIException

      Partition Cartesian communicator into subgroups of lower dimension.

      `remain_dims` | by dimension, `true` if dimension is to be kept, `false` otherwise
      returns: | communicator containing subgrid including this process

      Java binding of the MPI operation `MPI_CART_SUB`.

      Throws:
        `MPIException`

    - #### Map

          public int Map(int[] dims,
                boolean[] periods)
                  throws MPIException

      Compute an optimal placement.

      `dims` | the number of processes in each dimension
      `periods` | `true` if grid is periodic, `false` if not, in each dimension
      returns: | reordered rank of calling process

      Java binding of the MPI operation `MPI_CART_MAP`.

      The number of dimensions is taken to be size of the `dims` argument.

      Throws:
        `MPIException`

    - #### Get

          public CartParms Get()
                        throws MPIException

      Returns Cartesian topology information.

      returns: | object containing dimensions, periods and local coordinates

      Java binding of the MPI operations `MPI_CARTDIM_GET` and `MPI_CART_GET`.

      The number of dimensions can be obtained from the size of (eg) `dims` field of the returned object.

      Throws:
        `MPIException`

    - #### Topo_test

          public int Topo_test()
                        throws MPIException

      Description copied from class: `Comm`
      Returns the type of topology associated with the communicator.

      returns: | topology type of communicator

      Java binding of the MPI operation `MPI_TOPO_TEST`.

      The return value will be one of `MPI.GRAPH`, `MPI.CART` or `MPI.UNDEFINED`.

      Overrides:
        `Topo_test` in class `Comm`
      Throws:
        `MPIException`

    - #### Dims_create

          public static void Dims_create(int nnodes,
                         int[] dims)
                                  throws MPIException

      Select a balanced distribution of processes per coordinate direction.

      `nnodes` | number of nodes in a grid
      `ndims` | number of dimensions of grid
      `dims` | array specifying the number of nodes in each dimension

      Java binding of the MPI operation `MPI_DIMS_CREATE`.

      Size `dims` should be `ndims`. Note that `dims` is an inout parameter.

      Throws:
        `MPIException`