7.0
general documentation
cs_internal_coupling.h
Go to the documentation of this file.
1 #ifndef __CS_INTERNAL_COUPLING_H__
2 #define __CS_INTERNAL_COUPLING_H__
3 
4 /*============================================================================
5  * Internal coupling: coupling for one instance of Code_Saturne
6  *============================================================================*/
7 
8 /*
9  This file is part of Code_Saturne, a general-purpose CFD tool.
10 
11  Copyright (C) 1998-2021 EDF S.A.
12 
13  This program is free software; you can redistribute it and/or modify it under
14  the terms of the GNU General Public License as published by the Free Software
15  Foundation; either version 2 of the License, or (at your option) any later
16  version.
17 
18  This program is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
20  FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
21  details.
22 
23  You should have received a copy of the GNU General Public License along with
24  this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
25  Street, Fifth Floor, Boston, MA 02110-1301, USA.
26 */
27 
28 /*----------------------------------------------------------------------------*/
29 
30 /*----------------------------------------------------------------------------
31  * PLE library headers
32  *----------------------------------------------------------------------------*/
33 
34 #include <ple_locator.h>
35 
36 /*----------------------------------------------------------------------------
37  * Local headers
38  *----------------------------------------------------------------------------*/
39 
40 #include "cs_defs.h"
41 
42 #include "cs_base.h"
43 #include "cs_matrix_assembler.h"
44 #include "cs_mesh.h"
45 #include "cs_mesh_quantities.h"
46 #include "cs_parameters.h"
47 
48 /*----------------------------------------------------------------------------*/
49 
51 
52 /*=============================================================================
53  * Macro definitions
54  *============================================================================*/
55 
56 /*============================================================================
57  * Type definitions
58  *============================================================================*/
59 
60 
61 /* Internal coupling structure definition */
62 
63 typedef struct {
64 
65  /* Id */
66  int id;
67 
68  /* Locator + tag for exchanging variables */
69  ple_locator_t *locator;
70  int *c_tag;
71 
72  /* Selection criteria for coupled domains */
75 
78 
79  /* Associated zone ids */
80 
83 
84  cs_lnum_t n_local; /* Number of faces */
85  cs_lnum_t *faces_local; /* Coupling boundary faces, numbered 0..n-1 */
86 
87  cs_lnum_t n_distant; /* Number of faces in faces_distant */
88  cs_lnum_t *faces_distant; /* Distant boundary faces associated with locator */
89 
90  /* face i is coupled in this entity if coupled_faces[i] = true */
92 
93  /* Geometrical weights around coupling interface */
95 
96  /* IJ vectors */
98 
99  /* OF vectors */
101 
103 
104 /*============================================================================
105  * Public function prototypes
106  *============================================================================*/
107 
108 /*----------------------------------------------------------------------------*/
114 /*----------------------------------------------------------------------------*/
115 
116 int
118 
119 /*----------------------------------------------------------------------------*/
129 /*----------------------------------------------------------------------------*/
130 
131 void
133  const char criteria_cells[],
134  const char criteria_faces[]);
135 
136 /*----------------------------------------------------------------------------*/
144 /*----------------------------------------------------------------------------*/
145 
146 void
148  const char criteria_cells[]);
149 
150 /*----------------------------------------------------------------------------*/
158 /*----------------------------------------------------------------------------*/
159 
160 void
162  const cs_zone_t *z);
163 
164 /*----------------------------------------------------------------------------*/
172 /*----------------------------------------------------------------------------*/
173 
174 void
176  const int zone_ids[]);
177 
178 /*----------------------------------------------------------------------------*/
194 /*----------------------------------------------------------------------------*/
195 
196 void
198  const char *interior_name,
199  const char *exterior_name);
200 
201 /*----------------------------------------------------------------------------*/
207 /*----------------------------------------------------------------------------*/
208 
209 void
210 cs_internal_coupling_bcs(int bc_type[]);
211 
212 /*----------------------------------------------------------------------------*/
216 /*----------------------------------------------------------------------------*/
217 
218 void
220 
221 /*----------------------------------------------------------------------------*/
229 /*----------------------------------------------------------------------------*/
230 
232 cs_internal_coupling_by_id(int coupling_id);
233 
234 /*----------------------------------------------------------------------------*/
244 /*----------------------------------------------------------------------------*/
245 
246 void
248  int stride,
249  cs_real_t distant[],
250  cs_real_t local[]);
251 
252 /*----------------------------------------------------------------------------*/
261 /*----------------------------------------------------------------------------*/
262 
263 void
265  int stride,
266  const cs_real_t tab[],
267  cs_real_t local[]);
268 
269 /*----------------------------------------------------------------------------*/
278 /*----------------------------------------------------------------------------*/
279 
280 void
282  int stride,
283  const cs_real_t tab[],
284  cs_real_t local[]);
285 
286 /*----------------------------------------------------------------------------
287  * Modify LSQ COCG matrix to include internal coupling
288  *
289  * parameters:
290  * cpl <-- pointer to coupling entity
291  * cocg <-> cocg matrix modified
292  *----------------------------------------------------------------------------*/
293 
294 void
296  cs_real_33_t cocg[]);
297 
298 /*----------------------------------------------------------------------------
299  * Modify LSQ COCG matrix to include internal coupling
300  * when diffusivity is a tensor
301  *
302  * parameters:
303  * cpl <-- pointer to coupling entity
304  * c_weight <-- weigthing coefficients
305  * cocg <-> cocg matrix modified
306  *----------------------------------------------------------------------------*/
307 
308 void
310  const cs_real_t *c_weight,
311  cs_real_33_t cocg[]);
312 
313 /*----------------------------------------------------------------------------
314  * Modify iterative COCG matrix to include internal coupling
315  *
316  * parameters:
317  * cpl <-- pointer to coupling entity
318  * cocg <-> cocg matrix modified
319  *----------------------------------------------------------------------------*/
320 
321 void
323  cs_real_33_t cocg[]);
324 
325 /*----------------------------------------------------------------------------*/
329 /*----------------------------------------------------------------------------*/
330 
331 void
333 
334 /*----------------------------------------------------------------------------*/
338 /*----------------------------------------------------------------------------*/
339 
340 void
342 
343 /*----------------------------------------------------------------------------*/
352 /*----------------------------------------------------------------------------*/
353 
354 void
356  const cs_internal_coupling_t *cpl,
357  const cs_real_t c_weight[],
358  const int w_stride,
359  cs_real_4_t rhsv[]);
360 
361 /*----------------------------------------------------------------------------*/
371 /*----------------------------------------------------------------------------*/
372 
373 void
375  const cs_internal_coupling_t *cpl,
376  const cs_real_t c_weight[],
377  const int w_stride,
378  const cs_real_3_t pvar[],
379  cs_real_33_t rhs[]);
380 
381 /*----------------------------------------------------------------------------*/
391 /*----------------------------------------------------------------------------*/
392 
393 void
395  const cs_internal_coupling_t *cpl,
396  const cs_real_t c_weight[],
397  const int w_stride,
398  const cs_real_6_t pvar[],
399  cs_real_63_t rhs[]);
400 
401 /*----------------------------------------------------------------------------*/
412 /*----------------------------------------------------------------------------*/
413 
414 void
416  const cs_internal_coupling_t *cpl,
417  const cs_real_t c_weight[],
418  cs_real_3_t *restrict grad,
419  const cs_real_t pvar[],
420  cs_real_3_t rhs[]);
421 
422 /*----------------------------------------------------------------------------*/
433 /*----------------------------------------------------------------------------*/
434 
435 void
437  const cs_internal_coupling_t *cpl,
438  const cs_real_t c_weight[],
439  cs_real_33_t *restrict grad,
440  const cs_real_3_t pvar[],
441  cs_real_33_t rhs[]);
442 
443 /*----------------------------------------------------------------------------*/
454 /*----------------------------------------------------------------------------*/
455 
456 void
458  const cs_internal_coupling_t *cpl,
459  const cs_real_t c_weight[],
460  cs_real_63_t *restrict grad,
461  const cs_real_6_t pvar[],
462  cs_real_63_t rhs[]);
463 
464 /*----------------------------------------------------------------------------*/
473 /*----------------------------------------------------------------------------*/
474 
475 void
477  const cs_internal_coupling_t *cpl,
478  cs_real_3_t *restrict r_grad,
479  cs_real_3_t grad[]);
480 
481 /*----------------------------------------------------------------------------*/
490 /*----------------------------------------------------------------------------*/
491 
492 void
494  const cs_internal_coupling_t *cpl,
495  cs_real_33_t *restrict r_grad,
496  cs_real_33_t grad[]);
497 
498 /*----------------------------------------------------------------------------*/
507 /*----------------------------------------------------------------------------*/
508 
509 void
511  const cs_internal_coupling_t *cpl,
512  cs_real_63_t *restrict r_grad,
513  cs_real_63_t grad[]);
514 
515 /*----------------------------------------------------------------------------
516  * Addition to matrix-vector product in case of internal coupling.
517  *
518  * parameters:
519  * exclude_diag <-- extra diagonal flag
520  * f <-- associated field pointer
521  * x <-- vector x in m * x = y
522  * y <-> vector y in m * x = y
523  *----------------------------------------------------------------------------*/
524 
525 void
527  const cs_field_t *f,
528  const cs_real_t *restrict x,
529  cs_real_t *restrict y);
530 
531 /*----------------------------------------------------------------------------
532  * Add coupling term coordinates to matrix assembler.
533  *
534  * parameters:
535  * coupling_id
536  * r_g_id <-- global row ids (per cell)
537  * ma <-> matrix assembler
538  *----------------------------------------------------------------------------*/
539 
540 void
542  const cs_gnum_t *r_g_id,
544 
545 /*----------------------------------------------------------------------------
546  * Add coupling terms to matrix values assembly.
547  *
548  * parameters:
549  * f <-- associated field
550  * db_size <-- diagonal block size
551  * eb_size <-- extra-diagonal block size
552  * r_g_id <-- global row ids (per cell)
553  * mav <-> matrix values assembler
554  *----------------------------------------------------------------------------*/
555 
556 void
558  cs_lnum_t db_size,
559  cs_lnum_t eb_size,
560  const cs_gnum_t r_g_id[],
562 
563 /*----------------------------------------------------------------------------
564  * Return pointers to coupling components
565  *
566  * parameters:
567  * cpl <-- pointer to coupling entity
568  * n_local --> NULL or pointer to component n_local
569  * faces_local --> NULL or pointer to component faces_local
570  * n_distant --> NULL or pointer to component n_distant
571  * faces_distant --> NULL or pointer to component faces_distant
572  *----------------------------------------------------------------------------*/
573 
574 void
576  cs_lnum_t *n_local,
577  const cs_lnum_t *faces_local[],
578  cs_lnum_t *n_distant,
579  const cs_lnum_t *faces_distant[]);
580 
581 /*----------------------------------------------------------------------------
582  * Log information about a given internal coupling entity
583  *
584  * parameters:
585  * cpl <-- pointer to coupling entity
586  *----------------------------------------------------------------------------*/
587 
588 void
590 
591 /*----------------------------------------------------------------------------
592  * Print informations about all coupling entities
593  *
594  * parameters:
595  * cpl <-- pointer to coupling entity
596  *----------------------------------------------------------------------------*/
597 
598 void
600 
601 /*----------------------------------------------------------------------------
602  * Add preprocessing operations required by coupling volume using given
603  * criteria.
604  *
605  * The volume is separated from the rest of the domain with inserted
606  * boundaries.
607  *
608  * parameters:
609  * mesh <-> pointer to mesh structure to modify
610  *----------------------------------------------------------------------------*/
611 
612 void
614 
615 /*----------------------------------------------------------------------------
616  * Define face to face mappings for internal couplings.
617  *
618  * parameters:
619  * mesh <-> pointer to mesh structure to modify
620  *----------------------------------------------------------------------------*/
621 
622 void
624 
625 /*----------------------------------------------------------------------------
626  * Define coupling entity using given criteria.
627  *
628  * parameters:
629  * f_id <-- id of the field
630  *----------------------------------------------------------------------------*/
631 
632 void
634 
635 /*----------------------------------------------------------------------------*/
645 /*----------------------------------------------------------------------------*/
646 
647 void
649  const cs_internal_coupling_t *cpl,
650  const cs_real_t c_weight[],
651  const cs_real_t pvar[],
652  cs_real_3_t *restrict grad);
653 
654 /*----------------------------------------------------------------------------*/
664 /*----------------------------------------------------------------------------*/
665 
666 void
668  const cs_internal_coupling_t *cpl,
669  const cs_real_t c_weight[],
670  const cs_real_3_t pvar[],
671  cs_real_33_t *restrict grad);
672 
673 
674 /*----------------------------------------------------------------------------*/
684 /*----------------------------------------------------------------------------*/
685 
686 void
688  const cs_internal_coupling_t *cpl,
689  const cs_real_t c_weight[],
690  const cs_real_6_t pvar[],
691  cs_real_63_t *restrict grad);
692 
693 /*----------------------------------------------------------------------------*/
701 /*----------------------------------------------------------------------------*/
702 
703 void
704 cs_ic_field_set_exchcoeff(const int field_id,
705  const cs_real_t *hbnd);
706 
707 /*----------------------------------------------------------------------------*/
717 /*----------------------------------------------------------------------------*/
718 
719 void
720 cs_ic_field_dist_data_by_face_id(const int field_id,
721  int stride,
722  const cs_real_t tab_distant[],
723  cs_real_t tab_local[]);
724 
725 /*----------------------------------------------------------------------------*/
726 
728 
729 #endif /* __CS_INTERNAL_COUPLING_H__ */
cs_real_3_t * offset_vect
Definition: cs_internal_coupling.h:100
char * interior_faces_group_name
Definition: cs_internal_coupling.h:76
void cs_internal_coupling_iterative_tensor_gradient(const cs_internal_coupling_t *cpl, const cs_real_t c_weight[], cs_real_63_t *restrict grad, const cs_real_6_t pvar[], cs_real_63_t rhs[])
Add internal coupling rhs contribution for iterative tensor gradient calculation. ...
Definition: cs_internal_coupling.c:1680
unsigned long cs_gnum_t
global mesh entity number
Definition: cs_defs.h:286
ple_locator_t * locator
Definition: cs_internal_coupling.h:69
#define restrict
Definition: cs_defs.h:127
int n_volume_zones
Definition: cs_internal_coupling.h:81
void cs_internal_coupling_exchange_by_face_id(const cs_internal_coupling_t *cpl, int stride, const cs_real_t tab[], cs_real_t local[])
Exchange variable between groups using face id.
Definition: cs_internal_coupling.c:2468
int cs_internal_coupling_n_couplings(void)
Return number of defined internal couplings.
Definition: cs_internal_coupling.c:1005
cs_real_t cs_real_6_t[6]
vector of 6 floating-point values
Definition: cs_defs.h:322
void cs_ic_field_dist_data_by_face_id(const int field_id, int stride, const cs_real_t tab_distant[], cs_real_t tab_local[])
Get distant data using face id at all coupling faces for a given field id.
Definition: cs_internal_coupling.c:3109
Field descriptor.
Definition: cs_field.h:125
struct _cs_matrix_assembler_values_t cs_matrix_assembler_values_t
Definition: cs_matrix_assembler.h:65
Definition: cs_internal_coupling.h:63
void cs_internal_coupling_lsq_cocg_weighted(const cs_internal_coupling_t *cpl, const cs_real_t *c_weight, cs_real_33_t cocg[])
Definition: cs_internal_coupling.c:2256
#define BEGIN_C_DECLS
Definition: cs_defs.h:495
void cs_internal_coupling_it_cocg_contribution(const cs_internal_coupling_t *cpl, cs_real_33_t cocg[])
Definition: cs_internal_coupling.c:2313
void cs_internal_coupling_add(cs_mesh_t *mesh, const char criteria_cells[], const char criteria_faces[])
Define coupling volume using given selection criteria.
Definition: cs_internal_coupling.c:1023
void cs_internal_coupling_matrix_add_values(const cs_field_t *f, cs_lnum_t db_size, cs_lnum_t eb_size, const cs_gnum_t r_g_id[], cs_matrix_assembler_values_t *mav)
Definition: cs_internal_coupling.c:2710
void cs_internal_coupling_preprocess(cs_mesh_t *mesh)
Definition: cs_internal_coupling.c:2987
cs_real_3_t * ci_cj_vect
Definition: cs_internal_coupling.h:97
void cs_internal_coupling_setup(void)
Setup internal coupling related parameters.
Definition: cs_internal_coupling.c:2840
void cs_internal_coupling_iterative_scalar_gradient(const cs_internal_coupling_t *cpl, const cs_real_t c_weight[], cs_real_3_t *restrict grad, const cs_real_t pvar[], cs_real_3_t rhs[])
Add internal coupling rhs contribution for iterative gradient calculation.
Definition: cs_internal_coupling.c:1466
void cs_internal_coupling_finalize(void)
Destruction of all internal coupling related structures.
Definition: cs_internal_coupling.c:2348
void cs_internal_coupling_bcs(int bc_type[])
Impose wall BCs to internal coupled faces if not yet defined.
Definition: cs_internal_coupling.c:1180
void cs_internal_coupling_initialize_tensor_gradient(const cs_internal_coupling_t *cpl, const cs_real_t c_weight[], const cs_real_6_t pvar[], cs_real_63_t *restrict grad)
Add contribution from coupled faces (internal coupling) to initialisation for iterative symmetric ten...
Definition: cs_internal_coupling.c:1378
void cs_internal_coupling_reconstruct_vector_gradient(const cs_internal_coupling_t *cpl, cs_real_33_t *restrict r_grad, cs_real_33_t grad[])
Add internal coupling contribution for reconstruction of the gradient of a vector.
Definition: cs_internal_coupling.c:1844
cs_real_t cs_real_4_t[4]
vector of 4 floating-point values
Definition: cs_defs.h:321
double cs_real_t
Floating-point value.
Definition: cs_defs.h:307
void cs_internal_coupling_add_entity(int f_id)
Definition: cs_internal_coupling.c:3028
cs_lnum_t n_local
Definition: cs_internal_coupling.h:84
void cs_internal_coupling_log(const cs_internal_coupling_t *cpl)
Definition: cs_internal_coupling.c:2914
int id
Definition: cs_internal_coupling.h:66
void cs_internal_coupling_initialize_vector_gradient(const cs_internal_coupling_t *cpl, const cs_real_t c_weight[], const cs_real_3_t pvar[], cs_real_33_t *restrict grad)
Add contribution from coupled faces (internal coupling) to initialisation for iterative vector gradie...
Definition: cs_internal_coupling.c:1292
Definition: cs_mesh.h:84
void cs_internal_coupling_exchange_by_cell_id(const cs_internal_coupling_t *cpl, int stride, const cs_real_t tab[], cs_real_t local[])
Exchange variable between groups using cell id.
Definition: cs_internal_coupling.c:2419
bool * coupled_faces
Definition: cs_internal_coupling.h:91
void cs_internal_coupling_lsq_tensor_gradient(const cs_internal_coupling_t *cpl, const cs_real_t c_weight[], const int w_stride, const cs_real_6_t pvar[], cs_real_63_t rhs[])
Add internal coupling rhs contribution for LSQ gradient calculation.
cs_lnum_t * faces_local
Definition: cs_internal_coupling.h:85
void cs_internal_coupling_add_volume_zones(int n_zones, const int zone_ids[])
Define coupling volume using given cs_zone_t. Then, this volume will be separated from the rest of th...
Definition: cs_internal_coupling.c:1111
cs_lnum_t * faces_distant
Definition: cs_internal_coupling.h:88
void cs_ic_field_set_exchcoeff(const int field_id, const cs_real_t *hbnd)
Update internal coupling coefficients of the field of the given id using given boundary exchange coef...
Definition: cs_internal_coupling.c:3058
cs_real_t * g_weight
Definition: cs_internal_coupling.h:94
cs_real_t cs_real_3_t[3]
vector of 3 floating-point values
Definition: cs_defs.h:320
int * volume_zone_ids
Definition: cs_internal_coupling.h:82
char * exterior_faces_group_name
Definition: cs_internal_coupling.h:77
void cs_internal_coupling_lsq_vector_gradient(const cs_internal_coupling_t *cpl, const cs_real_t c_weight[], const int w_stride, const cs_real_3_t pvar[], cs_real_33_t rhs[])
Add internal coupling rhs contribution for LSQ gradient calculation.
Definition: cs_internal_coupling.c:2088
void cs_internal_coupling_add_boundary_groups(cs_internal_coupling_t *cpl, const char *interior_name, const char *exterior_name)
Define internal coupling volume boundary group names.
Definition: cs_internal_coupling.c:1156
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:301
void cs_internal_coupling_initialize_scalar_gradient(const cs_internal_coupling_t *cpl, const cs_real_t c_weight[], const cs_real_t pvar[], cs_real_3_t *restrict grad)
Add contribution from coupled faces (internal coupling) to initialisation for iterative scalar gradie...
Definition: cs_internal_coupling.c:1211
char * cells_criteria
Definition: cs_internal_coupling.h:73
#define END_C_DECLS
Definition: cs_defs.h:496
void cs_internal_coupling_map(cs_mesh_t *mesh)
Definition: cs_internal_coupling.c:3008
void cs_internal_coupling_dump(void)
Definition: cs_internal_coupling.c:2960
void cs_internal_coupling_lsq_scalar_gradient(const cs_internal_coupling_t *cpl, const cs_real_t c_weight[], const int w_stride, cs_real_4_t rhsv[])
Add internal coupling rhs contribution for LSQ gradient calculation.
Definition: cs_internal_coupling.c:1966
struct _cs_matrix_assembler_t cs_matrix_assembler_t
Definition: cs_matrix_assembler.h:61
void cs_internal_coupling_add_volume_zone(cs_mesh_t *mesh, const cs_zone_t *z)
Define coupling volume using a cs_zone_t. Then, this volume will be separated from the rest of the do...
Definition: cs_internal_coupling.c:1090
void cs_internal_coupling_initialize(void)
Initialize internal coupling related structures.
Definition: cs_internal_coupling.c:2897
void cs_internal_coupling_exchange_var(const cs_internal_coupling_t *cpl, int stride, cs_real_t distant[], cs_real_t local[])
Exchange quantities from distant to local (update local using distant).
Definition: cs_internal_coupling.c:2393
cs_real_t cs_real_33_t[3][3]
3x3 matrix of floating-point values
Definition: cs_defs.h:327
void cs_internal_coupling_reconstruct_tensor_gradient(const cs_internal_coupling_t *cpl, cs_real_63_t *restrict r_grad, cs_real_63_t grad[])
Add internal coupling contribution for reconstruction of the gradient of a symmetric tensor...
Definition: cs_internal_coupling.c:1905
cs_real_t cs_real_63_t[6][3]
Definition: cs_defs.h:335
void cs_internal_coupling_spmv_contribution(bool exclude_diag, const cs_field_t *f, const cs_real_t *restrict x, cs_real_t *restrict y)
Definition: cs_internal_coupling.c:2535
int * c_tag
Definition: cs_internal_coupling.h:70
void cs_internal_coupling_lsq_cocg_contribution(const cs_internal_coupling_t *cpl, cs_real_33_t cocg[])
Definition: cs_internal_coupling.c:2216
void cs_internal_coupling_iterative_vector_gradient(const cs_internal_coupling_t *cpl, const cs_real_t c_weight[], cs_real_33_t *restrict grad, const cs_real_3_t pvar[], cs_real_33_t rhs[])
Add internal coupling rhs contribution for iterative vector gradient calculation. ...
Definition: cs_internal_coupling.c:1571
void cs_internal_coupling_add_volume(cs_mesh_t *mesh, const char criteria_cells[])
Define coupling volume using given criteria. Then, this volume will be separated from the rest of the...
Definition: cs_internal_coupling.c:1055
void cs_internal_coupling_matrix_add_ids(int coupling_id, const cs_gnum_t *r_g_id, cs_matrix_assembler_t *ma)
Definition: cs_internal_coupling.c:2637
char * faces_criteria
Definition: cs_internal_coupling.h:74
cs_internal_coupling_t * cs_internal_coupling_by_id(int coupling_id)
Return the coupling associated with a given coupling_id.
Definition: cs_internal_coupling.c:2370
cs_lnum_t n_distant
Definition: cs_internal_coupling.h:87
void cs_internal_coupling_coupled_faces(const cs_internal_coupling_t *cpl, cs_lnum_t *n_local, const cs_lnum_t *faces_local[], cs_lnum_t *n_distant, const cs_lnum_t *faces_distant[])
Definition: cs_internal_coupling.c:2508
Definition: mesh.f90:26
Definition: cs_zone.h:55
void cs_internal_coupling_reconstruct_scalar_gradient(const cs_internal_coupling_t *cpl, cs_real_3_t *restrict r_grad, cs_real_3_t grad[])
Add internal coupling contribution for reconstruction of the gradient of a scalar.