8.2
general documentation
cs_navsto_coupling.h
Go to the documentation of this file.
1 #ifndef __CS_NAVSTO_COUPLING_H__
2 #define __CS_NAVSTO_COUPLING_H__
3 
4 /*============================================================================
5  * Functions and structures to handle the settings of different
6  * velocity/pressure coupling algorithms
7  * - Artificial Compressibility algorithm
8  * - Monolithic algorithm
9  * - Projection algorithm
10  *============================================================================*/
11 
12 /*
13  This file is part of code_saturne, a general-purpose CFD tool.
14 
15  Copyright (C) 1998-2024 EDF S.A.
16 
17  This program is free software; you can redistribute it and/or modify it under
18  the terms of the GNU General Public License as published by the Free Software
19  Foundation; either version 2 of the License, or (at your option) any later
20  version.
21 
22  This program is distributed in the hope that it will be useful, but WITHOUT
23  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
24  FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
25  details.
26 
27  You should have received a copy of the GNU General Public License along with
28  this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
29  Street, Fifth Floor, Boston, MA 02110-1301, USA.
30 */
31 
32 /*----------------------------------------------------------------------------
33  * Local headers
34  *----------------------------------------------------------------------------*/
35 
36 #include "cs_equation.h"
37 #include "cs_field.h"
38 #include "cs_navsto_param.h"
39 
40 /*----------------------------------------------------------------------------*/
41 
43 
44 /*============================================================================
45  * Macro definitions
46  *============================================================================*/
47 
48 /*============================================================================
49  * Type definitions
50  *============================================================================*/
51 
52 /* Predefined context structures depending on the settings */
53 /* ======================================================= */
54 
62 typedef struct {
63 
72 
74 
75 
81 typedef struct {
82 
86 
87 
95 typedef struct {
96 
108 
115 
122 
124 
125 /*============================================================================
126  * Public function prototypes
127  *============================================================================*/
128 
129 /*----------------------------------------------------------------------------*/
139 /*----------------------------------------------------------------------------*/
140 
143  void *context);
144 
145 /*----------------------------------------------------------------------------*/
155 /*----------------------------------------------------------------------------*/
156 
157 void *
159  cs_navsto_param_t *nsp);
160 
161 /*----------------------------------------------------------------------------*/
170 /*----------------------------------------------------------------------------*/
171 
172 void *
173 cs_navsto_ac_free_context(void *context);
174 
175 /*----------------------------------------------------------------------------*/
185 /*----------------------------------------------------------------------------*/
186 
187 void
189  cs_adv_field_t *adv_field,
190  void *context);
191 
192 /*----------------------------------------------------------------------------*/
200 /*----------------------------------------------------------------------------*/
201 
202 void
204  void *context);
205 
206 /*----------------------------------------------------------------------------*/
215 /*----------------------------------------------------------------------------*/
216 
218 cs_navsto_ac_get_momentum_eq(void *context);
219 
220 /*----------------------------------------------------------------------------*/
230 /*----------------------------------------------------------------------------*/
231 
232 void *
234  cs_navsto_param_t *nsp);
235 
236 /*----------------------------------------------------------------------------*/
244 /*----------------------------------------------------------------------------*/
245 
246 void *
247 cs_navsto_monolithic_free_context(void *context);
248 
249 /*----------------------------------------------------------------------------*/
259 /*----------------------------------------------------------------------------*/
260 
261 void
263  cs_adv_field_t *adv_field,
264  void *context);
265 
266 /*----------------------------------------------------------------------------*/
274 /*----------------------------------------------------------------------------*/
275 
276 void
278  void *context);
279 /*----------------------------------------------------------------------------*/
288 /*----------------------------------------------------------------------------*/
289 
292 
293 /*----------------------------------------------------------------------------*/
304 /*----------------------------------------------------------------------------*/
305 
306 void *
308  cs_navsto_param_t *nsp);
309 
310 /*----------------------------------------------------------------------------*/
318 /*----------------------------------------------------------------------------*/
319 
320 void *
321 cs_navsto_projection_free_context(void *context);
322 
323 /*----------------------------------------------------------------------------*/
335 /*----------------------------------------------------------------------------*/
336 
337 void
339  cs_adv_field_t *adv_field,
340  int loc_id,
341  bool has_previous,
342  void *context);
343 
344 /*----------------------------------------------------------------------------*/
354 /*----------------------------------------------------------------------------*/
355 
356 void
358  const cs_navsto_param_t *nsp,
359  void *context);
360 
361 /*----------------------------------------------------------------------------*/
370 /*----------------------------------------------------------------------------*/
371 
374 
375 /*----------------------------------------------------------------------------*/
376 
378 
379 #endif /* __CS_NAVSTO_COUPLING_H__ */
#define BEGIN_C_DECLS
Definition: cs_defs.h:528
double cs_real_t
Floating-point value.
Definition: cs_defs.h:332
#define END_C_DECLS
Definition: cs_defs.h:529
void cs_navsto_ac_init_setup(const cs_navsto_param_t *nsp, cs_adv_field_t *adv_field, void *context)
Start setting-up the Navier-Stokes equations when an Artificial Compressibility algorithm is used to ...
Definition: cs_navsto_coupling.c:238
cs_equation_t * cs_navsto_ac_get_momentum_eq(void *context)
Retrieve the pointer to the cs_equation_t structure related to the momentum equation in case of artif...
Definition: cs_navsto_coupling.c:319
cs_equation_t * cs_navsto_monolithic_get_momentum_eq(void *context)
Retrieve the pointer to the cs_equation_t structure related to the momentum equation in case of a mon...
Definition: cs_navsto_coupling.c:542
void * cs_navsto_ac_create_context(cs_param_bc_type_t bc, cs_navsto_param_t *nsp)
Allocate and initialize a context structure when the Navier-Stokes system is coupled using an Artific...
Definition: cs_navsto_coupling.c:170
void * cs_navsto_projection_free_context(void *context)
Free the context structure related to a Projection approach.
Definition: cs_navsto_coupling.c:638
cs_equation_param_t * cs_navsto_coupling_get_momentum_eqp(const cs_navsto_param_t *nsp, void *context)
Retrieve the cs_equation_param_t structure related to the momentum equation according to the type of ...
Definition: cs_navsto_coupling.c:116
void cs_navsto_projection_last_setup(const cs_cdo_quantities_t *quant, const cs_navsto_param_t *nsp, void *context)
Finalize the setup for the Navier-Stokes equations when a projection algorithm is used to coupled the...
Definition: cs_navsto_coupling.c:736
void * cs_navsto_ac_free_context(void *context)
Free the context structure related to an Artificial Compressibility approach.
Definition: cs_navsto_coupling.c:216
void * cs_navsto_monolithic_create_context(cs_param_bc_type_t bc, cs_navsto_param_t *nsp)
Allocate and initialize a context structure when the Navier-Stokes system is coupled using a monolith...
Definition: cs_navsto_coupling.c:342
void cs_navsto_monolithic_init_setup(const cs_navsto_param_t *nsp, cs_adv_field_t *adv_field, void *context)
Start setting-up the Navier-Stokes equations when a monolithic algorithm is used to coupled the syste...
Definition: cs_navsto_coupling.c:470
void cs_navsto_projection_init_setup(const cs_navsto_param_t *nsp, cs_adv_field_t *adv_field, int loc_id, bool has_previous, void *context)
Start setting-up the Navier-Stokes equations when a projection algorithm is used to coupled the syste...
Definition: cs_navsto_coupling.c:665
void cs_navsto_ac_last_setup(const cs_navsto_param_t *nsp, void *context)
Finalize the setup for the Navier-Stokes equations when an Artificial Compressibility algorithm is us...
Definition: cs_navsto_coupling.c:285
void cs_navsto_monolithic_last_setup(const cs_navsto_param_t *nsp, void *context)
Finalize the setup for the Navier-Stokes equations when a monolithic algorithm is used to coupled the...
Definition: cs_navsto_coupling.c:520
cs_equation_t * cs_navsto_projection_get_momentum_eq(void *context)
Retrieve the pointer to the cs_equation_t structure related to the momentum equation in case of a pro...
Definition: cs_navsto_coupling.c:795
void * cs_navsto_projection_create_context(cs_param_bc_type_t bc, cs_navsto_param_t *nsp)
Allocate and initialize a context structure when the Navier-Stokes system is coupled using an increme...
Definition: cs_navsto_coupling.c:566
void * cs_navsto_monolithic_free_context(void *context)
Free the context structure related to a monolithic approach.
Definition: cs_navsto_coupling.c:448
cs_param_bc_type_t
Definition: cs_param_types.h:476
Definition: cs_advection_field.h:150
Definition: cs_cdo_quantities.h:137
Set of parameters to handle an unsteady convection-diffusion-reaction equation with term sources.
Definition: cs_equation_param.h:193
Main structure to handle the discretization and the resolution of an equation.
Field descriptor.
Definition: cs_field.h:131
Set of parameters specific for solving the Navier-Stokes system with the "artificial compressibility"...
Definition: cs_navsto_coupling.h:62
cs_equation_t * momentum
Definition: cs_navsto_coupling.h:64
cs_property_t * zeta
Definition: cs_navsto_coupling.h:71
Set of parameters specific for solving the Navier-Stokes system with a fully coupled monolithic algor...
Definition: cs_navsto_coupling.h:81
cs_equation_t * momentum
Definition: cs_navsto_coupling.h:83
Structure storing the parameters related to the resolution of the Navier-Stokes system.
Definition: cs_navsto_param.h:262
Set of parameters specific for solving the Navier-Stokes system with an incremental projection algori...
Definition: cs_navsto_coupling.h:95
cs_equation_t * correction
Definition: cs_navsto_coupling.h:99
cs_field_t * predicted_velocity
Definition: cs_navsto_coupling.h:121
cs_equation_t * prediction
Definition: cs_navsto_coupling.h:97
cs_real_t * bdy_pressure_incr
Definition: cs_navsto_coupling.h:114
cs_real_t * div_st
Definition: cs_navsto_coupling.h:107
Structure associated to the definition of a property relying on the cs_xdef_t structure.