1#ifndef CS_MESH_QUANTITIES_H
2#define CS_MESH_QUANTITIES_H
56#define CS_BAD_CELLS_WARPED_CORRECTION (1 << 0)
59#define CS_BAD_CELLS_REGULARISATION (1 << 1)
62#define CS_CELL_FACE_CENTER_CORRECTION (1 << 2)
65#define CS_CELL_CENTER_CORRECTION (1 << 3)
68#define CS_FACE_DISTANCE_CLIP (1 << 4)
71#define CS_FACE_RECONSTRUCTION_CLIP (1 << 5)
74#define CS_CELL_VOLUME_RATIO_CORRECTION (1 << 6)
79#define CS_FACE_CENTER_REFINE (1 << 7)
82#define CS_FACE_NULL_SURFACE (1 << 8)
174#if defined(__cplusplus)
190 const int *c_disable_flag,
195 if (c_disable_flag ==
nullptr)
196 dvol = 1. / c_vol[c_id];
197 else if (c_disable_flag[c_id] == 0)
198 dvol = 1. / c_vol[c_id];
#define BEGIN_C_DECLS
Definition: cs_defs.h:554
#define CS_F_HOST_DEVICE
Definition: cs_defs.h:585
double cs_real_t
Floating-point value.
Definition: cs_defs.h:357
cs_rreal_t cs_rreal_3_t[3]
Definition: cs_defs.h:403
cs_nreal_t cs_nreal_3_t[3]
Definition: cs_defs.h:400
cs_real_t cs_real_3_t[3]
vector of 3 floating-point values
Definition: cs_defs.h:374
cs_real_t cs_real_2_t[2]
vector of 2 floating-point values
Definition: cs_defs.h:373
cs_real_t cs_real_6_t[6]
vector of 6 floating-point values
Definition: cs_defs.h:376
#define END_C_DECLS
Definition: cs_defs.h:555
cs_real_t cs_real_33_t[3][3]
3x3 matrix of floating-point values
Definition: cs_defs.h:383
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:350
double cs_nreal_t
Definition: cs_defs.h:361
void cs_mesh_quantities_compute_face_cog_sn(cs_lnum_t n_faces, const cs_real_t vtx_coord[][3], const cs_lnum_t face_vtx_idx[], const cs_lnum_t face_vtx[], cs_real_t face_cog[][3], cs_real_t face_normal[][3])
Definition: cs_mesh_quantities.cpp:4897
void cs_mesh_quantities_sup_vectors(const cs_mesh_t *mesh, cs_mesh_quantities_t *mesh_quantities)
Definition: cs_mesh_quantities.cpp:4815
unsigned cs_glob_mesh_quantities_flag
cs_mesh_quantities_t * cs_mesh_quantities_destroy(cs_mesh_quantities_t *mq)
Destroy a mesh quantities structure.
Definition: cs_mesh_quantities.cpp:2747
void cs_mesh_quantities_face_normal(const cs_mesh_t *mesh, cs_real_t *p_i_face_normal[], cs_real_t *p_b_face_normal[])
Definition: cs_mesh_quantities.cpp:4850
void cs_mesh_quantities_log_setup(void)
Log mesh quantities options to setup file.
Definition: cs_mesh_quantities.cpp:5493
static int cs_mesh_quantities_cell_is_active(const cs_mesh_quantities_t *mq, cs_lnum_t cell_id)
Return 0 if cell is disabled, 1 otherwise.
Definition: cs_mesh_quantities.h:224
void cs_mesh_quantities_compute_preprocess(const cs_mesh_t *m, cs_mesh_quantities_t *mq)
Compute mesh quantities needed for preprocessing.
Definition: cs_mesh_quantities.cpp:2818
void cs_mesh_quantities_b_thickness_f(const cs_mesh_t *m, const cs_mesh_quantities_t *mq, int n_passes, cs_real_t b_thickness[])
Determine local boundary thickness around each boundary face.
Definition: cs_mesh_quantities.cpp:5451
void cs_mesh_quantities_compute_face_cog_un(cs_lnum_t n_faces, const cs_real_t vtx_coord[][3], const cs_lnum_t face_vtx_idx[], const cs_lnum_t face_vtx[], cs_real_t face_cog[][3], cs_nreal_t face_u_normal[][3])
Definition: cs_mesh_quantities.cpp:4926
int cs_mesh_quantities_compute_count(void)
Definition: cs_mesh_quantities.cpp:5343
CS_F_HOST_DEVICE cs_real_t cs_mq_cell_vol_inv(cs_lnum_t c_id, const int *c_disable_flag, const cs_real_t c_vol[])
Compute volume inverse for non-disabled cell, 0 otherwise.
Definition: cs_mesh_quantities.h:189
void cs_mesh_quantities_check_vol(const cs_mesh_t *mesh, const cs_mesh_quantities_t *mesh_quantities, int allow_error)
Definition: cs_mesh_quantities.cpp:5197
void cs_mesh_quantities_cell_faces_cog(const cs_mesh_t *mesh, const cs_real_3_t i_face_norm[], const cs_real_3_t i_face_cog[], const cs_real_3_t b_face_norm[], const cs_real_3_t b_face_cog[], cs_real_3_t cell_cen[])
Compute approximate cells centers as the mean of the given face centers weighted by the associated su...
Definition: cs_mesh_quantities.cpp:5003
void cs_mesh_quantities_vol_reductions(const cs_mesh_t *mesh, cs_mesh_quantities_t *mesh_quantities)
Definition: cs_mesh_quantities.cpp:4727
int cs_mesh_quantities_cell_cen_choice(int algo_choice)
Query or modification of the option for computing cell centers.
Definition: cs_mesh_quantities.cpp:2655
int cs_mesh_quantities_face_cog_choice(int algo_choice)
Query or modification of the option for computing face centers.
Definition: cs_mesh_quantities.cpp:2677
void cs_mesh_init_fluid_sections(const cs_mesh_t *mesh, cs_mesh_quantities_t *mesh_quantities)
Definition: cs_mesh_quantities.cpp:4767
void cs_mesh_quantities_compute(const cs_mesh_t *m, cs_mesh_quantities_t *mq)
Compute mesh quantities.
Definition: cs_mesh_quantities.cpp:4545
void cs_mesh_quantities_free_all(cs_mesh_quantities_t *mq)
Reset a mesh quantities structure to its empty initial state.
Definition: cs_mesh_quantities.cpp:2765
void cs_mesh_quantities_dump(const cs_mesh_t *mesh, const cs_mesh_quantities_t *mesh_quantities)
Definition: cs_mesh_quantities.cpp:5538
cs_mesh_quantities_t * cs_glob_mesh_quantities_g
cs_mesh_quantities_t * cs_mesh_quantities_create(void)
Create a mesh quantities structure.
Definition: cs_mesh_quantities.cpp:2694
void cs_mesh_quantities_b_thickness_v(const cs_mesh_t *m, const cs_mesh_quantities_t *mq, int n_passes, cs_real_t b_thickness[])
Determine local boundary thickness around each vertex.
Definition: cs_mesh_quantities.cpp:5361
cs_real_6_t * cs_mesh_quantities_cell_extents(const cs_mesh_t *m, cs_real_t tolerance)
Compute the bounding box for cells.
Definition: cs_mesh_quantities.cpp:5255
void cs_mesh_quantities_solid_compute(const cs_mesh_t *m, cs_real_3_t *cen_points, cs_mesh_quantities_t *mq)
Compute cell and faces quantities needed at the immersed boundaries.
Definition: cs_mesh_quantities.cpp:3068
cs_real_t * cs_mesh_quantities_cell_volume(const cs_mesh_t *mesh)
Definition: cs_mesh_quantities.cpp:5136
cs_mesh_quantities_t * cs_glob_mesh_quantities
void cs_mesh_quantities_b_faces(const cs_mesh_t *mesh, cs_real_t *p_b_face_cog[], cs_real_t *p_b_face_normal[])
Compute boundary face centers and normals.
Definition: cs_mesh_quantities.cpp:4959
Definition: cs_mesh_quantities.h:92
int * b_sym_flag
Definition: cs_mesh_quantities.h:147
cs_real_3_t * b_face_cog
Definition: cs_mesh_quantities.h:107
cs_real_t * c_w_face_surf
Definition: cs_mesh_quantities.h:115
cs_real_t * i_face_surf
Definition: cs_mesh_quantities.h:112
cs_rreal_3_t * diipb
Definition: cs_mesh_quantities.h:124
cs_real_t * b_dist
Definition: cs_mesh_quantities.h:131
int has_disable_flag
Definition: cs_mesh_quantities.h:148
cs_real_3_t * cell_cen
Definition: cs_mesh_quantities.h:94
cs_real_2_t * i_f_face_factor
Definition: cs_mesh_quantities.h:120
cs_real_3_t * dofij
Definition: cs_mesh_quantities.h:125
cs_rreal_3_t * diipf
Definition: cs_mesh_quantities.h:126
cs_real_3_t * cell_s_cen
Definition: cs_mesh_quantities.h:95
cs_real_t * b_face_surf
Definition: cs_mesh_quantities.h:113
cs_real_t * i_dist
Definition: cs_mesh_quantities.h:129
cs_real_3_t * i_face_cog
Definition: cs_mesh_quantities.h:106
cs_real_t * c_w_face_normal
Definition: cs_mesh_quantities.h:104
cs_real_t max_vol
Definition: cs_mesh_quantities.h:139
cs_real_t * cell_vol
Definition: cs_mesh_quantities.h:97
cs_real_t * weight
Definition: cs_mesh_quantities.h:136
cs_real_t * _cell_vol
Definition: cs_mesh_quantities.h:98
cs_real_t * b_face_normal
Definition: cs_mesh_quantities.h:102
cs_real_33_t * corr_grad_lin
Definition: cs_mesh_quantities.h:144
cs_real_t * c_w_face_cog
Definition: cs_mesh_quantities.h:109
cs_real_t tot_vol
Definition: cs_mesh_quantities.h:140
int * c_disable_flag
Definition: cs_mesh_quantities.h:151
cs_nreal_3_t * i_face_u_normal
Definition: cs_mesh_quantities.h:117
cs_real_t * b_f_face_factor
Definition: cs_mesh_quantities.h:121
cs_real_t min_vol
Definition: cs_mesh_quantities.h:138
cs_real_t * c_w_dist_inv
Definition: cs_mesh_quantities.h:133
cs_nreal_3_t * b_face_u_normal
Definition: cs_mesh_quantities.h:118
cs_real_t * corr_grad_lin_det
Definition: cs_mesh_quantities.h:142
cs_real_t * i_face_normal
Definition: cs_mesh_quantities.h:100
cs_real_3_t * dijpf
Definition: cs_mesh_quantities.h:123
unsigned * bad_cell_flag
Definition: cs_mesh_quantities.h:153
cs_rreal_3_t * djjpf
Definition: cs_mesh_quantities.h:127