My Project
programmer's documentation
|
#include "cs_defs.h"
#include <assert.h>
#include <errno.h>
#include <stdio.h>
#include <stdarg.h>
#include <string.h>
#include <math.h>
#include <float.h>
#include "bft_error.h"
#include "bft_mem.h"
#include "bft_printf.h"
#include "cs_halo.h"
#include "cs_log.h"
#include "cs_mesh.h"
#include "cs_sort.h"
#include "cs_mesh_adjacencies.h"
Functions | |
void | cs_mesh_adjacencies_initialize (void) |
Initialize mesh adjacencies helper API. More... | |
void | cs_mesh_adjacencies_finalize (void) |
Finalize mesh adjacencies helper API. More... | |
void | cs_mesh_adjacencies_update_mesh (void) |
Update mesh adjacencies helper API relative to mesh. More... | |
void | cs_mesh_adjacencies_update_cell_cells_e (void) |
Update extended cell -> cell connectivites in mesh adjacencies helper API relative to mesh. More... | |
cs_adjacency_t * | cs_adjacency_create (cs_flag_t flag, int stride, cs_lnum_t n_elts) |
Create a cs_adjacency_t structure of size n_elts. More... | |
cs_adjacency_t * | cs_adjacency_create_from_s_arrays (cs_lnum_t n_elts, int stride, cs_lnum_t *ids, short int *sgn) |
Create a cs_adjacency_t structure sharing arrays scanned with a stride. More... | |
cs_adjacency_t * | cs_adjacency_create_from_i_arrays (cs_lnum_t n_elts, cs_lnum_t *idx, cs_lnum_t *ids, short int *sgn) |
Create a cs_adjacency_t structure sharing arrays scanned with an index. More... | |
void | cs_adjacency_destroy (cs_adjacency_t **p_adj) |
Destroy a cs_adjacency_t structure. More... | |
cs_adjacency_t * | cs_adjacency_compose (int n_c_elts, const cs_adjacency_t *a2b, const cs_adjacency_t *b2c) |
Create a new cs_adjacency_t structure from the composition of two cs_adjacency_t structures: (1) A -> B and (2) B -> C The resulting structure describes A -> C. It does not rely on a stride and has no sgn member. More... | |
cs_adjacency_t * | cs_adjacency_transpose (int n_b_elts, const cs_adjacency_t *a2b) |
Create a new cs_adjacency_t structure from a one corresponding to A -> B. The resulting structure deals with B -> A. More... | |
void | cs_adjacency_sort (cs_adjacency_t *adj) |
Sort each sub-list related to an entry in a cs_adjacency_t structure. More... | |
void | cs_adjacency_remove_self_entries (cs_adjacency_t *adj) |
In an indexed list, remove id(s) corresponding to the current index. Useful for instance in order to prepare a matrix structure in MSR storage. More... | |
void | cs_adjacency_dump (const char *name, FILE *_f, cs_adjacency_t *adj) |
Dump a cs_adjacency_t structure to a file or into the standard output. More... | |
cs_adjacency_t * | cs_mesh_adjacency_c2f (const cs_mesh_t *m, int boundary_order) |
Build a cells to faces adjacency structure. More... | |
cs_adjacency_t * | cs_mesh_adjacency_v2v (const cs_mesh_t *m) |
Additional mesh adjacencies.
cs_adjacency_t* cs_adjacency_compose | ( | int | n_c_elts, |
const cs_adjacency_t * | a2b, | ||
const cs_adjacency_t * | b2c | ||
) |
Create a new cs_adjacency_t structure from the composition of two cs_adjacency_t structures: (1) A -> B and (2) B -> C The resulting structure describes A -> C. It does not rely on a stride and has no sgn member.
[in] | n_c_elts | number of elements in C set |
[in] | a2b | adjacency A -> B |
[in] | b2c | adjacency B -> C |
cs_adjacency_t* cs_adjacency_create | ( | cs_flag_t | flag, |
int | stride, | ||
cs_lnum_t | n_elts | ||
) |
Create a cs_adjacency_t structure of size n_elts.
[in] | flag | metadata related to the new cs_adjacency to create |
[in] | stride | > 0 if useful otherwise ignored |
[in] | n_elts | number of entries of the indexed list |
cs_adjacency_t* cs_adjacency_create_from_i_arrays | ( | cs_lnum_t | n_elts, |
cs_lnum_t * | idx, | ||
cs_lnum_t * | ids, | ||
short int * | sgn | ||
) |
Create a cs_adjacency_t structure sharing arrays scanned with an index.
[in] | n_elts | number of elements |
[in] | idx | array of size n_elts + 1 |
[in] | ids | array of element ids (size = idx[n_elts]) |
[in] | sgn | array storing the orientation (may be NULL) |
cs_adjacency_t* cs_adjacency_create_from_s_arrays | ( | cs_lnum_t | n_elts, |
int | stride, | ||
cs_lnum_t * | ids, | ||
short int * | sgn | ||
) |
Create a cs_adjacency_t structure sharing arrays scanned with a stride.
[in] | n_elts | number of elements |
[in] | stride | value of the stride |
[in] | ids | array of element ids (size = stride * n_elts) |
[in] | sgn | array storing the orientation (may be NULL) |
void cs_adjacency_destroy | ( | cs_adjacency_t ** | p_adj | ) |
Destroy a cs_adjacency_t structure.
[in,out] | p_adj | pointer of pointer to a cs_adjacency_t structure |
void cs_adjacency_dump | ( | const char * | name, |
FILE * | _f, | ||
cs_adjacency_t * | adj | ||
) |
Dump a cs_adjacency_t structure to a file or into the standard output.
[in] | name | name of the dump file. Can be set to NULL |
[in] | _f | pointer to a FILE structure. Can be set to NULL. |
[in] | adj | pointer to a cs_adjacency_t structure |
void cs_adjacency_remove_self_entries | ( | cs_adjacency_t * | adj | ) |
In an indexed list, remove id(s) corresponding to the current index. Useful for instance in order to prepare a matrix structure in MSR storage.
[in,out] | adj | pointer to the cs_adjacency_t structure to update |
void cs_adjacency_sort | ( | cs_adjacency_t * | adj | ) |
Sort each sub-list related to an entry in a cs_adjacency_t structure.
[in] | adj | pointer to a cs_adjacency_t structure |
cs_adjacency_t* cs_adjacency_transpose | ( | int | n_b_elts, |
const cs_adjacency_t * | a2b | ||
) |
Create a new cs_adjacency_t structure from a one corresponding to A -> B. The resulting structure deals with B -> A.
[in] | n_b_elts | size of the set of B elements |
[in] | a2b | pointer to the A -> B cs_adjacency_t structure |
void cs_mesh_adjacencies_finalize | ( | void | ) |
Finalize mesh adjacencies helper API.
void cs_mesh_adjacencies_initialize | ( | void | ) |
Initialize mesh adjacencies helper API.
void cs_mesh_adjacencies_update_cell_cells_e | ( | void | ) |
Update extended cell -> cell connectivites in mesh adjacencies helper API relative to mesh.
void cs_mesh_adjacencies_update_mesh | ( | void | ) |
Update mesh adjacencies helper API relative to mesh.
cs_adjacency_t* cs_mesh_adjacency_c2f | ( | const cs_mesh_t * | m, |
int | boundary_order | ||
) |
Build a cells to faces adjacency structure.
With the boundary_order option set to 0, boundary faces come first, so interior face ids are shifted by the number of boundary faces. With boundary_order set to 1, boundary faces come last, so face ids are shifted by the number of interior faces.
[in] | m | pointer to a cs_mesh_t structure |
[in] | boundary_order | boundaries first (0) or last (1) |
cs_adjacency_t* cs_mesh_adjacency_v2v | ( | const cs_mesh_t * | m | ) |