6.2
general documentation
cs_cdo_local.h
Go to the documentation of this file.
1 #ifndef __CS_CDO_LOCAL_H__
2 #define __CS_CDO_LOCAL_H__
3 
4 /*============================================================================
5  * Routines to handle low-level routines related to CDO local quantities:
6  * - local matrices (stored in dense format),
7  * - local quantities related to a cell.
8  *============================================================================*/
9 
10 /*
11  This file is part of Code_Saturne, a general-purpose CFD tool.
12 
13  Copyright (C) 1998-2020 EDF S.A.
14 
15  This program is free software; you can redistribute it and/or modify it under
16  the terms of the GNU General Public License as published by the Free Software
17  Foundation; either version 2 of the License, or (at your option) any later
18  version.
19 
20  This program is distributed in the hope that it will be useful, but WITHOUT
21  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
22  FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
23  details.
24 
25  You should have received a copy of the GNU General Public License along with
26  this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
27  Street, Fifth Floor, Boston, MA 02110-1301, USA.
28 */
29 
30 /*----------------------------------------------------------------------------
31  * Local headers
32  *----------------------------------------------------------------------------*/
33 
34 #include "cs_cdo_connect.h"
35 #include "cs_cdo_quantities.h"
36 #include "cs_flag.h"
37 #include "cs_param_cdo.h"
38 #include "cs_sdm.h"
39 
40 /*----------------------------------------------------------------------------*/
41 
43 
44 /*============================================================================
45  * Macro definitions
46  *============================================================================*/
47 
48 /*============================================================================
49  * Type definitions
50  *============================================================================*/
51 
69 typedef struct {
70 
75 
76  /* Store the cellwise value for the grad-div, the time and reaction properties
77  * since the associated Hodge operator is linked to the unity as related
78  * property */
79 
80  double gpty_val;
81  double tpty_val;
84  double rpty_vals[CS_CDO_N_MAX_REACTIONS];
85  double rpty_val;
87  /* Advection-related values */
88  double *adv_fluxes;
89 
90  /* Temporary buffers (erase and updated several times during the system
91  build */
92  int *ids;
93  double *values;
96  /* Structures used to build specific terms composing the algebraic system */
97  cs_sdm_t *loc;
98  cs_sdm_t *aux;
101 
107 typedef struct {
108 
111  int n_dofs;
115  cs_sdm_t *mat;
116  double *rhs;
117  double *source;
118  double *val_n;
120  /* Boundary conditions for the local system */
121  short int n_bc_faces;
122  short int *_f_ids;
126  /* Dirichlet BCs */
128  double *dir_values;
130  /* Neumann BCs */
132  double *neu_values;
134  /* Robin BCs */
135  bool has_robin;
136  double *rob_values;
138  /* Sliding BCs */
139  bool has_sliding;
141  /* Internal enforcement of DoFs */
145 } cs_cell_sys_t;
146 
158 typedef struct {
159 
163  /* Sizes used to allocate buffers */
164  short int n_max_vbyc;
165  short int n_max_ebyc;
166  short int n_max_fbyc;
167 
168  /* Cell information */
171  double vol_c;
172  double diam_c;
174  /* Vertex information */
175  short int n_vc;
177  double *xv;
178  double *wvc;
180  /* Edge information */
181  short int n_ec;
187  /* Face information */
188  short int n_fc;
191  short int *f_sgn;
192  double *f_diam;
193  double *hfc;
198  /* Local e2v connectivity: size 2*n_ec (allocated to 2*n_max_ebyc) */
199  short int *e2v_ids;
200  short int *e2v_sgn;
202  /* Local f2v connectivity: size = 2*n_max_ebyc */
203  short int *f2v_idx;
204  short int *f2v_ids;
206  /* Local f2e connectivity: size = 2*n_max_ebyc */
207  short int *f2e_idx;
208  short int *f2e_ids;
209  short int *f2e_sgn;
210  double *tef;
212  /* Local e2f connectivity: size 2*n_ec (allocated to 2*n_max_ebyc) */
213  short int *e2f_ids;
217 
226 typedef struct {
227 
228  short int n_max_vbyf;
233  /* Face information */
235  short int f_sgn;
238  double pvol;
239  double hfc;
241  /* Vertex information */
242  short int n_vf;
244  double *xv;
245  double *wvf;
247  /* Edge information */
248  short int n_ef;
251  double *tef;
253  /* Local e2v connectivity: size 2*n_ec (allocated to 2*n_max_ebyf) */
254  short int *e2v_ids;
257 
258 /*
259  A cs_face_mesh_light_t structure is close to a cs_face_mesh_t structure
260  There are less members to be buildt quicker.
261  Such structure is always associated to a cs_cell_mesh_t structure
262 */
263 
264 typedef struct {
265 
266  short int n_max_vbyf; /* Max number of vertices belonging to a face
267  (= n_max_ebyf) */
268 
269  cs_lnum_t c_id; /* id of related cell in the mesh numbering */
270  short int f; /* id of the face in the cell mesh numbering */
271 
272  /* Vertex information */
273  short int n_vf; /* local number of vertices on this face */
274  short int *v_ids; /* vertex ids in the cellwise numbering */
275  double *wvf; /* weights related to each vertex */
276 
277  /* Edge information */
278  short int n_ef; /* local number of edges on this face (= n_vf) */
279  short int *e_ids; /* edge ids in the cellwise numbering */
280  double *tef; /* area of the triangle of base e and apex xf */
281 
283 
284 /*============================================================================
285  * Global variables
286  *============================================================================*/
287 
291 
292 /*============================================================================
293  * Static inline function prototypes
294  *============================================================================*/
295 
296 /*----------------------------------------------------------------------------*/
304 /*----------------------------------------------------------------------------*/
305 
306 static inline bool
307 cs_cell_has_boundary_elements(const cs_cell_builder_t *const cb)
308 {
312  return true;
313  else
314  return false;
315 }
316 
317 /*----------------------------------------------------------------------------*/
327 /*----------------------------------------------------------------------------*/
328 
329 static inline short int
330 cs_cell_mesh_get_v(const cs_lnum_t v_id,
331  const cs_cell_mesh_t *const cm)
332 {
333  if (cm == NULL)
334  return -1;
335  for (short int v = 0; v < cm->n_vc; v++)
336  if (cm->v_ids[v] == v_id)
337  return v;
338  return -1;
339 }
340 
341 /*----------------------------------------------------------------------------*/
351 /*----------------------------------------------------------------------------*/
352 
353 static inline short int
354 cs_cell_mesh_get_e(const cs_lnum_t e_id,
355  const cs_cell_mesh_t *const cm)
356 {
357  if (cm == NULL)
358  return -1;
359  for (short int e = 0; e < cm->n_ec; e++)
360  if (cm->e_ids[e] == e_id)
361  return e;
362  return -1;
363 }
364 
365 /*----------------------------------------------------------------------------*/
375 /*----------------------------------------------------------------------------*/
376 
377 static inline short int
378 cs_cell_mesh_get_f(const cs_lnum_t f_id,
379  const cs_cell_mesh_t *const cm)
380 {
381  if (cm == NULL)
382  return -1;
383  for (short int f = 0; f < cm->n_fc; f++)
384  if (cm->f_ids[f] == f_id)
385  return f;
386  return -1;
387 }
388 
389 /*----------------------------------------------------------------------------*/
398 /*----------------------------------------------------------------------------*/
399 
400 static inline void
401 cs_cell_mesh_get_f2v(short int f,
402  const cs_cell_mesh_t *cm,
403  short int *n_vf,
404  short int *v_ids)
405 {
406  /* Reset */
407  *n_vf = 0;
408  for (short int v = 0; v < cm->n_vc; v++) v_ids[v] = -1;
409 
410  /* Tag vertices belonging to the current face f */
411  for (short int i = cm->f2e_idx[f]; i < cm->f2e_idx[f+1]; i++) {
412 
413  const int shift_e = 2*cm->f2e_ids[i];
414  v_ids[cm->e2v_ids[shift_e]] = 1;
415  v_ids[cm->e2v_ids[shift_e+1]] = 1;
416 
417  } /* Loop on face edges */
418 
419  for (short int v = 0; v < cm->n_vc; v++) {
420  if (v_ids[v] > 0)
421  v_ids[*n_vf] = v, *n_vf += 1;
422  }
423 
424 }
425 
426 /*----------------------------------------------------------------------------*/
437 /*----------------------------------------------------------------------------*/
438 
439 static inline void
440 cs_cell_mesh_get_next_3_vertices(const short int *f2e_ids,
441  const short int *e2v_ids,
442  short int *v0,
443  short int *v1,
444  short int *v2)
445 {
446  const short int e0 = f2e_ids[0];
447  const short int e1 = f2e_ids[1];
448  const short int tmp = e2v_ids[2*e1];
449 
450  *v0 = e2v_ids[2*e0];
451  *v1 = e2v_ids[2*e0+1];
452  *v2 = ((tmp != *v0) && (tmp != *v1)) ? tmp : e2v_ids[2*e1+1];
453 }
454 
455 /*----------------------------------------------------------------------------*/
464 /*----------------------------------------------------------------------------*/
465 
466 static inline bool
467 cs_cell_mesh_is_boundary_face(const cs_cell_mesh_t *cm,
468  const short int f)
469 {
470  if (cm->f_ids[f] - cm->bface_shift > -1)
471  return true;
472  else
473  return false;
474 }
475 
476 /*============================================================================
477  * Public function prototypes
478  *============================================================================*/
479 
480 /*----------------------------------------------------------------------------*/
487 /*----------------------------------------------------------------------------*/
488 
489 void
491 
492 /*----------------------------------------------------------------------------*/
497 /*----------------------------------------------------------------------------*/
498 
499 void
501 
502 /*----------------------------------------------------------------------------*/
514 /*----------------------------------------------------------------------------*/
515 
517 cs_cell_sys_create(int n_max_dofbyc,
518  int n_max_fbyc,
519  int n_blocks,
520  int *block_sizes);
521 
522 /*----------------------------------------------------------------------------*/
530 /*----------------------------------------------------------------------------*/
531 
532 void
533 cs_cell_sys_reset(int n_fbyc,
534  cs_cell_sys_t *csys);
535 
536 /*----------------------------------------------------------------------------*/
542 /*----------------------------------------------------------------------------*/
543 
544 void
546 
547 /*----------------------------------------------------------------------------*/
554 /*----------------------------------------------------------------------------*/
555 
556 void
557 cs_cell_sys_dump(const char msg[],
558  const cs_cell_sys_t *csys);
559 
560 /*----------------------------------------------------------------------------*/
566 /*----------------------------------------------------------------------------*/
567 
570 
571 /*----------------------------------------------------------------------------*/
577 /*----------------------------------------------------------------------------*/
578 
579 void
581 
582 /*----------------------------------------------------------------------------*/
590 /*----------------------------------------------------------------------------*/
591 
593 cs_cell_mesh_create(const cs_cdo_connect_t *connect);
594 
595 /*----------------------------------------------------------------------------*/
603 /*----------------------------------------------------------------------------*/
604 
606 cs_cdo_local_get_cell_mesh(int mesh_id);
607 
608 /*----------------------------------------------------------------------------*/
614 /*----------------------------------------------------------------------------*/
615 
616 void
618 
619 /*----------------------------------------------------------------------------*/
625 /*----------------------------------------------------------------------------*/
626 
627 void
629 
630 /*----------------------------------------------------------------------------*/
636 /*----------------------------------------------------------------------------*/
637 
638 void
640 
641 /*----------------------------------------------------------------------------*/
652 /*----------------------------------------------------------------------------*/
653 
654 void
656  cs_eflag_t build_flag,
657  const cs_cdo_connect_t *connect,
658  const cs_cdo_quantities_t *quant,
659  cs_cell_mesh_t *cm);
660 
661 /*----------------------------------------------------------------------------*/
669 /*----------------------------------------------------------------------------*/
670 
672 cs_face_mesh_create(short int n_max_vbyf);
673 
674 /*----------------------------------------------------------------------------*/
682 /*----------------------------------------------------------------------------*/
683 
685 cs_cdo_local_get_face_mesh(int mesh_id);
686 
687 /*----------------------------------------------------------------------------*/
693 /*----------------------------------------------------------------------------*/
694 
695 void
697 
698 /*----------------------------------------------------------------------------*/
708 /*----------------------------------------------------------------------------*/
709 
710 void
712  cs_lnum_t f_id,
713  const cs_cdo_connect_t *connect,
714  const cs_cdo_quantities_t *quant,
715  cs_face_mesh_t *fm);
716 
717 /*----------------------------------------------------------------------------*/
727 /*----------------------------------------------------------------------------*/
728 
729 void
731  short int f,
732  cs_face_mesh_t *fm);
733 
734 /*----------------------------------------------------------------------------*/
743 /*----------------------------------------------------------------------------*/
744 
746 cs_face_mesh_light_create(short int n_max_vbyf,
747  short int n_max_vbyc);
748 
749 /*----------------------------------------------------------------------------*/
758 /*----------------------------------------------------------------------------*/
759 
762 
763 /*----------------------------------------------------------------------------*/
769 /*----------------------------------------------------------------------------*/
770 
771 void
773 
774 /*----------------------------------------------------------------------------*/
783 /*----------------------------------------------------------------------------*/
784 
785 void
787  short int f,
789 
790 /*----------------------------------------------------------------------------*/
791 
793 
794 #endif /* __CS_CDO_LOCAL_H__ */
cs_lnum_t * e_ids
Definition: cs_cdo_local.h:249
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:1419
#define CS_FLAG_BOUNDARY_CELL_BY_EDGE
(= 4) boundary cell with at least one border edge
Definition: cs_flag.h:64
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:118
bool has_dirichlet
Definition: cs_cdo_local.h:127
short int * e2f_ids
Definition: cs_cdo_local.h:213
double * tef
Definition: cs_cdo_local.h:210
bool has_sliding
Definition: cs_cdo_local.h:139
double vol_c
Definition: cs_cdo_local.h:171
void cs_cell_mesh_free(cs_cell_mesh_t **p_cm)
Free a cs_cell_mesh_t structure.
Definition: cs_cdo_local.c:845
cs_sdm_t * loc
Definition: cs_cdo_local.h:97
cs_cell_builder_t * cs_cell_builder_create(void)
Allocate cs_cell_builder_t structure.
Definition: cs_cdo_local.c:495
cs_lnum_t * f_ids
Definition: cs_cdo_local.h:190
cs_lnum_t f_id
Definition: cs_cdo_local.h:234
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:1782
short int * v_ids
Definition: cs_cdo_local.h:274
double * wvc
Definition: cs_cdo_local.h:178
short int n_max_vbyf
Definition: cs_cdo_local.h:228
cs_lnum_t * bf_ids
Definition: cs_cdo_local.h:123
cs_real_t t_bc_eval
Definition: cs_cdo_local.h:72
double * tef
Definition: cs_cdo_local.h:251
double rpty_val
Definition: cs_cdo_local.h:85
double * source
Definition: cs_cdo_local.h:117
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:346
bool has_internal_enforcement
Definition: cs_cdo_local.h:142
cs_real_t * pvol_e
Definition: cs_cdo_local.h:185
cs_lnum_t * dof_ids
Definition: cs_cdo_local.h:112
short int n_max_vbyc
Definition: cs_cdo_local.h:164
#define BEGIN_C_DECLS
Definition: cs_defs.h:495
double * rob_values
Definition: cs_cdo_local.h:136
double * dir_values
Definition: cs_cdo_local.h:128
short int * e2v_sgn
Definition: cs_cdo_local.h:200
double * tef
Definition: cs_cdo_local.h:280
cs_nvec3_t * dface
Definition: cs_cdo_local.h:184
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:174
double * val_n
Definition: cs_cdo_local.h:118
cs_lnum_t c_id
Definition: cs_cdo_local.h:269
double * hfc
Definition: cs_cdo_local.h:193
short int n_vf
Definition: cs_cdo_local.h:242
Set of local quantities and connectivities related to a mesh cell This is a key structure for all cel...
Definition: cs_cdo_local.h:158
void cs_cell_builder_free(cs_cell_builder_t **p_cb)
Free a cs_cell_builder_t structure.
Definition: cs_cdo_local.c:534
Definition: cs_cdo_connect.h:76
short int * f2e_ids
Definition: cs_cdo_local.h:208
cs_sdm_t * mat
Definition: cs_cdo_local.h:115
cs_flag_t * dof_flag
Definition: cs_cdo_local.h:113
cs_lnum_t * v_ids
Definition: cs_cdo_local.h:243
double * xv
Definition: cs_cdo_local.h:177
short int n_ef
Definition: cs_cdo_local.h:248
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:1818
cs_nvec3_t * sefc
Definition: cs_cdo_local.h:214
double cs_real_t
Floating-point value.
Definition: cs_defs.h:307
Definition: cs_cdo_quantities.h:124
cs_nvec3_t dedge
Definition: cs_cdo_local.h:237
Definition: cs_defs.h:353
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:107
short int n_max_ebyc
Definition: cs_cdo_local.h:165
cs_lnum_t * v_ids
Definition: cs_cdo_local.h:176
int n_dofs
Definition: cs_cdo_local.h:111
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:1835
Definition: cs_cdo_local.h:264
short int * f_sgn
Definition: cs_cdo_local.h:191
short int * f2v_ids
Definition: cs_cdo_local.h:204
double * wvf
Definition: cs_cdo_local.h:245
double pvol
Definition: cs_cdo_local.h:238
double * rhs
Definition: cs_cdo_local.h:116
double precision, dimension(:,:,:), allocatable v
Definition: atimbr.f90:114
double diam_c
Definition: cs_cdo_local.h:172
cs_sdm_t * aux
Definition: cs_cdo_local.h:98
Definition: cs_field_pointer.h:134
cs_lnum_t c_id
Definition: cs_cdo_local.h:109
fvm_element_t
Definition: fvm_defs.h:48
fvm_element_t type
Definition: cs_cdo_local.h:161
cs_lnum_t c_id
Definition: cs_cdo_local.h:169
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:1863
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:634
cs_eflag_t flag
Definition: cs_cdo_local.h:160
short int n_max_fbyc
Definition: cs_cdo_local.h:166
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:1659
cs_flag_t * bf_flag
Definition: cs_cdo_local.h:124
short int n_fc
Definition: cs_cdo_local.h:188
short int f_sgn
Definition: cs_cdo_local.h:235
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:1463
double hfc
Definition: cs_cdo_local.h:239
cs_lnum_t bface_shift
Definition: cs_cdo_local.h:189
cs_lnum_t * e_ids
Definition: cs_cdo_local.h:182
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:901
cs_nvec3_t * dedge
Definition: cs_cdo_local.h:195
short int n_vf
Definition: cs_cdo_local.h:273
cs_quant_t * edge
Definition: cs_cdo_local.h:250
double * f_diam
Definition: cs_cdo_local.h:192
cs_cell_mesh_t ** cs_cdo_local_cell_meshes
Definition: cs_cdo_local.c:81
short int * e2v_ids
Definition: cs_cdo_local.h:254
short int * f2v_idx
Definition: cs_cdo_local.h:203
double * neu_values
Definition: cs_cdo_local.h:132
cs_real_t t_st_eval
Definition: cs_cdo_local.h:73
Set of local and temporary buffers useful for building the algebraic system with a cellwise process...
Definition: cs_cdo_local.h:69
int * ids
Definition: cs_cdo_local.h:92
cs_quant_t * face
Definition: cs_cdo_local.h:194
cs_face_mesh_light_t ** cs_cdo_local_face_meshes_light
Definition: cs_cdo_local.c:83
cs_lnum_t * intern_forced_ids
Definition: cs_cdo_local.h:143
cs_real_t cs_real_3_t[3]
vector of 3 floating-point values
Definition: cs_defs.h:320
bool has_robin
Definition: cs_cdo_local.h:135
cs_quant_t face
Definition: cs_cdo_local.h:236
double tpty_val
Definition: cs_cdo_local.h:81
short int * _f_ids
Definition: cs_cdo_local.h:122
void cs_cell_sys_free(cs_cell_sys_t **p_csys)
Free a cs_cell_sys_t structure.
Definition: cs_cdo_local.c:402
cs_real_3_t xc
Definition: cs_cdo_local.h:170
short int * e_ids
Definition: cs_cdo_local.h:279
#define CS_CDO_N_MAX_REACTIONS
Definition: cs_param_cdo.h:70
Definition: cs_cdo_quantities.h:116
cs_flag_t cell_flag
Definition: cs_cdo_local.h:74
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:301
short int n_vc
Definition: cs_cdo_local.h:175
#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:231
short int f
Definition: cs_cdo_local.h:270
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:658
#define END_C_DECLS
Definition: cs_defs.h:496
short int * e2v_ids
Definition: cs_cdo_local.h:199
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:225
unsigned short int cs_flag_t
Definition: cs_defs.h:309
short int n_bc_faces
Definition: cs_cdo_local.h:121
cs_real_t t_pty_eval
Definition: cs_cdo_local.h:71
double * wvf
Definition: cs_cdo_local.h:275
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:564
short int n_ef
Definition: cs_cdo_local.h:278
double precision, dimension(ncharm), save e1
Definition: cpincl.f90:233
short int n_ec
Definition: cs_cdo_local.h:181
unsigned int cs_eflag_t
Definition: cs_flag.h:166
double * values
Definition: cs_cdo_local.h:93
Set of local quantities and connectivities related to a mesh face Structure used to get a better memo...
Definition: cs_cdo_local.h:226
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:1513
cs_real_3_t * vectors
Definition: cs_cdo_local.h:94
short int * f2e_idx
Definition: cs_cdo_local.h:207
short int n_max_vbyf
Definition: cs_cdo_local.h:266
cs_face_mesh_t ** cs_cdo_local_face_meshes
Definition: cs_cdo_local.c:82
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:441
double * adv_fluxes
Definition: cs_cdo_local.h:88
short int * f2e_sgn
Definition: cs_cdo_local.h:209
cs_real_t * pvol_f
Definition: cs_cdo_local.h:196
cs_lnum_t c_id
Definition: cs_cdo_local.h:230
void cs_cell_mesh_dump(const cs_cell_mesh_t *cm)
Dump a cs_cell_mesh_t structure.
Definition: cs_cdo_local.c:729
double gpty_val
Definition: cs_cdo_local.h:80
double * xv
Definition: cs_cdo_local.h:244
cs_quant_t * edge
Definition: cs_cdo_local.h:183
void cs_face_mesh_free(cs_face_mesh_t **p_fm)
Free a cs_face_mesh_t structure.
Definition: cs_cdo_local.c:1480
bool has_nhmg_neumann
Definition: cs_cdo_local.h:131
#define CS_FLAG_BOUNDARY_CELL_BY_FACE
(= 1) boundary cell with at least one border face
Definition: cs_flag.h:62