#include <mpi.h>
#include "cs_defs.h"
#include "cs_block_dist.h"
 
Go to the source code of this file.
 | 
| cs_rank_neighbors_t *  | cs_rank_neighbors_create (size_t n_elts, const int elt_rank[]) | 
|   | Create a rank neighbors structure base on a list of element ranks.  More...
  | 
|   | 
| void  | cs_rank_neighbors_destroy (cs_rank_neighbors_t **n) | 
|   | Destroy a rank neighborhood structure.  More...
  | 
|   | 
| void  | cs_rank_neighbors_to_index (const cs_rank_neighbors_t *n, size_t n_elts, int *elt_rank, int *elt_rank_index) | 
|   | Given a list of element ranks, determine the associated element rank indexes in a rank neighborhood structure.  More...
  | 
|   | 
| void  | cs_rank_neighbors_symmetrize (cs_rank_neighbors_t *n, MPI_Comm comm) | 
|   | Symmetrize a rank neighborhood structure.  More...
  | 
|   | 
| void  | cs_rank_neighbors_count (const cs_rank_neighbors_t *n, size_t n_elts, const int *elt_rank_index, cs_lnum_t *elt_rank_count) | 
|   | Given a list of element rank indexes, count occurences for a rank neighborhood structure.  More...
  | 
|   | 
| void  | cs_rank_neighbors_sync_count (const cs_rank_neighbors_t *n_send, cs_rank_neighbors_t **n_recv, const cs_lnum_t *send_count, cs_lnum_t **recv_count, MPI_Comm comm) | 
|   | Exchange send and receive counts for rank neighborhoods.  More...
  | 
|   | 
| cs_rank_neighbors_exchange_t  | cs_rank_neighbors_get_exchange_type (void) | 
|   | Get current type of rank neighbors collective algorithm choice.  More...
  | 
|   | 
| void  | cs_rank_neighbors_set_exchange_type (cs_rank_neighbors_exchange_t t) | 
|   | Set current type of rank neighbors collective algorithm choice.  More...
  | 
|   | 
◆ cs_rank_neighbors_exchange_t
| Enumerator | 
|---|
| CS_RANK_NEIGHBORS_PEX  |  | 
| CS_RANK_NEIGHBORS_NBX  |  | 
| CS_RANK_NEIGHBORS_CRYSTAL_ROUTER  |  | 
 
 
◆ cs_rank_neighbors_count()
Given a list of element rank indexes, count occurences for a rank neighborhood structure. 
- Parameters
 - 
  
    | [in] | n | pointer to rank neighborhood structure  | 
    | [in] | n_elts | number of elements  | 
    | [in] | elt_rank_index | element rank index in neighborhood (size: n_elts)  | 
    | [out] | elt_rank_count | element rank count in neighborhood (size: n->size)  | 
  
   
 
 
◆ cs_rank_neighbors_create()
Create a rank neighbors structure base on a list of element ranks. 
- Parameters
 - 
  
    | [in] | n_elts | number of elements  | 
    | [in] | elt_rank | element rank | 
  
   
- Returns
 - pointer to new rank neighborhood.
 
- Parameters
 - 
  
    | [in] | n_elts | number of elements  | 
    | [in] | elt_rank | element rank in | 
  
   
- Returns
 - pointer to new rank neighborhood. 
 
 
 
◆ cs_rank_neighbors_destroy()
Destroy a rank neighborhood structure. 
- Parameters
 - 
  
    | [in,out] | n | pointer to associated rank neighborhood  | 
  
   
 
 
◆ cs_rank_neighbors_get_exchange_type()
Get current type of rank neighbors collective algorithm choice. 
- Returns
 - current type of rank neighbors collective algorithm choice 
 
 
 
◆ cs_rank_neighbors_set_exchange_type()
Set current type of rank neighbors collective algorithm choice. 
- Parameters
 - 
  
    | t | type of rank neighbors collective algorithm choice  | 
  
   
 
 
◆ cs_rank_neighbors_symmetrize()
Symmetrize a rank neighborhood structure. 
This is a collective operation ,which ensures that if rank i has j among its neighbors, then j will also jave i among its neighbors.
- Parameters
 - 
  
    | [in,out] | n | pointer to rank neighborhood structure  | 
    | [in] | comm | associated communicator  | 
  
   
 
 
◆ cs_rank_neighbors_sync_count()
Exchange send and receive counts for rank neighborhoods. 
This allocates the n_recv ranks neighborhood structure and the recv_count counts array, which the caller is responsible for freeing.
- Parameters
 - 
  
    | [in] | n_send | pointer to rank neighborhood used for sending  | 
    | [out] | n_recv | pointer to rank neighborhood used for receiving  | 
    | [in] | send_count | pointer to rank neighborhood used for sending  | 
    | [in] | recv_count | pointer to rank neighborhood used for sending  | 
    | [in] | comm | associated communicator  | 
  
   
 
 
◆ cs_rank_neighbors_to_index()
      
        
          | void cs_rank_neighbors_to_index  | 
          ( | 
          const cs_rank_neighbors_t *  | 
          n,  | 
        
        
           | 
           | 
          size_t  | 
          n_elts,  | 
        
        
           | 
           | 
          int *  | 
          elt_rank,  | 
        
        
           | 
           | 
          int *  | 
          elt_rank_index  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Given a list of element ranks, determine the associated element rank indexes in a rank neighborhood structure. 
The elt_rank and elt_rank_index may be identical, in which case it is updated.
- Parameters
 - 
  
    | [in] | n | pointer to rank neighborhood structure  | 
    | [in] | n_elts | number of elements  | 
    | [in] | elt_rank | element rank (size: n_elts)  | 
    | [out] | elt_rank_index | element rank index in neighborhood (size: n_elts)  | 
  
   
 
 
◆ cs_rank_neighbors_exchange_name
      
        
          | const char* cs_rank_neighbors_exchange_name[] |