My Project
programmer's documentation
|
Go to the source code of this file.
Enumerations | |
enum | cs_renumber_cells_type_t { CS_RENUMBER_CELLS_SCOTCH_PART, CS_RENUMBER_CELLS_SCOTCH_ORDER, CS_RENUMBER_CELLS_METIS_PART, CS_RENUMBER_CELLS_METIS_ORDER, CS_RENUMBER_CELLS_MORTON, CS_RENUMBER_CELLS_HILBERT, CS_RENUMBER_CELLS_RCM, CS_RENUMBER_CELLS_NONE } |
Cell renumbering algorithm types. More... | |
enum | cs_renumber_i_faces_type_t { CS_RENUMBER_I_FACES_BLOCK, CS_RENUMBER_I_FACES_MULTIPASS, CS_RENUMBER_I_FACES_SIMD, CS_RENUMBER_I_FACES_NONE } |
Interior faces renumbering algorithm types. More... | |
enum | cs_renumber_b_faces_type_t { CS_RENUMBER_B_FACES_THREAD, CS_RENUMBER_B_FACES_SIMD, CS_RENUMBER_B_FACES_NONE } |
Boundary faces renumbering algorithm types. More... | |
enum | cs_renumber_vertices_type_t { CS_RENUMBER_VERTICES_BY_CELL_ADJ, CS_RENUMBER_VERTICES_BY_FACE_ADJ, CS_RENUMBER_VERTICES_NONE } |
Vertices renumbering algorithm types. More... | |
enum | cs_renumber_ordering_t { CS_RENUMBER_ADJACENT_LOW, CS_RENUMBER_ADJACENT_HIGH } |
Ordering options for adjacency arrays. More... | |
Functions | |
void | cs_renumber_set_n_threads (int n_threads) |
Set the target number of threads for mesh renumbering. More... | |
int | cs_renumber_get_n_threads (void) |
Return the target number of threads for mesh renumbering. More... | |
void | cs_renumber_set_min_subset_size (cs_lnum_t min_i_subset_size, cs_lnum_t min_b_subset_size) |
Set the minimum sunset sizes when renumbering for threads. More... | |
void | cs_renumber_get_min_subset_size (cs_lnum_t *min_i_subset_size, cs_lnum_t *min_b_subset_size) |
Get the minimum sunset sizes when renumbering for threads. More... | |
void | cs_renumber_set_algorithm (bool halo_adjacent_cells_last, bool halo_adjacent_faces_last, cs_renumber_ordering_t i_faces_base_ordering, cs_renumber_cells_type_t cells_pre_numbering, cs_renumber_cells_type_t cells_numbering, cs_renumber_i_faces_type_t i_faces_numbering, cs_renumber_b_faces_type_t b_faces_numbering, cs_renumber_vertices_type_t vertices_numbering) |
Select the algorithm for mesh renumbering. More... | |
void | cs_renumber_get_algorithm (bool *halo_adjacent_cells_last, bool *halo_adjacent_faces_last, cs_renumber_ordering_t *i_faces_base_ordering, cs_renumber_cells_type_t *cells_pre_numbering, cs_renumber_cells_type_t *cells_numbering, cs_renumber_i_faces_type_t *i_faces_numbering, cs_renumber_b_faces_type_t *b_faces_numbering, cs_renumber_vertices_type_t *vertices_numbering) |
Return the algorithms for mesh renumbering. More... | |
void | cs_renumber_mesh (cs_mesh_t *mesh) |
Renumber mesh elements for vectorization or threading depending on code options and target machine. More... | |
void | cs_renumber_cells (cs_mesh_t *mesh) |
Renumber cells depending on code options and target machine. More... | |
void | cs_renumber_i_faces (cs_mesh_t *mesh) |
Renumber interior faces for vectorization or threading depending on code options and target machine. More... | |
void | cs_renumber_i_faces_by_gnum (cs_mesh_t *mesh) |
void | cs_renumber_b_faces (cs_mesh_t *mesh) |
Renumber boundary faces for vectorization or threading depending on code options and target machine. More... | |
void | cs_renumber_b_faces_by_gnum (cs_mesh_t *mesh) |
void | cs_renumber_vertices (cs_mesh_t *mesh) |
Renumber vertices depending on code options and target machine. More... | |
Cell renumbering algorithm types.
Interior faces renumbering algorithm types.
void cs_renumber_b_faces | ( | cs_mesh_t * | mesh | ) |
Renumber boundary faces for vectorization or threading depending on code options and target machine.
parameters: mesh <-> pointer to global mesh structure
[in,out] | mesh | pointer to global mesh structure |
void cs_renumber_b_faces_by_gnum | ( | cs_mesh_t * | mesh | ) |
void cs_renumber_cells | ( | cs_mesh_t * | mesh | ) |
Renumber cells depending on code options and target machine.
parameters: mesh <-> pointer to global mesh structure
[in,out] | mesh | pointer to global mesh structure |
void cs_renumber_get_algorithm | ( | bool * | halo_adjacent_cells_last, |
bool * | halo_adjacent_faces_last, | ||
cs_renumber_ordering_t * | i_faces_base_ordering, | ||
cs_renumber_cells_type_t * | cells_pre_numbering, | ||
cs_renumber_cells_type_t * | cells_numbering, | ||
cs_renumber_i_faces_type_t * | i_faces_numbering, | ||
cs_renumber_b_faces_type_t * | b_faces_numbering, | ||
cs_renumber_vertices_type_t * | vertices_numbering | ||
) |
Return the algorithms for mesh renumbering.
Any argument may be passed NULL if this option is not queried.
[out] | halo_adjacent_cells_last | if true, cells adjacent to ghost cells will be placed last (after pre-numbering) |
[out] | halo_adjacent_faces_last | if true, interior faces adjacent to ghost cells will be placed last (after pre-numbering) |
[out] | i_faces_base_ordering | pre-ordering of interior faces by lowest or highest adjacent cell id |
[out] | cells_pre_numbering | algorithm for cells pre-numbering |
[out] | cells_numbering | algorithm for cells numbering |
[out] | i_faces_numbering | algorithm for interior faces numbering |
[out] | b_faces_numbering | algorithm for boundary faces numbering |
[out] | vertices_numbering | algorithm for vertices numbering |
void cs_renumber_get_min_subset_size | ( | cs_lnum_t * | min_i_subset_size, |
cs_lnum_t * | min_b_subset_size | ||
) |
Get the minimum sunset sizes when renumbering for threads.
[out] | min_i_subset_size | minimum number of interior faces per thread per group, or NULL |
[out] | min_b_subset_size | minimum number of boundary faces per thread per group, or NULL |
int cs_renumber_get_n_threads | ( | void | ) |
Return the target number of threads for mesh renumbering.
void cs_renumber_i_faces | ( | cs_mesh_t * | mesh | ) |
Renumber interior faces for vectorization or threading depending on code options and target machine.
parameters: mesh <-> pointer to global mesh structure
[in,out] | mesh | pointer to global mesh structure |
void cs_renumber_i_faces_by_gnum | ( | cs_mesh_t * | mesh | ) |
void cs_renumber_mesh | ( | cs_mesh_t * | mesh | ) |
Renumber mesh elements for vectorization or threading depending on code options and target machine.
Renumbering cells may also allow improving locality (and favor faces renumbering). It is also possible to place cells connected to ghost cells last, which may be useful to enable computation/communication overlap.
parameters: mesh <-> pointer to global mesh structure
[in,out] | mesh | pointer to global mesh structure |
void cs_renumber_set_algorithm | ( | bool | halo_adjacent_cells_last, |
bool | halo_adjacent_faces_last, | ||
cs_renumber_ordering_t | i_faces_base_ordering, | ||
cs_renumber_cells_type_t | cells_pre_numbering, | ||
cs_renumber_cells_type_t | cells_numbering, | ||
cs_renumber_i_faces_type_t | i_faces_numbering, | ||
cs_renumber_b_faces_type_t | b_faces_numbering, | ||
cs_renumber_vertices_type_t | vertices_numbering | ||
) |
Select the algorithm for mesh renumbering.
[in] | halo_adjacent_cells_last | if true, cells adjacent to ghost cells will be placed last (after pre-numbering) |
[in] | halo_adjacent_faces_last | if true, interior faces adjacent to ghost cells will be placed last (after pre-numbering) |
[in] | i_faces_base_ordering | pre-ordering of interior faces by lowest or highest adjacent cell id |
[in] | cells_pre_numbering | algorithm for cells pre-numbering |
[in] | cells_numbering | algorithm for cells numbering |
[in] | i_faces_numbering | algorithm for interior faces numbering |
[in] | b_faces_numbering | algorithm for boundary faces numbering |
[in] | vertices_numbering | algorithm for vertices numbering |
Set the minimum sunset sizes when renumbering for threads.
[in] | min_i_subset_size | minimum number of interior faces per thread per group |
[in] | min_b_subset_size | minimum number of boundary faces per thread per group |
void cs_renumber_set_n_threads | ( | int | n_threads | ) |
Set the target number of threads for mesh renumbering.
By default, the target number of threads is set to cs_glob_n_threads, but the value may be forced using this function. This is mainly useful for testing purposes.
[in] | n_threads | target number of threads for mesh numbering |
void cs_renumber_vertices | ( | cs_mesh_t * | mesh | ) |
Renumber vertices depending on code options and target machine.
parameters: mesh <-> pointer to global mesh structure
[in,out] | mesh | pointer to global mesh structure |