1#ifndef __CS_CDO_LOCAL_H__
2#define __CS_CDO_LOCAL_H__
292static inline short int
298 for (
short int v = 0; v < cm->
n_vc; v++)
299 if (cm->
v_ids[v] == v_id)
316static inline short int
322 for (
short int f = 0; f < cm->
n_fc; f++)
323 if (cm->
f_ids[f] == f_id)
347 for (
short int v = 0; v < cm->
n_vc; v++) v_ids[v] = -1;
352 const int shift_e = 2*cm->
f2e_ids[i];
353 v_ids[cm->
e2v_ids[shift_e]] = 1;
354 v_ids[cm->
e2v_ids[shift_e+1]] = 1;
358 for (
short int v = 0; v < cm->
n_vc; v++) {
360 v_ids[*n_vf] = v, *n_vf += 1;
380 const short int *e2v_ids,
385 const short int e0 = f2e_ids[0];
386 const short int e1 = f2e_ids[1];
387 const short int tmp = e2v_ids[2*e1];
390 *v1 = e2v_ids[2*e0+1];
391 *v2 = ((tmp != *v0) && (tmp != *v1)) ? tmp : e2v_ids[2*e1+1];
686 short int n_max_vbyc);
void cs_cell_mesh_reset(cs_cell_mesh_t *cm)
Initialize to invalid values a cs_cell_mesh_t structure.
Definition cs_cdo_local.c:671
cs_face_mesh_light_t ** cs_cdo_local_face_meshes_light
Definition cs_cdo_local.c:80
static void cs_cell_mesh_get_f2v(short int f, const cs_cell_mesh_t *cm, short int *n_vf, short int *v_ids)
Retrieve the list of vertices attached to a face.
Definition cs_cdo_local.h:340
void cs_cell_mesh_dump(const cs_cell_mesh_t *cm)
Dump a cs_cell_mesh_t structure.
Definition cs_cdo_local.c:739
void cs_cell_sys_reset(int n_fbyc, cs_cell_sys_t *csys)
Reset all members related to BC and some other ones in a cs_cell_sys_t structure.
Definition cs_cdo_local.c:365
cs_face_mesh_light_t * cs_face_mesh_light_create(short int n_max_vbyf, short int n_max_vbyc)
Allocate a cs_face_mesh_light_t structure.
Definition cs_cdo_local.c:1697
cs_cell_mesh_t * cs_cell_mesh_create(const cs_cdo_connect_t *connect)
Allocate and initialize a cs_cell_mesh_t structure.
Definition cs_cdo_local.c:579
cs_cell_sys_t * cs_cell_sys_create(int n_max_dofbyc, int n_max_fbyc, int n_blocks, int *block_sizes)
Allocate a cs_cell_sys_t structure.
Definition cs_cdo_local.c:243
void cs_cdo_local_finalize(void)
Free global structures related to cs_cell_mesh_t and cs_face_mesh_t structures.
Definition cs_cdo_local.c:192
void cs_cell_mesh_free(cs_cell_mesh_t **p_cm)
Free a cs_cell_mesh_t structure.
Definition cs_cdo_local.c:848
void cs_cdo_local_initialize(const cs_cdo_connect_t *connect)
Allocate global structures related to a cs_cell_mesh_t and cs_face_mesh_t structures.
Definition cs_cdo_local.c:136
cs_cell_mesh_t ** cs_cdo_local_cell_meshes
Definition cs_cdo_local.c:78
void cs_cell_sys_dump(const char msg[], const cs_cell_sys_t *csys)
Dump a local system for debugging purpose.
Definition cs_cdo_local.c:459
void cs_face_mesh_build_from_cell_mesh(const cs_cell_mesh_t *cm, short int f, cs_face_mesh_t *fm)
Define a cs_face_mesh_t structure for a given cell from a cs_cell_mesh_t structure....
Definition cs_cdo_local.c:1577
cs_cell_builder_t * cs_cell_builder_create(void)
Allocate cs_cell_builder_t structure.
Definition cs_cdo_local.c:509
cs_face_mesh_t * cs_face_mesh_create(short int n_max_vbyf)
Allocate a cs_face_mesh_t structure.
Definition cs_cdo_local.c:1343
cs_face_mesh_t * cs_cdo_local_get_face_mesh(int mesh_id)
Get a pointer to a cs_face_mesh_t structure corresponding to mesh id.
Definition cs_cdo_local.c:1385
void cs_face_mesh_build(cs_lnum_t c_id, cs_lnum_t f_id, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, cs_face_mesh_t *fm)
Define a cs_face_mesh_t structure for a given face/cell id.
Definition cs_cdo_local.c:1435
cs_face_mesh_light_t * cs_cdo_local_get_face_mesh_light(int mesh_id)
Get a pointer to a cs_face_mesh_light_t structure corresponding to mesh id.
Definition cs_cdo_local.c:1733
void cs_cell_builder_free(cs_cell_builder_t **p_cb)
Free a cs_cell_builder_t structure.
Definition cs_cdo_local.c:548
cs_face_mesh_t ** cs_cdo_local_face_meshes
Definition cs_cdo_local.c:79
void cs_face_mesh_light_build(const cs_cell_mesh_t *cm, short int f, cs_face_mesh_light_t *fm)
Define a cs_face_mesh_light_t structure starting from a cs_cell_mesh_t structure.
Definition cs_cdo_local.c:1778
static bool cs_cell_mesh_is_boundary_face(const cs_cell_mesh_t *cm, const short int f)
Is the face a boundary one ?
Definition cs_cdo_local.h:406
static short int cs_cell_mesh_get_v(const cs_lnum_t v_id, const cs_cell_mesh_t *const cm)
Retrieve the vertex id in the cellwise numbering associated to the given vertex id in the mesh number...
Definition cs_cdo_local.h:293
cs_cell_mesh_t * cs_cdo_local_get_cell_mesh(int mesh_id)
Get a pointer to a cs_cell_mesh_t structure corresponding to mesh id.
Definition cs_cdo_local.c:647
void cs_cell_mesh_build(cs_lnum_t c_id, cs_flag_t build_flag, const cs_cdo_connect_t *connect, const cs_cdo_quantities_t *quant, cs_cell_mesh_t *cm)
Define a cs_cell_mesh_t structure for a given cell id. According to the requested level,...
Definition cs_cdo_local.c:902
void cs_face_mesh_free(cs_face_mesh_t **p_fm)
Free a cs_face_mesh_t structure.
Definition cs_cdo_local.c:1402
void cs_face_mesh_light_free(cs_face_mesh_light_t **p_fm)
Free a cs_face_mesh_light_t structure.
Definition cs_cdo_local.c:1750
static void cs_cell_mesh_get_next_3_vertices(const short int *f2e_ids, const short int *e2v_ids, short int *v0, short int *v1, short int *v2)
Get the next three vertices in a row from a face to edge connectivity and a edge to vertex connectivi...
Definition cs_cdo_local.h:379
void cs_cell_sys_free(cs_cell_sys_t **p_csys)
Free a cs_cell_sys_t structure.
Definition cs_cdo_local.c:420
static short int cs_cell_mesh_get_f(const cs_lnum_t f_id, const cs_cell_mesh_t *const cm)
Retrieve the face id in the cellwise numbering associated to the given face id in the mesh numbering.
Definition cs_cdo_local.h:317
#define BEGIN_C_DECLS
Definition cs_defs.h:467
cs_real_t cs_real_3_t[3]
vector of 3 floating-point values
Definition cs_defs.h:315
#define END_C_DECLS
Definition cs_defs.h:468
cs_real_t cs_real_33_t[3][3]
3x3 matrix of floating-point values
Definition cs_defs.h:321
int cs_lnum_t
local mesh entity id
Definition cs_defs.h:298
unsigned short int cs_flag_t
Definition cs_defs.h:304
@ fm
Definition cs_field_pointer.h:134
#define CS_CDO_N_MAX_REACTIONS
Definition cs_param_cdo.h:68
fvm_element_t
Definition fvm_defs.h:48
Definition cs_cdo_connect.h:74
Definition cs_cdo_quantities.h:94
Set of local and temporary buffers useful for building the algebraic system with a cellwise process....
Definition cs_cdo_local.h:56
double eig_max
Definition cs_cdo_local.h:60
double dpty_val
Definition cs_cdo_local.h:64
double * values
Definition cs_cdo_local.h:78
double eig_ratio
Definition cs_cdo_local.h:59
cs_real_3_t * vectors
Definition cs_cdo_local.h:79
cs_real_33_t dpty_mat
Definition cs_cdo_local.h:63
double tpty_val
Definition cs_cdo_local.h:66
cs_sdm_t * loc
Definition cs_cdo_local.h:83
double * adv_fluxes
Definition cs_cdo_local.h:73
int * ids
Definition cs_cdo_local.h:77
cs_sdm_t * aux
Definition cs_cdo_local.h:84
double rpty_val
Definition cs_cdo_local.h:70
cs_sdm_t * hdg
Definition cs_cdo_local.h:82
Set of local quantities and connectivities related to a mesh cell This is a key structure for all cel...
Definition cs_cdo_local.h:146
cs_lnum_t * f_ids
Definition cs_cdo_local.h:177
fvm_element_t type
Definition cs_cdo_local.h:149
cs_real_3_t xc
Definition cs_cdo_local.h:158
short int * e2v_ids
Definition cs_cdo_local.h:186
double * f_diam
Definition cs_cdo_local.h:179
short int * f2v_idx
Definition cs_cdo_local.h:190
cs_nvec3_t * dface
Definition cs_cdo_local.h:172
short int * e2v_sgn
Definition cs_cdo_local.h:187
double diam_c
Definition cs_cdo_local.h:160
short int n_vc
Definition cs_cdo_local.h:163
cs_lnum_t c_id
Definition cs_cdo_local.h:157
cs_nvec3_t * sefc
Definition cs_cdo_local.h:200
double * hfc
Definition cs_cdo_local.h:180
double * xv
Definition cs_cdo_local.h:165
double * pfc
Definition cs_cdo_local.h:181
short int n_max_ebyc
Definition cs_cdo_local.h:153
double * wvc
Definition cs_cdo_local.h:166
short int n_ec
Definition cs_cdo_local.h:169
short int * f2e_idx
Definition cs_cdo_local.h:194
cs_quant_t * edge
Definition cs_cdo_local.h:171
cs_flag_t flag
Definition cs_cdo_local.h:148
cs_lnum_t bface_shift
Definition cs_cdo_local.h:176
short int * f2e_ids
Definition cs_cdo_local.h:195
short int n_max_vbyc
Definition cs_cdo_local.h:152
cs_nvec3_t * dedge
Definition cs_cdo_local.h:183
double * tef
Definition cs_cdo_local.h:196
short int n_fc
Definition cs_cdo_local.h:175
short int * f_sgn
Definition cs_cdo_local.h:178
short int * e2f_ids
Definition cs_cdo_local.h:199
short int n_max_fbyc
Definition cs_cdo_local.h:154
double vol_c
Definition cs_cdo_local.h:159
short int * f2v_ids
Definition cs_cdo_local.h:191
cs_lnum_t * v_ids
Definition cs_cdo_local.h:164
cs_lnum_t * e_ids
Definition cs_cdo_local.h:170
cs_quant_t * face
Definition cs_cdo_local.h:182
Set of arrays and local (small) dense matrices related to a mesh cell This is a key structure for bui...
Definition cs_cdo_local.h:93
bool has_robin
Definition cs_cdo_local.h:123
double * val_n
Definition cs_cdo_local.h:106
cs_sdm_t * mat
Definition cs_cdo_local.h:103
double * neu_values
Definition cs_cdo_local.h:120
cs_lnum_t * bf_ids
Definition cs_cdo_local.h:111
double * rob_values
Definition cs_cdo_local.h:124
bool has_internal_enforcement
Definition cs_cdo_local.h:130
bool has_dirichlet
Definition cs_cdo_local.h:115
double * source
Definition cs_cdo_local.h:105
bool has_nhmg_neumann
Definition cs_cdo_local.h:119
cs_lnum_t c_id
Definition cs_cdo_local.h:95
bool has_sliding
Definition cs_cdo_local.h:127
cs_lnum_t * dof_ids
Definition cs_cdo_local.h:100
short int n_bc_faces
Definition cs_cdo_local.h:109
double * dir_values
Definition cs_cdo_local.h:116
cs_flag_t * bf_flag
Definition cs_cdo_local.h:112
cs_flag_t * dof_flag
Definition cs_cdo_local.h:101
double * rhs
Definition cs_cdo_local.h:104
short int * _f_ids
Definition cs_cdo_local.h:110
int n_dofs
Definition cs_cdo_local.h:98
cs_lnum_t * intern_forced_ids
Definition cs_cdo_local.h:131
cs_flag_t cell_flag
Definition cs_cdo_local.h:96
Definition cs_cdo_local.h:248
short int * e_ids
Definition cs_cdo_local.h:263
cs_lnum_t c_id
Definition cs_cdo_local.h:253
double * wvf
Definition cs_cdo_local.h:259
double * tef
Definition cs_cdo_local.h:264
short int n_vf
Definition cs_cdo_local.h:257
short int * v_ids
Definition cs_cdo_local.h:258
short int f
Definition cs_cdo_local.h:254
short int n_ef
Definition cs_cdo_local.h:262
short int n_max_vbyf
Definition cs_cdo_local.h:250
Set of local quantities and connectivities related to a mesh face Structure used to get a better memo...
Definition cs_cdo_local.h:212
cs_real_3_t xc
Definition cs_cdo_local.h:217
short int * e2v_ids
Definition cs_cdo_local.h:238
cs_nvec3_t dedge
Definition cs_cdo_local.h:223
cs_lnum_t c_id
Definition cs_cdo_local.h:216
double * wvf
Definition cs_cdo_local.h:229
cs_lnum_t f_id
Definition cs_cdo_local.h:220
double * xv
Definition cs_cdo_local.h:228
cs_quant_t * edge
Definition cs_cdo_local.h:234
cs_quant_t face
Definition cs_cdo_local.h:222
double * tef
Definition cs_cdo_local.h:235
short int n_vf
Definition cs_cdo_local.h:226
short int n_ef
Definition cs_cdo_local.h:232
short int f_sgn
Definition cs_cdo_local.h:221
cs_lnum_t * v_ids
Definition cs_cdo_local.h:227
cs_lnum_t * e_ids
Definition cs_cdo_local.h:233
short int n_max_vbyf
Definition cs_cdo_local.h:214
Definition cs_cdo_quantities.h:86