This modules defines MPI exchange routines of scalar, vector or tensor. The call to mpi_exchange is generic whatever the type of data exchanged:
- a scalar can be defined on cells or one of the staggered grid. A scalar can be a double precision, an integer or a logical. The mpi_exchange data associated to the same grid on which is defined the scalar is the second argument of the routine. Example:
call mpi_exchange(pressure)
- a double precision vector of scalars can also be exchanged (4 dimension array).
- for a vector defined on faces, 2 routines exists, depending if the nodes of the faces common to 2 processors are exchanged or not:
- call mpi_exchange(velocity): the values on overlapping faces are not exchanged, mpi_face_[uvw] exchange data are used by default
- call mpi_exchange(velocity, mpi_face_u2, mpi_face_v2, mpi_face_w2): the values on overlapping faces are exchanged.
- a tensor type can be exchanged