8.3
general documentation
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-2024 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/*----------------------------------------------------------------------------*/
210/*----------------------------------------------------------------------------*/
211
212void
214 const cs_cell_mesh_t *cm,
215 const cs_cell_sys_t *csys,
216 void *input,
218
219/*----------------------------------------------------------------------------*/
232/*----------------------------------------------------------------------------*/
233
234void
236 const cs_cell_mesh_t *cm,
237 cs_cell_sys_t *csys,
239 cs_sdm_t *adv);
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/*----------------------------------------------------------------------------*/
324/*----------------------------------------------------------------------------*/
325
326void
328 const cs_cell_mesh_t *cm,
329 const cs_cell_sys_t *csys,
330 cs_cdofb_adv_scheme_t *scheme_func,
332
333/*----------------------------------------------------------------------------*/
349/*----------------------------------------------------------------------------*/
350
351void
353 const cs_cell_mesh_t *cm,
354 const cs_cell_sys_t *csys,
355 cs_cdofb_adv_scheme_t *scheme_func,
357
358/*----------------------------------------------------------------------------*/
377/*----------------------------------------------------------------------------*/
378
379void
381 const cs_cell_mesh_t *cm,
382 const cs_cell_sys_t *csys,
384 cs_sdm_t *adv);
385
386/*----------------------------------------------------------------------------*/
405/*----------------------------------------------------------------------------*/
406
407void
409 const cs_cell_mesh_t *cm,
410 const cs_cell_sys_t *csys,
412 cs_sdm_t *adv);
413
414/*----------------------------------------------------------------------------*/
433/*----------------------------------------------------------------------------*/
434
435void
437 const cs_cell_mesh_t *cm,
438 const cs_cell_sys_t *csys,
440 cs_sdm_t *adv);
441
442/*----------------------------------------------------------------------------*/
461/*----------------------------------------------------------------------------*/
462
463void
465 const cs_cell_mesh_t *cm,
466 const cs_cell_sys_t *csys,
468 cs_sdm_t *adv);
469
470/*----------------------------------------------------------------------------*/
486/*----------------------------------------------------------------------------*/
487
488void
490 const cs_cell_mesh_t *cm,
491 const cs_property_data_t *diff_pty,
494
495/*----------------------------------------------------------------------------*/
510/*----------------------------------------------------------------------------*/
511
512void
514 const cs_cell_mesh_t *cm,
515 const cs_property_data_t *diff_pty,
518
519/*----------------------------------------------------------------------------*/
534/*----------------------------------------------------------------------------*/
535
536void
538 const cs_cell_mesh_t *cm,
539 const cs_property_data_t *diff_pty,
542
543/*----------------------------------------------------------------------------*/
558/*----------------------------------------------------------------------------*/
559
560void
562 const cs_cell_mesh_t *cm,
563 const cs_property_data_t *diff_pty,
566
567/*----------------------------------------------------------------------------*/
582/*----------------------------------------------------------------------------*/
583
584void
586 const cs_cell_mesh_t *cm,
587 const cs_property_data_t *diff_pty,
590
591/*----------------------------------------------------------------------------*/
607/*----------------------------------------------------------------------------*/
608
609void
611 const cs_cell_mesh_t *cm,
612 const cs_property_data_t *diff_pty,
615
616/*----------------------------------------------------------------------------*/
631/*----------------------------------------------------------------------------*/
632
633void
635 const cs_cell_mesh_t *cm,
636 const cs_property_data_t *diff_pty,
639
640/*----------------------------------------------------------------------------*/
655/*----------------------------------------------------------------------------*/
656
657void
659 const cs_cell_mesh_t *cm,
660 const cs_property_data_t *diff_pty,
663
664/*----------------------------------------------------------------------------*/
676/*----------------------------------------------------------------------------*/
677
678void
680 const cs_cell_mesh_t *cm,
681 const cs_property_data_t *diff_pty,
684
685/*----------------------------------------------------------------------------*/
696/*----------------------------------------------------------------------------*/
697
698void
700 const cs_cell_mesh_t *cm,
701 const cs_property_data_t *diff_pty,
704
705/*----------------------------------------------------------------------------*/
716/*----------------------------------------------------------------------------*/
717
718void
720 const cs_equation_param_t *eqp,
721 cs_real_t t_eval,
724 cs_cell_sys_t *csys);
725
726/*----------------------------------------------------------------------------*/
738/*----------------------------------------------------------------------------*/
739
740void
742 const cs_equation_param_t *eqp,
743 cs_real_t t_eval,
746 cs_cell_sys_t *csys);
747
748/*----------------------------------------------------------------------------*/
759/*----------------------------------------------------------------------------*/
760
761void
764 cs_real_t coefval[]);
765
766/*----------------------------------------------------------------------------*/
767
769
770#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.cpp:1916
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.cpp:2822
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.cpp:1578
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.cpp:2007
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.cpp:2315
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.cpp:1300
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.cpp:1436
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.cpp:1271
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.cpp:2427
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.cpp:1769
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.cpp:1841
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.cpp:2700
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.cpp:1517
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.cpp:1345
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_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.cpp:2569
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_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.cpp:2226
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_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_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.cpp:2123
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.cpp:2174
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.cpp:2379
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.cpp:2887
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.cpp:1673
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_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.cpp:1383
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_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.cpp:2072
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.cpp:1225
#define BEGIN_C_DECLS
Definition: cs_defs.h:542
double cs_real_t
Floating-point value.
Definition: cs_defs.h:342
#define END_C_DECLS
Definition: cs_defs.h:543
@ fm
Definition: cs_field_pointer.h:129
cs_param_advection_scheme_t
Definition: cs_param_types.h:356
Definition: cs_cdo_quantities.h:139
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:280
Structure storing the evaluation of a property and its related data.
Definition: cs_property.h:223