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, const 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... 
 | 
|  | 
| void | cs_rank_neighbors_sync_count_m (const cs_rank_neighbors_t *n_send, cs_rank_neighbors_t **n_recv, const cs_lnum_t *send_count, cs_lnum_t **recv_count, cs_rank_neighbors_exchange_t exchange_type, MPI_Comm comm) | 
|  | Exchange send and receive counts for rank neighborhoods, using a given method.  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_sync_count_m()
Exchange send and receive counts for rank neighborhoods, using a given method. 
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] | exchange_type | exchange type |  | [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, | 
        
          |  |  | const 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[] |  | extern |