8.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  * Functions to handle low-level functions 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-2024 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 
60 typedef struct {
61 
81 
107  double gpty_val;
108  double tpty_val;
109  double rpty_vals[CS_CDO_N_MAX_REACTIONS];
110  double rpty_val;
111 
112  double *adv_fluxes;
128  int *ids;
129  double *values;
132  cs_sdm_t *loc;
133  cs_sdm_t *aux;
134 
140 
147 typedef struct {
148 
151  int n_dofs;
155  cs_sdm_t *mat;
156  double *rhs;
157  double *source;
158  double *val_n;
159  double *val_nm1;
166  short int n_bc_faces;
167  short int *_f_ids;
172  double *dir_values;
175  double *neu_values;
177  bool has_robin;
178  double *rob_values;
180  bool has_sliding;
182  bool has_internal_enforcement; /*<! At least one DoF enforced */
189 } cs_cell_sys_t;
190 
203 typedef struct {
204 
208  /* Sizes used to allocate buffers */
209 
210  short int n_max_vbyc;
211  short int n_max_ebyc;
212  short int n_max_fbyc;
213 
214  /* Cell information */
215 
218  double vol_c;
219  double diam_c;
221  /* Vertex information */
222 
223  short int n_vc;
225  double *xv;
226  double *wvc;
228  /* Edge information */
229 
230  short int n_ec;
236  /* Face information */
237 
238  short int n_fc;
241  short int *f_sgn;
242  double *f_diam;
243  double *hfc;
248  /* Local e2v connectivity: size 2*n_ec (allocated to 2*n_max_ebyc) */
249 
250  short int *e2v_ids;
251  short int *e2v_sgn;
253  /* Local f2v connectivity: size = 2*n_max_ebyc */
254 
255  short int *f2v_idx;
256  short int *f2v_ids;
258  /* Local f2e connectivity: size = 2*n_max_ebyc */
259  short int *f2e_idx;
260  short int *f2e_ids;
261  short int *f2e_sgn;
262  double *tef;
264  /* Local e2f connectivity: size 2*n_ec (allocated to 2*n_max_ebyc) */
265 
266  short int *e2f_ids;
270 
279 typedef struct {
280 
281  short int n_max_vbyf;
286  /* Face information */
287 
289  short int f_sgn;
292  double pvol;
293  double hfc;
295  /* Vertex information */
296 
297  short int n_vf;
299  double *xv;
300  double *wvf;
302  /* Edge information */
303 
304  short int n_ef;
307  double *tef;
309  /* Local e2v connectivity: size 2*n_ec (allocated to 2*n_max_ebyf) */
310 
311  short int *e2v_ids;
314 
315 /*
316  A cs_face_mesh_light_t structure is close to a cs_face_mesh_t structure
317  There are less members to be buildt quicker.
318  Such structure is always associated to a cs_cell_mesh_t structure
319 */
320 
321 typedef struct {
322 
323  short int n_max_vbyf; /* Max number of vertices belonging to a face
324  (= n_max_ebyf) */
325 
326  cs_lnum_t c_id; /* id of related cell in the mesh numbering */
327  short int f; /* id of the face in the cell mesh numbering */
328 
329  /* Vertex information */
330 
331  short int n_vf; /* local number of vertices on this face */
332  short int *v_ids; /* vertex ids in the cellwise numbering */
333  double *wvf; /* weights related to each vertex */
334 
335  /* Edge information */
336 
337  short int n_ef; /* local number of edges on this face (= n_vf) */
338  short int *e_ids; /* edge ids in the cellwise numbering */
339  double *tef; /* area of the triangle of base e and apex xf */
340 
342 
343 /*============================================================================
344  * Global variables
345  *============================================================================*/
346 
347 /* Pointer of pointers to global structures */
348 
352 
353 /*============================================================================
354  * Static inline function prototypes
355  *============================================================================*/
356 
357 /*----------------------------------------------------------------------------*/
365 /*----------------------------------------------------------------------------*/
366 
367 static inline bool
369 {
373  return true;
374  else
375  return false;
376 }
377 
378 /*----------------------------------------------------------------------------*/
388 /*----------------------------------------------------------------------------*/
389 
390 static inline short int
392  const cs_cell_mesh_t *const cm)
393 {
394  if (cm == NULL)
395  return -1;
396  for (short int v = 0; v < cm->n_vc; v++)
397  if (cm->v_ids[v] == v_id)
398  return v;
399  return -1;
400 }
401 
402 /*----------------------------------------------------------------------------*/
412 /*----------------------------------------------------------------------------*/
413 
414 static inline short int
416  const cs_cell_mesh_t *const cm)
417 {
418  if (cm == NULL)
419  return -1;
420  for (short int e = 0; e < cm->n_ec; e++)
421  if (cm->e_ids[e] == e_id)
422  return e;
423  return -1;
424 }
425 
426 /*----------------------------------------------------------------------------*/
436 /*----------------------------------------------------------------------------*/
437 
438 static inline short int
440  const cs_cell_mesh_t *const cm)
441 {
442  if (cm == NULL)
443  return -1;
444  for (short int f = 0; f < cm->n_fc; f++)
445  if (cm->f_ids[f] == f_id)
446  return f;
447  return -1;
448 }
449 
450 /*----------------------------------------------------------------------------*/
459 /*----------------------------------------------------------------------------*/
460 
461 static inline void
463  const cs_cell_mesh_t *cm,
464  short int *n_vf,
465  short int *v_ids)
466 {
467  /* Reset */
468 
469  *n_vf = 0;
470  for (short int v = 0; v < cm->n_vc; v++) v_ids[v] = -1;
471 
472  /* Tag vertices belonging to the current face f */
473 
474  for (short int i = cm->f2e_idx[f]; i < cm->f2e_idx[f+1]; i++) {
475 
476  const short int *e2v = cm->e2v_ids + 2*cm->f2e_ids[i];
477  v_ids[e2v[0]] = 1;
478  v_ids[e2v[1]] = 1;
479 
480  } /* Loop on face edges */
481 
482  for (short int v = 0; v < cm->n_vc; v++) {
483  if (v_ids[v] > 0)
484  v_ids[*n_vf] = v, *n_vf += 1;
485  }
486 }
487 
488 /*----------------------------------------------------------------------------*/
499 /*----------------------------------------------------------------------------*/
500 
501 static inline void
502 cs_cell_mesh_get_next_3_vertices(const short int *f2e_ids,
503  const short int *e2v_ids,
504  short int *v0,
505  short int *v1,
506  short int *v2)
507 {
508  const short int e0 = f2e_ids[0];
509  const short int e1 = f2e_ids[1];
510  const short int tmp = e2v_ids[2*e1];
511 
512  *v0 = e2v_ids[2*e0];
513  *v1 = e2v_ids[2*e0+1];
514  *v2 = ((tmp != *v0) && (tmp != *v1)) ? tmp : e2v_ids[2*e1+1];
515 }
516 
517 /*----------------------------------------------------------------------------*/
526 /*----------------------------------------------------------------------------*/
527 
528 static inline bool
530  const short int f)
531 {
532  if (cm->f_ids[f] - cm->bface_shift > -1)
533  return true;
534  else
535  return false;
536 }
537 
538 /*============================================================================
539  * Public function prototypes
540  *============================================================================*/
541 
542 /*----------------------------------------------------------------------------*/
549 /*----------------------------------------------------------------------------*/
550 
551 void
553 
554 /*----------------------------------------------------------------------------*/
559 /*----------------------------------------------------------------------------*/
560 
561 void
563 
564 /*----------------------------------------------------------------------------*/
576 /*----------------------------------------------------------------------------*/
577 
579 cs_cell_sys_create(int n_max_dofbyc,
580  int n_max_fbyc,
581  int n_blocks,
582  int *block_sizes);
583 
584 /*----------------------------------------------------------------------------*/
592 /*----------------------------------------------------------------------------*/
593 
594 void
595 cs_cell_sys_reset(int n_fbyc,
596  cs_cell_sys_t *csys);
597 
598 /*----------------------------------------------------------------------------*/
604 /*----------------------------------------------------------------------------*/
605 
606 void
608 
609 /*----------------------------------------------------------------------------*/
616 /*----------------------------------------------------------------------------*/
617 
618 void
619 cs_cell_sys_dump(const char msg[],
620  const cs_cell_sys_t *csys);
621 
622 /*----------------------------------------------------------------------------*/
628 /*----------------------------------------------------------------------------*/
629 
632 
633 /*----------------------------------------------------------------------------*/
639 /*----------------------------------------------------------------------------*/
640 
641 void
643 
644 /*----------------------------------------------------------------------------*/
652 /*----------------------------------------------------------------------------*/
653 
655 cs_cell_mesh_create(const cs_cdo_connect_t *connect);
656 
657 /*----------------------------------------------------------------------------*/
665 /*----------------------------------------------------------------------------*/
666 
668 cs_cdo_local_get_cell_mesh(int mesh_id);
669 
670 /*----------------------------------------------------------------------------*/
676 /*----------------------------------------------------------------------------*/
677 
678 void
680 
681 /*----------------------------------------------------------------------------*/
687 /*----------------------------------------------------------------------------*/
688 
689 void
691 
692 /*----------------------------------------------------------------------------*/
698 /*----------------------------------------------------------------------------*/
699 
700 void
702 
703 /*----------------------------------------------------------------------------*/
714 /*----------------------------------------------------------------------------*/
715 
716 void
718  cs_eflag_t build_flag,
719  const cs_cdo_connect_t *connect,
720  const cs_cdo_quantities_t *quant,
721  cs_cell_mesh_t *cm);
722 
723 /*----------------------------------------------------------------------------*/
731 /*----------------------------------------------------------------------------*/
732 
734 cs_face_mesh_create(short int n_max_vbyf);
735 
736 /*----------------------------------------------------------------------------*/
744 /*----------------------------------------------------------------------------*/
745 
747 cs_cdo_local_get_face_mesh(int mesh_id);
748 
749 /*----------------------------------------------------------------------------*/
755 /*----------------------------------------------------------------------------*/
756 
757 void
759 
760 /*----------------------------------------------------------------------------*/
770 /*----------------------------------------------------------------------------*/
771 
772 void
774  cs_lnum_t f_id,
775  const cs_cdo_connect_t *connect,
776  const cs_cdo_quantities_t *quant,
777  cs_face_mesh_t *fm);
778 
779 /*----------------------------------------------------------------------------*/
789 /*----------------------------------------------------------------------------*/
790 
791 void
793  short int f,
794  cs_face_mesh_t *fm);
795 
796 /*----------------------------------------------------------------------------*/
805 /*----------------------------------------------------------------------------*/
806 
808 cs_face_mesh_light_create(short int n_max_vbyf,
809  short int n_max_vbyc);
810 
811 /*----------------------------------------------------------------------------*/
820 /*----------------------------------------------------------------------------*/
821 
824 
825 /*----------------------------------------------------------------------------*/
831 /*----------------------------------------------------------------------------*/
832 
833 void
835 
836 /*----------------------------------------------------------------------------*/
845 /*----------------------------------------------------------------------------*/
846 
847 void
849  short int f,
851 
852 /*----------------------------------------------------------------------------*/
853 
855 
856 #endif /* __CS_CDO_LOCAL_H__ */
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:415
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:914
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:664
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:640
cs_face_mesh_light_t ** cs_cdo_local_face_meshes_light
Definition: cs_cdo_local.c:85
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:462
void cs_cell_mesh_dump(const cs_cell_mesh_t *cm)
Dump a cs_cell_mesh_t structure.
Definition: cs_cdo_local.c:740
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:356
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:1816
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:173
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:1854
void cs_cell_mesh_free(cs_cell_mesh_t **p_cm)
Free a cs_cell_mesh_t structure.
Definition: cs_cdo_local.c:858
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:122
cs_cell_mesh_t ** cs_cdo_local_cell_meshes
Definition: cs_cdo_local.c:83
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:436
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:1688
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:221
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:368
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:1486
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:1536
void cs_cell_builder_free(cs_cell_builder_t **p_cb)
Free a cs_cell_builder_t structure.
Definition: cs_cdo_local.c:532
cs_cell_builder_t * cs_cell_builder_create(void)
Allocate cs_cell_builder_t structure.
Definition: cs_cdo_local.c:491
cs_face_mesh_t ** cs_cdo_local_face_meshes
Definition: cs_cdo_local.c:84
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:1899
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:529
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:391
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:562
void cs_face_mesh_free(cs_face_mesh_t **p_fm)
Free a cs_face_mesh_t structure.
Definition: cs_cdo_local.c:1503
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:1871
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:1439
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:502
void cs_cell_sys_free(cs_cell_sys_t **p_csys)
Free a cs_cell_sys_t structure.
Definition: cs_cdo_local.c:396
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:439
#define BEGIN_C_DECLS
Definition: cs_defs.h:528
double cs_real_t
Floating-point value.
Definition: cs_defs.h:332
cs_real_t cs_real_3_t[3]
vector of 3 floating-point values
Definition: cs_defs.h:347
#define END_C_DECLS
Definition: cs_defs.h:529
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:325
unsigned short int cs_flag_t
Definition: cs_defs.h:334
@ fm
Definition: cs_field_pointer.h:127
#define CS_FLAG_BOUNDARY_CELL_BY_VERTEX
(= 2) boundary cell with at least one border vertex
Definition: cs_flag.h:63
#define CS_FLAG_BOUNDARY_CELL_BY_FACE
(= 1) boundary cell with at least one border face
Definition: cs_flag.h:62
#define CS_FLAG_BOUNDARY_CELL_BY_EDGE
(= 4) boundary cell with at least one border edge
Definition: cs_flag.h:64
unsigned int cs_eflag_t
Definition: cs_flag.h:190
#define CS_CDO_N_MAX_REACTIONS
Definition: cs_param_cdo.h:71
fvm_element_t
Definition: fvm_defs.h:48
double precision, dimension(:,:,:), allocatable v
Definition: atimbr.f90:113
real(c_double), dimension(:), pointer, save e1
Definition: cpincl.f90:109
Definition: cs_cdo_connect.h:61
Definition: cs_cdo_quantities.h:137
Set of local and temporary buffers.
Definition: cs_cdo_local.h:60
double * values
Definition: cs_cdo_local.h:129
cs_real_t t_bc_eval
Definition: cs_cdo_local.h:79
double tpty_val
Definition: cs_cdo_local.h:108
cs_real_3_t * vectors
Definition: cs_cdo_local.h:130
cs_real_t t_pty_eval
Definition: cs_cdo_local.h:78
cs_sdm_t * aux
Definition: cs_cdo_local.h:133
double * adv_fluxes
Definition: cs_cdo_local.h:112
int * ids
Definition: cs_cdo_local.h:128
double rpty_val
Definition: cs_cdo_local.h:110
double gpty_val
Definition: cs_cdo_local.h:107
cs_real_t t_st_eval
Definition: cs_cdo_local.h:80
cs_sdm_t * loc
Definition: cs_cdo_local.h:132
cs_flag_t cell_flag
Definition: cs_cdo_local.h:82
Set of local quantities and connectivities related to a mesh cell.
Definition: cs_cdo_local.h:203
cs_lnum_t * f_ids
Definition: cs_cdo_local.h:240
fvm_element_t type
Definition: cs_cdo_local.h:206
cs_real_3_t xc
Definition: cs_cdo_local.h:217
short int * e2v_ids
Definition: cs_cdo_local.h:250
double * f_diam
Definition: cs_cdo_local.h:242
short int * f2v_idx
Definition: cs_cdo_local.h:255
cs_nvec3_t * dface
Definition: cs_cdo_local.h:233
short int * e2v_sgn
Definition: cs_cdo_local.h:251
cs_real_t * pvol_f
Definition: cs_cdo_local.h:246
double diam_c
Definition: cs_cdo_local.h:219
short int n_vc
Definition: cs_cdo_local.h:223
cs_lnum_t c_id
Definition: cs_cdo_local.h:216
cs_nvec3_t * sefc
Definition: cs_cdo_local.h:267
double * hfc
Definition: cs_cdo_local.h:243
double * xv
Definition: cs_cdo_local.h:225
short int n_max_ebyc
Definition: cs_cdo_local.h:211
double * wvc
Definition: cs_cdo_local.h:226
short int * f2e_sgn
Definition: cs_cdo_local.h:261
short int n_ec
Definition: cs_cdo_local.h:230
short int * f2e_idx
Definition: cs_cdo_local.h:259
cs_quant_t * edge
Definition: cs_cdo_local.h:232
cs_eflag_t flag
Definition: cs_cdo_local.h:205
cs_lnum_t bface_shift
Definition: cs_cdo_local.h:239
short int * f2e_ids
Definition: cs_cdo_local.h:260
short int n_max_vbyc
Definition: cs_cdo_local.h:210
cs_nvec3_t * dedge
Definition: cs_cdo_local.h:245
double * tef
Definition: cs_cdo_local.h:262
short int n_fc
Definition: cs_cdo_local.h:238
short int * f_sgn
Definition: cs_cdo_local.h:241
short int * e2f_ids
Definition: cs_cdo_local.h:266
short int n_max_fbyc
Definition: cs_cdo_local.h:212
double vol_c
Definition: cs_cdo_local.h:218
short int * f2v_ids
Definition: cs_cdo_local.h:256
cs_lnum_t * v_ids
Definition: cs_cdo_local.h:224
cs_lnum_t * e_ids
Definition: cs_cdo_local.h:231
cs_real_t * pvol_e
Definition: cs_cdo_local.h:234
cs_quant_t * face
Definition: cs_cdo_local.h:244
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
bool has_robin
Definition: cs_cdo_local.h:177
double * val_n
Definition: cs_cdo_local.h:158
cs_sdm_t * mat
Definition: cs_cdo_local.h:155
bool * dof_is_forced
Definition: cs_cdo_local.h:183
double * neu_values
Definition: cs_cdo_local.h:175
cs_lnum_t * bf_ids
Definition: cs_cdo_local.h:168
double * rob_values
Definition: cs_cdo_local.h:178
bool has_internal_enforcement
Definition: cs_cdo_local.h:182
bool has_dirichlet
Definition: cs_cdo_local.h:171
double * val_nm1
Definition: cs_cdo_local.h:159
double * source
Definition: cs_cdo_local.h:157
bool has_nhmg_neumann
Definition: cs_cdo_local.h:174
cs_lnum_t c_id
Definition: cs_cdo_local.h:149
bool has_sliding
Definition: cs_cdo_local.h:180
cs_lnum_t * dof_ids
Definition: cs_cdo_local.h:152
short int n_bc_faces
Definition: cs_cdo_local.h:166
double * dir_values
Definition: cs_cdo_local.h:172
cs_flag_t * bf_flag
Definition: cs_cdo_local.h:169
cs_flag_t * dof_flag
Definition: cs_cdo_local.h:153
double * rhs
Definition: cs_cdo_local.h:156
short int * _f_ids
Definition: cs_cdo_local.h:167
int n_dofs
Definition: cs_cdo_local.h:151
Definition: cs_cdo_local.h:321
short int * e_ids
Definition: cs_cdo_local.h:338
cs_lnum_t c_id
Definition: cs_cdo_local.h:326
double * wvf
Definition: cs_cdo_local.h:333
double * tef
Definition: cs_cdo_local.h:339
short int n_vf
Definition: cs_cdo_local.h:331
short int * v_ids
Definition: cs_cdo_local.h:332
short int f
Definition: cs_cdo_local.h:327
short int n_ef
Definition: cs_cdo_local.h:337
short int n_max_vbyf
Definition: cs_cdo_local.h:323
Set of local quantities and connectivities related to a mesh face Structure used to get a better memo...
Definition: cs_cdo_local.h:279
cs_real_3_t xc
Definition: cs_cdo_local.h:284
short int * e2v_ids
Definition: cs_cdo_local.h:311
double hfc
Definition: cs_cdo_local.h:293
double pvol
Definition: cs_cdo_local.h:292
cs_nvec3_t dedge
Definition: cs_cdo_local.h:291
cs_lnum_t c_id
Definition: cs_cdo_local.h:283
double * wvf
Definition: cs_cdo_local.h:300
cs_lnum_t f_id
Definition: cs_cdo_local.h:288
double * xv
Definition: cs_cdo_local.h:299
cs_quant_t * edge
Definition: cs_cdo_local.h:306
cs_quant_t face
Definition: cs_cdo_local.h:290
double * tef
Definition: cs_cdo_local.h:307
short int n_vf
Definition: cs_cdo_local.h:297
short int n_ef
Definition: cs_cdo_local.h:304
short int f_sgn
Definition: cs_cdo_local.h:289
cs_lnum_t * v_ids
Definition: cs_cdo_local.h:298
cs_lnum_t * e_ids
Definition: cs_cdo_local.h:305
short int n_max_vbyf
Definition: cs_cdo_local.h:281
Definition: cs_defs.h:386
Definition: cs_cdo_quantities.h:129