8.0
general documentation
Loading...
Searching...
No Matches
cs_cdo_advection.h
Go to the documentation of this file.
1#ifndef __CS_CDO_ADVECTION_H__
2#define __CS_CDO_ADVECTION_H__
3
4/*============================================================================
5 * Build discrete convection operators for CDO schemes
6 *============================================================================*/
7
8/*
9 This file is part of code_saturne, a general-purpose CFD tool.
10
11 Copyright (C) 1998-2023 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 * Local headers
32 *----------------------------------------------------------------------------*/
33
34#include "cs_advection_field.h"
35#include "cs_cdo_connect.h"
36#include "cs_cdo_local.h"
37#include "cs_cdo_quantities.h"
38#include "cs_equation_param.h"
39#include "cs_property.h"
40
41/*----------------------------------------------------------------------------*/
42
44
45/*============================================================================
46 * Macro definitions
47 *============================================================================*/
48
49/*============================================================================
50 * Type definitions
51 *============================================================================*/
52
53/* ---------------------------------------------------------------------------
54 * Function pointers for CDO face-based schemes
55 * -------------------------------------------------------------------------- */
56
57/*----------------------------------------------------------------------------*/
68/*----------------------------------------------------------------------------*/
69
70typedef void
72 const cs_cell_mesh_t *cm,
73 const cs_cell_sys_t *csys,
74 void *input,
76
77/*----------------------------------------------------------------------------*/
89/*----------------------------------------------------------------------------*/
90
91typedef void
92(cs_cdofb_adv_scheme_t)(int dim,
93 const cs_cell_mesh_t *cm,
94 const cs_cell_sys_t *csys,
96 cs_sdm_t *adv);
97
98/*----------------------------------------------------------------------------*/
113/*----------------------------------------------------------------------------*/
114
115typedef void
117 const cs_cell_mesh_t *cm,
118 const cs_cell_sys_t *csys,
119 cs_cdofb_adv_scheme_t *scheme_func,
121
122/*----------------------------------------------------------------------------*/
133/*----------------------------------------------------------------------------*/
134
135typedef void
137 const cs_cell_mesh_t *cm,
138 cs_cell_sys_t *csys,
140 cs_sdm_t *adv);
141
142/* ---------------------------------------------------------------------------
143 * Function pointers for CDO vertex-based schemes
144 * -------------------------------------------------------------------------- */
145
146/*----------------------------------------------------------------------------*/
158/*----------------------------------------------------------------------------*/
159
160typedef void
162 const cs_cell_mesh_t *cm,
163 const cs_property_data_t *diff_pty,
166
167/*----------------------------------------------------------------------------*/
179/*----------------------------------------------------------------------------*/
180
181typedef void
183 const cs_equation_param_t *eqp,
184 cs_real_t t_eval,
187 cs_cell_sys_t *csys);
188
189/*============================================================================
190 * Global variables
191 *============================================================================*/
192
193/*============================================================================
194 * Public function prototypes
195 *============================================================================*/
196
197/*----------------------------------------------------------------------------*/
203/*----------------------------------------------------------------------------*/
204
205void
206cs_cdo_advection_set_cip_coef(double new_value);
207
208/*----------------------------------------------------------------------------*/
214/*----------------------------------------------------------------------------*/
215
216double
218
219/*----------------------------------------------------------------------------*/
232/*----------------------------------------------------------------------------*/
233
234void
236 const cs_cell_mesh_t *cm,
237 const cs_cell_sys_t *csys,
238 void *input,
240
241/*----------------------------------------------------------------------------*/
254/*----------------------------------------------------------------------------*/
255
256void
258 const cs_cell_mesh_t *cm,
259 cs_cell_sys_t *csys,
261 cs_sdm_t *adv);
262
263/*----------------------------------------------------------------------------*/
276/*----------------------------------------------------------------------------*/
277
278void
280 const cs_cell_mesh_t *cm,
281 cs_cell_sys_t *csys,
283 cs_sdm_t *adv);
284
285/*----------------------------------------------------------------------------*/
298/*----------------------------------------------------------------------------*/
299
300void
302 const cs_cell_mesh_t *cm,
303 cs_cell_sys_t *csys,
305 cs_sdm_t *adv);
306
307/*----------------------------------------------------------------------------*/
320/*----------------------------------------------------------------------------*/
321
322void
324 const cs_cell_mesh_t *cm,
325 cs_cell_sys_t *csys,
327 cs_sdm_t *adv);
328
329/*----------------------------------------------------------------------------*/
346/*----------------------------------------------------------------------------*/
347
348void
350 const cs_cell_mesh_t *cm,
351 const cs_cell_sys_t *csys,
352 cs_cdofb_adv_scheme_t *scheme_func,
354
355/*----------------------------------------------------------------------------*/
371/*----------------------------------------------------------------------------*/
372
373void
375 const cs_cell_mesh_t *cm,
376 const cs_cell_sys_t *csys,
377 cs_cdofb_adv_scheme_t *scheme_func,
379
380/*----------------------------------------------------------------------------*/
399/*----------------------------------------------------------------------------*/
400
401void
403 const cs_cell_mesh_t *cm,
404 const cs_cell_sys_t *csys,
406 cs_sdm_t *adv);
407
408/*----------------------------------------------------------------------------*/
427/*----------------------------------------------------------------------------*/
428
429void
431 const cs_cell_mesh_t *cm,
432 const cs_cell_sys_t *csys,
434 cs_sdm_t *adv);
435
436/*----------------------------------------------------------------------------*/
455/*----------------------------------------------------------------------------*/
456
457void
459 const cs_cell_mesh_t *cm,
460 const cs_cell_sys_t *csys,
462 cs_sdm_t *adv);
463
464/*----------------------------------------------------------------------------*/
483/*----------------------------------------------------------------------------*/
484
485void
487 const cs_cell_mesh_t *cm,
488 const cs_cell_sys_t *csys,
490 cs_sdm_t *adv);
491
492/*----------------------------------------------------------------------------*/
508/*----------------------------------------------------------------------------*/
509
510void
512 const cs_cell_mesh_t *cm,
513 const cs_property_data_t *diff_pty,
516
517/*----------------------------------------------------------------------------*/
532/*----------------------------------------------------------------------------*/
533
534void
536 const cs_cell_mesh_t *cm,
537 const cs_property_data_t *diff_pty,
540
541/*----------------------------------------------------------------------------*/
556/*----------------------------------------------------------------------------*/
557
558void
560 const cs_cell_mesh_t *cm,
561 const cs_property_data_t *diff_pty,
564
565/*----------------------------------------------------------------------------*/
580/*----------------------------------------------------------------------------*/
581
582void
584 const cs_cell_mesh_t *cm,
585 const cs_property_data_t *diff_pty,
588
589/*----------------------------------------------------------------------------*/
604/*----------------------------------------------------------------------------*/
605
606void
608 const cs_cell_mesh_t *cm,
609 const cs_property_data_t *diff_pty,
612
613/*----------------------------------------------------------------------------*/
629/*----------------------------------------------------------------------------*/
630
631void
633 const cs_cell_mesh_t *cm,
634 const cs_property_data_t *diff_pty,
637
638/*----------------------------------------------------------------------------*/
653/*----------------------------------------------------------------------------*/
654
655void
657 const cs_cell_mesh_t *cm,
658 const cs_property_data_t *diff_pty,
661
662/*----------------------------------------------------------------------------*/
677/*----------------------------------------------------------------------------*/
678
679void
681 const cs_cell_mesh_t *cm,
682 const cs_property_data_t *diff_pty,
685
686/*----------------------------------------------------------------------------*/
698/*----------------------------------------------------------------------------*/
699
700void
702 const cs_cell_mesh_t *cm,
703 const cs_property_data_t *diff_pty,
706
707/*----------------------------------------------------------------------------*/
718/*----------------------------------------------------------------------------*/
719
720void
722 const cs_cell_mesh_t *cm,
723 const cs_property_data_t *diff_pty,
726
727/*----------------------------------------------------------------------------*/
738/*----------------------------------------------------------------------------*/
739
740void
742 const cs_equation_param_t *eqp,
743 cs_real_t t_eval,
746 cs_cell_sys_t *csys);
747
748/*----------------------------------------------------------------------------*/
760/*----------------------------------------------------------------------------*/
761
762void
764 const cs_equation_param_t *eqp,
765 cs_real_t t_eval,
768 cs_cell_sys_t *csys);
769
770/*----------------------------------------------------------------------------*/
781/*----------------------------------------------------------------------------*/
782
783void
786 cs_real_t coefval[]);
787
788/*----------------------------------------------------------------------------*/
789
791
792#endif /* __CS_CDO_ADVECTION_H__ */
void cs_cdo_advection_vb_upwcsv_wpty(const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, const cs_property_data_t *diff_pty, cs_face_mesh_t *fm, cs_cell_builder_t *cb)
Compute the convection operator attached to a cell with a CDO vertex-based scheme with an upwind sche...
Definition cs_cdo_advection.c:1958
void cs_cdofb_adv_open_hook_t(const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, const cs_cell_sys_t *csys, void *input, cs_cell_builder_t *cb)
Perform preprocessing such as the computation of the advection flux at the expected location in order...
Definition cs_cdo_advection.h:71
void cs_cdo_advection_vcb_bc(const cs_cell_mesh_t *cm, const cs_equation_param_t *eqp, cs_real_t t_eval, cs_face_mesh_t *fm, cs_cell_builder_t *cb, cs_cell_sys_t *csys)
Compute the BC contribution for the convection operator with CDO V+C schemes.
Definition cs_cdo_advection.c:2862
double cs_cdo_advection_get_cip_coef(void)
Get the value of the stabilization coefficient used in CIP scheme.
Definition cs_cdo_advection.c:1243
void cs_cdofb_advection_upwnoc(int dim, const cs_cell_mesh_t *cm, const cs_cell_sys_t *csys, cs_cell_builder_t *cb, cs_sdm_t *adv)
Compute the convection operator attached to a cell with a CDO face-based scheme.
Definition cs_cdo_advection.c:1617
void cs_cdofb_adv_build_t(const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, const cs_cell_sys_t *csys, cs_cdofb_adv_scheme_t *scheme_func, cs_cell_builder_t *cb)
Build the cellwise advection operator for CDO-Fb schemes The local matrix related to this operator is...
Definition cs_cdo_advection.h:116
void cs_cdo_advection_vb_upwcsv(const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, const cs_property_data_t *diff_pty, cs_face_mesh_t *fm, cs_cell_builder_t *cb)
Compute the convection operator attached to a cell with a CDO vertex-based scheme without diffusion a...
Definition cs_cdo_advection.c:2049
void cs_cdo_advection_vb_upwnoc(const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, const cs_property_data_t *diff_pty, cs_face_mesh_t *fm, cs_cell_builder_t *cb)
Compute the convection operator attached to a cell with a CDO vertex-based scheme without diffusion w...
Definition cs_cdo_advection.c:2357
void cs_cdovb_advection_t(const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, const cs_property_data_t *diff_pty, cs_face_mesh_t *fm, cs_cell_builder_t *cb)
Compute the convection operator attached to a cell with a CDO vertex-based scheme....
Definition cs_cdo_advection.h:161
void cs_cdofb_advection_close_default_vect(const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, cs_cell_sys_t *csys, cs_cell_builder_t *cb, cs_sdm_t *adv)
Operation done after the matrix related to the advection term has been defined. Follow the prototype ...
Definition cs_cdo_advection.c:1339
void cs_cdofb_advection_no_diffusion(const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, const cs_cell_sys_t *csys, cs_cdofb_adv_scheme_t *scheme_func, cs_cell_builder_t *cb)
Main function to build the cellwise advection operator for CDO-Fb schemes The local matrix related to...
Definition cs_cdo_advection.c:1475
void cs_cdofb_advection_close_default_scal(const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, cs_cell_sys_t *csys, cs_cell_builder_t *cb, cs_sdm_t *adv)
Operation done after the matrix related to the advection term has been defined. Follow the prototype ...
Definition cs_cdo_advection.c:1310
void cs_cdo_advection_vcb_cw_cst(const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, const cs_property_data_t *diff_pty, cs_face_mesh_t *fm, cs_cell_builder_t *cb)
Compute the convection operator attached to a cell with a CDO vertex+cell-based scheme when the advec...
Definition cs_cdo_advection.c:2469
void cs_cdofb_advection_cennoc(int dim, const cs_cell_mesh_t *cm, const cs_cell_sys_t *csys, cs_cell_builder_t *cb, cs_sdm_t *adv)
Compute the convection operator attached to a cell with a CDO face-based scheme.
Definition cs_cdo_advection.c:1811
void cs_cdofb_adv_scheme_t(int dim, const cs_cell_mesh_t *cm, const cs_cell_sys_t *csys, cs_cell_builder_t *cb, cs_sdm_t *adv)
Define the local convection operator in CDO-Fb schemes. Case of an operator that should be assemble i...
Definition cs_cdo_advection.h:92
void cs_cdofb_advection_cencsv(int dim, const cs_cell_mesh_t *cm, const cs_cell_sys_t *csys, cs_cell_builder_t *cb, cs_sdm_t *adv)
Compute the convection operator attached to a cell with a CDO face-based scheme.
Definition cs_cdo_advection.c:1883
void cs_cdo_advection_vb_bc(const cs_cell_mesh_t *cm, const cs_equation_param_t *eqp, cs_real_t t_eval, cs_face_mesh_t *fm, cs_cell_builder_t *cb, cs_cell_sys_t *csys)
Compute the BC contribution for the convection operator.
Definition cs_cdo_advection.c:2740
void cs_cdovb_advection_bc_t(const cs_cell_mesh_t *cm, const cs_equation_param_t *eqp, cs_real_t t_eval, cs_face_mesh_t *fm, cs_cell_builder_t *cb, cs_cell_sys_t *csys)
Compute the BC contribution for the advection operator in CDO vertex-based (or vertex+cell-based) sch...
Definition cs_cdo_advection.h:182
void cs_cdofb_advection(const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, const cs_cell_sys_t *csys, cs_cdofb_adv_scheme_t *scheme_func, cs_cell_builder_t *cb)
Main function to build the cellwise advection operator for CDO face-based schemes....
Definition cs_cdo_advection.c:1556
void cs_cdofb_advection_close_exp_none_scal(const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, cs_cell_sys_t *csys, cs_cell_builder_t *cb, cs_sdm_t *adv)
Operation done after the matrix related to the advection term has been defined. Follow the prototype ...
Definition cs_cdo_advection.c:1384
void cs_cdo_advection_vcb(const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, const cs_property_data_t *diff_pty, cs_face_mesh_t *fm, cs_cell_builder_t *cb)
Compute the convection operator attached to a cell with a CDO vertex+cell-based scheme.
Definition cs_cdo_advection.c:2609
void cs_cdofb_adv_close_hook_t(const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, cs_cell_sys_t *csys, cs_cell_builder_t *cb, cs_sdm_t *adv)
Operation done after the matrix related to the advection term has been defined.
Definition cs_cdo_advection.h:136
void cs_cdo_advection_vb_upwnoc_wpty(const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, const cs_property_data_t *diff_pty, cs_face_mesh_t *fm, cs_cell_builder_t *cb)
Compute the convection operator attached to a cell with a CDO vertex-based scheme with an upwind sche...
Definition cs_cdo_advection.c:2268
void cs_cdo_advection_set_cip_coef(double new_value)
Set the value of the stabilization coefficient used in CIP scheme.
Definition cs_cdo_advection.c:1229
void cs_cdo_advection_vb_mcucsv(const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, const cs_property_data_t *diff_pty, cs_face_mesh_t *fm, cs_cell_builder_t *cb)
Compute the convection operator attached to a cell with a CDO vertex-based scheme when a mixed center...
Definition cs_cdo_advection.c:2165
void cs_cdo_advection_vb_mcunoc(const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, const cs_property_data_t *diff_pty, cs_face_mesh_t *fm, cs_cell_builder_t *cb)
Compute the convection operator attached to a cell with a CDO vertex-based scheme when a mixed center...
Definition cs_cdo_advection.c:2216
void cs_cdo_advection_vb_cennoc(const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, const cs_property_data_t *diff_pty, cs_face_mesh_t *fm, cs_cell_builder_t *cb)
Compute the convection operator attached to a cell with a CDO vertex-based scheme when a centered sch...
Definition cs_cdo_advection.c:2421
void cs_cdo_advection_cell_upwind_coef(const cs_cdo_quantities_t *cdoq, cs_param_advection_scheme_t scheme, cs_real_t coefval[])
Compute the value of the upwinding coefficient in each cell knowing the related Peclet number.
Definition cs_cdo_advection.c:2927
void cs_cdofb_advection_upwcsv(int dim, const cs_cell_mesh_t *cm, const cs_cell_sys_t *csys, cs_cell_builder_t *cb, cs_sdm_t *adv)
Compute the convection operator attached to a cell with a CDO face-based scheme.
Definition cs_cdo_advection.c:1714
void cs_cdofb_advection_close_exp_none_vect(const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, cs_cell_sys_t *csys, cs_cell_builder_t *cb, cs_sdm_t *adv)
Operation done after the matrix related to the advection term has been defined. Follow the prototype ...
Definition cs_cdo_advection.c:1422
void cs_cdo_advection_vb_cencsv(const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, const cs_property_data_t *diff_pty, cs_face_mesh_t *fm, cs_cell_builder_t *cb)
Compute the convection operator attached to a cell with a CDO vertex-based scheme when a centered sch...
Definition cs_cdo_advection.c:2114
void cs_cdofb_advection_open_default(const cs_equation_param_t *eqp, const cs_cell_mesh_t *cm, const cs_cell_sys_t *csys, void *input, cs_cell_builder_t *cb)
Perform preprocessing such as the computation of the advection flux at the expected location in order...
Definition cs_cdo_advection.c:1264
#define BEGIN_C_DECLS
Definition cs_defs.h:509
double cs_real_t
Floating-point value.
Definition cs_defs.h:319
#define END_C_DECLS
Definition cs_defs.h:510
@ fm
Definition cs_field_pointer.h:128
cs_param_advection_scheme_t
Definition cs_param_types.h:351
Definition cs_cdo_quantities.h:137
Set of local and temporary buffers.
Definition cs_cdo_local.h:60
Set of local quantities and connectivities related to a mesh cell.
Definition cs_cdo_local.h:203
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
Set of parameters to handle an unsteady convection-diffusion-reaction equation with term sources.
Definition cs_equation_param.h:192
Set of local quantities and connectivities related to a mesh face Structure used to get a better memo...
Definition cs_cdo_local.h:279
Structure storing the evaluation of a property and its related data.
Definition cs_property.h:211