1 #ifndef __CS_CDO_LOCAL_H__ 2 #define __CS_CDO_LOCAL_H__ 390 static inline double *
430 static inline short int 436 for (
short int v = 0;
v < cm->
n_vc;
v++)
454 static inline short int 460 for (
short int e = 0; e < cm->
n_ec; e++)
461 if (cm->
e_ids[e] == e_id)
478 static inline short int 484 for (
short int f = 0; f < cm->
n_fc; f++)
485 if (cm->
f_ids[f] == f_id)
510 for (
short int v = 0;
v < cm->
n_vc;
v++) v_ids[
v] = -1;
514 for (
short int i = cm->
f2e_idx[f]; i < cm->f2e_idx[f+1]; i++) {
516 const int shift_e = 2*cm->
f2e_ids[i];
517 v_ids[cm->
e2v_ids[shift_e]] = 1;
518 v_ids[cm->
e2v_ids[shift_e+1]] = 1;
522 for (
short int v = 0;
v < cm->
n_vc;
v++) {
524 v_ids[*n_vf] =
v, *n_vf += 1;
543 const short int *e2v_ids,
548 const short int e0 = f2e_ids[0];
549 const short int e1 = f2e_ids[1];
550 const short int tmp = e2v_ids[2*
e1];
553 *v1 = e2v_ids[2*e0+1];
554 *v2 = ((tmp != *v0) && (tmp != *v1)) ? tmp : e2v_ids[2*e1+1];
849 short int n_max_vbyc);
cs_lnum_t * e_ids
Definition: cs_cdo_local.h:305
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:1471
bool * dof_is_forced
Definition: cs_cdo_local.h:183
#define CS_FLAG_BOUNDARY_CELL_BY_EDGE
(= 4) boundary cell with at least one border edge
Definition: cs_flag.h:64
int cs_cdo_local_d_buffer_size
Definition: cs_cdo_local.c:86
void cs_cdo_local_initialize(const cs_cdo_connect_t *connect)
Allocate global structures used for build system with a cellwise or facewise process.
Definition: cs_cdo_local.c:130
bool has_dirichlet
Definition: cs_cdo_local.h:171
short int * e2f_ids
Definition: cs_cdo_local.h:266
double * tef
Definition: cs_cdo_local.h:262
bool has_sliding
Definition: cs_cdo_local.h:180
double vol_c
Definition: cs_cdo_local.h:218
void cs_cell_mesh_free(cs_cell_mesh_t **p_cm)
Free a cs_cell_mesh_t structure.
Definition: cs_cdo_local.c:870
cs_cell_builder_t * cs_cell_builder_create(void)
Allocate cs_cell_builder_t structure.
Definition: cs_cdo_local.c:503
cs_lnum_t * f_ids
Definition: cs_cdo_local.h:240
static bool cs_cell_has_boundary_elements(const cs_cell_builder_t *const cb)
Check if at least one entity of the cell belongs to the boundary.
Definition: cs_cdo_local.h:408
int cs_glob_n_threads
Definition: cs_defs.c:172
cs_lnum_t f_id
Definition: cs_cdo_local.h:288
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:502
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:1848
double tpty_val
Definition: cs_cdo_local.h:108
cs_real_t t_bc_eval
Definition: cs_cdo_local.h:79
short int * v_ids
Definition: cs_cdo_local.h:332
double * wvc
Definition: cs_cdo_local.h:226
cs_sdm_t * loc
Definition: cs_cdo_local.h:132
short int n_max_vbyf
Definition: cs_cdo_local.h:281
cs_lnum_t * bf_ids
Definition: cs_cdo_local.h:168
double * tef
Definition: cs_cdo_local.h:307
double * source
Definition: cs_cdo_local.h:157
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:368
bool has_internal_enforcement
Definition: cs_cdo_local.h:182
cs_real_t * pvol_e
Definition: cs_cdo_local.h:234
cs_lnum_t * dof_ids
Definition: cs_cdo_local.h:152
short int n_max_vbyc
Definition: cs_cdo_local.h:210
#define BEGIN_C_DECLS
Definition: cs_defs.h:510
double * rob_values
Definition: cs_cdo_local.h:178
double * dir_values
Definition: cs_cdo_local.h:172
short int * e2v_sgn
Definition: cs_cdo_local.h:251
double * tef
Definition: cs_cdo_local.h:339
cs_nvec3_t * dface
Definition: cs_cdo_local.h:233
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:189
double * val_n
Definition: cs_cdo_local.h:158
cs_lnum_t c_id
Definition: cs_cdo_local.h:326
double * hfc
Definition: cs_cdo_local.h:243
short int n_vf
Definition: cs_cdo_local.h:297
Set of local quantities and connectivities related to a mesh cell.
Definition: cs_cdo_local.h:203
void cs_cell_builder_free(cs_cell_builder_t **p_cb)
Free a cs_cell_builder_t structure.
Definition: cs_cdo_local.c:544
Definition: cs_cdo_connect.h:61
short int * f2e_ids
Definition: cs_cdo_local.h:260
cs_sdm_t * mat
Definition: cs_cdo_local.h:155
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:431
cs_flag_t * dof_flag
Definition: cs_cdo_local.h:153
cs_lnum_t * v_ids
Definition: cs_cdo_local.h:298
double * xv
Definition: cs_cdo_local.h:225
short int n_ef
Definition: cs_cdo_local.h:304
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:1886
cs_nvec3_t * sefc
Definition: cs_cdo_local.h:267
double cs_real_t
Floating-point value.
Definition: cs_defs.h:322
Definition: cs_cdo_quantities.h:132
cs_nvec3_t dedge
Definition: cs_cdo_local.h:291
Definition: cs_defs.h:368
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:147
short int n_max_ebyc
Definition: cs_cdo_local.h:211
cs_lnum_t * v_ids
Definition: cs_cdo_local.h:224
int n_dofs
Definition: cs_cdo_local.h:151
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:1903
Definition: cs_cdo_local.h:321
short int * f_sgn
Definition: cs_cdo_local.h:241
short int * f2v_ids
Definition: cs_cdo_local.h:256
double * wvf
Definition: cs_cdo_local.h:300
double pvol
Definition: cs_cdo_local.h:292
double gpty_val
Definition: cs_cdo_local.h:107
double * rhs
Definition: cs_cdo_local.h:156
double * val_nm1
Definition: cs_cdo_local.h:159
double precision, dimension(:,:,:), allocatable v
Definition: atimbr.f90:114
double rpty_val
Definition: cs_cdo_local.h:110
cs_sdm_t * aux
Definition: cs_cdo_local.h:133
double diam_c
Definition: cs_cdo_local.h:219
Definition: cs_field_pointer.h:128
cs_lnum_t c_id
Definition: cs_cdo_local.h:149
fvm_element_t
Definition: fvm_defs.h:48
fvm_element_t type
Definition: cs_cdo_local.h:206
cs_lnum_t c_id
Definition: cs_cdo_local.h:216
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:1931
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:652
cs_eflag_t flag
Definition: cs_cdo_local.h:205
short int n_max_fbyc
Definition: cs_cdo_local.h:212
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. v_ids and e_ids are defined in the cell numbering given by cm.
Definition: cs_cdo_local.c:1720
cs_flag_t * bf_flag
Definition: cs_cdo_local.h:169
short int n_fc
Definition: cs_cdo_local.h:238
short int f_sgn
Definition: cs_cdo_local.h:289
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:1518
double hfc
Definition: cs_cdo_local.h:293
cs_lnum_t bface_shift
Definition: cs_cdo_local.h:239
cs_lnum_t * e_ids
Definition: cs_cdo_local.h:231
void cs_cell_mesh_build(cs_lnum_t c_id, cs_eflag_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:926
cs_real_t t_pty_eval
Definition: cs_cdo_local.h:78
cs_real_t t_st_eval
Definition: cs_cdo_local.h:80
static double * cs_cdo_local_get_d_buffer(int thr_id)
Retrieve the buffer associated to the current thread. If there is no openMP then one should give 0 as...
Definition: cs_cdo_local.h:391
cs_nvec3_t * dedge
Definition: cs_cdo_local.h:245
short int n_vf
Definition: cs_cdo_local.h:331
cs_quant_t * edge
Definition: cs_cdo_local.h:306
double * f_diam
Definition: cs_cdo_local.h:242
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:569
cs_cell_mesh_t ** cs_cdo_local_cell_meshes
Definition: cs_cdo_local.c:91
short int * e2v_ids
Definition: cs_cdo_local.h:311
short int * f2v_idx
Definition: cs_cdo_local.h:255
double * neu_values
Definition: cs_cdo_local.h:175
Set of local and temporary buffers.
Definition: cs_cdo_local.h:60
int * ids
Definition: cs_cdo_local.h:128
cs_quant_t * face
Definition: cs_cdo_local.h:244
cs_face_mesh_light_t ** cs_cdo_local_face_meshes_light
Definition: cs_cdo_local.c:93
double ** cs_cdo_local_d_buffer
Definition: cs_cdo_local.c:87
cs_real_t cs_real_3_t[3]
vector of 3 floating-point values
Definition: cs_defs.h:335
bool has_robin
Definition: cs_cdo_local.h:177
static short int cs_cell_mesh_get_e(const cs_lnum_t e_id, const cs_cell_mesh_t *const cm)
Retrieve the edge id in the cellwise numbering associated to the given edge id in the mesh numbering...
Definition: cs_cdo_local.h:455
cs_quant_t face
Definition: cs_cdo_local.h:290
short int * _f_ids
Definition: cs_cdo_local.h:167
void cs_cell_sys_free(cs_cell_sys_t **p_csys)
Free a cs_cell_sys_t structure.
Definition: cs_cdo_local.c:408
cs_real_3_t xc
Definition: cs_cdo_local.h:217
short int * e_ids
Definition: cs_cdo_local.h:338
#define CS_CDO_N_MAX_REACTIONS
Definition: cs_param_cdo.h:74
Definition: cs_cdo_quantities.h:124
cs_flag_t cell_flag
Definition: cs_cdo_local.h:82
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:316
short int n_vc
Definition: cs_cdo_local.h:223
#define CS_FLAG_BOUNDARY_CELL_BY_VERTEX
(= 2) boundary cell with at least one border vertex
Definition: cs_flag.h:63
cs_real_3_t xc
Definition: cs_cdo_local.h:284
short int f
Definition: cs_cdo_local.h:327
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:676
static int cs_cdo_local_get_d_buffer_size(void)
Retrieve the size of the auxiliary buffer of double.
Definition: cs_cdo_local.h:374
#define END_C_DECLS
Definition: cs_defs.h:511
short int * e2v_ids
Definition: cs_cdo_local.h:250
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:240
unsigned short int cs_flag_t
Definition: cs_defs.h:324
short int n_bc_faces
Definition: cs_cdo_local.h:166
double * wvf
Definition: cs_cdo_local.h:333
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:574
short int n_ef
Definition: cs_cdo_local.h:337
double precision, dimension(ncharm), save e1
Definition: cpincl.f90:233
short int n_ec
Definition: cs_cdo_local.h:230
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:479
unsigned int cs_eflag_t
Definition: cs_flag.h:187
double * values
Definition: cs_cdo_local.h:129
Set of local quantities and connectivities related to a mesh face Structure used to get a better memo...
Definition: cs_cdo_local.h:279
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:542
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:1568
cs_real_3_t * vectors
Definition: cs_cdo_local.h:130
short int * f2e_idx
Definition: cs_cdo_local.h:259
short int n_max_vbyf
Definition: cs_cdo_local.h:323
cs_face_mesh_t ** cs_cdo_local_face_meshes
Definition: cs_cdo_local.c:92
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:448
double * adv_fluxes
Definition: cs_cdo_local.h:112
short int * f2e_sgn
Definition: cs_cdo_local.h:261
cs_real_t * pvol_f
Definition: cs_cdo_local.h:246
cs_lnum_t c_id
Definition: cs_cdo_local.h:283
void cs_cell_mesh_dump(const cs_cell_mesh_t *cm)
Dump a cs_cell_mesh_t structure.
Definition: cs_cdo_local.c:752
double * xv
Definition: cs_cdo_local.h:299
cs_quant_t * edge
Definition: cs_cdo_local.h:232
void cs_face_mesh_free(cs_face_mesh_t **p_fm)
Free a cs_face_mesh_t structure.
Definition: cs_cdo_local.c:1535
bool has_nhmg_neumann
Definition: cs_cdo_local.h:174
#define CS_FLAG_BOUNDARY_CELL_BY_FACE
(= 1) boundary cell with at least one border face
Definition: cs_flag.h:62