def METHOD_NAME( mesh ):
    send_types = {}
    recv_types = {}
    for direction in range(2):
        for disp in [-1,1]:
            info = mesh.get_shift_info( direction, disp )
            send_types[direction,disp] = MPI.DOUBLE.Create_subarray(
                sizes    = u.shape,
                subsizes = info[ 'buf_shape' ],
                starts   = info['send_starts'],
            ).Commit()
            recv_types[direction,disp] = MPI.DOUBLE.Create_subarray(
                sizes    = u.shape,
                subsizes = info[ 'buf_shape' ],
                starts   = info['recv_starts'],
            ).Commit()
    return send_types, recv_types